[U-Boot] odroidc2 stuck after "Starting kernel"

daggs daggs at gmx.com
Fri Aug 25 06:56:28 UTC 2017


Greetings,

> Sent: Monday, August 21, 2017 at 9:43 PM
> From: daggs <daggs at gmx.com>
> To: u-boot at lists.denx.de
> Subject: [U-Boot] odroidc2 stuck after "Starting kernel"
>
> Greetings,
> 
> I'm trying to get uboot 2017.7 working on my odroidc2 board.
> I have a image without uboot, I've compiled uboot with the correct defconfig.
> the image has two partitions, boot (fat32) and root (ext4), I've followed the howto in the readme file, generated and burnt the needed files into the image.
> I'm using teh vendor's kenrel (based on 3.14.79), my boot.cmd looks like this:
> setenv m "1080p60hz" # Progressive 60Hz
> setenv m_bpp "32"
> setenv hpd "true"
> setenv monitor_onoff "false" # true or false
> setenv nographics "0"
> setenv mesontimer "1"
> setenv disableuhs "false"
> setenv mmc_removable "true"
> setenv usbmulticam "false"
> setenv condev "console=ttyS0,115200n8"   # on both
> setenv maxcpus "4"
> setenv max_freq "1536"  # 1.536GHz
> 
> 
> if test "${m}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
> 
> setenv bootargs "root=/dev/mmcblk0p2 rootwait ro ${condev} no_console_suspend hdmimode=${m} ${cmode} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0 elevator=noop disablehpd=${hpd} max_freq=${max_freq} maxcpus=${maxcpus} monitor_onoff=${monitor_onoff} disableuhs=${disableuhs} mmc_removable=${mmc_removable} usbmulticam=${usbmulticam}"
> 
> setenv loadaddr "0x20000000"
> setenv dtb_loadaddr "0x01000000"
> setenv initrd_high "0xffffffff"
> setenv fdt_high "0xffffffff"
> setenv kernel_filename Image
> setenv fdt_filename meson64_odroidc2.dtb
> 
> fatload mmc 0:1 ${loadaddr} ${kernel_filename}
> fatload mmc 0:1 ${dtb_loadaddr} ${fdt_filename}
> fdt addr ${dtb_loadaddr}
> 
> if test "${mesontimer}" = "0"; then fdt rm /meson_timer; fdt rm /cpus/cpu at 0/timer; fdt rm /cpus/cpu at 1/timer; fdt rm /cpus/cpu at 2/timer; fdt rm /cpus/cpu at 3/timer; fi
> if test "${mesontimer}" = "1"; then fdt rm /timer; fi
> 
> if test "${nographics}" = "1"; then fdt rm /reserved-memory; fdt rm /aocec; fi
> if test "${nographics}" = "1"; then fdt rm /meson-fb; fdt rm /amhdmitx; fdt rm /picdec; fdt rm /ppmgr; fi
> if test "${nographics}" = "1"; then fdt rm /meson-vout; fdt rm /mesonstream; fdt rm /meson-fb; fi
> if test "${nographics}" = "1"; then fdt rm /deinterlace; fdt rm /codec_mm; fi
> 
> booti ${loadaddr} - ${dtb_loadaddr}
> 
> and this is what get:
> GXBB:BL1:08dafd:0a8993;FEAT:EDFC318C;POC:3;RCY:0;EMMC:800;NAND:81;SD:0;READ:0;CHK:0;
> TE: 436267
> no sdio debug board detected
> 
> BL2 Built : 11:44:26, Nov 25 2015.
> gxb gfb13a3b-c2 - jcao at wonton
> 
> Board ID = 8
> set vcck to 1100 mv
> set vddee to 1050 mv
> CPU clk: 1536MHz
> DDR channel setting: DDR0 Rank0+1 same
> DDR0: 2048MB(auto) @ 912MHz(2T)-13
> DataBus test pass!
> AddrBus test pass!
> Load fip header from SD, src: 0x0000c200, des: 0x01400000, size: 0x000000b0
> Load bl30 from SD, src: 0x00010200, des: 0x01000000, size: 0x00009ef0
> Sending bl30........................................OK.
> Run bl30...
> Load bl301 from SD, src: 0x0001c200, des: 0x01000000, size: 0x000018c0
> Wait bl30...Done
> Sending bl301.......OK.
> Run bl301...
> 31 from SD, src: 0x00020200, des: 0x10100000, size: 0x00011130
> 
> 
> --- UART initialized after reboot ---
> [Reset cause: unknown]
> [Image: unknown, amlogic_v1.1.3046-00db630-dirty 2016-08-31 09:24:14 tao.zeng at droid04]
> bl30: check_permit, count is 1
> bl30: check_permit: ok!
> chipid: ef be ad de d f0 ad ba ef be Load bl33 from SD, src: 0x00034200, des: 0x01000000, size: 0x00055f00
> ad de not ES chip
> [0.550974 Inits done]
> secure task start!
> high task start!
> low task start!
> NOTICE:  BL3-1: v1.0(debug):4d2e34d
> NOTICE:  BL3-1: Built : 17:08:35, Oct 29 2015
> INFO:    BL3-1: Initializing runtime services
> INFO:    BL3-1: Preparing for EL3 exit to normal world
> INFO:    BL3-1: Next image address = 0x1000000
> INFO:    BL3-1: Next image spsr = 0x3c9
> 
> 
> U-Boot 2017.07 (Aug 04 2017 - 21:53:09 +0300) odroid-c2
> 
> DRAM:  2 GiB
> MMC:   mmc at 72000: 0, mmc at 74000: 1
> Using default environment
> 
> In:    serial at 4c0
> Out:   serial at 4c0
> Err:   serial at 4c0
> Net:   eth0: ethernet at c9410000
> Hit any key to stop autoboot:  0
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> Found U-Boot script /boot.scr
> reading /boot.scr
> 6244 bytes read in 2 ms (3 MiB/s)
> ## Executing script at 1f000000
> reading Image
> 13472384 bytes read in 578 ms (22.2 MiB/s)
> reading meson64_odroidc2.dtb
> 29264 bytes read in 3 ms (9.3 MiB/s)
> ## Flattened Device Tree blob at 01000000
>    Booting using the fdt blob at 0x1000000
>    Loading Device Tree to 000000007df4e000, end 000000007df5824f ... OK
> 
> Starting kernel ...
> 
> the system stays stuck there.
> 
> any ideas how I can fix it? or even start debug it?
> 
> Thanks,
> 

I was able to track the stuckness to armv8_switch_to_el2_m.
how can I debug that macro?
what can cause the code there to get stuck?

Thanks,

Dagg.


More information about the U-Boot mailing list