All of lore.kernel.org
 help / color / mirror / Atom feed
* [QUESTION] Kernel 5.10 image might be too big to be loaded by U-Boot on RPi 4B
@ 2021-01-28  8:54 ` Jian-Hong Pan
  2021-02-01  9:58   ` Jaehoon Chung
  2021-02-02  8:28   ` Matthias Brugger
  0 siblings, 2 replies; 4+ messages in thread
From: Jian-Hong Pan @ 2021-01-28  8:54 UTC (permalink / raw)
  To: u-boot

Hi,

We have tried to boot the Ubuntu kernel 5.10 [1] (arm64) with U-Boot
2020.10 on RPi 4B.  That includes the source code and build config.
The kernel's build config enables not only Broadcom chips, but also many
other platforms: Amlogic, MediaTek, Realtek, Rockchip ... by default.

Here is the output from U-Boot:

U-Boot 2020.10 (Jan 26 2021 - 15:28:45 +0800)

DRAM:  3.9 GiB
RPI 4 Model B (0xc03111)
MMC:   mmcnr at 7e300000: 1, emmc2 at 7e340000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default
environment

In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   eth0: genet at 7d580000
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:2...
Found U-Boot script /boot/boot.scr
1847 bytes read in 19 ms (94.7 KiB/s)
## Executing script at 02400000
Load u-Boot environment ... from mmc 0:2
622 bytes read in 24 ms (24.4 KiB/s)
Load device tree ...
25693 bytes read in 30 ms (835.9 KiB/s)
fdt_addr_r @  0x02600000 , size= 645d
Load kernel and unzip it ...
13013555 bytes read in 574 ms (21.6 MiB/s)
Uncompressed size: 38742528 = 0x24F2A00
kernel_addr_r @  0x00080000 , size= 24f2a00
Load RAM disk ...
54360540 bytes read in 2298 ms (22.6 MiB/s)
ramdisk_addr_r @  0x02700000 , size= 33d79dc
Boot ...
Moving Image from 0x80000 to 0x200000, end=2820000
ERROR: RD image overlaps OS image (OS=0x200000..0x2820000)
SCRIPT FAILED: continuing...
Card did not respond to voltage select!
genet at 7d580000 Waiting for PHY auto negotiation to complete........

It shows error: "RD image overlaps OS image (OS=0x200000..0x2820000)"

So, I calculated the memory address and space:

0x200000 (kernel start address) + 0x24F2A00 (kernel size) = 0x26F2A00 <
2820000 (kernel end), but > 0x2700000 (ramdisk start address) & > 0x2600000
(FDT start address)

The kernel image size 0x24F2A00 bytes is too fat to sit in the memory space
prepared by U-Boot and overlaps ramdisk and FDT's memory spaces.
It is more than 36.9MB, which is over 36MB mentioned in U-Boot's comment
[2].

We understand this can be fixed by a workaround like tuning/reducing the
kernel's build config.  However, is it possible to have another way to
resolve this problem?

[1]
https://kernel.ubuntu.com/git/ubuntu/unstable.git/tree/?h=Ubuntu-5.10-5.10.0-10.11
[2]
https://github.com/u-boot/u-boot/blob/v2021.01/include/configs/rpi.h#L140

Jain-Hong Pan

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [QUESTION] Kernel 5.10 image might be too big to be loaded by U-Boot on RPi 4B
  2021-01-28  8:54 ` [QUESTION] Kernel 5.10 image might be too big to be loaded by U-Boot on RPi 4B Jian-Hong Pan
@ 2021-02-01  9:58   ` Jaehoon Chung
  2021-02-02  8:28   ` Matthias Brugger
  1 sibling, 0 replies; 4+ messages in thread
From: Jaehoon Chung @ 2021-02-01  9:58 UTC (permalink / raw)
  To: u-boot

Hi Jain-Hong

On 1/28/21 5:54 PM, Jian-Hong Pan wrote:
> Hi,
> 
> We have tried to boot the Ubuntu kernel 5.10 [1] (arm64) with U-Boot
> 2020.10 on RPi 4B.  That includes the source code and build config.
> The kernel's build config enables not only Broadcom chips, but also many
> other platforms: Amlogic, MediaTek, Realtek, Rockchip ... by default.
> 
> Here is the output from U-Boot:
> 
> U-Boot 2020.10 (Jan 26 2021 - 15:28:45 +0800)
> 
> DRAM:  3.9 GiB
> RPI 4 Model B (0xc03111)
> MMC:   mmcnr at 7e300000: 1, emmc2 at 7e340000: 0
> Loading Environment from FAT... *** Warning - bad CRC, using default
> environment
> 
> In:    serial
> Out:   vidconsole
> Err:   vidconsole
> Net:   eth0: genet at 7d580000
> Hit any key to stop autoboot:  0
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:2...
> Found U-Boot script /boot/boot.scr
> 1847 bytes read in 19 ms (94.7 KiB/s)
> ## Executing script at 02400000
> Load u-Boot environment ... from mmc 0:2
> 622 bytes read in 24 ms (24.4 KiB/s)
> Load device tree ...
> 25693 bytes read in 30 ms (835.9 KiB/s)
> fdt_addr_r @  0x02600000 , size= 645d
> Load kernel and unzip it ...
> 13013555 bytes read in 574 ms (21.6 MiB/s)
> Uncompressed size: 38742528 = 0x24F2A00
> kernel_addr_r @  0x00080000 , size= 24f2a00
> Load RAM disk ...
> 54360540 bytes read in 2298 ms (22.6 MiB/s)
> ramdisk_addr_r @  0x02700000 , size= 33d79dc
> Boot ...
> Moving Image from 0x80000 to 0x200000, end=2820000
> ERROR: RD image overlaps OS image (OS=0x200000..0x2820000)
> SCRIPT FAILED: continuing...
> Card did not respond to voltage select!
> genet at 7d580000 Waiting for PHY auto negotiation to complete........
> 
> It shows error: "RD image overlaps OS image (OS=0x200000..0x2820000)"
> 
> So, I calculated the memory address and space:
> 
> 0x200000 (kernel start address) + 0x24F2A00 (kernel size) = 0x26F2A00 <
> 2820000 (kernel end), but > 0x2700000 (ramdisk start address) & > 0x2600000
> (FDT start address)
> 
> The kernel image size 0x24F2A00 bytes is too fat to sit in the memory space
> prepared by U-Boot and overlaps ramdisk and FDT's memory spaces.
> It is more than 36.9MB, which is over 36MB mentioned in U-Boot's comment
> [2].
> 
> We understand this can be fixed by a workaround like tuning/reducing the
> kernel's build config.  However, is it possible to have another way to
> resolve this problem?

In my case, changed the kernel loading address in my boot script.

https://git.tizen.org/cgit/platform/kernel/u-boot/tree/tizen/bootscript/tizen-boot-rpi4.scr?h=tizen#n55

Best Regards,
Jaehoon Chung

> 
> [1]
> https://kernel.ubuntu.com/git/ubuntu/unstable.git/tree/?h=Ubuntu-5.10-5.10.0-10.11
> [2]
> https://protect2.fireeye.com/v1/url?k=48d47af8-174f43e2-48d5f1b7-000babff24ad-9a667a07fd484367&q=1&e=2f353007-95b3-4ee5-9b9f-acbac9af78f8&u=https%3A%2F%2Fgithub.com%2Fu-boot%2Fu-boot%2Fblob%2Fv2021.01%2Finclude%2Fconfigs%2Frpi.h%23L140
> 
> Jain-Hong Pan
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [QUESTION] Kernel 5.10 image might be too big to be loaded by U-Boot on RPi 4B
  2021-01-28  8:54 ` [QUESTION] Kernel 5.10 image might be too big to be loaded by U-Boot on RPi 4B Jian-Hong Pan
  2021-02-01  9:58   ` Jaehoon Chung
@ 2021-02-02  8:28   ` Matthias Brugger
  2021-02-02 13:55     ` Tom Rini
  1 sibling, 1 reply; 4+ messages in thread
From: Matthias Brugger @ 2021-02-02  8:28 UTC (permalink / raw)
  To: u-boot

On Thu, Jan 28, 2021 at 04:54:03PM +0800, Jian-Hong Pan wrote:
> Load u-Boot environment ... from mmc 0:2
> 622 bytes read in 24 ms (24.4 KiB/s)
> Load device tree ...
> 25693 bytes read in 30 ms (835.9 KiB/s)
> fdt_addr_r @  0x02600000 , size= 645d
> Load kernel and unzip it ...
> 13013555 bytes read in 574 ms (21.6 MiB/s)
> Uncompressed size: 38742528 = 0x24F2A00
> kernel_addr_r @  0x00080000 , size= 24f2a00
> Load RAM disk ...
> 54360540 bytes read in 2298 ms (22.6 MiB/s)
> ramdisk_addr_r @  0x02700000 , size= 33d79dc
> Boot ...
> Moving Image from 0x80000 to 0x200000, end=2820000
> ERROR: RD image overlaps OS image (OS=0x200000..0x2820000)
> SCRIPT FAILED: continuing...
> Card did not respond to voltage select!
> genet at 7d580000 Waiting for PHY auto negotiation to complete........
> 
> It shows error: "RD image overlaps OS image (OS=0x200000..0x2820000)"
> 
> So, I calculated the memory address and space:
> 
> 0x200000 (kernel start address) + 0x24F2A00 (kernel size) = 0x26F2A00 <
> 2820000 (kernel end), but > 0x2700000 (ramdisk start address) & > 0x2600000
> (FDT start address)
> 
> The kernel image size 0x24F2A00 bytes is too fat to sit in the memory space
> prepared by U-Boot and overlaps ramdisk and FDT's memory spaces.
> It is more than 36.9MB, which is over 36MB mentioned in U-Boot's comment
> [2].
> 

If I did the math right, we should have a lot of space left. 
You could try to bump up fdt_addr_r=0x02900000 and
ramdisk_addr_r=0x02A00000 and see what happens.

Regards,
Matthias


> We understand this can be fixed by a workaround like tuning/reducing the
> kernel's build config.  However, is it possible to have another way to
> resolve this problem?
> 
> [1]
> https://kernel.ubuntu.com/git/ubuntu/unstable.git/tree/?h=Ubuntu-5.10-5.10.0-10.11
> [2]
> https://github.com/u-boot/u-boot/blob/v2021.01/include/configs/rpi.h#L140
> 
> Jain-Hong Pan

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [QUESTION] Kernel 5.10 image might be too big to be loaded by U-Boot on RPi 4B
  2021-02-02  8:28   ` Matthias Brugger
@ 2021-02-02 13:55     ` Tom Rini
  0 siblings, 0 replies; 4+ messages in thread
From: Tom Rini @ 2021-02-02 13:55 UTC (permalink / raw)
  To: u-boot

On Tue, Feb 02, 2021 at 09:28:20AM +0100, Matthias Brugger wrote:
> On Thu, Jan 28, 2021 at 04:54:03PM +0800, Jian-Hong Pan wrote:
> > Load u-Boot environment ... from mmc 0:2
> > 622 bytes read in 24 ms (24.4 KiB/s)
> > Load device tree ...
> > 25693 bytes read in 30 ms (835.9 KiB/s)
> > fdt_addr_r @  0x02600000 , size= 645d
> > Load kernel and unzip it ...
> > 13013555 bytes read in 574 ms (21.6 MiB/s)
> > Uncompressed size: 38742528 = 0x24F2A00
> > kernel_addr_r @  0x00080000 , size= 24f2a00
> > Load RAM disk ...
> > 54360540 bytes read in 2298 ms (22.6 MiB/s)
> > ramdisk_addr_r @  0x02700000 , size= 33d79dc
> > Boot ...
> > Moving Image from 0x80000 to 0x200000, end=2820000
> > ERROR: RD image overlaps OS image (OS=0x200000..0x2820000)
> > SCRIPT FAILED: continuing...
> > Card did not respond to voltage select!
> > genet at 7d580000 Waiting for PHY auto negotiation to complete........
> > 
> > It shows error: "RD image overlaps OS image (OS=0x200000..0x2820000)"
> > 
> > So, I calculated the memory address and space:
> > 
> > 0x200000 (kernel start address) + 0x24F2A00 (kernel size) = 0x26F2A00 <
> > 2820000 (kernel end), but > 0x2700000 (ramdisk start address) & > 0x2600000
> > (FDT start address)
> > 
> > The kernel image size 0x24F2A00 bytes is too fat to sit in the memory space
> > prepared by U-Boot and overlaps ramdisk and FDT's memory spaces.
> > It is more than 36.9MB, which is over 36MB mentioned in U-Boot's comment
> > [2].
> 
> If I did the math right, we should have a lot of space left. 
> You could try to bump up fdt_addr_r=0x02900000 and
> ramdisk_addr_r=0x02A00000 and see what happens.

The environment section in include/configs/rpi.h needs to be updated.
You cannot disable device tree relocation by default as that leads to
problems.  You need to set bootm_size to something that will cover all
of the valid lowmem area the device tree and initrd can reside in.
Please see include/configs/ti_armv7_common.h which is based on what the
kernel documents as minimum / maximum values / locations.  Thanks.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20210202/07b79087/attachment.sig>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-02-02 13:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20210128130722epcas1p1eb5224bc245f27530394b7a4cd7c9876@epcas1p1.samsung.com>
2021-01-28  8:54 ` [QUESTION] Kernel 5.10 image might be too big to be loaded by U-Boot on RPi 4B Jian-Hong Pan
2021-02-01  9:58   ` Jaehoon Chung
2021-02-02  8:28   ` Matthias Brugger
2021-02-02 13:55     ` Tom Rini

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.