This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

linux hangs at "Uncompressing Linux... done, booting the kernel." with XAM3359ZCZ custom board

Hi,

I just did a XAM3359ZCZ board which is similar to the beagle bone board but just removed some unused peripherals.
The system boots from SD card and with 256MB DDR2 memory.
  
U-boot prints like below and hangs afterwards
......
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
----------------------------
system hangs:(

While the same SD card works well on the beagle bone board, my concern is that if the DDR2 memory signal integrity could cause such an issue. 
Did anyone encounter similar issues or what do you think could be the root cause?

Thanks
Qi

  • Qi,

    The reason can be anything. It can be because of some crash in the kernel before serial driver getting initialized. Can you post the bootargs used?

  • Qi,

    To confirm whether DDR2 signal integrity is the issue or not, you can try running memory test command in u-boot "mtest" and see whether it succeeds or not.

  • Hi Renjith,

    Thanks! We tested the RAM, it is OK. But we finally found the problem was caused by the sd card detect signal.

    We didn't route the card detect signal to the default CPU pin, so the kernal thinks the sd card is not ready.

    Qi

  • Qi, I'm having the same problem with my board, stuck at the uncompressing Linux phase.  Which file contained the card detect code?

  • Hello Renjith

    I am using linux 3.3.7 on beagleboard xm.I get the linux source and get compile that code for beagleboard xm.

    In linux beagleboard websites,they said to use "omap2plus_defconfig" for uimage.But it doesn't compiles and getting error and stucked out.

    Error:Selected processor doesnot supported ARM mode............................

    so,Im using "tisdk_beagleboard_defconfig" file for uimage compilation.I get a uimage for 3.21MB but it doesn't works in my board.It shows an error.....

    Booting kernel from Legacy Image at 80007fc0 ...
       Image Name:   linux-3.3.7-r109b
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    3401224 Bytes = 3.24 MB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
       Loading Kernel Image ... OK
    OK

    Starting kernel ...

    Uncompressing Linux... done, booting the kernel.

    After that my kernel doesnot boots up or doesn't shows on my console.....

    My bootargs

    OMAP3 beagleboard.org # printenv
    baudrate=115200
    beaglerev=xMA
    bootargs=console=ttyO2,115200n8 mpurate=600 vram=12M omapfb.mode=dvi:800x480MR-16@60 omapdss.def_d2
    bootcmd=if mmc init; then if run loadbootscript; then run bootscript; else if run loaduimage; theni
    bootdelay=3
    bootm=0x82000000
    bootscript=echo Running bootscript from mmc ...; source ${loadaddr}
    buddy=none
    console=ttyO2,115200n8
    defaultdisplay=dvi
    dieid#=359a00029ff80000016842c81500f010
    dvimode=800x480MR-16@60
    earlyprintk=serial,UART3,115200
    fatload=mmc 0:1 0x82000000 uImage
    loadaddr=0x80007fc0
    loadbootscript=fatload mmc 0 ${loadaddr} boot.scr
    loaduimage=fatload mmc 0 ${loadaddr} uImage
    mmcargs=console=ttyO2,115200n8 mpurate=600 vram=12M omapfb.m
    mmcboot=echo Booting from mmc ...; run mmcargs; bootm ${loadaddr}
    mmcroot=/dev/mmcblk0p2 rw
    mmcrootfstype=ext3 rootwait
    mpurate=600
    nandargs=setenv bootargs console=${console} mpurate=${mpurate} vram=${vram} omapfb.mode=dvi:${dvim}
    nandboot=echo Booting from nand ...; run nandargs; nand read ${loadaddr} 280000 400000; bootm ${lo}
    nandroot=/dev/mtdblock4 rw
    nandrootfstype=jffs2
    stderr=serial
    stdin=serial
    stdout=serial
    usbtty=cdc_acm
    vram=12M

    Environment size: 1390/131068 bytes

  • Sekra,

    Can you verify the bootargs is correct or not. Especially the console arguments. Can you try various options ttyO0, ttyS0, ttyS2 etc? I'm not sure about this kernel version support for beagleboard. From where did you take this kernel?  

  • Thankyou for your reply..

    I get that linux-3.3.7 from the http://www.ti.com/tool/linuxezsdk-sitara for Linux EZ SDK for BeagleBoard-xM.After Linux 2.6.37+ supports the console ttyO2 (capital O) not S.But i tried both the console but doesn't happens in my minicom terminal.I tried all those things. wat you guess mr.Renjith...Now i'm using Kernel 3.3.7 my uImage is proper???it compiles well as 3.21MB of size.

    My uboot works but kernel doesn't.

    Give any of the stuffs...i picked up.help me.

  • Sekra,

    Are you using the u-boot also from the same package? Some times there could be issues with the machine id being passed from u-boot to the kernel.

    Most likely what might be happening in your case will be that the kernel might be booting up and crashing some where inside.. Since the serial driver is not yet loaded, you are not able to see the logs. So, to figure this out there are various methods. So, a simpler approach will be to go to kernel menuconfig and try to disable most of the drivers like display, capture, usb, etc except serial drivers. This will reduce the kernel image size as well. You can try to bootup the reduced kernel image and see whether you are able to get any logs or not. If this works you can easily figureout the faulty driver. 

  • Hello Renjith

    I tried both the uboot,kernel-3.37 from the same package but shows the same result and hangs up.As per u told i disable some of the drivers (USB,capture) it gives 2.7MB of kernel size.

    From the driver: i enable earlyprintk option also.

    My bootargs environment is - 

    OMAP3 beagleboard.org # printenv
    baudrate=115200
    beaglerev=AxBx
    bootcmd=if mmc rescan ${mmcdev}; then if run userbutton; then setenv bootenv uE;
    bootdelay=3
    bootenv=uEnv.txt
    bootfile=uImage.beagle
    buddy=none
    camera=none
    console=ttyO2,115200n8
    defaultdisplay=dvi
    dieid#=359a00029ff80000016842c81500f010
    dvimode=640x480MR-16@60
    importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr e
    kloadaddr=0x80007fc0
    loadaddr=0x81000000
    loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}
    loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz
    loaduimage=ext2load mmc ${mmcdev}:2 ${kloadaddr} /boot/uImage
    loaduimagefat=fatload mmc ${mmcdev} ${kloadaddr} uImage
    mmcargs=setenv bootargs console=${console} ${optargs} mpurate=${mpurate} buddy=}
    mmcboot=echo Booting from mmc ...; run mmcargs; bootm ${kloadaddr}
    mmcdev=0
    mmcroot=/dev/mmcblk0p2 rw
    mmcrootfstype=ext3 rootwait
    mpurate=auto
    nandargs=setenv bootargs console=${console} ${optargs} mpurate=${mpurate} buddy}
    nandboot=echo Booting from nand ...; run nandargs; nand read ${kloadaddr} 28000}
    nandroot=ubi0:rootfs ubi.mtd=4
    nandrootfstype=ubifs
    ramargs=setenv bootargs console=${console} ${optargs} mpurate=${mpurate} buddy=}
    ramboot=echo Booting from ramdisk ...; run ramargs; bootm ${kloadaddr}
    ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=0x81000000,64M
    ramrootfstype=ext2
    rdaddr=0x81000000
    usbethaddr=de:ad:be:ef
    usbtty=cdc_acm
    userbutton=if gpio input 173; then run userbutton_xm; else run userbutton_nonxm;
    userbutton_nonxm=gpio input 7;
    userbutton_xm=gpio input 4;
    vram=12M 

    Environment size: 2342/131068 bytes

    Is there any problem in that environment.

    Boot partition - MLO,uboot.img.boot.cmd.boot.scr,uImage

    Rootfs - ext3 file system.

    Sugess me renjith

  • Hello renjith

    As per u told,I do the compilation for uboot,uimage from same package and then i changed my bootargs........i get the output screen after...

    Uncompressing done...Booting the kernel.........

    Starting kernel ...

    ((Some of the details doesnot printed here)))

    Z��;j
    [ 0.278198] bio: create slab <bio-0> at 0
    [ 0.287628] SCSI subsystem initialized
    [ 0.296539] omap_i2c omap_i2c.1: bus 1 rev1.4.0 at 2600 kHz
    [ 0.306457] twl4030: PIH (irq 7) chaining IRQs 368..375
    [ 0.307495] twl4030: power (irq 373) chaining IRQs 376..383
    [ 0.309936] twl4030: gpio (irq 368) chaining IRQs 384..401
    [ 0.311401] gpiochip_add: registered GPIOs 192 to 211 on device: twl4030
    [ 0.319488] print_constraints: VMMC1: 1850 <--> 3150 mV at 3150 mV normal standby
    [ 0.322265] print_constraints: VDAC: 1800 mV normal standby
    [ 0.324707] print_constraints: VDVI: 1800 mV normal standby
    [ 0.327575] print_constraints: VSIM: 1800 <--> 3000 mV at 1800 mV normal standby
    [ 0.328613] omap_i2c omap_i2c.3: bus 3 rev1.4.0 at 100 kHz
    [ 0.338714] Switching to clocksource 32k_counter
    [ 0.454193] NET: Registered protocol family 2
    [ 0.454986] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.457427] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
    [ 0.457733] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)
    [ 0.460021] TCP: Hash tables configured (established 4096 bind 4096)
    [ 0.460083] TCP reno registered
    [ 0.460113] UDP hash table entries: 64 (order: 0, 5120 bytes)
    [ 0.460449] UDP-Lite hash table entries: 64 (order: 0, 5120 bytes)
    [ 0.461364] NET: Registered protocol family 1
    [ 0.462646] RPC: Registered named UNIX socket transport module.
    [ 0.462677] RPC: Registered udp transport module.
    [ 0.462707] RPC: Registered tcp transport module.
    [ 0.462707] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 0.463562] NetWinder Floating Point Emulator V0.97 (double precision)
    [ 0.622100] VFS: Disk quotas dquot_6.5.2
    [ 0.622406] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [ 0.625122] msgmni has been set to 228
    [ 0.628692] io scheduler noop registered
    [ 0.628723] io scheduler deadline registered
    [ 0.628967] io scheduler cfq registered (default)
    [ 0.631744] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    [ 0.638977] omap_uart.0: ttyO0 at MMIO 0x4806a000 (irq = 72) is a OMAP UART0
    [ 0.640869] omap_uart.1: ttyO1 at MMIO 0x4806c000 (irq = 73) is a OMAP UART1
    [ 0.642272] omap_uart.2: ttyO2 at MMIO 0x49020000 (irq = 74) is a OMAP UART2
    [ 0.859832] console [ttyO2] enabled
    [ 0.865356] omap_uart.3: ttyO3 at MMIO 0x49042000 (irq = 80) is a OMAP UART3
    [ 0.912170] brd: module loaded
    [ 0.938110] loop: module loaded
    [ 0.945617] mousedev: PS/2 mouse device common for all mice
    [ 0.958282] input: twl4030_pwrbutton as /devices/platform/omap/omap_i2c.1/i2c-1/1-0049/twl4030_pwrbutton/input/input0
    [ 0.972686] twl_rtc twl_rtc: Power up reset detected.
    [ 0.978302] twl_rtc twl_rtc: Enabling TWL-RTC.
    [ 0.986358] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0
    [ 0.994293] i2c /dev entries driver
    [ 1.228485] oprofile: hardware counters not available
    [ 1.233856] oprofile: using timer interrupt.
    [ 1.239013] TCP cubic registered
    [ 1.242431] Initializing XFRM netlink socket
    [ 1.247100] NET: Registered protocol family 17
    [ 1.251861] NET: Registered protocol family 15
    [ 1.256805] Registering the dns_resolver key type
    [ 1.262329] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [ 1.270507] ThumbEE CPU extension supported.
    [ 1.318542] clock: disabling unused clocks to save power
    [ 1.328308] regulator_init_complete: VDVI: incomplete constraints, leaving on
    [ 1.336181] regulator_init_complete: VDAC: incomplete constraints, leaving on
    [ 1.346038] input: gpio-keys as /devices/platform/gpio-keys/input/input1
    [ 1.356994] twl_rtc twl_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
    [ 1.369201] Waiting for root device /dev/mmcblk0p2...
    [ 1.574768] mmc0: new high speed SDHC card at address e624
    [ 1.583496] mmcblk0: mmc0:e624 SU04G 3.69 GiB (ro)
    [ 1.619262] mmcblk0: p1 p2
    [ 1.699890] VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2)
    [ 1.707366] Please append a correct "root=" boot option; here are the available partitions:
    [ 1.716247] b300 3872256 mmcblk0 driver: mmcblk
    [ 1.722045] b301 72261 mmcblk0p1 00000000-0000-0000-0000-000000000000mmcblk0p1
    [ 1.730804] b302 3799372 mmcblk0p2 00000000-0000-0000-0000-000000000000mmcblk0p2
    [ 1.739624] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)

    and then breaks here......................My rootfs is also EXT3.i enable it in my kernel.....and also it takes 3 minutes take to boot...why?????

    Reply me....i'm waiting renjith....

    Again thanks Renjith

  • Hi Sekra,

    1. Please cross-check the partitions of sd card. 

    2. Please cross-check the bootargs for the file system.

    3. Check whether the filesystem (ext3/4) is included in the kernel configuration.

  • Thankyou Renjith 

    I check it out those things.......................

  • Hello renjith

    That kernel works up.Thanks homie....

    But it takes huge time to boot up ( upto 3 minutes ).my uboot works fine.After that

    ok

    Starting kernel

    Uncompressing done......................Booting the linux kernel

    (After the uboot fines up it takes time to load the kernel)

    [ 0.000000]  ....................................................................................

    [ 0.000000]  ....................................................................................   something like that...

    How to i reduce my bootup time 

    I'm waiting for your reply.

    Thanks in advance

  • Sekra,

    Please give the exact time split in terms of boot loader, kernel, file system etc. From the kernel logs, analyze where the time is being wasted.

  • Hai

    Whenever i insert my SD card..It starts to bootup.In my boot partition,there is MLO,uimage.img,uImage thats all.

    In my console,when i put my sd card it starts the boot immediately in microseconds.uboot loads................

    After that

    starting kernel...........shows in my serial console (minicom)

    From here,I have to wait for 3 minutes to see the kernel logs.

     

    [ 0.000000] Linux version 3.0.8 (sekra@sekrainvos-desktop) (gcc version 4.4.1 (Sourcery G++ Lite ) ) #1 SMP3
    [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
    [ 0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] Machine: OMAP3 Beagle Board
    [ 0.000000] Beagle expansionboard: none
    [ 0.000000] Reserving 12582912 bytes SDRAM for VRAM
    [ 0.000000] Memory policy: ECC disabled, Data cache writeback
    [ 0.000000] OMAP3630 ES1.2 (l2cache sgx neon isp 192mhz_clk )
    [ 0.000000] SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x10000
    [ 0.000000] Clocking rate (Crystal/Core/MPU): 26.0/400/600 MHz

    Why does it takes much time to bootup..............????????????????????

  • If you have Ethernet and it's setup for DHCP and can't reach the DHCP server that can take a while.

  • Hai sean

    Thanks for your reply.

    How do i disable that DHCP feature in my kernel??

    It takes almost of 3 minutes of time to boot from uboot to kernel.....Is it right?

    Thanks in advance.

  • Note that DHCP isn't enabled or disabled in the kernel.  On debian systems it is specified in the /etc/network/interfaces file, e.g.:

    iface eth0 inet dhcp

    iface eth1 inet static
            address 192.168.0.1
            netmask 255.255.255.0
            network 192.168.0.0
            broadcast 192.168.0.255

    the above specifies eth0 to be dynamic and eth1 to be static.  If your interface is setup to use DHCP and the board can't contact the DHCP server that can delay the bootup for a while.  RE the 3 minutes, is that the time from boot up to start of kernel messages, or boot up until system prompt?