[PATCH] Clean up ARM compressed loader

Nicolas Pitre nico at fluxnic.net
Thu Feb 25 13:35:32 EST 2010


On Thu, 25 Feb 2010, Hector Martin wrote:

> If you can programmatically ensure that the decompressors do not use
> anything but GOT entries to access data, that's certainly a better
> solution than what we have now (I don't mean actually "fixing" them as
> in -Dstatic=, just something that makes the build fail if this is not
> the case so someone else can go and make the required changes). Maybe
> building the object and then grepping the relocations for offenders, or
> something like that.

Russell made a patch which simply ends up discarding .data section.

> However, considering my second patch can be adapted to avoid the two
> extra copies, I still think that's a cleaner solution. All I have to do
> is move things around in the linker script so the piggy is at the end of
> the zImage, avoid copying that the first time around (and instead pass
> the old pointer to ROM to the decompressor), and introduce the real
> decompressed uncompressed kernel size to the mix so I can relocate the
> decompressor to ZRELADDR+kernel_size (and fix the relocation check code
> so it uses the real size, not some 4x guess), which would avoid the
> second copy.

You are still copying the actual decompressor code which is less optimal 
than what we already have.  The current solution, as I explained 
already, involves _zero_ copying.


Nicolas



More information about the linux-arm-kernel mailing list