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 <swarren@xxxxxxxxxxxxx> --- 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. init/Kconfig | 15 +++++++++++++++ scripts/Makefile.lib | 15 ++++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/init/Kconfig b/init/Kconfig index 6cfd71d..2035562 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -203,6 +203,21 @@ config KERNEL_LZO endchoice +config ALLOW_UIMAGE_KERNEL_NOLOAD + bool + +config UIMAGE_KERNEL_NOLOAD + bool "Use mkimage's -T kernel_noload instead of -T kernel" + depends on ALLOW_UIMAGE_KERNEL_NOLOAD + help + uImage files of type "kernel" embed an absolute load and entry point + address. If the uImage is loaded to a different address, then the + image must be copied the uImage file to the specified load address. + This copy is a waste of time if the uImage is in fact completely + relocatable. If your kernel and bootloader support it, you can build + a "kernel_noload" uImage rather than a "kernel" uImage, which + prevents any such copying. If unsure say N. + config DEFAULT_HOSTNAME string "Default hostname" default "(none)" diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 7b0be18..d9c1c87 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -314,9 +314,18 @@ MKIMAGE := $(srctree)/scripts/mkuboot.sh UIMAGE_ARCH = $(SRCARCH) UIMAGE_COMPRESSION = $(if $(2),$(2),none) UIMAGE_OPTS-y = -UIMAGE_TYPE = kernel -UIMAGE_LOADADDR=arch_must_set_this -UIMAGE_ENTRYADDR=$(UIMAGE_LOADADDR) +ifeq ($(CONFIG_UIMAGE_KERNEL_NOLOAD),y) + UIMAGE_TYPE = kernel_noload + # Unused by bootloader: + UIMAGE_LOADADDR=0 + # Entry point relative to actual load address: + UIMAGE_ENTRYADDR=0 +else + UIMAGE_TYPE = kernel + # Absolute addresses: + UIMAGE_LOADADDR=arch_must_set_this + UIMAGE_ENTRYADDR=$(UIMAGE_LOADADDR) +endif UIMAGE_NAME = 'Linux-$(KERNELRELEASE)' UIMAGE_IN = $< UIMAGE_OUT = $@ -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html