[PATCH 1/2] ARM: Add Kconfig option to use mkimage -T kernel_noload
Russell King - ARM Linux
linux at arm.linux.org.uk
Wed Feb 29 15:45:27 EST 2012
On Wed, Feb 29, 2012 at 09:39:58PM +0100, Uwe Kleine-König wrote:
> I'd bet your platform has cache support in the decompressor without
> knowing which platform you use. I suggest commenting out
>
> bl cache_on
>
> in arch/arm/boot/compressed/head.S to see the difference.
>
> How do you build the uImage containing the zImage? If you use the
> in-kernel uImage target booting that usually means:
>
> - move the zImage to ZRELADDR
> - jump into zImage
> - decompress zImage to somewhere else
> - move decompressed image to ZRELADDR
> - jump to ZRELADDR
>
> That is you have two relocations because the first location for sure
> conflicts with the decompressed image.
Actually, we do this slightly differently nowadays. Inside zImage:
- if zImage location conflicts, move the decompressed data
and decompressor to another location
- decompress zImage to ZRELADDR
- jump to ZRELADDR
That reduces the size required for copying. Of course, that copy can
(as it's always been the case) be totally eliminated by ensuring that
you load the zImage out of the way of the decompressed image.
So, really, comparing a standard uImage produced by the standard kernel
with gzipped Image is far from a fair comparison. And that's actually
another argument for getting rid of the uImage target... it may make
people think a bit about what they're doing rather than accepting
whatever default location someone else chose for their kernel.
More information about the linux-arm-kernel
mailing list