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 ...
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 ...
Hi Jansi Rani,
Are you able to solve this issue? I'm also facing the same issue.
Please help me.
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!
-----------------------------------------------------------------------------------------------------------------------
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>
Perhaps, the issues concerns with memory problem. Please try
to test the memory.
i.MX6 DDR Stress Test Tool V1.0.3
Regards,
Yuri.
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)
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
my problem was that my CPU had no GPU and gpu was not totally removed from device tree.
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,
Perhaps the memory size (256 MB) is unsufficient.
Please try to optimyze Linux or to increment memory (at for test).
Regards,
Yuri.
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
Looks like You need JTAG debugging.
Regards,
Yuri.