[PATCH 2/3] Kbuild: Implement CONFIG_UIMAGE_KERNEL_NOLOAD
From: nico@fluxnic.net (Nicolas Pitre)
Date: 2012-03-07 21:03:09
Also in:
linux-arch, linux-kbuild, linux-sh, lkml, sparclinux
On Wed, 7 Mar 2012, Stephen Warren wrote:
On 03/07/2012 11:36 AM, Jean-Christophe PLAGNIOL-VILLARD wrote:quoted
On 11:40 Wed 07 Mar , Stephen Warren wrote:quoted
On 03/07/2012 11:08 AM, Jean-Christophe PLAGNIOL-VILLARD wrote:quoted
On 17:30 Tue 06 Mar , Stephen Warren wrote:quoted
This allows the user to use U-Boot's mkimage's -T kernel_noload option if their arch Kconfig allows it, and they desire. Signed-off-by: Stephen Warren <redacted> --- The next patch enables this new CONFIG_ALLOW_ option for ARM. I assume that some other architectures will also be able to enable it, but I'm not familiar enough with any to know which.I'm going to repeat. I don't think any impromevent here. with no specific kernel load address the uImage for is useless/No, the whole point of this type of kernel image is that it doesn't need a specific load address; the kernel zImage can run from anywhere in RAM (provided AUTO_ZRELADDR is enabled, subject to some slight restrictions), and hence the uImage doesn't need to be loaded to or moved to any particular location. The scripts that U-Boot runs determine where the image gets loaded into memory.so instead of spending time on the uImage add simply the support the zImage to U-Boot as this AUTO_ZRELADDR have 0 advantage compare to the zImageThinking more about this, I guess the reliance on AUTO_ZRELADDR is wrong here; Russell, Nico, is the ARM decompressor fully position-independent irrespective of the AUTO_ZRELADDR setting.
Absolutely.
That setting just determines where the decompressor writes its output, not what address the decompressor can run at, right?
Right.
So, this KERNEL_NOLOAD feature could be enabled in all cases on ARM, not only when AUTO_ZRELADDR is enabled.
Except when CONFIG_ZBOOT_ROM is selected (if the uImage format allows it), or when the u-Boot environment doesn't know where to load the uImage. FWIW, I really hate this confusing usage of "noload" imposed on us by we know who. I thought better than contesting his definition though. But yes, AUTO_ZRELADDR has no effect on the location where the zImage should be _loaded_, except for the 128MB restriction.
As such to address Jean-Christophe's most recent comment above, this patch isn't about adding support for AUTO_ZRELADDR, but for U-Boot's kernel_noload feature, so comparisons should be drawn between kernel_noload uImages and zImage, not between AUTO_ZRELADDR and zImage. In other words: We already have and need ZRELADDR no matter what, for reasons unrelated to U-Boot/uImage.
Well, I do have a patch series getting rid of ZRELADDR entirely, and AUTO_ZRELADDR would then become implicit, unless CONFIG_PHYS_OFFSET is defined. Nicolas