[U-Boot] x86: Booting Linux v4.7+ broken

Hi!
I just tried to boot a recent Linux kernel on a BayTrail based x86 board and noticed that booting Linux kernel version v4.7+ does not work. git bisecting leads to this kernel commit changing the compressed image format:
974f221c: x86/boot: Move compressed kernel to the end of the decompression buffer
Before digging deeper into this, I would like to check if someone else has been hit by this problem and perhaps already has a solution / fix for U-Boots zimage command. Or a quick idea how to solve this.
BTW: Coreboot also seems to have some problems here:
https://www.coreboot.org/pipermail/coreboot/2016-September/082031.html https://www.coreboot.org/pipermail/coreboot/2016-August/081891.html https://www.coreboot.org/pipermail/coreboot/2016-September/082034.html
Thanks, Stefan

On Tue, Sep 27, 2016 at 2:28 AM, Stefan Roese sr@denx.de wrote:
Hi!
I just tried to boot a recent Linux kernel on a BayTrail based x86 board and noticed that booting Linux kernel version v4.7+ does not work. git bisecting leads to this kernel commit changing the compressed image format:
974f221c: x86/boot: Move compressed kernel to the end of the decompression buffer
Before digging deeper into this, I would like to check if someone else has been hit by this problem and perhaps already has a solution / fix for U-Boots zimage command. Or a quick idea how to solve this.
could be u-boot does not copy whole setup header that include _init_size.
in kexec the code like:
/* only copy setup_header */ setup_header_size = kernel[0x201] + 0x202 - 0x1f1; if (setup_header_size > 0x7f) setup_header_size = 0x7f; memcpy((unsigned char *)real_mode + 0x1f1, kernel + 0x1f1, setup_header_size);

On 01.10.2016 05:52, Yinghai Lu wrote:
On Tue, Sep 27, 2016 at 2:28 AM, Stefan Roese sr@denx.de wrote:
Hi!
I just tried to boot a recent Linux kernel on a BayTrail based x86 board and noticed that booting Linux kernel version v4.7+ does not work. git bisecting leads to this kernel commit changing the compressed image format:
974f221c: x86/boot: Move compressed kernel to the end of the decompression buffer
Before digging deeper into this, I would like to check if someone else has been hit by this problem and perhaps already has a solution / fix for U-Boots zimage command. Or a quick idea how to solve this.
could be u-boot does not copy whole setup header that include _init_size.
in kexec the code like:
/* only copy setup_header */ setup_header_size = kernel[0x201] + 0x202 - 0x1f1; if (setup_header_size > 0x7f) setup_header_size = 0x7f; memcpy((unsigned char *)real_mode + 0x1f1, kernel + 0x1f1, setup_header_size);
Thanks for the notice. I've already sent this patch to the U-Boot list to fix this issue:
https://patchwork.ozlabs.org/patch/676896/
Thanks, Stefan
participants (2)
-
Stefan Roese
-
Yinghai Lu