Re: [PATCH] powerpc: Enable kernel XZ compression option on PPC_85xx
From: Christian Lamparter
Date: Fri Jun 14 2019 - 16:01:43 EST
On Friday, June 14, 2019 12:06:48 PM CEST Christophe Leroy wrote:
>
> Le 13/06/2019 à 13:42, Michael Ellerman a écrit :
> > Daniel Axtens <dja@xxxxxxxxxx> writes:
> >> Pawel Dembicki <paweldembicki@xxxxxxxxx> writes:
> >>
> >>> Enable kernel XZ compression option on PPC_85xx. Tested with
> >>> simpleImage on TP-Link TL-WDR4900 (Freescale P1014 processor).
> >>>
> >>> Suggested-by: Christian Lamparter <chunkeey@xxxxxxxxx>
> >>> Signed-off-by: Pawel Dembicki <paweldembicki@xxxxxxxxx>
> >>> ---
> >>> arch/powerpc/Kconfig | 2 +-
> >>> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> >>> index 8c1c636308c8..daf4cb968922 100644
> >>> --- a/arch/powerpc/Kconfig
> >>> +++ b/arch/powerpc/Kconfig
> >>> @@ -196,7 +196,7 @@ config PPC
> >>> select HAVE_IOREMAP_PROT
> >>> select HAVE_IRQ_EXIT_ON_IRQ_STACK
> >>> select HAVE_KERNEL_GZIP
> >>> - select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x
> >>> + select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x || PPC_85xx
> >>
> >> (I'm not super well versed in the compression stuff, so apologies if
> >> this is a dumb question.) If it's this simple, is there any reason we
> >> can't turn it on generally, or convert it to a blacklist of platforms
> >> known not to work?
> >
> > For some platforms enabling XZ requires that your u-boot has XZ support,
> > and I'm not very clear on when that support landed in u-boot and what
> > boards have it. And there are boards out there with old/custom u-boots
> > that effectively can't be updated.
>
> I don't think that it has anything to do with u-boot.
> AFAIK, today's mainline U-boot only supports GZIP (by default) and the
> following optional ones: LZO, LZMA, LZ4.
>
> If we want to set additional compression types for u-boot, it is not
> enough to select HAVE_KERNEL_XXXX, we also have to update uImage
> generation scripts.
>
> See the series I sent some time ago:
> https://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=104153
> I'll resent it without bzip2 as today's uboot doesn't support bzip2 anymore.
>
> >
> > But as a server guy I don't really know the details of all that very
> > well. So if someone tells me that we should enable XZ for everything, or
> > as you say just black list some platforms, then that's fine by me.
> >
>
> I guess we first need to understand how this is used.
>
to add to the confusion:
The powerpc arch is sort of special since it has the various targets have
different arch/powerpc/boot/wrapper for everyone unfamiliar (people from
ARM or other targets,) please look at:
https://www.kernel.org/doc/Documentation/powerpc/bootwrapper.txt
and see that this is very different from ARM, MIPS, x86, etc.
I think the cuImage*, dtbImage*, simpleImage, etc... wouldn't
be affected if the kernel is compressed by XZ, as in they should
still boot fine, altough XZ takes a bit longer to unpack of course.
However, for the uImage this could spell a problem, however "HAVE_KERNEL_XZ"
does not automatically entail that the wrapper script from above
compresses the generated uimage with LZMAd/xz. Instead this is controlled
by init/Kconfig and the "Kernel compression mode" setting there.
And currently that defaults to CONFIG_KERNEL_GZIP. So the wrapper script
currently gzipped uImages unless the target config overwrites it to
something else (and the target has the right
HAVE_KERNEL_XZ/BZIP2/LZMA/LZO/LZ4/... as well).
Regards,
Christian