From: Joost van Zwieten <joost@diskos.nl>
To: Tom Rini <trini@konsulko.com>
Cc: u-boot@lists.denx.de
Subject: Re: kernel doesn't start on Odroid U2 unless setting initrd_high
Date: Wed, 11 Jan 2023 00:01:46 +0100 [thread overview]
Message-ID: <YALAOR.537R5TSSH3P13@diskos.nl> (raw)
In-Reply-To: <20230110184101.GO3787616@bill-the-cat>
On Tue, Jan 10, 2023 at 13:41, Tom Rini <trini@konsulko.com> wrote:
> On Tue, Jan 10, 2023 at 09:13:32AM +0100, Joost van Zwieten wrote:
>
>> 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.
>
> Interesting. So what does "bdi" show, both in the older good and
> then current tree? Specifically the information about where DRAM is,
> and
> how large it is? Thanks.
>
> --
> Tom
Both 4963f63f (not working) and its parent (working) produce the same
output:
boot_params = 0x40000100
DRAM bank = 0x00000000
-> start = 0x40000000
-> size = 0x10000000
DRAM bank = 0x00000001
-> start = 0x50000000
-> size = 0x10000000
DRAM bank = 0x00000002
-> start = 0x60000000
-> size = 0x10000000
DRAM bank = 0x00000003
-> start = 0x70000000
-> size = 0x10000000
DRAM bank = 0x00000004
-> start = 0x80000000
-> size = 0x10000000
DRAM bank = 0x00000005
-> start = 0x90000000
-> size = 0x10000000
DRAM bank = 0x00000006
-> start = 0xa0000000
-> size = 0x10000000
DRAM bank = 0x00000007
-> start = 0xb0000000
-> size = 0x0ff00000
memstart = 0x40000000
memsize = 0x7ff00000
flashstart = 0x00000000
flashsize = 0x00000000
flashoffset = 0x00000000
baudrate = 115200 bps
relocaddr = 0xbfe83000
reloc off = 0x7c083000
Build = 32-bit
current eth = unknown
ethaddr = (not set)
IP addr = <NULL>
fdt_blob = 0xbae7bf00
new_fdt = 0xbae7bf00
fdt_size = 0x00002fa0
lmb_dump_all:
memory.cnt = 0x1
memory.size = 0x0
memory.reg[0x0].base = 0x40000000
.size = 0x7ff00000
reserved.cnt = 0x1
reserved.size = 0x0
reserved.reg[0x0].base = 0xbae7acd0
.size = 0x5085330
arch_number = 0x000010c1
TLB addr = 0xbfef0000
irq_sp = 0xbae7bef0
sp start = 0xbae7bee0
Board Type = 0
Early malloc usage: f0 / 400
I'm not sure if this is relevant, but with the failing commit I can get
the kernel to start with `initrd_high` set to `0x70000000` or lower,
but not higher.
Best, Joost
next prev parent reply other threads:[~2023-01-10 23:08 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-10 8:13 kernel doesn't start on Odroid U2 unless setting initrd_high Joost van Zwieten
2023-01-10 18:41 ` Tom Rini
2023-01-10 23:01 ` Joost van Zwieten [this message]
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=YALAOR.537R5TSSH3P13@diskos.nl \
--to=joost@diskos.nl \
--cc=trini@konsulko.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.