imx6sl stops at "Starting kernel ..."

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6sl stops at "Starting kernel ..."

5,683 Views
eugenephua
Contributor III

Hi all, i have compiled the u-boot and linux for a customized imx6sl board and the serial output is attached below.

The main difference is the RAM is changed from 1GB (EVK board) to 256MB (customized board). The PHYS_SDRAM_SIZE in u-boot is updated. The CONFIG_CMA_SIZE_MBYTES in linux kernel is also updated from 320 to 16 as 320 exceeds the SDRAM size.

Any idea to debug to find out why it stops starting the kernel? (The LOADADDR for linux is 0x80800000 fyi). Thanks!

---------------------------------------

U-Boot 2015.04-00129-g10aced3-dirty (May 26 2015 - 14:01:33)                   
                                                                               
CPU:   Freescale i.MX6SL rev1.2 996 MHz (running at 792 MHz)                   
CPU:   Commercial temperature grade (0C to 95C) at 32C                         
Reset cause: POR                                                               
Board: MX6SLEVK                                                                
I2C:   ready                                                                   
DRAM:  256 MiB                                                                 
PMIC:  PFUZE100 ID=0x10                                                        
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2                                   
*** Warning - bad CRC, using default environment                               
                                                                               
In:    serial                                                                  
Out:   serial                                                                  
Err:   serial                                                                  
Net:   FEC [PRIME]                                                             
Error: FEC address not set.                                                    
                                                                               
Hit any key to stop autoboot:  0                                               
switch to partitions #0, OK                                                    
mmc1 is current device                                                         
switch to partitions #0, OK                                                    
mmc1 is current device                                                         
reading boot.scr                                                               
** Unable to read file boot.scr **                                             
reading zImage                                                                 
5943376 bytes read in 275 ms (20.6 MiB/s)                                      
Booting from mmc ...                                                           
reading imx6sl-evk-ldo.dtb                                                     
34675 bytes read in 19 ms (1.7 MiB/s)                                          
Kernel image @ 0x80800000 [ 0x000000 - 0x5ab050 ]                              
## Flattened Device Tree blob at 88000000                                      
   Booting using the fdt blob at 0x88000000                                    
   Using Device Tree in place at 88000000, end 8800b772                        
                                                                               
Starting kernel ...  

Labels (2)
0 Kudos
Reply
12 Replies

3,194 Views
jansirani
Contributor III

Hai Eugene Phua

    we are also having the same issue .

in our custom board we used 512MB LPDDR2 instead of 1GB (iMX6SLEVK).

we changed the SDRAM_SIZE from 1G to 512M and flashed the core-minimal-image.sdcard image

 to the sdcard.then our custom board also getting stop at Starting kernel....

how you solved the issue?

please tell us what are the changes you have done in uboot and kernel area to  change the 1GB to 256MB.?

check below for the logs:

                                                                                    
U-Boot 2013.04 (Oct 06 2016 - 18:45:17)                                              
                                        
CPU:   Freescale i.MX6SL rev1.2 at 396 MHz
CPU:   Temperature 28 C, calibration data: 0x57e50469
Reset cause: POR                        
Board: MX6SLEVK                         
I2C:   ready                            
DRAM:  512 MiB                          
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Found PFUZE100! deviceid=10,revid=11
mmc1 is current device
Net:   CPU Net Initialization Failed
No ethernet found.
Normal Boot
Hit any key to stop autoboot:  0
mmc1 is current device
mmc1 is current device
reading boot.scr
** Unable to read file boot.scr **                                                      
reading uImage                                                                          
5261128 bytes read in 259 ms (19.4 MiB/s)                                               
Booting from mmc ...                                                                    
reading imx6sl-evk.dtb                                                                  
33925 bytes read in 18 ms (1.8 MiB/s)
## Booting kernel from Legacy Image at 80800000 ...
   Image Name:   Linux-3.10.17-1.0.0_ga+g232293e
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    5261064 Bytes = 5 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Loading Kernel Image ... OK
OK
switch to ldo_bypass mode!
Entered into do_bootm_linux() in uboot/arch/arm/lib/bootm.c
using: FDT
   Using Device Tree in place at 83000000, end 8300b484

Starting kernel ...

0 Kudos
Reply

3,194 Views
jithinm
Contributor I

Hi Jansi Rani,

Are you able to solve this issue? I'm also facing the same issue.

Please help me.

0 Kudos
Reply

3,194 Views
Yuri
NXP Employee
NXP Employee

    If a board boots u-boot but stops at “Starting kernel ...”,
it may be possible to read the kernel log_buffer.
To find the __log_buf address, please use readelf utility :

$ readelf -s vmlinux | grep __log_buf

Than, don’t power off the board, just reset it, and read the
(__log_buf) address on JTAG or u-boot. As an example :

U-Boot > md.l 10af37b8 50


Have a great day,
Yuri

----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

3,194 Views
eugenephua
Contributor III

Hi Yuri,

I have managed to add the  kernel earlyprintk and it stops at the following line:

U-Boot 2015.04-00129-g10aced3-dirty (Jun 03 2015 - 11:34:33)                   
                                                                               
CPU:   Freescale i.MX6SL rev1.2 996 MHz (running at 792 MHz)                   
CPU:   Commercial temperature grade (0C to 95C) at 31C                         
Reset cause: POR                                                               
Board: MX6SLEVK                                                                
I2C:   ready                                                                   
DRAM:  1 GiB                                                                   
PMIC:  PFUZE100 ID=0x10                                                        
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2                                   
*** Warning - bad CRC, using default environment                               
                                                                               
In:    serial                                                                  
Out:   serial                                                                  
Err:   serial                                                                  
Net:   FEC [PRIME]                                                             
Error: FEC address not set.                                                    
                                                                               
Hit any key to stop autoboot:  0                                               
switch to partitions #0, OK                                                    
mmc1 is current device                                                         
switch to partitions #0, OK                                                    
mmc1 is current device                                                         
reading boot.scr                                                               
** Unable to read file boot.scr **                                             
reading zImage                                                                 
5584312 bytes read in 261 ms (20.4 MiB/s)                                      
Booting from mmc ...                                                           
reading imx6sl-evk-uart.dtb                                                    
35388 bytes read in 19 ms (1.8 MiB/s)                                          
Kernel image @ 0x82000000 [ 0x000000 - 0x5535b8 ]                              
## Flattened Device Tree blob at 88000000                                      
   Booting using the fdt blob at 0x88000000                                    
   Using Device Tree in place at 88000000, end 8800ba3b                        
                                                                               
Starting kernel ...                                                            
                                                                               
Uncompressing Linux... done, booting the kernel.                               
Booting Linux on physical CPU 0x0                                              
Linux version 3.10.79-02711-g85ae484 (OptiPlex-960) (gcc version 5
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d               
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache       
Machine: Freescale i.MX6 SoloLite (Device Tree), model: Freescale i.MX6 SoloLit)
bootconsole [earlycon0] enabled                                                
cma: CMA: reserved 320 MiB at ac000000                                         
Memory policy: ECC disabled, Data cache writealloc                             
PERCPU: Embedded 8 pages/cpu @8157c000 s8320 r8192 d16256 u32768               
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260096    
Kernel command line: earlyprintk console=ttymxc0,115200 root=/dev/mmcblk1p2 roow
PID hash table entries: 4096 (order: 2, 16384 bytes)                           
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)               
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)                 
Memory: 1024MB = 1024MB total                                                  
Memory: 697380k/697380k available, 351196k reserved, 0K highmem                
Virtual kernel memory layout:                                                  
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)                              
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)                              
    vmalloc : 0xc0800000 - 0xff000000   (1000 MB)                              
    lowmem  : 0x80000000 - 0xc0000000   (1024 MB)                              
    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)                              
    modules : 0x7f000000 - 0x7fe00000   (  14 MB)                              
      .text : 0x80008000 - 0x80c5bfd0   (12624 kB)                             
      .init : 0x80c5c000 - 0x80ca7080   ( 301 kB)                              
      .data : 0x80ca8000 - 0x80cff0a0   ( 349 kB)                              
       .bss : 0x80cff0a0 - 0x80d6823c   ( 421 kB)                              
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1                     
Preemptible hierarchical RCU implementation.                                   
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.                   
NR_IRQS:16 nr_irqs:16 16                                                       
L310 cache controller enabled                                                  
l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32430000, Cache size: 262144 B

<Stops here>

0 Kudos
Reply

3,194 Views
Yuri
NXP Employee
NXP Employee

  Perhaps, the issues concerns with memory problem. Please try

to test the memory.

i.MX6 DDR Stress Test Tool V1.0.3

Regards,

Yuri.

0 Kudos
Reply

3,193 Views
eugenephua
Contributor III

Hi Yuri,

the DDR stress tool tested ok for the memory.

Now it hangs at:

U-Boot 2014.04-08650-g5b983bd-dirty (Jun 09 2015 - 13:08:48)

                                       

CPU:   Freescale i.MX6SL rev1.2 at 792 MHz

CPU:   Temperature 32 C, calibration data: 0x5584e35f

Reset cause: POR                       

Board: MX6SLEVK                        

I2C:   ready                           

DRAM:  1 GiB                           

MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2

In:    serial

Out:   serial

Err:   serial

Found PFUZE100 deviceid=10,revid=11                                            

mmc1 is current device                                                         

Net:   FEC [PRIME]                                                             

Warning: failed to set MAC address                                             

                                                                               

Normal Boot                                                                    

Hit any key to stop autoboot:  0                                               

mmc1 is current device                                                         

mmc1 is current device                                                         

reading boot.scr                                                               

** Unable to read file boot.scr **                                             

reading zImage                                                                 

5941336 bytes read in 283 ms (20 MiB/s)                                        

Booting from mmc ...                                                           

reading imx6sl-evk.dtb                                                         

34675 bytes read in 18 ms (1.8 MiB/s)                                          

Kernel image @ 0x80800000 [ 0x000000 - 0x5aa858 ]                              

## Flattened Device Tree blob at 83000000                                      

   Booting using the fdt blob at 0x83000000                                    

   Using Device Tree in place at 83000000, end 8300b772                        

switch to ldo_bypass mode!                                                     

Using machid 0xffffffff from environment                                       

                                                                               

Starting kernel ...                                                            

                                                                               

Uncompressing Linux... done, booting the kernel.                               

Booting Linux on physical CPU 0x0                                              

Linux version 3.14.28-132790-g91cf351 (jephua@jephua-OptiPlex-960) (gcc version5

CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d               

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache       

Machine model: Freescale i.MX6 SoloLite EVK Board                              

bootconsole [earlycon0] enabled                                                

cma: CMA: reserved 320 MiB at ac000000                                         

Memory policy: Data cache writealloc                                           

PERCPU: Embedded 8 pages/cpu @ab73d000 s8896 r8192 d15680 u32768               

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260096    

Kernel command line: earlyprintk console=ttymxc0,115200 root=/dev/mmcblk1p2 roow

PID hash table entries: 4096 (order: 2, 16384 bytes)                           

Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)               

Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)                 

Memory: 696696K/1048576K available (7090K kernel code, 392K rwdata, 6148K rodat)

Virtual kernel memory layout:                                                  

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)                              

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)                              

    vmalloc : 0xc0800000 - 0xff000000   (1000 MB)                              

    lowmem  : 0x80000000 - 0xc0000000   (1024 MB)                              

    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)                              

    modules : 0x7f000000 - 0x7fe00000   (  14 MB)                              

      .text : 0x80008000 - 0x80cf5a5c   (13239 kB)                             

      .init : 0x80cf6000 - 0x80d482c0   ( 329 kB)                              

      .data : 0x80d4a000 - 0x80dac0c0   ( 393 kB)                              

       .bss : 0x80dac0cc - 0x80e1742c   ( 429 kB)                              

SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1                     

Preemptible hierarchical RCU implementation.                                   

        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.                   

RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1                   

NR_IRQS:16 nr_irqs:16 16                                                       

L310 cache controller enabled                                                  

l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32030000, Cache size: 256 kB    

Switching to timer-based delay loop                                            

sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns     

clocksource_of_init: no matching clocksources found                            

Console: colour dummy device 80x30                                             

Calibrating delay loop (skipped), value calculated using timer frequency.. 48.0)

pid_max: default: 32768 minimum: 301                                           

Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)                    

Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)               

CPU: Testing write buffer coherency: ok                                        

CPU0: thread -1, cpu 0, socket 0, mpidr 80000000                               

Setting up static identity map for 0x806ba7e0 - 0x806ba838                     

Brought up 1 CPUs                                                              

SMP: Total of 1 processors activated.                                          

CPU: All CPU(s) started in SVC mode.                                           

devtmpfs: initialized                                                          

VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4        

pinctrl core: initialized pinctrl subsystem                                    

regulator-dummy: no parameters                                                 

NET: Registered protocol family 16                                             

DMA: preallocated 256 KiB pool for atomic coherent allocations                 

cpuidle: using governor ladder                                                 

cpuidle: using governor menu                                                   

Use WDOG1 as reset source                                                      

syscon 20c8000.anatop: regmap [mem 0x020c8000-0x020c8fff] registered           

vdd1p1: 800 <--> 1375 mV at 1100 mV                                            

vdd3p0: 2800 <--> 3150 mV at 3000 mV                                           

vdd2p5: 2100 <--> 2850 mV at 2500 mV                                           

vddarm: 725 <--> 1450 mV                                                       

vddpu: 725 <--> 1450 mV                                                        

vddsoc: 725 <--> 1450 mV                                                       

syscon 20e0000.iomuxc-gpr: regmap [mem 0x020e0000-0x020e0037] registered       

syscon 21bc000.ocotp-ctrl: regmap [mem 0x021bc000-0x021bffff] registered       

hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.    

hw-breakpoint: maximum watchpoint size is 4 bytes.                             

imx6sl-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver                  

bio: create slab <bio-0> at 0                                                  

lcd-3v3: no parameters                                                         

usb_otg1_vbus: 5000 mV                                                         

usb_otg2_vbus: 5000 mV                                                         

wm8962-supply-3v15: 3150 mV                                                    

wm8962-supply-4v2: 4325 mV                                                     

i2c-core: driver [max17135] using legacy suspend method                        

i2c-core: driver [max17135] using legacy resume method                         

SCSI subsystem initialized                                                     

usbcore: registered new interface driver usbfs                                 

usbcore: registered new interface driver hub                                   

usbcore: registered new device driver usb                                      

usbphy_nop1.11 supply vcc not found, using dummy regulator                     

0-0048 supply SENSOR not found, using dummy regulator                          

i2c i2c-0: Max17135 PMIC not found!                                            

i2c i2c-0: IMX I2C adapter registered                                          

i2c i2c-1: IMX I2C adapter registered                                          

Linux video capture interface: v2.00                                           

pps_core: LinuxPPS API ver. 1 registered                                       

pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@>

PTP clock support registered                                                   

MIPI CSI2 driver module loaded                                                 

Advanced Linux Sound Architecture Driver Initialized.                          

Bluetooth: Core ver 2.18                                                       

NET: Registered protocol family 31                                             

Bluetooth: HCI device and connection manager initialized                       

Bluetooth: HCI socket layer initialized                                        

Bluetooth: L2CAP socket layer initialized                                      

Bluetooth: SCO socket layer initialized                                        

Switched to clocksource mxc_timer1                                             

cfg80211: Calling CRDA to update world regulatory domain                       

NET: Registered protocol family 2                                              

TCP established hash table entries: 8192 (order: 3, 32768 bytes)               

TCP bind hash table entries: 8192 (order: 4, 65536 bytes)                      

TCP: Hash tables configured (established 8192 bind 8192)                       

TCP: reno registered                                                           

UDP hash table entries: 512 (order: 2, 16384 bytes)                            

UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)                       

NET: Registered protocol family 1                                              

RPC: Registered named UNIX socket transport module.                            

RPC: Registered udp transport module.                                          

RPC: Registered tcp transport module.                                          

RPC: Registered tcp NFSv4.1 backchannel transport module.                      

hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available   

ldo2p5-dummy: no parameters                                                    

Bus freq driver module loaded                                                  

futex hash table entries: 256 (order: 2, 16384 bytes)                          

VFS: Disk quotas dquot_6.5.2                                                   

Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)                     

NFS: Registering the id_resolver key type                                      

Key type id_resolver registered                                                

Key type id_legacy registered                                                  

jffs2: version 2.2. (NAND) �۩ 2001-2006 Red Hat, Inc.                          

fuse init (API version 7.22)                                                   

msgmni has been set to 2000                                                    

io scheduler noop registered                                                   

io scheduler deadline registered                                               

io scheduler cfq registered (default)                                          

backlight.16 supply power not found, using dummy regulator                     

MIPI DSI driver module loaded

(Stops here)

0 Kudos
Reply

3,194 Views
sandeepramankut
Contributor I

Hi,

Did you get a solution for this issue. We are having similar problems with imx6dl when we try to boot kernel from channel 0 i.e. the one that starts from 0x80000000. The kernel stops at

l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32430000, Cache size: 262144 B

0 Kudos
Reply

3,194 Views
florian_germain
Contributor II

my problem was that my CPU had no GPU and gpu was not totally removed from device tree.

0 Kudos
Reply

3,194 Views
florian_germain
Contributor II

It seems that your kernel don't freeze any more at line:

l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32430000, Cache size: 262144 B

What was the problem? Because my kernel iz freeze at this same line.

Thanks,

0 Kudos
Reply

3,194 Views
Yuri
NXP Employee
NXP Employee

   Perhaps the memory size (256 MB) is unsufficient.

Please try to optimyze Linux or to increment memory (at for test).

Regards,

Yuri.

0 Kudos
Reply

3,194 Views
sunishm
Contributor I

Hi  Yuri,

even we faced the same issue here. According to my understanding we enable FB driver then its struck at the same place. Please find the below log for you reference. I tried with the optimised kernel but still it struck at the same position.

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Booting Linux on physical CPU 0x0

Initializing cgroup subsys cpu

Initializing cgroup subsys cpuacct

Linux version 3.10.53-88179-g5d60186-dirty (lnt@lnt-desktop) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Lin5

CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Freescale i.MX6 SoloLite (Device Tree), model: Freescale i.MX6 SoloLite EVK Board(PFUZE100)

cma: CMA: reserved 256 MiB at 8a000000

Memory policy: ECC disabled, Data cache writealloc

On node 0 totalpages: 130816

free_area_init_node: node 0, pgdat 80a6f4c0, node_mem_map 80b55000

  DMA zone: 1024 pages used for memmap

  DMA zone: 0 pages reserved

  DMA zone: 130816 pages, LIFO batch:31

PERCPU: Embedded 8 pages/cpu @80f66000 s9728 r8192 d14848 u32768

pcpu-alloc: s9728 r8192 d14848 u32768 alloc=8*4096

pcpu-alloc: [0] 0

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129792

Kernel command line: console=ttymxc2,115200 root=/dev/ram0 single rootwait rw

PID hash table entries: 2048 (order: 1, 8192 bytes)

Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)

Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)

Memory: 447MB 64MB = 511MB total

Memory: 243632k/243632k available, 280656k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    vmalloc : 0xa0800000 - 0xff000000   (1512 MB)

    lowmem  : 0x80000000 - 0xa0000000   ( 512 MB)

    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)

    modules : 0x7f000000 - 0x7fe00000   (  14 MB)

      .text : 0x80008000 - 0x809b856c   (9922 kB)

      .init : 0x809b9000 - 0x80a09600   ( 322 kB)

      .data : 0x80a0a000 - 0x80a709a0   ( 411 kB)

       .bss : 0x80a709a0 - 0x80b54ca0   ( 913 kB)

SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Preemptible hierarchical RCU implementation.

        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.

NR_IRQS:16 nr_irqs:16 16

L310 cache controller enabled

l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32030000, Cache size: 262144 B

0 Kudos
Reply

3,194 Views
Yuri
NXP Employee
NXP Employee

Looks like You need JTAG debugging.

Regards,

Yuri.

0 Kudos
Reply