[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@0/timer; fdt rm /cpus/cpu@1/timer; fdt rm /cpus/cpu@2/timer; fdt rm /cpus/cpu@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@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@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@72000: 0, mmc@74000: 1 Using default environment
In: serial@4c0 Out: serial@4c0 Err: serial@4c0 Net: eth0: ethernet@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,
Dagg.

Greetings,
Sent: Monday, August 21, 2017 at 9:43 PM From: daggs daggs@gmx.com To: u-boot@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@0/timer; fdt rm /cpus/cpu@1/timer; fdt rm /cpus/cpu@2/timer; fdt rm /cpus/cpu@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@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@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@72000: 0, mmc@74000: 1 Using default environment
In: serial@4c0 Out: serial@4c0 Err: serial@4c0 Net: eth0: ethernet@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.
participants (1)
-
daggs