public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Joost van Zwieten <joost@diskos.nl>
To: u-boot@lists.denx.de
Subject: kernel doesn't start on Odroid U2 unless setting initrd_high
Date: Tue, 10 Jan 2023 09:13:32 +0100	[thread overview]
Message-ID: <K6G9OR.6ZXONO2WAU6M2@diskos.nl> (raw)

Dear maintainers,

As of commit 4963f63fe61f15329d77472a762b1d8bf754d24b U-Boot fails to 
start a kernel (with `bootz`) on my Odroid U2 unless I force 
`initrd_high`, e.g. to `0x50000000`. With commit 4963f63f and 
`initrd_high` *unset* I get the following output:

    U-Boot 2020.10-rc2-00314-g4963f63fe6 (Jan 09 2023 - 23:59:31 +0100)

    CPU: Exynos4412 @ 1 GHz
    Model: Odroid based on Exynos4412
    Type: u3
    DRAM: 2 GiB
    LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling
    LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling
    LDO21@TFLASH_2.8V: set 2800000 uV; enabling
    MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0
    Loading Environment from MMC... *** Warning - bad CRC, using 
default environment

    In: serial
    Out: serial
    Err: serial
    Boot device: MMC(2)
    Net: No ethernet found.
    Hit any key to stop autoboot: 0
    Odroid # env set fk_kvers 5.10.0-20-armmp
    Odroid # load mmc ${mmcbootdev}:${mmcbootpart} ${fdt_addr_r} 
/boot/dtbs/${fk_kvers}/exynos4412-odroidu3.dtb
    53440 bytes read in 50 ms (1 MiB/s)
    Odroid # load mmc ${mmcbootdev}:${mmcbootpart} ${kernel_addr_r} 
/boot/vmlinuz-${fk_kvers}
    4973056 bytes read in 182 ms (26.1 MiB/s)
    Odroid # load mmc ${mmcbootdev}:${mmcbootpart} ${ramdisk_addr_r} 
/boot/initrd.img-${fk_kvers}
    22231585 bytes read in 777 ms (27.3 MiB/s)
    Odroid # env set bootargs console=ttySAC1,115200n8
    Odroid # bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} 
${fdt_addr_r}
    Kernel image @ 0x41000000 [ 0x000000 - 0x4be200 ]
    ## Flattened Device Tree blob at 40800000
       Booting using the fdt blob at 0x40800000
       Loading Ramdisk to b9947000, end bae7aa21 ... OK
       Loading Device Tree to b9936000, end b99460bf ... OK

    Starting kernel ...

And that's all I ever see. Normally the initrd loads a module that 
causes an LED on the Odroid to blink, and this is not happening either, 
so I'm pretty confident the kernel doesn't start or at least crashes 
before producing output. If I set `initrd_high` to `0x50000000` (or 
something in the neighborhood) the kernel starts just fine:

    U-Boot 2020.10-rc2-00314-g4963f63fe6 (Jan 09 2023 - 23:59:31 +0100)

    CPU: Exynos4412 @ 1 GHz
    Model: Odroid based on Exynos4412
    Type: u3
    DRAM: 2 GiB
    LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling
    LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling
    LDO21@TFLASH_2.8V: set 2800000 uV; enabling
    MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0
    Loading Environment from MMC... *** Warning - bad CRC, using 
default environment

    In: serial
    Out: serial
    Err: serial
    Boot device: MMC(2)
    Net: No ethernet found.
    Hit any key to stop autoboot: 0
    Odroid # env set fk_kvers 5.10.0-20-armmp
    Odroid # load mmc ${mmcbootdev}:${mmcbootpart} ${fdt_addr_r} 
/boot/dtbs/${fk_kvers}/exynos4412-odroidu3.dtb
    53440 bytes read in 49 ms (1 MiB/s)
    Odroid # load mmc ${mmcbootdev}:${mmcbootpart} ${kernel_addr_r} 
/boot/vmlinuz-${fk_kvers}
    4973056 bytes read in 181 ms (26.2 MiB/s)
    Odroid # load mmc ${mmcbootdev}:${mmcbootpart} ${ramdisk_addr_r} 
/boot/initrd.img-${fk_kvers}
    22231585 bytes read in 777 ms (27.3 MiB/s)
    Odroid # env set bootargs console=ttySAC1,115200n8
    Odroid # env set initrd_high 0x50000000
    Odroid # bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} 
${fdt_addr_r}
    Kernel image @ 0x41000000 [ 0x000000 - 0x4be200 ]
    ## Flattened Device Tree blob at 40800000
       Booting using the fdt blob at 0x40800000
       Loading Ramdisk to 4eacc000, end 4ffffa21 ... OK
       Loading Device Tree to bae6a000, end bae7a0bf ... OK

    Starting kernel ...

    [ 0.000000] Booting Linux on physical CPU 0xa00
    <truncated>

The difference between those two runs is the location where U-Boot 
loads the initrd. The parent commit of 4963f63f boots fine without 
setting `initrd_high`:

    U-Boot 2020.10-rc2-00313-gdfaf6a5797 (Jan 10 2023 - 00:13:19 +0100)

    CPU: Exynos4412 @ 1 GHz
    Model: Odroid based on Exynos4412
    Type: u3
    DRAM: 2 GiB
    LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling
    LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling
    LDO21@TFLASH_2.8V: set 2800000 uV; enabling
    MMC: SAMSUNG SDHCI: 2, EXYNOS DWMMC: 0
    Loading Environment from MMC... *** Warning - bad CRC, using 
default environment

    In: serial
    Out: serial
    Err: serial
    Boot device: MMC(2)
    Net: No ethernet found.
    Hit any key to stop autoboot: 0
    Odroid # env set fk_kvers 5.10.0-20-armmp
    Odroid # load mmc ${mmcbootdev}:${mmcbootpart} ${fdt_addr_r} 
/boot/dtbs/${fk_kvers}/exynos4412-odroidu3.dtb
    53440 bytes read in 49 ms (1 MiB/s)
    Odroid # load mmc ${mmcbootdev}:${mmcbootpart} ${kernel_addr_r} 
/boot/vmlinuz-${fk_kvers}
    4973056 bytes read in 181 ms (26.2 MiB/s)
    Odroid # load mmc ${mmcbootdev}:${mmcbootpart} ${ramdisk_addr_r} 
/boot/initrd.img-${fk_kvers}
    22231585 bytes read in 776 ms (27.3 MiB/s)
    Odroid # env set bootargs console=ttySAC1,115200n8
    Odroid # bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} 
${fdt_addr_r}
    Kernel image @ 0x41000000 [ 0x000000 - 0x4be200 ]
    ## Flattened Device Tree blob at 40800000
       Booting using the fdt blob at 0x40800000
       Loading Ramdisk to 4eacc000, end 4ffffa21 ... OK
       Loading Device Tree to 4eabb000, end 4eacb0bf ... OK

    Starting kernel ...

    [ 0.000000] Booting Linux on physical CPU 0xa00
    <truncated>

I've tested two different kernels from Debian (buster and bullseye) and 
both have the same problem. I'm building U-Boot using the default 
config for board `odroid` and boot the Odroid from an SD card with 
firmware (`bl1`, `bl2` and `tzsw`) from Hardkernel's clone of the 
u-boot repository [1]. There are no peripherals connected apart from 
the SD card and the serial console. Please let me know if you need more 
information.

Best, Joost

[1]: 
https://github.com/hardkernel/u-boot/tree/33e05ffb159141b640571e91470172d83a2a1273/sd_fuse




             reply	other threads:[~2023-01-10 14:26 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-10  8:13 Joost van Zwieten [this message]
2023-01-10 18:41 ` kernel doesn't start on Odroid U2 unless setting initrd_high Tom Rini
2023-01-10 23:01   ` Joost van Zwieten
2023-01-10 23:08     ` Tom Rini
2023-01-10 23:10       ` Joost van Zwieten
2023-01-10 23:29         ` Tom Rini
2023-01-11 20:28           ` Joost van Zwieten
2023-01-11 20:38             ` Tom Rini
2023-01-11 21:08               ` Joost van Zwieten
2023-01-12  0:10                 ` Tom Rini
2023-01-12 22:32                   ` Joost van Zwieten
2023-01-13 15:01                     ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=K6G9OR.6ZXONO2WAU6M2@diskos.nl \
    --to=joost@diskos.nl \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox