--- linux-2.6.20-rmk-12feb2007-bjd2/arch/arm/Makefile 2007-02-12 10:28:24.000000000 +0000 +++ linux-2.6.20-rmk-12feb2007-bjd4/arch/arm/Makefile 2007-02-16 10:51:53.000000000 +0000 @@ -11,7 +11,7 @@ # Copyright (C) 1995-2001 by Russell King LDFLAGS_vmlinux :=-p --no-undefined -X -CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET) +CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET="$(TEXT_OFFSET)" OBJCOPYFLAGS :=-O binary -R .note -R .comment -S GZFLAGS :=-9 #CFLAGS +=-pipe @@ -137,7 +137,12 @@ export CFLAGS_3c589_cs.o endif # The byte offset of the kernel image in RAM from the start of RAM. + +ifeq ($(CONFIG_TXTOFFSET_DELTA),y) +TEXT_OFFSET := $(textofs-y) + $(CONFIG_TXTOFFSET_DELTA_VALUE) +else TEXT_OFFSET := $(textofs-y) +endif ifeq ($(incdir-y),) incdir-y := $(machine-y) --- linux-2.6.20-rmk-12feb2007-bjd2/arch/arm/Kconfig 2007-02-12 10:28:24.000000000 +0000 +++ linux-2.6.20-rmk-12feb2007-bjd4/arch/arm/Kconfig 2007-02-16 10:44:27.000000000 +0000 @@ -747,6 +747,22 @@ config XIP_PHYS_ADDR be linked for and stored to. This address is dependent on your own flash usage. +config TXTOFFSET_DELTA + bool "Move kernel text offset" + default n + +config TXTOFFSET_DELTA_VALUE + hex "Kernel text offset delta value" + depends on TXTOFFSET_DELTA + default "0x00000000" + help + This delta value moves the default base of the kernel + text segment from the architecture default. This can be + useful for machines where the bootloader uses the area + the kernel usually occupies for suspend/resume. + + + endmenu if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX ) diff -urpN -X ../dontdiff linux-2.6.20-rmk-12feb2007-bjd2/arch/arm/boot/Makefile linux-2.6.20-rmk-12feb2007-bjd4/arch/arm/boot/Makefile --- linux-2.6.20-rmk-12feb2007-bjd2/arch/arm/boot/Makefile 2007-02-04 18:44:54.000000000 +0000 +++ linux-2.6.20-rmk-12feb2007-bjd4/arch/arm/boot/Makefile 2007-02-16 14:25:19.000000000 +0000 @@ -21,10 +21,22 @@ endif # ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET) # PARAMS_PHYS must be within 4MB of ZRELADDR # INITRD_PHYS must be in RAM +# note, we use ZRELADDR_c because mkuimage needs single hex value + +ifeq ($(CONFIG_TXTOFFSET_DELTA),y) +ZRELADDR := $(zreladdr-y)+$(CONFIG_TXTOFFSET_DELTA_VALUE) +ZRELADDR_h := $(subst 0x,,$(ZRELADDR)) +ZRELADDR_c := 0x$(shell echo "ibase=16; obase=10; $(ZRELADDR_h)" | bc -l) +else ZRELADDR := $(zreladdr-y) +ZRELADDR_c := $(zreladdr-y) +endif + PARAMS_PHYS := $(params_phys-y) INITRD_PHYS := $(initrd_phys-y) + + export ZRELADDR INITRD_PHYS PARAMS_PHYS targets := Image zImage xipImage bootpImage uImage @@ -61,7 +73,7 @@ endif quiet_cmd_uimage = UIMAGE $@ cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \ - -C none -a $(ZRELADDR) -e $(ZRELADDR) \ + -C none -a $(ZRELADDR_c) -e $(ZRELADDR_c) \ -n 'Linux-$(KERNELRELEASE)' -d $< $@ $(obj)/uImage: $(obj)/zImage FORCE diff -urpN -X ../dontdiff linux-2.6.20-rmk-12feb2007-bjd2/arch/arm/boot/compressed/Makefile linux-2.6.20-rmk-12feb2007-bjd4/arch/arm/boot/compressed/Makefile --- linux-2.6.20-rmk-12feb2007-bjd2/arch/arm/boot/compressed/Makefile 2007-02-04 18:44:54.000000000 +0000 +++ linux-2.6.20-rmk-12feb2007-bjd4/arch/arm/boot/compressed/Makefile 2007-02-16 10:54:20.000000000 +0000 @@ -81,7 +81,7 @@ EXTRA_AFLAGS := # Supply ZRELADDR, INITRD_PHYS and PARAMS_PHYS to the decompressor via # linker symbols. We only define initrd_phys and params_phys if the # machine class defined the corresponding makefile variable. -LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR) +LDFLAGS_vmlinux := --defsym zreladdr="$(ZRELADDR)" ifneq ($(INITRD_PHYS),) LDFLAGS_vmlinux += --defsym initrd_phys=$(INITRD_PHYS) endif Binary files linux-2.6.20-rmk-12feb2007-bjd2/arch/arm/boot/uImage and linux-2.6.20-rmk-12feb2007-bjd4/arch/arm/boot/uImage differ diff -urpN -X ../dontdiff linux-2.6.20-rmk-12feb2007-bjd2/arch/arm/kernel/Makefile linux-2.6.20-rmk-12feb2007-bjd4/arch/arm/kernel/Makefile --- linux-2.6.20-rmk-12feb2007-bjd2/arch/arm/kernel/Makefile 2007-02-04 18:44:54.000000000 +0000 +++ linux-2.6.20-rmk-12feb2007-bjd4/arch/arm/kernel/Makefile 2007-02-16 10:52:14.000000000 +0000 @@ -2,7 +2,7 @@ # Makefile for the linux kernel. # -AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET) +AFLAGS_head.o := -DTEXT_OFFSET="$(TEXT_OFFSET)" # Object file lists.