lkml.org 
[lkml]   [2016]   [Aug]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/6] x86/boot: Move compressed kernel to end of decompression buffer
On Tue, Aug 16, 2016 at 12:19:42PM -0700, Yinghai Lu wrote:
> On Mon, Aug 15, 2016 at 9:01 PM, Matt Mullins <mmullins@mmlx.us> wrote:
> >
> > This appears to have a negative effect on booting the Intel Edison platform, as
> > it uses u-boot as its bootloader. u-boot does not copy the init_size parameter
> > when booting a bzImage: it copies a fixed-size setup_header [1], and its
> > definition of setup_header doesn't include the parameters beyond setup_data [2].
> >
> > With a zero value for init_size, this calculates a %rsp value of 0x101ff9600.
> > This causes the boot process to hard-stop at the immediately-following pushq, as
> > this platform has no usable physical addresses above 4G.
> >
> > What are the options for getting this type of platform to function again? For
> > now, kexec from a working Linux system does seem to be a work-around, but there
> > appears to be other x86 hardware using u-boot: the chromium.org folks seem to be
> > maintaining the u-boot x86 tree.
> >
> > [1] http://git.denx.de/?p=u-boot.git;a=blob;f=arch/x86/lib/zimage.c;h=1b33c771391f49ffe82864ff1582bdfd07e5e97d;hb=HEAD#l156
> > [2] http://git.denx.de/?p=u-boot.git;a=blob;f=arch/x86/include/asm/bootparam.h;h=140095117e5a2daef0a097c55f0ed10e08acc781;hb=HEAD#l24
>
> Then should fix the u-boot about header_size assumption.

I was hoping to avoid that, since the Edison's u-boot is 10,000-line patch atop
the upstream -- I don't trust myself to build and flash one quite yet.

If this turned out to affect Chromebooks, I'd spend more effort pushing for
a kernel fix, but it seems that ChromeOS has a different kernel load procedure
and doesn't use "zboot". For now, I'll probably just keep a local patch that
hard-codes a value large enough to decompress and launch the kernel.

I may turn that local patch into something gated by a Kconfig eventually, in
hopes that users of the other x86 u-boot platforms will see it in a "make
oldconfig" run.

\
 
 \ /
  Last update: 2016-09-17 09:57    [W:0.093 / U:8.356 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site