Hi All,
We are using a board based on imx6d-sabresd reference board in our project. The only difference between our board and reference board is that we used SD2 interface for the SD card booting and UART2 for the console(ttymxc1).
Also we have decreased the RAM size to 256 MB from 1 GB in reference board.
The board always boots up but it hangs just before the login prompt but when we send an interrupt signal from keyboard(ctrl+c) login prompt comes sometimes.
Can anyone provide us the steps to debug the issue.
The booting logs on the console is:
U-Boot 2014.01 (Sep 16 2014 - 15:43:58)
CPU: Freescale i.MX6Q rev1.2 at 792 MHz <we are using dual core processor but it is showing IMX6Q. Is there any configuration do we need to change for dual core processor>
Reset cause: POR
Board: VELU_WMSD
I2C: ready
DRAM: 256 MiB
usdhc3 changes for mmc1 (wifi)MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In: serial
Out: serial
Err: serial
Net: CPU Net Initialization Failed
No ethernet found.
Hit any key to stop autoboot: 0
mmc0 is current device
reading boot.scr
** Unable to read file boot.scr **
reading uImage
4833712 bytes read in 231 ms (20 MiB/s)
Booting from mmc ...
reading imx6q-sabresd-ldo.dtb
41853 bytes read in 19 ms (2.1 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-3.10.17-1.0.1_ga+gdac46dc
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4833648 Bytes = 4.6 MiB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at 0x18000000
Loading Kernel Image ... OK
Using Device Tree in place at 18000000, end 1800d37c
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 3.10.17-1.0.1_ga+gdac46dc (alok@Alok) (gcc version 4.8.2 (GCC) ) #8 SMP PREEMPT Wed Sep 17 10:17:13 IST 2014
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Freescale i.MX6 Quad/DualLite (Device Tree), model: Freescale i.MX6 Quad SABRE Smart Device Board
Memory policy: ECC disabled, Data cache writealloc
PERCPU: Embedded 8 pages/cpu @80e47000 s8896 r8192 d15680 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
Kernel command line: console=ttymxc1,115200 root=/dev/mmcblk0p2 rootwait rw init=/bin/sh
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 256MB = 256MB total
Memory: 247196k/247196k available, 14948k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0x90800000 - 0xff000000 (1768 MB)
lowmem : 0x80000000 - 0x90000000 ( 256 MB)
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
.text : 0x80008000 - 0x80b3e8f8 (11483 kB)
.init : 0x80b3f000 - 0x80b7f2c0 ( 257 kB)
.data : 0x80b80000 - 0x80bcbe80 ( 304 kB)
.bss : 0x80bcbe80 - 0x80c33d0c ( 416 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Preemptible hierarchical RCU implementation.
NR_IRQS:16 nr_irqs:16 16
L310 cache controller enabled
l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x32070000, Cache size: 1048576 B
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
CPU identified as i.MX6Q, silicon rev 1.2
Console: colour dummy device 80x30
Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x8058ff98 - 0x8058fff0
CPU1: Booted secondary processor
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP: Total of 2 processors activated (3162.11 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
pinctrl core: initialized pinctrl subsystem
regulator-dummy: no parameters
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
Use WDOG1 as reset source
syscon 20c8000.anatop: regmap [mem 0x020c8000-0x020c8fff] registered
vdd1p1: 800 <--> 1375 mV at 1125 mV
vdd3p0: 2800 <--> 3150 mV at 3000 mV
vdd2p5: 2000 <--> 2750 mV at 2425 mV
cpu: 725 <--> 1450 mV at 1100 mV
vddpu: 725 <--> 1450 mV at 1100 mV
vddsoc: 725 <--> 1450 mV at 1175 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.
imx6q-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
bio: create slab <bio-0> at 0
mxs-dma 110000.dma-apbh: initialized
wilink_wl_en: 1800 mV
usb_otg_vbus: 5000 mV
usb_h1_vbus: 5000 mV
wm8962-supply: no parameters
mipi_dsi_pwr_on: no parameters
sensor-supply: 3300 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
i2c i2c-0: IMX I2C adapter registered
i2c i2c-1: IMX I2C adapter registered
i2c i2c-2: 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@linux.it>
PTP clock support registered
imx-ipuv3 2400000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
imx-ipuv3 2800000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 driver probed
mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 dphy version is 0x3130302a
MIPI CSI2 driver module loaded
Advanced Linux Sound Architecture Driver Initialized.
Switching to clocksource mxc_timer1
NET: Registered protocol family 2
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP: reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 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
pureg-dummy: no parameters
imx6_busfreq busfreq.15: DDR medium rate not supported.
Bus freq driver module loaded
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 482
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
imx-weim 21b8000.weim: WEIM driver registered.
MIPI DSI driver module loaded
mxc_sdc_fb fb.31: register mxc display driver ldb
mxc_sdc_fb fb.31: NO mxc display driver found!
mxc_sdc_fb fb.32: register mxc display driver hdmi
mxc_hdmi 20e0000.hdmi_video: Detected HDMI controller 0x13:0xa:0xa0:0xc1
fbcvt: 1920x1080@60: CVT Name - 2.073M9
Console: switching to colour frame buffer device 240x67
mxc_sdc_fb fb.33: register mxc display driver lcd
mxc_sdc_fb fb.33: ipu0-di0 already in use
mxc_sdc_fb: probe of fb.33 failed with error -16
mxc_sdc_fb fb.34: register mxc display driver ldb
mxc_sdc_fb fb.34: NO mxc display driver found!
imx-sdma 20ec000.sdma: no iram assigned, using external mem
imx-sdma 20ec000.sdma: loaded firmware 1.1
imx-sdma 20ec000.sdma: initialized
pfuze100-regulator 1-0008: unrecognized pfuze chip ID!
pfuze100-regulator: probe of 1-0008 failed with error -5
Serial: IMX driver
21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX
console [ttymxc1] enabled
serial: Freescale lpuart driver
[drm] Initialized drm 1.1.0 20060810
brd: module loaded
loop: module loaded
CAN device driver interface
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
usbcore: registered new interface driver usb-storage
ci_hdrc ci_hdrc.1: doesn't support gadget
ci_hdrc ci_hdrc.1: EHCI Host Controller
ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
mousedev: PS/2 mouse device common for all mice
elan-touch 2-0010: elan - Read Hello Packet Failed
elan-touch: probe of 2-0010 failed with error -22
egalax_ts 2-0004: Failed to read firmware version
egalax_ts: probe of 2-0004 failed with error -5
input: max11801_ts as /devices/soc0/soc.1/2100000.aips-bus/21a4000.i2c/i2c-1/1-0048/input/input0
i2c-core: driver [isl29023] using legacy suspend method
i2c-core: driver [isl29023] using legacy resume method
snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0
i2c /dev entries driver
mxc_v4l2_output v4l2_out.39: V4L2 device registered as video16
mxc_v4l2_output v4l2_out.39: V4L2 device registered as video17
mag3110 2-000e: check mag3110 chip ID
mag3110 2-000e: read chip ID 0xfffffffb is not equal to 0xc4!
mag3110: probe of 2-000e failed with error -22
i2c-core: driver [mag3110] using legacy suspend method
i2c-core: driver [mag3110] using legacy resume method
mma8451 0-001c: read chip ID 0x1 is not equal to 0x1a or 0x2a!
mma8451: probe of 0-001c failed with error -22
imx2-wdt 20bc000.wdog: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0)
cpuidle: using governor ladder
cpuidle: using governor menu
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: no vqmmc regulator found
mmc0: no vmmc regulator found
mmc0: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA
mmc0: mmc_rescan_try_freq: Trying to init card at 400000 Hz
sdhci-esdhc-imx 2198000.usdhc: could not get ultra high speed state, work on normal mode
mmc1: no vqmmc regulator found
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new high speed SDHC card at address aaaa
mmcblk0: mmc0:aaaa SU04G 3.69 GiB
mmcblk0: p1 p2
mmc1: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
------------[ cut here ]------------
WARNING: at mm/page_alloc.c:2412 __alloc_pages_nodemask+0x180/0x7c4()
mmc1: mmc_rescan_try_freq: Trying to init card at 400000 Hz
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.17-1.0.1_ga+gdac46dc #8
[<80013ae0>] (unwind_backtrace+0x0/0xf4) from [<80011504>] (show_stack+0x10/0x14)
[<80011504>] (show_stack+0x10/0x14) from [<80025d6c>] (warn_slowpath_common+0x54/0x6c)
[<80025d6c>] (warn_slowpath_common+0x54/0x6c) from [<80025e20>] (warn_slowpath_null+0x1c/0x24)
[<80025e20>] (warn_slowpath_null+0x1c/0x24) from [<8008fa48>] (__alloc_pages_nodemask+0x180/0x7c4)
[<8008fa48>] (__alloc_pages_nodemask+0x180/0x7c4) from [<80017b28>] (__dma_alloc_buffer.isra.20+0x2c/0x198)
[<80017b28>] (__dma_alloc_buffer.isra.20+0x2c/0x198) from [<80017ca8>] (__alloc_remap_buffer.isra.23+0x14/0xb4)
[<80017ca8>] (__alloc_remap_buffer.isra.23+0x14/0xb4) from [<80017e94>] (__dma_alloc+0x14c/0x25c)
[<80017e94>] (__dma_alloc+0x14c/0x25c) from [<800180e8>] (arm_dma_alloc+0x9c/0xa4)
[<800180e8>] (arm_dma_alloc+0x9c/0xa4) from [<8041ec38>] (gpu_probe+0x1d8/0x734)
[<8041ec38>] (gpu_probe+0x1d8/0x734) from [<803081b8>] (platform_drv_probe+0x18/0x1c)
[<803081b8>] (platform_drv_probe+0x18/0x1c) from [<80306f64>] (driver_probe_device+0x10c/0x228)
mmc1: mmc_rescan_try_freq: Trying to init card at 300000 Hz
[<80306f64>] (driver_probe_device+0x10c/0x228) from [<80307150>] (__driver_attach+0x8c/0x90)
[<80307150>] (__driver_attach+0x8c/0x90) from [<80305480>] (bus_for_each_dev+0x60/0x94)
[<80305480>] (bus_for_each_dev+0x60/0x94) from [<80306728>] (bus_add_driver+0x1c0/0x24c)
[<80306728>] (bus_add_driver+0x1c0/0x24c) from [<8030772c>] (driver_register+0x78/0x140)
[<8030772c>] (driver_register+0x78/0x140) from [<80008704>] (do_one_initcall+0x108/0x158)
[<80008704>] (do_one_initcall+0x108/0x158) from [<80b3fbe0>] (kernel_init_freeable+0x138/0x1d8)
[<80b3fbe0>] (kernel_init_freeable+0x138/0x1d8) from [<80584b9c>] (kernel_init+0x8/0x158)
[<80584b9c>] (kernel_init+0x8/0x158) from [<8000e118>] (ret_from_fork+0x14/0x3c)
---[ end trace af522e87092d768d ]---
galcore 130000.gpu: Failed to allocate contiguous memory
galcore: probe of 130000.gpu failed with error -12
mxc_vdoa 21e4000.vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
mxc_asrc 2034000.asrc: mxc_asrc registered
mxc_vpu 2040000.vpu: VPU initialized
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
i2c-core: driver [cs42888] using legacy suspend method
i2c-core: driver [cs42888] using legacy resume method
mmc1: mmc_rescan_try_freq: Trying to init card at 200000 Hz
wm8962 0-001a: Failed to read ID register
wm8962: probe of 0-001a failed with error -5
imx-wm8962 sound.29: audmux internal port setup failed
imx-wm8962: probe of sound.29 failed with error -22
imx-audio-hdmi sound-hdmi.30: hdmi-hifi <-> hdmi_audio.16 mapping ok
TCP: cubic registered
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
can: controller area network core (rev 20120528 abi 9)
NET: Registered protocol family 29
can: raw protocol (rev 20120528)
can: broadcast manager protocol (rev 20120528 t)
can: netlink gateway (rev 20130117) max_hops=1
8021q: 802.1Q VLAN Support v1.8
Key type dns_resolver registered
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
vddpu: disabling
snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 1970-01-01 00:00:00 UTC (0)
ALSA device list:
#0: imx-hdmi-soc
kjournald starting. Commit interval 5 seconds
EXT3-fs (mmcblk0p2): using internal journal
EXT3-fs (mmcblk0p2): recovery complete
EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
VFS: Mounted root (ext3 filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 256K (80b3f000 - 80b7f000)
mmc1: mmc_rescan_try_freq: Trying to init card at 100000 Hz
udevd[122]: starting version 182
Starting Bootlog daemon: bootlogd: cannot allocate pseudo tty: No such file or directory
bootlogd.
Populating dev cache
Wed Sep 17 05:10:00 UTC 2014
<console hangs here>
Solved! Go to Solution.
Hi ,
We were able to boot the board after few menuconfig changes.
We disabled the RTC clock and made some changes in power management in the menuconfig and after that we were able to boot the board without hanging issue in the kernel.
If the problem is reproduced only with DDR50 SD cards (e.g. like one above Sandisk SE16G, which RCA is aaaa), I believe the described problem may be related to a missing timing delay after host controller timing switch, see Dong Aisheng's change ENGR00324668 as a workaround.
Hi Igorpadykov,
The document you sent does not help in debugging the problem for the code hang at the time of login prompt.
Also we have changed the number of CPU's to 2 for Dual processor but still it reads IMX6Q id from the register.
We have removed all the irrelevant drivers from the code.
Also we have tested the code on the reference board with 256MB of DDR, on reference board it is working fine.
Can you provide us some other relevant document or debugging steps.
Adding some more information :
We are using yocto 1.6 Daisy tool chain with kernel 3.10-17 and u-boot-2014.01 .
Hi ,
We were able to boot the board after few menuconfig changes.
We disabled the RTC clock and made some changes in power management in the menuconfig and after that we were able to boot the board without hanging issue in the kernel.
Hi PRaveen,
We are also facing same issue, please let us know the power management changes which you have done in make menuconfig.
Hi Praveen,
What are the power management changes which you have done in make menuconfig?
Hi Igorpadykov,
I think you forgot to attach the document...
i.MX_6_SABRE-SD_Linux_Release_Notes.pdf