[PATCH v5 00/29] pxe: Precursor series for supporting read_all() in extlinux / PXE
Tom Rini
trini at konsulko.com
Thu Apr 3 23:56:18 CEST 2025
On Thu, Apr 03, 2025 at 10:57:24PM +0200, Jonas Karlman wrote:
> Hi Tom and Simon,
>
> On 2025-03-19 00:21, Tom Rini wrote:
> > On Wed, 05 Mar 2025 17:24:54 -0700, Simon Glass wrote:
> >
> >> This series includes some patches related to allowing read_all() to be
> >> used with the extlinux / PXE bootmeths.
> >>
> >> These patches were split out from the stb4 series, since it will need to
> >> have additional patches for LWIP, to avoid breaking PXE booting when
> >> LWIP is used.
> >>
> >> [...]
> >
> > Applied to u-boot/next, thanks!
>
> This series broke booting a compressed arm64 defconfig Linux kernel
> (without module loading) due to changes in decompression buffer length.
>
> My arm64 defconfig kernel (Image.gz) is ~24 MiB compressed and ~85 MiB
> uncompressed.
>
> Before this series the decompression buffer was 10x the kernel_comp_size
> and now it is instead limited by the SYS_BOOTM_LEN Kconfig symbol.
>
> A broken boot using current next branch:
>
> Retrieving file: /Image.gz
> Retrieving file: /initramfs.cpio.gz
> append: earlycon
> cmd 'booti' states 1f1f addr_img '0x02080000' conf_ramdisk '0x06000000:394d3c' conf_fdt '3df16350' images 000000003ffe53a0
> kernel data at 0x02080000, len = 0x00000000 (0)
> load 2080000 start 2080000 len 0 ep 0 os 5 comp 1
> find_other type 2 os 5
> ## Flattened Device Tree blob at 3df16350
> Booting using the fdt blob at 0x3df16350
> Working FDT set to 3df16350
> load_os load 8000000 image_start 2080000 image_len 2000000
> Uncompressing Kernel Image to 8000000
> Error: inflate() returned -5
> Image too large: increase CONFIG_SYS_BOOTM_LEN
> Must RESET board to recover
> Resetting the board...
>
> Changing SYS_BOOTM_LEN from default 64 MiB to 128 MiB fixed the boot:
>
> Retrieving file: /Image.gz
> Retrieving file: /initramfs.cpio.gz
> append: earlycon
> cmd 'booti' states 1f1f addr_img '0x02080000' conf_ramdisk '0x06000000:394d3c' conf_fdt '3df16430' images 000000003ffe5480
> kernel data at 0x02080000, len = 0x00000000 (0)
> load 2080000 start 2080000 len 0 ep 0 os 5 comp 1
> find_other type 2 os 5
> ## Flattened Device Tree blob at 3df16430
> Booting using the fdt blob at 0x3df16430
> Working FDT set to 3df16430
> load_os load 8000000 image_start 2080000 image_len 2000000
> Uncompressing Kernel Image to 8000000
> kernel loaded at 0x08000000, end = 0x0d3b5a00
> Loading Ramdisk to 3cb51000, end 3cee5d3c ... OK
> Loading Device Tree to 000000003cb3f000, end 000000003cb509df ... OK
> Working FDT set to 3cb3f000
>
> Starting kernel ...
>
> Do we need to increase the default SYS_BOOTM_LEN for ARM64 now?
Ugh. I thought the decompression buffer, which we would be just lmb'ing,
was some multiple of the compressed image. Can you please bisect down to
which commit in the series broke this?
--
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/20250403/e1920d18/attachment.sig>
More information about the U-Boot
mailing list