All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Makefile.boot cleanup
@ 2010-06-03  7:36 Eric Miao
  2010-06-03  7:36 ` [PATCH 1/5] [ARM] Remove unused PARAMS_PHYS from arch/arm/boot/compressed Eric Miao
                   ` (8 more replies)
  0 siblings, 9 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-03  7:36 UTC (permalink / raw)
  To: linux-arm-kernel

Several facts:

1. ZRELADDR in most cases can be auto detected by maksing PC with
   0xf000_0000 if the zImage is placed within the first 256MiB from
   the memory start, which is a sane assumption except for:

   - when ARCH_MX1 or ARCH_SHARK is defined
   - when ARCH_U300 is defined (U300 really is strange when defining
     PHYS_OFFSET and ZRELADDR)
   - or when ZBOOT_ROM is defined

2. For the exceptions above or those situations where ZRELADDR still
   needs to be specified, an option CONFIG_ZRELADDR is provided. So
   if there is conflict when mutliple machines are selected (in the
   near future), things can be manually fixed by menuconfig, instead
   of playing tricks with Makefile.

3. INITRD_PHYS and PARAMS_PHYS are really used only for bootpImage,
   and references in arch/arm/boot/compressed can be safely removed

I've listed most of the zreladdr-y found in each Makefile.boot and
made them default value in CONFIG_ZRELADDR, but still there could be
mistakes. Please kindly try and report back, thanks.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/5] [ARM] Remove unused PARAMS_PHYS from arch/arm/boot/compressed
  2010-06-03  7:36 [PATCH 0/5] Makefile.boot cleanup Eric Miao
@ 2010-06-03  7:36 ` Eric Miao
  2010-06-10  8:48   ` Uwe Kleine-König
  2010-06-03  7:36 ` [PATCH 2/5] [ARM] Remove unused INITRD_PHYS " Eric Miao
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-03  7:36 UTC (permalink / raw)
  To: linux-arm-kernel

From: Eric Miao <eric.y.miao@gmail.com>

The only reference in arch/arm/boot/compressed to PARAMS_PHYS is
params() in head.S, which can be directly converted to the exact
address as specified by arch/arm/mach-rpc/Makefile.boot.

Signed-off-by: Eric Miao <eric.miao@canonical.com>
---
 arch/arm/boot/compressed/Makefile |    7 ++-----
 arch/arm/boot/compressed/head.S   |    2 +-
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 53faa90..b58a589 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -79,8 +79,8 @@ endif
 EXTRA_CFLAGS  := -fpic -fno-builtin
 EXTRA_AFLAGS  := -Wa,-march=all
 
-# Supply ZRELADDR, INITRD_PHYS and PARAMS_PHYS to the decompressor via
-# linker symbols.  We only define initrd_phys and params_phys if the
+# Supply ZRELADDR, INITRD_PHYS to the decompressor via
+# linker symbols.  We only define initrd_phys if the
 # machine class defined the corresponding makefile variable.
 LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
@@ -89,9 +89,6 @@ endif
 ifneq ($(INITRD_PHYS),)
 LDFLAGS_vmlinux += --defsym initrd_phys=$(INITRD_PHYS)
 endif
-ifneq ($(PARAMS_PHYS),)
-LDFLAGS_vmlinux += --defsym params_phys=$(PARAMS_PHYS)
-endif
 # ?
 LDFLAGS_vmlinux += -p
 # Report unresolved symbol references
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index c5191b1..0765990 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -321,7 +321,7 @@ LC1:		.word	reloc_end - reloc_start
 
 #ifdef CONFIG_ARCH_RPC
 		.globl	params
-params:		ldr	r0, =params_phys
+params:		ldr	r0, =0x10000100		@ params_phys for RPC
 		mov	pc, lr
 		.ltorg
 		.align
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 2/5] [ARM] Remove unused INITRD_PHYS from arch/arm/boot/compressed
  2010-06-03  7:36 [PATCH 0/5] Makefile.boot cleanup Eric Miao
  2010-06-03  7:36 ` [PATCH 1/5] [ARM] Remove unused PARAMS_PHYS from arch/arm/boot/compressed Eric Miao
@ 2010-06-03  7:36 ` Eric Miao
  2010-06-10  8:27   ` Uwe Kleine-König
  2010-06-03  7:36 ` [PATCH 3/5] [ARM] Make TEXT_OFFSET a configurable option Eric Miao
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-03  7:36 UTC (permalink / raw)
  To: linux-arm-kernel

From: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Original patch from Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
Signed-off-by: Eric Miao <eric.miao@canonical.com>
---
 arch/arm/boot/compressed/Makefile |    7 +------
 1 files changed, 1 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index b58a589..dbd3fe8 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -79,16 +79,11 @@ endif
 EXTRA_CFLAGS  := -fpic -fno-builtin
 EXTRA_AFLAGS  := -Wa,-march=all
 
-# Supply ZRELADDR, INITRD_PHYS to the decompressor via
-# linker symbols.  We only define initrd_phys if the
-# machine class defined the corresponding makefile variable.
+# Supply ZRELADDR to the decompressor via linker symbols.
 LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
 LDFLAGS_vmlinux += --be8
 endif
-ifneq ($(INITRD_PHYS),)
-LDFLAGS_vmlinux += --defsym initrd_phys=$(INITRD_PHYS)
-endif
 # ?
 LDFLAGS_vmlinux += -p
 # Report unresolved symbol references
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 3/5] [ARM] Make TEXT_OFFSET a configurable option
  2010-06-03  7:36 [PATCH 0/5] Makefile.boot cleanup Eric Miao
  2010-06-03  7:36 ` [PATCH 1/5] [ARM] Remove unused PARAMS_PHYS from arch/arm/boot/compressed Eric Miao
  2010-06-03  7:36 ` [PATCH 2/5] [ARM] Remove unused INITRD_PHYS " Eric Miao
@ 2010-06-03  7:36 ` Eric Miao
  2010-06-10  8:50   ` Uwe Kleine-König
  2010-06-03  7:36 ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Eric Miao
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-03  7:36 UTC (permalink / raw)
  To: linux-arm-kernel

From: Eric Miao <eric.y.miao@gmail.com>

Signed-off-by: Eric Miao <eric.miao@canonical.com>
---
 arch/arm/Kconfig         |   13 +++++++++++++
 arch/arm/Makefile        |   13 +------------
 arch/arm/kernel/Makefile |    4 ++--
 3 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1f254bd..e340193 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1484,6 +1484,19 @@ config ATAGS_PROC
 	  Should the atags used to boot the kernel be exported in an "atags"
 	  file in procfs. Useful with kexec.
 
+config TEXT_OFFSET
+	hex "Offset of the kernel image from the start of RAM"
+	default 0x00008000
+	default 0x00028000 if ARCH_CLPS711X
+	# We don't want the htc bootloader to corrupt kernel during resume
+	default 0x00108000 if PM_H1940
+	# SA1111 DMA bug: we don't want the kernel to live in precious
+	# DMA-able memory
+	default 0x00208000 if (ARCH_SA1100 && SA1111)
+	help
+	  TEXT_OFFSET is the offset of the decompressed kernel image from
+	  memory start. Currently, it is expected the least significant 16
+	  bits to be 0x8000, so to leave space for the initial page table.
 endmenu
 
 menu "CPU Power Management"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 64ba313..df8f73d 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -108,14 +108,6 @@ CHECKFLAGS	+= -D__arm__
 
 #Default value
 head-y		:= arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o
-textofs-y	:= 0x00008000
-textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
-# We don't want the htc bootloader to corrupt kernel during resume
-textofs-$(CONFIG_PM_H1940)      := 0x00108000
-# SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory
-ifeq ($(CONFIG_ARCH_SA1100),y)
-textofs-$(CONFIG_SA1111) := 0x00208000
-endif
 
 # Machine directory name.  This list is sorted alphanumerically
 # by CONFIG_* macro name.
@@ -209,9 +201,6 @@ CFLAGS_3c589_cs.o :=-DISA_SIXTEEN_BIT_PERIPHERAL
 export CFLAGS_3c589_cs.o
 endif
 
-# The byte offset of the kernel image in RAM from the start of RAM.
-TEXT_OFFSET := $(textofs-y)
-
 # The first directory contains additional information for the boot setup code
 ifneq ($(machine-y),)
 MACHINE  := arch/arm/mach-$(word 1,$(machine-y))/
@@ -228,7 +217,7 @@ else
 KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs))
 endif
 
-export	TEXT_OFFSET GZFLAGS MMUEXT
+export	GZFLAGS MMUEXT
 
 # Do we have FASTFPE?
 FASTFPE		:=arch/arm/fastfpe
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index 26d302c..50a0d7e 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -2,8 +2,8 @@
 # Makefile for the linux kernel.
 #
 
-CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)
-AFLAGS_head.o        := -DTEXT_OFFSET=$(TEXT_OFFSET)
+CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(CONFIG_TEXT_OFFSET)
+AFLAGS_head.o        := -DTEXT_OFFSET=$(CONFIG_TEXT_OFFSET)
 
 ifdef CONFIG_DYNAMIC_FTRACE
 CFLAGS_REMOVE_ftrace.o = -pg
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-03  7:36 [PATCH 0/5] Makefile.boot cleanup Eric Miao
                   ` (2 preceding siblings ...)
  2010-06-03  7:36 ` [PATCH 3/5] [ARM] Make TEXT_OFFSET a configurable option Eric Miao
@ 2010-06-03  7:36 ` Eric Miao
  2010-06-07  8:51   ` Tony Lindgren
                     ` (5 more replies)
  2010-06-03  7:36 ` [PATCH 5/5] [ARM] Move inclusion of Makefile.boot into arch/arm/boot/bootp Eric Miao
                   ` (4 subsequent siblings)
  8 siblings, 6 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-03  7:36 UTC (permalink / raw)
  To: linux-arm-kernel

From: Eric Miao <eric.y.miao@gmail.com>

Original idea and prototype came from Nicolas Pitre.

As long as the zImage is placed within the 256MB range from the
start of the memory, ZRELADDR (Address where the decompressed
kernel will be placed, usually  == PHYS_OFFSET + TEXT_OFFSET)
can be determined at run-time by masking PC with 0xf000_0000.

Running through all the Makefile.boot, all those zreladdr-y
address == 0x[0-f]000_0000 + TEXT_OFFSET can be determined at
run-time.

Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
CONFIG_ZRELADDR _must_ be explicitly specified if:

 - ((zreladdr-y - TEXT_OFFSET) & ~0xf0000000) != 0, which means
   a maksing of PC with 0xf000_0000 will result an incorrect
   address.

 - or the assumption of the zImage being loaded by the boot
   loader within 256MB from the start address is simply
   incorrect

 - or when ZBOOT_ROM is used, where the above assumption is
   normally wrong

List of all Makefile.boot:

Hardcoded, and can be auto calculated by masking PC with 0xf000_0000:

arch/arm/mach-cns3xxx/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-dove/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-ebsa110/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-footbridge/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-integrator/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-iop13xx/Makefile.boot:	   zreladdr-y   := 0x00008000
arch/arm/mach-iop33x/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-ixp2000/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-ixp23xx/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-ixp4xx/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-kirkwood/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-ks8695/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-loki/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-mmp/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-mv78xx0/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-nomadik/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-nuc93x/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-ns9xxx/Makefile.boot:	   zreladdr-y	:= 0x8000
arch/arm/mach-orion5x/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-spear3xx/Makefile.boot:      zreladdr-y	:= 0x00008000
arch/arm/mach-spear6xx/Makefile.boot:      zreladdr-y	:= 0x00008000
arch/arm/mach-ux500/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-versatile/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-w90x900/Makefile.boot:	   zreladdr-y	:= 0x00008000
arch/arm/mach-msm/Makefile.boot:	   zreladdr-y	:= 0x10008000
arch/arm/mach-omap1/Makefile.boot:	   zreladdr-y	:= 0x10008000
arch/arm/mach-rpc/Makefile.boot:	   zreladdr-y	:= 0x10008000
arch/arm/mach-s5p6440/Makefile.boot:	   zreladdr-y	:= 0x20008000
arch/arm/mach-s5p6442/Makefile.boot:	   zreladdr-y	:= 0x20008000
arch/arm/mach-s5pc100/Makefile.boot:	   zreladdr-y	:= 0x20008000
arch/arm/mach-s5pv210/Makefile.boot:	   zreladdr-y	:= 0x20008000
arch/arm/mach-s3c2410/Makefile.boot:	   zreladdr-y	:= 0x30008000
arch/arm/mach-s3c2410/Makefile.boot:	   zreladdr-y	:= 0x30108000
arch/arm/mach-stmp378x/Makefile.boot:	   zreladdr-y	:= 0x40008000
arch/arm/mach-stmp37xx/Makefile.boot:	   zreladdr-y	:= 0x40008000
arch/arm/mach-s3c64xx/Makefile.boot:	   zreladdr-y	:= 0x50008000
arch/arm/mach-vexpress/Makefile.boot:	   zreladdr-y	:= 0x60008000
arch/arm/mach-mx25/Makefile.boot:	   zreladdr-y	:= 0x80008000
arch/arm/mach-mx3/Makefile.boot:	   zreladdr-y	:= 0x80008000
arch/arm/mach-netx/Makefile.boot:	   zreladdr-y	:= 0x80008000
arch/arm/mach-omap2/Makefile.boot:	   zreladdr-y	:= 0x80008000
arch/arm/mach-pnx4008/Makefile.boot:	   zreladdr-y	:= 0x80008000
arch/arm/mach-mx5/Makefile.boot:	   zreladdr-y	:= 0x90008000
arch/arm/mach-mxc91231/Makefile.boot:	   zreladdr-y	:= 0x90008000
arch/arm/mach-iop32x/Makefile.boot:	   zreladdr-y	:= 0xa0008000
arch/arm/mach-pxa/Makefile.boot:	   zreladdr-y	:= 0xa0008000
arch/arm/mach-lh7a40x/Makefile.boot:	   zreladdr-y	:= 0xc0008000
arch/arm/mach-clps711x/Makefile.boot:	   zreladdr-y	:= 0xc0028000
arch/arm/mach-aaec2000/Makefile.boot:	   zreladdr-y	:= 0xf0008000
arch/arm/mach-l7200/Makefile.boot:	   zreladdr-y	:= 0xf0008000

Depends on other options/macros, but still can be auto calculated by
masking PC with 0xf000_0000:

arch/arm/mach-bcmring/Makefile.boot:	   zreladdr-y   := $(CONFIG_BCM_ZRELADDR)
* refer to arch/arm/configs/bcmring_defconfig:CONFIG_BCM_ZRELADDR=0x8000
arch/arm/mach-h720x/Makefile.boot:	   zreladdr-$(CONFIG_ARCH_H720X) := 0x40008000
arch/arm/mach-shmobile/Makefile.boot:	   zreladdr-y   := $(__ZRELADDR)
* __ZRELADDR depends on CONFIG_MEMORY_START
arch/arm/configs/ap4evb_defconfig:	CONFIG_MEMORY_START=0x40000000 (SH7372)
arch/arm/configs/g3evm_defconfig:	CONFIG_MEMORY_START=0x50000000 (SH7367)
arch/arm/configs/g4evm_defconfig:	CONFIG_MEMORY_START=0x40000000 (SH7377)

arch/arm/mach-at91/Makefile.boot:	   zreladdr-y	:= 0x70008000 (CONFIG_ARCH_AT91CAP9)
arch/arm/mach-at91/Makefile.boot:	   zreladdr-y	:= 0x70008000 (CONFIG_ARCH_AT91SAM9G45)
arch/arm/mach-at91/Makefile.boot:	   zreladdr-y	:= 0x20008000 (CONFIG_ARCH_AT91)
arch/arm/mach-davinci/Makefile.boot:	   zreladdr-y	:= 0xc0008000 (CONFIG_ARCH_DAVINCI_DA8XX)
arch/arm/mach-davinci/Makefile.boot:	   zreladdr-y	:= 0x80008000 (!CONFIG_ARCH_DAVINCI_DA8XX)
arch/arm/mach-ep93xx/Makefile.boot:	   zreladdr-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET)	:= 0x00008000
arch/arm/mach-ep93xx/Makefile.boot:	   zreladdr-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET)		:= 0xc0008000
arch/arm/mach-ep93xx/Makefile.boot:	   zreladdr-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET)		:= 0xd0008000
arch/arm/mach-ep93xx/Makefile.boot:	   zreladdr-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET)		:= 0xe0008000
arch/arm/mach-ep93xx/Makefile.boot:	   zreladdr-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET)	:= 0xf0008000
arch/arm/mach-gemini/Makefile.boot:	   zreladdr-y	:= 0x00008000 (CONFIG_GEMINI_MEM_SWAP)
arch/arm/mach-gemini/Makefile.boot:	   zreladdr-y	:= 0x10008000 (!CONFIG_GEMINI_MEM_SWAP)
arch/arm/mach-mx2/Makefile.boot:	   zreladdr-$(CONFIG_MACH_MX21) := 0xC0008000
arch/arm/mach-mx2/Makefile.boot:	   zreladdr-$(CONFIG_MACH_MX27) := 0xA0008000
arch/arm/mach-realview/Makefile.boot:	   zreladdr-y	:= 0x70008000 (CONFIG_REALVIEW_HIGH_PHYS_OFFSET)
arch/arm/mach-realview/Makefile.boot:	   zreladdr-y	:= 0x00008000 (CONFIG_REALVIEW_HIGH_PHYS_OFFSET)
arch/arm/mach-sa1100/Makefile.boot:	   zreladdr-y	:= 0xc0008000
arch/arm/mach-sa1100/Makefile.boot:	   zreladdr-$(CONFIG_SA1111) := 0xc0208000

Machines where ZRELADDR cannot be auto calcuated:

arch/arm/mach-mx1/Makefile.boot:	   zreladdr-y	:= 0x08008000
arch/arm/mach-shark/Makefile.boot:	   zreladdr-y	:= 0x08008000
arch/arm/mach-u300/Makefile.boot:	   zreladdr-y	:= 0x28E08000
arch/arm/mach-u300/Makefile.boot:	   zreladdr-y	:= 0x48008000

Signed-off-by: Eric Miao <eric.miao@canonical.com>
---
 arch/arm/Kconfig                  |   63 +++++++++++++++++++++++++++++++++++++
 arch/arm/boot/Makefile            |   10 +++---
 arch/arm/boot/compressed/Makefile |    4 +-
 arch/arm/boot/compressed/head.S   |   12 +++++--
 4 files changed, 79 insertions(+), 10 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e340193..818f731 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1497,6 +1497,69 @@ config TEXT_OFFSET
 	  TEXT_OFFSET is the offset of the decompressed kernel image from
 	  memory start. Currently, it is expected the least significant 16
 	  bits to be 0x8000, so to leave space for the initial page table.
+
+config AUTO_ZRELADDR
+	bool "Auto calculation of the decompressed kernel image address"
+	depends on !ZBOOT_ROM && !(ARCH_MX1 || ARCH_SHARK || ARCH_U300)
+	help
+	  ZRELADDR is the physical address where the decompressed kernel
+	  image will be placed. If AUTO_ZRELADDR is selected, the address
+	  will be determined at run-time by masking the current IP with
+	  0xf000_0000. This assumes the zImage being placed in the 256MB
+	  range from the start of memory.
+
+config ZRELADDR
+	hex "Physical address of the decompressed kernel image"
+	depends on !AUTO_ZRELADDR
+	default 0x00008000 if ARCH_BCMRING || ARCH_CNS3XXX || ARCH_DOVE ||\
+			      ARCH_EBSA110 || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR ||\
+			      ARCH_IOP13XX || ARCH_IOP33X || ARCH_IXP2000 ||\
+			      ARCH_IXP23XX || ARCH_IXP4XX || ARCH_KIRKWOOD ||\
+			      ARCH_KS8695  || ARCH_LOKI || ARCH_MMP || ARCH_MV78XX0 ||\
+			      ARCH_NOMADIK || ARCH_NUC93X || ARCH_NS9XXX ||\
+			      ARCH_ORION5X || ARCH_SPEAR3XX || ARCH_SPEAR6XX ||\
+			      ARCH_UX5XX || ARCH_VERSATILE || ARCH_W90X900
+	default 0x08008000 if ARCH_MX1 || ARCH_SHARK
+	default 0x10008000 if ARCH_MSM || ARCH_OMAP1 || ARCH_RPC
+	default 0x20008000 if ARCH_S5P6440 || ARCH_S5P6442 ||\
+			      ARCH_S5PC100 || ARCH_S5PV210
+	default 0x30008000 if ARCH_S3C2410 || ARCH_S3C2400 || ARCH_S3C2412 ||\
+			      ARCH_S3C2416 || ARCH_S3C2440 || ARCH_S3C2443
+	default 0x40008000 if ARCH_STMP378X || ARCH_STMP37XX || ARCH_SH7372 ||\
+			      ARCH_SH7377
+	default 0x50008000 if ARCH_S3C64XX || ARCH_SH7367
+	default 0x60008000 if ARCH_VEXPRESS
+	default 0x80008000 if ARCH_MX25 || ARCH_MX3 || ARCH_NETX ||\
+			      ARCH_OMAP2 || ARCH_PNX4008
+	default 0x90008000 if ARCH_MX5 || ARCH_MX91231
+	default 0xa0008000 if ARCH_IOP32X || ARCH_PXA || MACH_MX27
+	default 0xc0008000 if ARCH_LH7A40X || MACH_MX21
+	default 0xf0008000 if ARCH_AAEC2000 || ARCH_L7200
+	default 0xc0028000 if ARCH_CLPS711X
+	default 0x70008000 if ARCH_AT91 && (ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
+	default 0x20008000 if ARCH_AT91 && !(ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
+	default 0xc0008000 if ARCH_DAVINCI && ARCH_DAVINCI_DA8XX
+	default 0x80008000 if ARCH_DAVINCI && !ARCH_DAVINCI_DA8XX
+	default 0x00008000 if ARCH_EP93XX && EP93XX_SDCE3_SYNC_PHYS_OFFSET
+	default 0xc0008000 if ARCH_EP93XX && EP93XX_SDCE0_PHYS_OFFSET
+	default 0xd0008000 if ARCH_EP93XX && EP93XX_SDCE1_PHYS_OFFSET
+	default 0xe0008000 if ARCH_EP93XX && EP93XX_SDCE2_PHYS_OFFSET
+	default 0xf0008000 if ARCH_EP93XX && EP93XX_SDCE3_ASYNC_PHYS_OFFSET
+	default 0x00008000 if ARCH_GEMINI && GEMINI_MEM_SWAP
+	default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP
+	default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET
+	default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET
+	default 0xc0208000 if ARCH_SA1100 && SA1111
+	default 0xc0008000 if ARCH_SA1100 && !SA1111
+	default 0x30108000 if ARCH_S3C2410 && PM_H1940
+	default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM
+	default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM
+	help
+	  ZRELADDR is the physical address where the decompressed kernel
+	  image will be placed. ZRELADDR has to be specified when the
+	  assumption of AUTO_ZRELADDR is not valid, or when ZBOOT_ROM is
+	  selected.
+
 endmenu
 
 menu "CPU Power Management"
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index 4a590f4..8cc4669 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -14,18 +14,16 @@
 MKIMAGE         := $(srctree)/scripts/mkuboot.sh
 
 ifneq ($(MACHINE),)
-include $(srctree)/$(MACHINE)/Makefile.boot
+-include $(srctree)/$(MACHINE)/Makefile.boot
 endif
 
 # Note: the following conditions must always be true:
-#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
 #   PARAMS_PHYS must be within 4MB of ZRELADDR
 #   INITRD_PHYS must be in RAM
-ZRELADDR    := $(zreladdr-y)
 PARAMS_PHYS := $(params_phys-y)
 INITRD_PHYS := $(initrd_phys-y)
 
-export ZRELADDR INITRD_PHYS PARAMS_PHYS
+export INITRD_PHYS PARAMS_PHYS
 
 targets := Image zImage xipImage bootpImage uImage
 
@@ -67,7 +65,7 @@ quiet_cmd_uimage = UIMAGE  $@
 ifeq ($(CONFIG_ZBOOT_ROM),y)
 $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
 else
-$(obj)/uImage: LOADADDR=$(ZRELADDR)
+$(obj)/uImage: LOADADDR=$(CONFIG_ZRELADDR)
 endif
 
 ifeq ($(CONFIG_THUMB2_KERNEL),y)
@@ -78,6 +76,8 @@ $(obj)/uImage: STARTADDR=$(LOADADDR)
 endif
 
 $(obj)/uImage:	$(obj)/zImage FORCE
+	@test "$(CONFIG_AUTO_ZRELADDR)" == "y" ||\
+	(echo CONFIG_ZRELADDR must be specified for uImage; exit -1)
 	$(call if_changed,uimage)
 	@echo '  Image $@ is ready'
 
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index dbd3fe8..45b0f48 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -4,6 +4,8 @@
 # create a compressed vmlinuz image from the original vmlinux
 #
 
+AFLAGS_head.o        := -DTEXT_OFFSET=$(CONFIG_TEXT_OFFSET)
+
 HEAD	= head.o
 OBJS	= misc.o decompress.o
 FONTC	= $(srctree)/drivers/video/console/font_acorn_8x8.c
@@ -79,8 +81,6 @@ endif
 EXTRA_CFLAGS  := -fpic -fno-builtin
 EXTRA_AFLAGS  := -Wa,-march=all
 
-# Supply ZRELADDR to the decompressor via linker symbols.
-LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
 LDFLAGS_vmlinux += --be8
 endif
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 0765990..17d19dc 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -170,9 +170,16 @@ not_angel:
 
 		.text
 		adr	r0, LC0
- ARM(		ldmia	r0, {r1, r2, r3, r4, r5, r6, r11, ip, sp})
- THUMB(		ldmia	r0, {r1, r2, r3, r4, r5, r6, r11, ip}	)
+ ARM(		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip, sp})
+ THUMB(		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip}	)
  THUMB(		ldr	sp, [r0, #32]				)
+#ifdef CONFIG_AUTO_ZRELADDR
+		@ determine final kernel image address
+		and	r4, pc, #0xf0000000
+		add	r4, r4, #TEXT_OFFSET
+#else
+		ldr	r4, =CONFIG_ZRELADDR
+#endif
 		subs	r0, r0, r1		@ calculate the delta offset
 
 						@ if delta is zero, we are
@@ -310,7 +317,6 @@ wont_overwrite:	mov	r0, r4
 LC0:		.word	LC0			@ r1
 		.word	__bss_start		@ r2
 		.word	_end			@ r3
-		.word	zreladdr		@ r4
 		.word	_start			@ r5
 		.word	_image_size		@ r6
 		.word	_got_start		@ r11
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 5/5] [ARM] Move inclusion of Makefile.boot into arch/arm/boot/bootp
  2010-06-03  7:36 [PATCH 0/5] Makefile.boot cleanup Eric Miao
                   ` (3 preceding siblings ...)
  2010-06-03  7:36 ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Eric Miao
@ 2010-06-03  7:36 ` Eric Miao
  2010-06-10  9:01   ` Uwe Kleine-König
  2010-06-03  7:43 ` [PATCH 0/5] Makefile.boot cleanup Eric Miao
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-03  7:36 UTC (permalink / raw)
  To: linux-arm-kernel

From: Eric Miao <eric.y.miao@gmail.com>

Since zreladdr-y, params_phys-y and initrd_phys-y are no longer
used in arch/arm/boot/compressed, move the inclusion into bootp/.

Now unless you are building for an bootpImage, no per machine
class Makefile.boot needs to be included.

Signed-off-by: Eric Miao <eric.miao@canonical.com>
---
 arch/arm/boot/Makefile       |   21 +--------------------
 arch/arm/boot/bootp/Makefile |   19 ++++++++++++++++++-
 2 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index 8cc4669..5e1b5f4 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -13,18 +13,6 @@
 
 MKIMAGE         := $(srctree)/scripts/mkuboot.sh
 
-ifneq ($(MACHINE),)
--include $(srctree)/$(MACHINE)/Makefile.boot
-endif
-
-# Note: the following conditions must always be true:
-#   PARAMS_PHYS must be within 4MB of ZRELADDR
-#   INITRD_PHYS must be in RAM
-PARAMS_PHYS := $(params_phys-y)
-INITRD_PHYS := $(initrd_phys-y)
-
-export INITRD_PHYS PARAMS_PHYS
-
 targets := Image zImage xipImage bootpImage uImage
 
 ifeq ($(CONFIG_XIP_KERNEL),y)
@@ -81,7 +69,7 @@ $(obj)/uImage:	$(obj)/zImage FORCE
 	$(call if_changed,uimage)
 	@echo '  Image $@ is ready'
 
-$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
+$(obj)/bootp/bootp: $(obj)/zImage FORCE
 	$(Q)$(MAKE) $(build)=$(obj)/bootp $@
 	@:
 
@@ -89,13 +77,6 @@ $(obj)/bootpImage: $(obj)/bootp/bootp FORCE
 	$(call if_changed,objcopy)
 	@echo '  Kernel: $@ is ready'
 
-PHONY += initrd FORCE
-initrd:
-	@test "$(INITRD_PHYS)" != "" || \
-	(echo This machine does not support INITRD; exit -1)
-	@test "$(INITRD)" != "" || \
-	(echo You must specify INITRD; exit -1)
-
 install: $(obj)/Image
 	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
 	$(obj)/Image System.map "$(INSTALL_PATH)"
diff --git a/arch/arm/boot/bootp/Makefile b/arch/arm/boot/bootp/Makefile
index c394e30..4b32d92 100644
--- a/arch/arm/boot/bootp/Makefile
+++ b/arch/arm/boot/bootp/Makefile
@@ -5,6 +5,16 @@
 # architecture-specific flags and dependencies.
 #
 
+ifneq ($(MACHINE),)
+-include $(srctree)/$(MACHINE)/Makefile.boot
+endif
+
+# Note: the following conditions must always be true:
+#   PARAMS_PHYS must be within 4MB of ZRELADDR
+#   INITRD_PHYS must be in RAM
+PARAMS_PHYS := $(params_phys-y)
+INITRD_PHYS := $(initrd_phys-y)
+
 LDFLAGS_bootp	:=-p --no-undefined -X \
 		 --defsym initrd_phys=$(INITRD_PHYS) \
 		 --defsym params_phys=$(PARAMS_PHYS) -T
@@ -17,11 +27,18 @@ $(obj)/bootp:	$(src)/bootp.lds $(addprefix $(obj)/,init.o kernel.o initrd.o) FOR
 	$(call if_changed,ld)
 	@:
 
+PHONY += initrd FORCE
+initrd:
+	@test "$(INITRD_PHYS)" != "" || \
+	(echo This machine does not support INITRD; exit -1)
+	@test "$(INITRD)" != "" || \
+	(echo You must specify INITRD; exit -1)
+
 # kernel.o and initrd.o includes a binary image using
 # .incbin, a dependency which is not tracked automatically
 
 $(obj)/kernel.o: arch/arm/boot/zImage FORCE
 
-$(obj)/initrd.o: $(INITRD) FORCE
+$(obj)/initrd.o: $(INITRD) initrd FORCE
 
 PHONY += $(INITRD) FORCE
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-06-03  7:36 [PATCH 0/5] Makefile.boot cleanup Eric Miao
                   ` (4 preceding siblings ...)
  2010-06-03  7:36 ` [PATCH 5/5] [ARM] Move inclusion of Makefile.boot into arch/arm/boot/bootp Eric Miao
@ 2010-06-03  7:43 ` Eric Miao
  2010-06-03  8:00   ` Uwe Kleine-König
  2010-06-03  7:57 ` Uwe Kleine-König
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-03  7:43 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 3, 2010 at 3:36 PM, Eric Miao <eric.miao@canonical.com> wrote:
> Several facts:
>
> 1. ZRELADDR in most cases can be auto detected by maksing PC with
> ? 0xf000_0000 if the zImage is placed within the first 256MiB from
> ? the memory start, which is a sane assumption except for:
>
> ? - when ARCH_MX1 or ARCH_SHARK is defined
> ? - when ARCH_U300 is defined (U300 really is strange when defining
> ? ? PHYS_OFFSET and ZRELADDR)
> ? - or when ZBOOT_ROM is defined
>

And maybe we could restrict the assumption to 128MB, so that MX1
and SHARK can be included as well.

> 2. For the exceptions above or those situations where ZRELADDR still
> ? needs to be specified, an option CONFIG_ZRELADDR is provided. So
> ? if there is conflict when mutliple machines are selected (in the
> ? near future), things can be manually fixed by menuconfig, instead
> ? of playing tricks with Makefile.
>
> 3. INITRD_PHYS and PARAMS_PHYS are really used only for bootpImage,
> ? and references in arch/arm/boot/compressed can be safely removed
>
> I've listed most of the zreladdr-y found in each Makefile.boot and
> made them default value in CONFIG_ZRELADDR, but still there could be
> mistakes. Please kindly try and report back, thanks.
>
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-06-03  7:36 [PATCH 0/5] Makefile.boot cleanup Eric Miao
                   ` (5 preceding siblings ...)
  2010-06-03  7:43 ` [PATCH 0/5] Makefile.boot cleanup Eric Miao
@ 2010-06-03  7:57 ` Uwe Kleine-König
  2010-06-10 18:44   ` Nicolas Pitre
  2010-06-17 19:22   ` Nicolas Pitre
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
  8 siblings, 2 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-03  7:57 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Eric,

On Thu, Jun 03, 2010 at 03:36:48PM +0800, Eric Miao wrote:
> Several facts:
> 
> 1. ZRELADDR in most cases can be auto detected by maksing PC with
>    0xf000_0000 if the zImage is placed within the first 256MiB from
>    the memory start, which is a sane assumption except for:
> 
>    - when ARCH_MX1 or ARCH_SHARK is defined
>    - when ARCH_U300 is defined (U300 really is strange when defining
>      PHYS_OFFSET and ZRELADDR)
>    - or when ZBOOT_ROM is defined
If you guess ZRELADDR based on sp instead of pc it even should work if
ZBOOT_ROM is defined?!

That's how I did it in
http://git.pengutronix.de/?p=ukl/linux-2.6.git;a=commit;h=booting/pu

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-06-03  7:43 ` [PATCH 0/5] Makefile.boot cleanup Eric Miao
@ 2010-06-03  8:00   ` Uwe Kleine-König
  2010-06-03  8:27     ` Eric Miao
  0 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-03  8:00 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Eric,

On Thu, Jun 03, 2010 at 03:43:30PM +0800, Eric Miao wrote:
> On Thu, Jun 3, 2010 at 3:36 PM, Eric Miao <eric.miao@canonical.com> wrote:
> > Several facts:
> >
> > 1. ZRELADDR in most cases can be auto detected by maksing PC with
> > ? 0xf000_0000 if the zImage is placed within the first 256MiB from
> > ? the memory start, which is a sane assumption except for:
> >
> > ? - when ARCH_MX1 or ARCH_SHARK is defined
> > ? - when ARCH_U300 is defined (U300 really is strange when defining
> > ? ? PHYS_OFFSET and ZRELADDR)
> > ? - or when ZBOOT_ROM is defined
> >
> 
> And maybe we could restrict the assumption to 128MB, so that MX1
> and SHARK can be included as well.
I used 128 MiB, too.  When I did it I found "problems" for s3c2400 and
at91.  For the latter physoffset depended on .config.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-06-03  8:00   ` Uwe Kleine-König
@ 2010-06-03  8:27     ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-03  8:27 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Hi Eric,
>
> On Thu, Jun 03, 2010 at 03:43:30PM +0800, Eric Miao wrote:
>> On Thu, Jun 3, 2010 at 3:36 PM, Eric Miao <eric.miao@canonical.com> wrote:
>> > Several facts:
>> >
>> > 1. ZRELADDR in most cases can be auto detected by maksing PC with
>> > ? 0xf000_0000 if the zImage is placed within the first 256MiB from
>> > ? the memory start, which is a sane assumption except for:
>> >
>> > ? - when ARCH_MX1 or ARCH_SHARK is defined
>> > ? - when ARCH_U300 is defined (U300 really is strange when defining
>> > ? ? PHYS_OFFSET and ZRELADDR)
>> > ? - or when ZBOOT_ROM is defined
>> >
>>
>> And maybe we could restrict the assumption to 128MB, so that MX1
>> and SHARK can be included as well.
> I used 128 MiB, too. ?When I did it I found "problems" for s3c2400 and
> at91. ?For the latter physoffset depended on .config.
>

Yeah, there are some platforms really makes me scratching my head.
For the problem of PHYS_OFFSET actually, not necessarily ZRELADDR.
(I've again reviewed your previous patches, and think maybe we can
possibly work together to bring them to the list again)

1. S3C2400 PHYS_OFFSET == 0x0c00_0000 which is on a 64MB boundary.
I guess we can simply drop support for such platforms. Restricting the
assumption to even smaller is not fair for most other platforms.

2. AT91 is actually much better.

3. The most weird platform must be U300, that PHYS_OFFSET is really
something variable. Depending on a somewhat access processor (I guess
it's a communication processor/MODEM). While for U300, I guess a proper
way for it to do is to declare a high enough TEXT_OFFSET and use .fixup
to reserve a range of memory for the access processor if possible.

Yet we don't have to support those platforms. The complex of the problem
is really: how to support as many platforms as possible yet still leave a
smooth migration path, and a fall-back way for those silicon simply just
cannot do auto detection at run-time, and the different boot method:
ZROM/XIP (and possibly bootp)

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-03  7:36 ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Eric Miao
@ 2010-06-07  8:51   ` Tony Lindgren
  2010-06-07 15:12   ` Marek Vasut
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 138+ messages in thread
From: Tony Lindgren @ 2010-06-07  8:51 UTC (permalink / raw)
  To: linux-arm-kernel

* Eric Miao <eric.miao@canonical.com> [100603 10:36]:
> From: Eric Miao <eric.y.miao@gmail.com>
> 
> Original idea and prototype came from Nicolas Pitre.
> 
> As long as the zImage is placed within the 256MB range from the
> start of the memory, ZRELADDR (Address where the decompressed
> kernel will be placed, usually  == PHYS_OFFSET + TEXT_OFFSET)
> can be determined at run-time by masking PC with 0xf000_0000.
> 
> Running through all the Makefile.boot, all those zreladdr-y
> address == 0x[0-f]000_0000 + TEXT_OFFSET can be determined at
> run-time.
> 
> Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
> CONFIG_ZRELADDR _must_ be explicitly specified if:
> 
>  - ((zreladdr-y - TEXT_OFFSET) & ~0xf0000000) != 0, which means
>    a maksing of PC with 0xf000_0000 will result an incorrect
>    address.
> 
>  - or the assumption of the zImage being loaded by the boot
>    loader within 256MB from the start address is simply
>    incorrect
> 
>  - or when ZBOOT_ROM is used, where the above assumption is
>    normally wrong

Nice series of patches!

> +config ZRELADDR
> +	hex "Physical address of the decompressed kernel image"
> +	depends on !AUTO_ZRELADDR
> +	default 0x00008000 if ARCH_BCMRING || ARCH_CNS3XXX || ARCH_DOVE ||\
> +			      ARCH_EBSA110 || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR ||\
> +			      ARCH_IOP13XX || ARCH_IOP33X || ARCH_IXP2000 ||\
> +			      ARCH_IXP23XX || ARCH_IXP4XX || ARCH_KIRKWOOD ||\
> +			      ARCH_KS8695  || ARCH_LOKI || ARCH_MMP || ARCH_MV78XX0 ||\
> +			      ARCH_NOMADIK || ARCH_NUC93X || ARCH_NS9XXX ||\
> +			      ARCH_ORION5X || ARCH_SPEAR3XX || ARCH_SPEAR6XX ||\
> +			      ARCH_UX5XX || ARCH_VERSATILE || ARCH_W90X900
> +	default 0x08008000 if ARCH_MX1 || ARCH_SHARK
> +	default 0x10008000 if ARCH_MSM || ARCH_OMAP1 || ARCH_RPC
> +	default 0x20008000 if ARCH_S5P6440 || ARCH_S5P6442 ||\
> +			      ARCH_S5PC100 || ARCH_S5PV210
> +	default 0x30008000 if ARCH_S3C2410 || ARCH_S3C2400 || ARCH_S3C2412 ||\
> +			      ARCH_S3C2416 || ARCH_S3C2440 || ARCH_S3C2443
> +	default 0x40008000 if ARCH_STMP378X || ARCH_STMP37XX || ARCH_SH7372 ||\
> +			      ARCH_SH7377
> +	default 0x50008000 if ARCH_S3C64XX || ARCH_SH7367
> +	default 0x60008000 if ARCH_VEXPRESS
> +	default 0x80008000 if ARCH_MX25 || ARCH_MX3 || ARCH_NETX ||\
> +			      ARCH_OMAP2 || ARCH_PNX4008

Please s/ARCH_OMAP2/ARCH_OMAP2PLUS/ above, then it covers ARCH_OMAP2, 3 and 4.

Regards,

Tony

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-03  7:36 ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Eric Miao
  2010-06-07  8:51   ` Tony Lindgren
@ 2010-06-07 15:12   ` Marek Vasut
  2010-06-08  6:12     ` Eric Miao
  2010-06-10  9:00   ` Uwe Kleine-König
                     ` (3 subsequent siblings)
  5 siblings, 1 reply; 138+ messages in thread
From: Marek Vasut @ 2010-06-07 15:12 UTC (permalink / raw)
  To: linux-arm-kernel

Dne ?t 3. ?ervna 2010 09:36:52 Eric Miao napsal(a):
> From: Eric Miao <eric.y.miao@gmail.com>
> 
> Original idea and prototype came from Nicolas Pitre.
> 
> As long as the zImage is placed within the 256MB range from the
> start of the memory, ZRELADDR (Address where the decompressed
> kernel will be placed, usually  == PHYS_OFFSET + TEXT_OFFSET)
> can be determined at run-time by masking PC with 0xf000_0000.
> 
> Running through all the Makefile.boot, all those zreladdr-y
> address == 0x[0-f]000_0000 + TEXT_OFFSET can be determined at
> run-time.
> 
> Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
> CONFIG_ZRELADDR _must_ be explicitly specified if:
> 
>  - ((zreladdr-y - TEXT_OFFSET) & ~0xf0000000) != 0, which means
>    a maksing of PC with 0xf000_0000 will result an incorrect
>    address.
> 
>  - or the assumption of the zImage being loaded by the boot
>    loader within 256MB from the start address is simply
>    incorrect
> 
>  - or when ZBOOT_ROM is used, where the above assumption is
>    normally wrong
> 
> List of all Makefile.boot:
> 
> Hardcoded, and can be auto calculated by masking PC with 0xf000_0000:
> 
> arch/arm/mach-cns3xxx/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-dove/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ebsa110/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-footbridge/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-integrator/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-iop13xx/Makefile.boot:	   zreladdr-y   := 0x00008000
> arch/arm/mach-iop33x/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ixp2000/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ixp23xx/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ixp4xx/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-kirkwood/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ks8695/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-loki/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-mmp/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-mv78xx0/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-nomadik/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-nuc93x/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ns9xxx/Makefile.boot:	   zreladdr-y	:= 0x8000
> arch/arm/mach-orion5x/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-spear3xx/Makefile.boot:      zreladdr-y	:= 0x00008000
> arch/arm/mach-spear6xx/Makefile.boot:      zreladdr-y	:= 0x00008000
> arch/arm/mach-ux500/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-versatile/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-w90x900/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-msm/Makefile.boot:	   zreladdr-y	:= 0x10008000
> arch/arm/mach-omap1/Makefile.boot:	   zreladdr-y	:= 0x10008000
> arch/arm/mach-rpc/Makefile.boot:	   zreladdr-y	:= 0x10008000
> arch/arm/mach-s5p6440/Makefile.boot:	   zreladdr-y	:= 0x20008000
> arch/arm/mach-s5p6442/Makefile.boot:	   zreladdr-y	:= 0x20008000
> arch/arm/mach-s5pc100/Makefile.boot:	   zreladdr-y	:= 0x20008000
> arch/arm/mach-s5pv210/Makefile.boot:	   zreladdr-y	:= 0x20008000
> arch/arm/mach-s3c2410/Makefile.boot:	   zreladdr-y	:= 0x30008000
> arch/arm/mach-s3c2410/Makefile.boot:	   zreladdr-y	:= 0x30108000
> arch/arm/mach-stmp378x/Makefile.boot:	   zreladdr-y	:= 0x40008000
> arch/arm/mach-stmp37xx/Makefile.boot:	   zreladdr-y	:= 0x40008000
> arch/arm/mach-s3c64xx/Makefile.boot:	   zreladdr-y	:= 0x50008000
> arch/arm/mach-vexpress/Makefile.boot:	   zreladdr-y	:= 0x60008000
> arch/arm/mach-mx25/Makefile.boot:	   zreladdr-y	:= 0x80008000
> arch/arm/mach-mx3/Makefile.boot:	   zreladdr-y	:= 0x80008000
> arch/arm/mach-netx/Makefile.boot:	   zreladdr-y	:= 0x80008000
> arch/arm/mach-omap2/Makefile.boot:	   zreladdr-y	:= 0x80008000
> arch/arm/mach-pnx4008/Makefile.boot:	   zreladdr-y	:= 0x80008000
> arch/arm/mach-mx5/Makefile.boot:	   zreladdr-y	:= 0x90008000
> arch/arm/mach-mxc91231/Makefile.boot:	   zreladdr-y	:= 0x90008000
> arch/arm/mach-iop32x/Makefile.boot:	   zreladdr-y	:= 0xa0008000
> arch/arm/mach-pxa/Makefile.boot:	   zreladdr-y	:= 0xa0008000
> arch/arm/mach-lh7a40x/Makefile.boot:	   zreladdr-y	:= 0xc0008000
> arch/arm/mach-clps711x/Makefile.boot:	   zreladdr-y	:= 0xc0028000
> arch/arm/mach-aaec2000/Makefile.boot:	   zreladdr-y	:= 0xf0008000
> arch/arm/mach-l7200/Makefile.boot:	   zreladdr-y	:= 0xf0008000
> 
> Depends on other options/macros, but still can be auto calculated by
> masking PC with 0xf000_0000:
> 
> arch/arm/mach-bcmring/Makefile.boot:	   zreladdr-y   :=
> $(CONFIG_BCM_ZRELADDR) * refer to
> arch/arm/configs/bcmring_defconfig:CONFIG_BCM_ZRELADDR=0x8000
> arch/arm/mach-h720x/Makefile.boot:	   zreladdr-$(CONFIG_ARCH_H720X) :=
> 0x40008000 arch/arm/mach-shmobile/Makefile.boot:	   zreladdr-y   :=
> $(__ZRELADDR) * __ZRELADDR depends on CONFIG_MEMORY_START
> arch/arm/configs/ap4evb_defconfig:	CONFIG_MEMORY_START=0x40000000 (SH7372)
> arch/arm/configs/g3evm_defconfig:	CONFIG_MEMORY_START=0x50000000 (SH7367)
> arch/arm/configs/g4evm_defconfig:	CONFIG_MEMORY_START=0x40000000 (SH7377)
> 
> arch/arm/mach-at91/Makefile.boot:	   zreladdr-y	:= 0x70008000
> (CONFIG_ARCH_AT91CAP9) arch/arm/mach-at91/Makefile.boot:	   zreladdr-y	
:=
> 0x70008000 (CONFIG_ARCH_AT91SAM9G45) arch/arm/mach-at91/Makefile.boot:	  
> zreladdr-y	:= 0x20008000 (CONFIG_ARCH_AT91)
> arch/arm/mach-davinci/Makefile.boot:	   zreladdr-y	:= 0xc0008000
> (CONFIG_ARCH_DAVINCI_DA8XX) arch/arm/mach-davinci/Makefile.boot:	  
> zreladdr-y	:= 0x80008000 (!CONFIG_ARCH_DAVINCI_DA8XX)
> arch/arm/mach-ep93xx/Makefile.boot:	  
> zreladdr-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET)	:= 0x00008000
> arch/arm/mach-ep93xx/Makefile.boot:	  
> zreladdr-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET)		:= 0xc0008000
> arch/arm/mach-ep93xx/Makefile.boot:	  
> zreladdr-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET)		:= 0xd0008000
> arch/arm/mach-ep93xx/Makefile.boot:	  
> zreladdr-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET)		:= 0xe0008000
> arch/arm/mach-ep93xx/Makefile.boot:	  
> zreladdr-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET)	:= 0xf0008000
> arch/arm/mach-gemini/Makefile.boot:	   zreladdr-y	:= 0x00008000
> (CONFIG_GEMINI_MEM_SWAP) arch/arm/mach-gemini/Makefile.boot:	  
> zreladdr-y	:= 0x10008000 (!CONFIG_GEMINI_MEM_SWAP)
> arch/arm/mach-mx2/Makefile.boot:	   zreladdr-$(CONFIG_MACH_MX21) :=
> 0xC0008000 arch/arm/mach-mx2/Makefile.boot:	  
> zreladdr-$(CONFIG_MACH_MX27) := 0xA0008000
> arch/arm/mach-realview/Makefile.boot:	   zreladdr-y	:= 0x70008000
> (CONFIG_REALVIEW_HIGH_PHYS_OFFSET) arch/arm/mach-realview/Makefile.boot:	 
>  zreladdr-y	:= 0x00008000 (CONFIG_REALVIEW_HIGH_PHYS_OFFSET)
> arch/arm/mach-sa1100/Makefile.boot:	   zreladdr-y	:= 0xc0008000
> arch/arm/mach-sa1100/Makefile.boot:	   zreladdr-$(CONFIG_SA1111) :=
> 0xc0208000
> 
> Machines where ZRELADDR cannot be auto calcuated:
> 
> arch/arm/mach-mx1/Makefile.boot:	   zreladdr-y	:= 0x08008000
> arch/arm/mach-shark/Makefile.boot:	   zreladdr-y	:= 0x08008000
> arch/arm/mach-u300/Makefile.boot:	   zreladdr-y	:= 0x28E08000
> arch/arm/mach-u300/Makefile.boot:	   zreladdr-y	:= 0x48008000
> 
> Signed-off-by: Eric Miao <eric.miao@canonical.com>
> ---
>  arch/arm/Kconfig                  |   63
> +++++++++++++++++++++++++++++++++++++ arch/arm/boot/Makefile            | 
>  10 +++---
>  arch/arm/boot/compressed/Makefile |    4 +-
>  arch/arm/boot/compressed/head.S   |   12 +++++--
>  4 files changed, 79 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index e340193..818f731 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1497,6 +1497,69 @@ config TEXT_OFFSET
>  	  TEXT_OFFSET is the offset of the decompressed kernel image from
>  	  memory start. Currently, it is expected the least significant 16
>  	  bits to be 0x8000, so to leave space for the initial page table.
> +
> +config AUTO_ZRELADDR
> +	bool "Auto calculation of the decompressed kernel image address"
> +	depends on !ZBOOT_ROM && !(ARCH_MX1 || ARCH_SHARK || ARCH_U300)
> +	help
> +	  ZRELADDR is the physical address where the decompressed kernel
> +	  image will be placed. If AUTO_ZRELADDR is selected, the address
> +	  will be determined at run-time by masking the current IP with
> +	  0xf000_0000. This assumes the zImage being placed in the 256MB
> +	  range from the start of memory.
> +
> +config ZRELADDR
> +	hex "Physical address of the decompressed kernel image"
> +	depends on !AUTO_ZRELADDR
> +	default 0x00008000 if ARCH_BCMRING || ARCH_CNS3XXX || ARCH_DOVE ||\
> +			      ARCH_EBSA110 || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR 
||\
> +			      ARCH_IOP13XX || ARCH_IOP33X || ARCH_IXP2000 ||\
> +			      ARCH_IXP23XX || ARCH_IXP4XX || ARCH_KIRKWOOD ||\
> +			      ARCH_KS8695  || ARCH_LOKI || ARCH_MMP || 
ARCH_MV78XX0 ||\
> +			      ARCH_NOMADIK || ARCH_NUC93X || ARCH_NS9XXX ||\
> +			      ARCH_ORION5X || ARCH_SPEAR3XX || ARCH_SPEAR6XX ||\
> +			      ARCH_UX5XX || ARCH_VERSATILE || ARCH_W90X900
> +	default 0x08008000 if ARCH_MX1 || ARCH_SHARK
> +	default 0x10008000 if ARCH_MSM || ARCH_OMAP1 || ARCH_RPC
> +	default 0x20008000 if ARCH_S5P6440 || ARCH_S5P6442 ||\
> +			      ARCH_S5PC100 || ARCH_S5PV210
> +	default 0x30008000 if ARCH_S3C2410 || ARCH_S3C2400 || ARCH_S3C2412 ||\
> +			      ARCH_S3C2416 || ARCH_S3C2440 || ARCH_S3C2443
> +	default 0x40008000 if ARCH_STMP378X || ARCH_STMP37XX || ARCH_SH7372 ||\
> +			      ARCH_SH7377
> +	default 0x50008000 if ARCH_S3C64XX || ARCH_SH7367
> +	default 0x60008000 if ARCH_VEXPRESS
> +	default 0x80008000 if ARCH_MX25 || ARCH_MX3 || ARCH_NETX ||\
> +			      ARCH_OMAP2 || ARCH_PNX4008
> +	default 0x90008000 if ARCH_MX5 || ARCH_MX91231
> +	default 0xa0008000 if ARCH_IOP32X || ARCH_PXA || MACH_MX27
> +	default 0xc0008000 if ARCH_LH7A40X || MACH_MX21
> +	default 0xf0008000 if ARCH_AAEC2000 || ARCH_L7200
> +	default 0xc0028000 if ARCH_CLPS711X
> +	default 0x70008000 if ARCH_AT91 && (ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
> +	default 0x20008000 if ARCH_AT91 && !(ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
> +	default 0xc0008000 if ARCH_DAVINCI && ARCH_DAVINCI_DA8XX
> +	default 0x80008000 if ARCH_DAVINCI && !ARCH_DAVINCI_DA8XX
> +	default 0x00008000 if ARCH_EP93XX && EP93XX_SDCE3_SYNC_PHYS_OFFSET
> +	default 0xc0008000 if ARCH_EP93XX && EP93XX_SDCE0_PHYS_OFFSET
> +	default 0xd0008000 if ARCH_EP93XX && EP93XX_SDCE1_PHYS_OFFSET
> +	default 0xe0008000 if ARCH_EP93XX && EP93XX_SDCE2_PHYS_OFFSET
> +	default 0xf0008000 if ARCH_EP93XX && EP93XX_SDCE3_ASYNC_PHYS_OFFSET
> +	default 0x00008000 if ARCH_GEMINI && GEMINI_MEM_SWAP
> +	default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP
> +	default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET
> +	default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET
> +	default 0xc0208000 if ARCH_SA1100 && SA1111
> +	default 0xc0008000 if ARCH_SA1100 && !SA1111
> +	default 0x30108000 if ARCH_S3C2410 && PM_H1940
> +	default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM
> +	default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM
> +	help
> +	  ZRELADDR is the physical address where the decompressed kernel
> +	  image will be placed. ZRELADDR has to be specified when the
> +	  assumption of AUTO_ZRELADDR is not valid, or when ZBOOT_ROM is
> +	  selected.
> +
>  endmenu
> 

Hi,
what about the PXA based devices, where RAM begins at 0x80000000 ?

Cheers

>  menu "CPU Power Management"
> diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
> index 4a590f4..8cc4669 100644
> --- a/arch/arm/boot/Makefile
> +++ b/arch/arm/boot/Makefile
> @@ -14,18 +14,16 @@
>  MKIMAGE         := $(srctree)/scripts/mkuboot.sh
> 
>  ifneq ($(MACHINE),)
> -include $(srctree)/$(MACHINE)/Makefile.boot
> +-include $(srctree)/$(MACHINE)/Makefile.boot
>  endif
> 
>  # Note: the following conditions must always be true:
> -#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
>  #   PARAMS_PHYS must be within 4MB of ZRELADDR
>  #   INITRD_PHYS must be in RAM
> -ZRELADDR    := $(zreladdr-y)
>  PARAMS_PHYS := $(params_phys-y)
>  INITRD_PHYS := $(initrd_phys-y)
> 
> -export ZRELADDR INITRD_PHYS PARAMS_PHYS
> +export INITRD_PHYS PARAMS_PHYS
> 
>  targets := Image zImage xipImage bootpImage uImage
> 
> @@ -67,7 +65,7 @@ quiet_cmd_uimage = UIMAGE  $@
>  ifeq ($(CONFIG_ZBOOT_ROM),y)
>  $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
>  else
> -$(obj)/uImage: LOADADDR=$(ZRELADDR)
> +$(obj)/uImage: LOADADDR=$(CONFIG_ZRELADDR)
>  endif
> 
>  ifeq ($(CONFIG_THUMB2_KERNEL),y)
> @@ -78,6 +76,8 @@ $(obj)/uImage: STARTADDR=$(LOADADDR)
>  endif
> 
>  $(obj)/uImage:	$(obj)/zImage FORCE
> +	@test "$(CONFIG_AUTO_ZRELADDR)" == "y" ||\
> +	(echo CONFIG_ZRELADDR must be specified for uImage; exit -1)
>  	$(call if_changed,uimage)
>  	@echo '  Image $@ is ready'
> 
> diff --git a/arch/arm/boot/compressed/Makefile
> b/arch/arm/boot/compressed/Makefile index dbd3fe8..45b0f48 100644
> --- a/arch/arm/boot/compressed/Makefile
> +++ b/arch/arm/boot/compressed/Makefile
> @@ -4,6 +4,8 @@
>  # create a compressed vmlinuz image from the original vmlinux
>  #
> 
> +AFLAGS_head.o        := -DTEXT_OFFSET=$(CONFIG_TEXT_OFFSET)
> +
>  HEAD	= head.o
>  OBJS	= misc.o decompress.o
>  FONTC	= $(srctree)/drivers/video/console/font_acorn_8x8.c
> @@ -79,8 +81,6 @@ endif
>  EXTRA_CFLAGS  := -fpic -fno-builtin
>  EXTRA_AFLAGS  := -Wa,-march=all
> 
> -# Supply ZRELADDR to the decompressor via linker symbols.
> -LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
>  ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
>  LDFLAGS_vmlinux += --be8
>  endif
> diff --git a/arch/arm/boot/compressed/head.S
> b/arch/arm/boot/compressed/head.S index 0765990..17d19dc 100644
> --- a/arch/arm/boot/compressed/head.S
> +++ b/arch/arm/boot/compressed/head.S
> @@ -170,9 +170,16 @@ not_angel:
> 
>  		.text
>  		adr	r0, LC0
> - ARM(		ldmia	r0, {r1, r2, r3, r4, r5, r6, r11, ip, sp})
> - THUMB(		ldmia	r0, {r1, r2, r3, r4, r5, r6, r11, ip}	)
> + ARM(		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip, sp})
> + THUMB(		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip}	)
>   THUMB(		ldr	sp, [r0, #32]				)
> +#ifdef CONFIG_AUTO_ZRELADDR
> +		@ determine final kernel image address
> +		and	r4, pc, #0xf0000000
> +		add	r4, r4, #TEXT_OFFSET
> +#else
> +		ldr	r4, =CONFIG_ZRELADDR
> +#endif
>  		subs	r0, r0, r1		@ calculate the delta offset
> 
>  						@ if delta is zero, we are
> @@ -310,7 +317,6 @@ wont_overwrite:	mov	r0, r4
>  LC0:		.word	LC0			@ r1
>  		.word	__bss_start		@ r2
>  		.word	_end			@ r3
> -		.word	zreladdr		@ r4
>  		.word	_start			@ r5
>  		.word	_image_size		@ r6
>  		.word	_got_start		@ r11

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-07 15:12   ` Marek Vasut
@ 2010-06-08  6:12     ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-08  6:12 UTC (permalink / raw)
  To: linux-arm-kernel

> Hi,
> what about the PXA based devices, where RAM begins at 0x80000000 ?
>

I hope at this stage, it's a 1:1 direct mapping from the original zreladdr-y
variables to CONFIG_ZRELADDR.

But yeah, we can make that change some time later based on this.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 2/5] [ARM] Remove unused INITRD_PHYS from arch/arm/boot/compressed
  2010-06-03  7:36 ` [PATCH 2/5] [ARM] Remove unused INITRD_PHYS " Eric Miao
@ 2010-06-10  8:27   ` Uwe Kleine-König
  2010-06-10  9:55     ` Eric Miao
  0 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10  8:27 UTC (permalink / raw)
  To: linux-arm-kernel

Hello,

On Thu, Jun 03, 2010 at 03:36:50PM +0800, Eric Miao wrote:
> From: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> 
> Original patch from Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>.
> 
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> Signed-off-by: Eric Miao <eric.miao@canonical.com>
The patch is OK, but the commit log of my patch was (IMHO) better.
Something like:

Only arch/arm/boot/bootp/init.S uses initrd_phys, so there is no need to
pass it in arch/arm/boot/compressed.

And I would prefer not to have this "Original patch from ..." in the
commit log.  Do you use it because the patch system doesn't offer to
specify the author of a commit?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/5] [ARM] Remove unused PARAMS_PHYS from arch/arm/boot/compressed
  2010-06-03  7:36 ` [PATCH 1/5] [ARM] Remove unused PARAMS_PHYS from arch/arm/boot/compressed Eric Miao
@ 2010-06-10  8:48   ` Uwe Kleine-König
  0 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10  8:48 UTC (permalink / raw)
  To: linux-arm-kernel

Hallo,

On Thu, Jun 03, 2010 at 03:36:49PM +0800, Eric Miao wrote:
> From: Eric Miao <eric.y.miao@gmail.com>
> 
> The only reference in arch/arm/boot/compressed to PARAMS_PHYS is
> params() in head.S, which can be directly converted to the exact
> address as specified by arch/arm/mach-rpc/Makefile.boot.
> 
> Signed-off-by: Eric Miao <eric.miao@canonical.com>
Acked-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

So params_phys-y is only used in arch/arm/boot/bootp.  Is this still
used?  It doesn't check r2 for finding the atag list but only uses
params_phys-y.  So according to Keith's fail-safe method for the removal
of cruft[1] bootp can be deleted.   (Unless I didn't see that the kernel
still finds the atag list at params_phys-y if r2 isn't pointing to the
correct address.)  (OK, if r2 and params_phys-y agree, it could still
work.)

Who cares to fix bootp?  Should we delete it?

Best regards
Uwe

[1] 1. promise that there will be long-term support.
    2. Realize failure.
    3. "Accidentally" break things in the code.
    4. Let a few years go by, and note that nobody has complained about
       the broken features.
    5. Remove the code since it is obviously not being used.

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 3/5] [ARM] Make TEXT_OFFSET a configurable option
  2010-06-03  7:36 ` [PATCH 3/5] [ARM] Make TEXT_OFFSET a configurable option Eric Miao
@ 2010-06-10  8:50   ` Uwe Kleine-König
  2010-06-10  9:45     ` Eric Miao
  0 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10  8:50 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 03, 2010 at 03:36:51PM +0800, Eric Miao wrote:
> From: Eric Miao <eric.y.miao@gmail.com>
> 
> Signed-off-by: Eric Miao <eric.miao@canonical.com>
> ---
>  arch/arm/Kconfig         |   13 +++++++++++++
>  arch/arm/Makefile        |   13 +------------
>  arch/arm/kernel/Makefile |    4 ++--
>  3 files changed, 16 insertions(+), 14 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 1f254bd..e340193 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1484,6 +1484,19 @@ config ATAGS_PROC
>  	  Should the atags used to boot the kernel be exported in an "atags"
>  	  file in procfs. Useful with kexec.
>  
> +config TEXT_OFFSET
> +	hex "Offset of the kernel image from the start of RAM"
IMHO this should not be user configurable.

> +	default 0x00008000
> +	default 0x00028000 if ARCH_CLPS711X
> +	# We don't want the htc bootloader to corrupt kernel during resume
> +	default 0x00108000 if PM_H1940
> +	# SA1111 DMA bug: we don't want the kernel to live in precious
> +	# DMA-able memory
> +	default 0x00208000 if (ARCH_SA1100 && SA1111)
> +	help
> +	  TEXT_OFFSET is the offset of the decompressed kernel image from
> +	  memory start. Currently, it is expected the least significant 16
> +	  bits to be 0x8000, so to leave space for the initial page table.
>  endmenu
>  
>  menu "CPU Power Management"
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 64ba313..df8f73d 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -108,14 +108,6 @@ CHECKFLAGS	+= -D__arm__
>  
>  #Default value
>  head-y		:= arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o
> -textofs-y	:= 0x00008000
> -textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
> -# We don't want the htc bootloader to corrupt kernel during resume
> -textofs-$(CONFIG_PM_H1940)      := 0x00108000
> -# SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory
> -ifeq ($(CONFIG_ARCH_SA1100),y)
> -textofs-$(CONFIG_SA1111) := 0x00208000
> -endif
>  
>  # Machine directory name.  This list is sorted alphanumerically
>  # by CONFIG_* macro name.
> @@ -209,9 +201,6 @@ CFLAGS_3c589_cs.o :=-DISA_SIXTEEN_BIT_PERIPHERAL
>  export CFLAGS_3c589_cs.o
>  endif
>  
> -# The byte offset of the kernel image in RAM from the start of RAM.
> -TEXT_OFFSET := $(textofs-y)
> -
>  # The first directory contains additional information for the boot setup code
>  ifneq ($(machine-y),)
>  MACHINE  := arch/arm/mach-$(word 1,$(machine-y))/
> @@ -228,7 +217,7 @@ else
>  KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs))
>  endif
>  
> -export	TEXT_OFFSET GZFLAGS MMUEXT
> +export	GZFLAGS MMUEXT
>  
>  # Do we have FASTFPE?
>  FASTFPE		:=arch/arm/fastfpe
> diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
> index 26d302c..50a0d7e 100644
> --- a/arch/arm/kernel/Makefile
> +++ b/arch/arm/kernel/Makefile
> @@ -2,8 +2,8 @@
>  # Makefile for the linux kernel.
>  #
>  
> -CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)
> -AFLAGS_head.o        := -DTEXT_OFFSET=$(TEXT_OFFSET)
> +CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(CONFIG_TEXT_OFFSET)
> +AFLAGS_head.o        := -DTEXT_OFFSET=$(CONFIG_TEXT_OFFSET)
Why not use CONFIG_TEXT_OFFSET directly in head.S?
Is CONFIG_TEXT_OFFSET available in vmlinux.lds?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-03  7:36 ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Eric Miao
  2010-06-07  8:51   ` Tony Lindgren
  2010-06-07 15:12   ` Marek Vasut
@ 2010-06-10  9:00   ` Uwe Kleine-König
  2010-06-10  9:16     ` Russell King - ARM Linux
                       ` (2 more replies)
  2010-06-10 22:17   ` Linus Walleij
                     ` (2 subsequent siblings)
  5 siblings, 3 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10  9:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 03, 2010 at 03:36:52PM +0800, Eric Miao wrote:
> From: Eric Miao <eric.y.miao@gmail.com>
> 
> Original idea and prototype came from Nicolas Pitre.
> 
> As long as the zImage is placed within the 256MB range from the
> start of the memory, ZRELADDR (Address where the decompressed
> kernel will be placed, usually  == PHYS_OFFSET + TEXT_OFFSET)
s/  / /

> can be determined at run-time by masking PC with 0xf000_0000.
> 
> Running through all the Makefile.boot, all those zreladdr-y
> address == 0x[0-f]000_0000 + TEXT_OFFSET can be determined at
> run-time.
> 
> Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
> CONFIG_ZRELADDR _must_ be explicitly specified if:
> 
>  - ((zreladdr-y - TEXT_OFFSET) & ~0xf0000000) != 0, which means
>    a maksing of PC with 0xf000_0000 will result an incorrect
s/maksing of/masking/ (note: there are 2 changes)

>    address.
> 
>  - or the assumption of the zImage being loaded by the boot
>    loader within 256MB from the start address is simply
>    incorrect
Hmmm, this makes the image depending on the bootloader.  Not that nice.

>  - or when ZBOOT_ROM is used, where the above assumption is
>    normally wrong
So guess based on sp :-)

> List of all Makefile.boot:
> 
> Hardcoded, and can be auto calculated by masking PC with 0xf000_0000:
> 
> arch/arm/mach-cns3xxx/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-dove/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ebsa110/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-footbridge/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-integrator/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-iop13xx/Makefile.boot:	   zreladdr-y   := 0x00008000
> arch/arm/mach-iop33x/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ixp2000/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ixp23xx/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ixp4xx/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-kirkwood/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ks8695/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-loki/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-mmp/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-mv78xx0/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-nomadik/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-nuc93x/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-ns9xxx/Makefile.boot:	   zreladdr-y	:= 0x8000
> arch/arm/mach-orion5x/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-spear3xx/Makefile.boot:      zreladdr-y	:= 0x00008000
> arch/arm/mach-spear6xx/Makefile.boot:      zreladdr-y	:= 0x00008000
> arch/arm/mach-ux500/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-versatile/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-w90x900/Makefile.boot:	   zreladdr-y	:= 0x00008000
> arch/arm/mach-msm/Makefile.boot:	   zreladdr-y	:= 0x10008000
> arch/arm/mach-omap1/Makefile.boot:	   zreladdr-y	:= 0x10008000
> arch/arm/mach-rpc/Makefile.boot:	   zreladdr-y	:= 0x10008000
> arch/arm/mach-s5p6440/Makefile.boot:	   zreladdr-y	:= 0x20008000
> arch/arm/mach-s5p6442/Makefile.boot:	   zreladdr-y	:= 0x20008000
> arch/arm/mach-s5pc100/Makefile.boot:	   zreladdr-y	:= 0x20008000
> arch/arm/mach-s5pv210/Makefile.boot:	   zreladdr-y	:= 0x20008000
> arch/arm/mach-s3c2410/Makefile.boot:	   zreladdr-y	:= 0x30008000
> arch/arm/mach-s3c2410/Makefile.boot:	   zreladdr-y	:= 0x30108000
> arch/arm/mach-stmp378x/Makefile.boot:	   zreladdr-y	:= 0x40008000
> arch/arm/mach-stmp37xx/Makefile.boot:	   zreladdr-y	:= 0x40008000
> arch/arm/mach-s3c64xx/Makefile.boot:	   zreladdr-y	:= 0x50008000
> arch/arm/mach-vexpress/Makefile.boot:	   zreladdr-y	:= 0x60008000
> arch/arm/mach-mx25/Makefile.boot:	   zreladdr-y	:= 0x80008000
> arch/arm/mach-mx3/Makefile.boot:	   zreladdr-y	:= 0x80008000
> arch/arm/mach-netx/Makefile.boot:	   zreladdr-y	:= 0x80008000
> arch/arm/mach-omap2/Makefile.boot:	   zreladdr-y	:= 0x80008000
> arch/arm/mach-pnx4008/Makefile.boot:	   zreladdr-y	:= 0x80008000
> arch/arm/mach-mx5/Makefile.boot:	   zreladdr-y	:= 0x90008000
> arch/arm/mach-mxc91231/Makefile.boot:	   zreladdr-y	:= 0x90008000
> arch/arm/mach-iop32x/Makefile.boot:	   zreladdr-y	:= 0xa0008000
> arch/arm/mach-pxa/Makefile.boot:	   zreladdr-y	:= 0xa0008000
> arch/arm/mach-lh7a40x/Makefile.boot:	   zreladdr-y	:= 0xc0008000
> arch/arm/mach-clps711x/Makefile.boot:	   zreladdr-y	:= 0xc0028000
> arch/arm/mach-aaec2000/Makefile.boot:	   zreladdr-y	:= 0xf0008000
> arch/arm/mach-l7200/Makefile.boot:	   zreladdr-y	:= 0xf0008000
> 
> Depends on other options/macros, but still can be auto calculated by
> masking PC with 0xf000_0000:
> 
> arch/arm/mach-bcmring/Makefile.boot:	   zreladdr-y   := $(CONFIG_BCM_ZRELADDR)
> * refer to arch/arm/configs/bcmring_defconfig:CONFIG_BCM_ZRELADDR=0x8000
> arch/arm/mach-h720x/Makefile.boot:	   zreladdr-$(CONFIG_ARCH_H720X) := 0x40008000
> arch/arm/mach-shmobile/Makefile.boot:	   zreladdr-y   := $(__ZRELADDR)
> * __ZRELADDR depends on CONFIG_MEMORY_START
> arch/arm/configs/ap4evb_defconfig:	CONFIG_MEMORY_START=0x40000000 (SH7372)
> arch/arm/configs/g3evm_defconfig:	CONFIG_MEMORY_START=0x50000000 (SH7367)
> arch/arm/configs/g4evm_defconfig:	CONFIG_MEMORY_START=0x40000000 (SH7377)
> 
> arch/arm/mach-at91/Makefile.boot:	   zreladdr-y	:= 0x70008000 (CONFIG_ARCH_AT91CAP9)
> arch/arm/mach-at91/Makefile.boot:	   zreladdr-y	:= 0x70008000 (CONFIG_ARCH_AT91SAM9G45)
> arch/arm/mach-at91/Makefile.boot:	   zreladdr-y	:= 0x20008000 (CONFIG_ARCH_AT91)
> arch/arm/mach-davinci/Makefile.boot:	   zreladdr-y	:= 0xc0008000 (CONFIG_ARCH_DAVINCI_DA8XX)
> arch/arm/mach-davinci/Makefile.boot:	   zreladdr-y	:= 0x80008000 (!CONFIG_ARCH_DAVINCI_DA8XX)
> arch/arm/mach-ep93xx/Makefile.boot:	   zreladdr-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET)	:= 0x00008000
> arch/arm/mach-ep93xx/Makefile.boot:	   zreladdr-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET)		:= 0xc0008000
> arch/arm/mach-ep93xx/Makefile.boot:	   zreladdr-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET)		:= 0xd0008000
> arch/arm/mach-ep93xx/Makefile.boot:	   zreladdr-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET)		:= 0xe0008000
> arch/arm/mach-ep93xx/Makefile.boot:	   zreladdr-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET)	:= 0xf0008000
> arch/arm/mach-gemini/Makefile.boot:	   zreladdr-y	:= 0x00008000 (CONFIG_GEMINI_MEM_SWAP)
> arch/arm/mach-gemini/Makefile.boot:	   zreladdr-y	:= 0x10008000 (!CONFIG_GEMINI_MEM_SWAP)
> arch/arm/mach-mx2/Makefile.boot:	   zreladdr-$(CONFIG_MACH_MX21) := 0xC0008000
> arch/arm/mach-mx2/Makefile.boot:	   zreladdr-$(CONFIG_MACH_MX27) := 0xA0008000
> arch/arm/mach-realview/Makefile.boot:	   zreladdr-y	:= 0x70008000 (CONFIG_REALVIEW_HIGH_PHYS_OFFSET)
> arch/arm/mach-realview/Makefile.boot:	   zreladdr-y	:= 0x00008000 (CONFIG_REALVIEW_HIGH_PHYS_OFFSET)
> arch/arm/mach-sa1100/Makefile.boot:	   zreladdr-y	:= 0xc0008000
> arch/arm/mach-sa1100/Makefile.boot:	   zreladdr-$(CONFIG_SA1111) := 0xc0208000
> 
> Machines where ZRELADDR cannot be auto calcuated:
> 
> arch/arm/mach-mx1/Makefile.boot:	   zreladdr-y	:= 0x08008000
> arch/arm/mach-shark/Makefile.boot:	   zreladdr-y	:= 0x08008000
> arch/arm/mach-u300/Makefile.boot:	   zreladdr-y	:= 0x28E08000
> arch/arm/mach-u300/Makefile.boot:	   zreladdr-y	:= 0x48008000
I care about mx1, so I would prefer using 0xf8000000.

What do you think about requiring r4 to be set to physoffset as I did in
my series?  This way zImage would already know PHYSOFFSET and so didn't
need to guess ZRELADDR.  OK, until most bootloaders are fixed we need
to guess, too.  But at least this would provide a way to stop guessing
wrong for the affected platforms.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 5/5] [ARM] Move inclusion of Makefile.boot into arch/arm/boot/bootp
  2010-06-03  7:36 ` [PATCH 5/5] [ARM] Move inclusion of Makefile.boot into arch/arm/boot/bootp Eric Miao
@ 2010-06-10  9:01   ` Uwe Kleine-König
  0 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10  9:01 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 03, 2010 at 03:36:53PM +0800, Eric Miao wrote:
> From: Eric Miao <eric.y.miao@gmail.com>
> 
> Since zreladdr-y, params_phys-y and initrd_phys-y are no longer
> used in arch/arm/boot/compressed, move the inclusion into bootp/.
> 
> Now unless you are building for an bootpImage, no per machine
> class Makefile.boot needs to be included.
> 
> Signed-off-by: Eric Miao <eric.miao@canonical.com>
Acked-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
>  arch/arm/boot/Makefile       |   21 +--------------------
>  arch/arm/boot/bootp/Makefile |   19 ++++++++++++++++++-
>  2 files changed, 19 insertions(+), 21 deletions(-)
> 
> diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
> index 8cc4669..5e1b5f4 100644
> --- a/arch/arm/boot/Makefile
> +++ b/arch/arm/boot/Makefile
> @@ -13,18 +13,6 @@
>  
>  MKIMAGE         := $(srctree)/scripts/mkuboot.sh
>  
> -ifneq ($(MACHINE),)
> --include $(srctree)/$(MACHINE)/Makefile.boot
> -endif
> -
> -# Note: the following conditions must always be true:
> -#   PARAMS_PHYS must be within 4MB of ZRELADDR
> -#   INITRD_PHYS must be in RAM
> -PARAMS_PHYS := $(params_phys-y)
> -INITRD_PHYS := $(initrd_phys-y)
> -
> -export INITRD_PHYS PARAMS_PHYS
> -
>  targets := Image zImage xipImage bootpImage uImage
>  
>  ifeq ($(CONFIG_XIP_KERNEL),y)
> @@ -81,7 +69,7 @@ $(obj)/uImage:	$(obj)/zImage FORCE
>  	$(call if_changed,uimage)
>  	@echo '  Image $@ is ready'
>  
> -$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
> +$(obj)/bootp/bootp: $(obj)/zImage FORCE
>  	$(Q)$(MAKE) $(build)=$(obj)/bootp $@
>  	@:
>  
> @@ -89,13 +77,6 @@ $(obj)/bootpImage: $(obj)/bootp/bootp FORCE
>  	$(call if_changed,objcopy)
>  	@echo '  Kernel: $@ is ready'
>  
> -PHONY += initrd FORCE
> -initrd:
> -	@test "$(INITRD_PHYS)" != "" || \
> -	(echo This machine does not support INITRD; exit -1)
> -	@test "$(INITRD)" != "" || \
> -	(echo You must specify INITRD; exit -1)
> -
>  install: $(obj)/Image
>  	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
>  	$(obj)/Image System.map "$(INSTALL_PATH)"
> diff --git a/arch/arm/boot/bootp/Makefile b/arch/arm/boot/bootp/Makefile
> index c394e30..4b32d92 100644
> --- a/arch/arm/boot/bootp/Makefile
> +++ b/arch/arm/boot/bootp/Makefile
> @@ -5,6 +5,16 @@
>  # architecture-specific flags and dependencies.
>  #
>  
> +ifneq ($(MACHINE),)
> +-include $(srctree)/$(MACHINE)/Makefile.boot
> +endif
> +
> +# Note: the following conditions must always be true:
> +#   PARAMS_PHYS must be within 4MB of ZRELADDR
> +#   INITRD_PHYS must be in RAM
> +PARAMS_PHYS := $(params_phys-y)
> +INITRD_PHYS := $(initrd_phys-y)
> +
>  LDFLAGS_bootp	:=-p --no-undefined -X \
>  		 --defsym initrd_phys=$(INITRD_PHYS) \
>  		 --defsym params_phys=$(PARAMS_PHYS) -T
> @@ -17,11 +27,18 @@ $(obj)/bootp:	$(src)/bootp.lds $(addprefix $(obj)/,init.o kernel.o initrd.o) FOR
>  	$(call if_changed,ld)
>  	@:
>  
> +PHONY += initrd FORCE
> +initrd:
> +	@test "$(INITRD_PHYS)" != "" || \
> +	(echo This machine does not support INITRD; exit -1)
> +	@test "$(INITRD)" != "" || \
> +	(echo You must specify INITRD; exit -1)
> +
>  # kernel.o and initrd.o includes a binary image using
>  # .incbin, a dependency which is not tracked automatically
>  
>  $(obj)/kernel.o: arch/arm/boot/zImage FORCE
>  
> -$(obj)/initrd.o: $(INITRD) FORCE
> +$(obj)/initrd.o: $(INITRD) initrd FORCE
>  
>  PHONY += $(INITRD) FORCE
> -- 
> 1.7.0.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10  9:00   ` Uwe Kleine-König
@ 2010-06-10  9:16     ` Russell King - ARM Linux
  2010-06-10  9:35       ` Uwe Kleine-König
  2010-06-10  9:38       ` Eric Miao
  2010-06-10  9:18     ` Eric Miao
  2010-06-10 18:40     ` Nicolas Pitre
  2 siblings, 2 replies; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-06-10  9:16 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 10, 2010 at 11:00:15AM +0200, Uwe Kleine-K?nig wrote:
> What do you think about requiring r4 to be set to physoffset as I did in
> my series?  This way zImage would already know PHYSOFFSET and so didn't
> need to guess ZRELADDR.  OK, until most bootloaders are fixed we need
> to guess, too.  But at least this would provide a way to stop guessing
> wrong for the affected platforms.

That means it won't get implemented.  Look at the facts.  It's taken
_years_ (5+ years) for boot loaders to start passing a value in r1.
We then switched to the ATAG stuff, and it's again taking years for
boot loaders to start passing right ATAG stuff - and most of them don't
get it right.  Eg, lots of uboot are happy to print out the memory
information on the terminal as they start up, but don't pass memory
information to the kernel.

So if we want phys offset in r4, we better realise that it'll take
something like five years of nagging to get it in place, and even then
people will continue to use boot loaders which don't have support.
And if it's only necessary for a handful of platforms, I doubt anyone's
really going to bother - or even validate that r4 is correct.

You have a whole set of other problems - how do you cope with existing
boot loaders which happen to call the kernel with a value in r4 which
_could_ potentially be valid, but should not be used?  At the moment,
r4 could contain _any_ value what so ever.

Let's face it - advertising that "the kernel will eventually start using
r4" doesn't solve the problem either - we did that with the ATAG list
and we know the results from that.

Maybe the right experiment to try this time - if we want r4 to contain
a value - is to say that kernel 2.6.37 will require a value in r4, and
won't boot without it, and will therefore be incompatible with old
boot loaders.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10  9:00   ` Uwe Kleine-König
  2010-06-10  9:16     ` Russell King - ARM Linux
@ 2010-06-10  9:18     ` Eric Miao
  2010-06-10  9:58       ` Uwe Kleine-König
  2010-06-10 22:23       ` Linus Walleij
  2010-06-10 18:40     ` Nicolas Pitre
  2 siblings, 2 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-10  9:18 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> On Thu, Jun 03, 2010 at 03:36:52PM +0800, Eric Miao wrote:
>> From: Eric Miao <eric.y.miao@gmail.com>
>>
>> Original idea and prototype came from Nicolas Pitre.
>>
>> As long as the zImage is placed within the 256MB range from the
>> start of the memory, ZRELADDR (Address where the decompressed
>> kernel will be placed, usually ?== PHYS_OFFSET + TEXT_OFFSET)
> s/ ?/ /
>
>> can be determined at run-time by masking PC with 0xf000_0000.
>>
>> Running through all the Makefile.boot, all those zreladdr-y
>> address == 0x[0-f]000_0000 + TEXT_OFFSET can be determined at
>> run-time.
>>
>> Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
>> CONFIG_ZRELADDR _must_ be explicitly specified if:
>>
>> ?- ((zreladdr-y - TEXT_OFFSET) & ~0xf0000000) != 0, which means
>> ? ?a maksing of PC with 0xf000_0000 will result an incorrect
> s/maksing of/masking/ (note: there are 2 changes)
>
>> ? ?address.
>>
>> ?- or the assumption of the zImage being loaded by the boot
>> ? ?loader within 256MB from the start address is simply
>> ? ?incorrect
> Hmmm, this makes the image depending on the bootloader. ?Not that nice.

Yes, that's a negative side. And that's why I'm still keeping CONFIG_ZRELADDR
instead of guessing all the time, so platforms where this assumption isn't true
have to build their kernel with this option set correctly.

I've actually discussed this with Nicolas and his opinion is this is some
thing we can afford, e.g. in PC/x86 world, there are already a lot restrictions
on kernel placement.

My original idea is to embed the machine_desc() section into zImage itself
and invent a machine_desc.phys_offset field so that both the zImage header
and the kernel itself will be both happy. There are some patches actually
ready for this, and I can submit them just in case anyone is interested.

>
>> ?- or when ZBOOT_ROM is used, where the above assumption is
>> ? ?normally wrong
> So guess based on sp :-)
>
>> List of all Makefile.boot:
>>
>> Hardcoded, and can be auto calculated by masking PC with 0xf000_0000:
>>
>> arch/arm/mach-cns3xxx/Makefile.boot: ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-dove/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x00008000
>> arch/arm/mach-ebsa110/Makefile.boot: ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-footbridge/Makefile.boot: ? ? ? ? ?zreladdr-y ? := 0x00008000
>> arch/arm/mach-integrator/Makefile.boot: ? ? ? ? ?zreladdr-y ? := 0x00008000
>> arch/arm/mach-iop13xx/Makefile.boot: ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-iop33x/Makefile.boot: ? ? ?zreladdr-y ? := 0x00008000
>> arch/arm/mach-ixp2000/Makefile.boot: ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-ixp23xx/Makefile.boot: ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-ixp4xx/Makefile.boot: ? ? ?zreladdr-y ? := 0x00008000
>> arch/arm/mach-kirkwood/Makefile.boot: ? ?zreladdr-y ? := 0x00008000
>> arch/arm/mach-ks8695/Makefile.boot: ? ? ?zreladdr-y ? := 0x00008000
>> arch/arm/mach-loki/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x00008000
>> arch/arm/mach-mmp/Makefile.boot: ? ? ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-mv78xx0/Makefile.boot: ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-nomadik/Makefile.boot: ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-nuc93x/Makefile.boot: ? ? ?zreladdr-y ? := 0x00008000
>> arch/arm/mach-ns9xxx/Makefile.boot: ? ? ?zreladdr-y ? := 0x8000
>> arch/arm/mach-orion5x/Makefile.boot: ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-spear3xx/Makefile.boot: ? ? ?zreladdr-y := 0x00008000
>> arch/arm/mach-spear6xx/Makefile.boot: ? ? ?zreladdr-y := 0x00008000
>> arch/arm/mach-ux500/Makefile.boot: ? ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-versatile/Makefile.boot: ? ? ? ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-w90x900/Makefile.boot: ? ? zreladdr-y ? := 0x00008000
>> arch/arm/mach-msm/Makefile.boot: ? ? ? ? zreladdr-y ? := 0x10008000
>> arch/arm/mach-omap1/Makefile.boot: ? ? ? zreladdr-y ? := 0x10008000
>> arch/arm/mach-rpc/Makefile.boot: ? ? ? ? zreladdr-y ? := 0x10008000
>> arch/arm/mach-s5p6440/Makefile.boot: ? ? zreladdr-y ? := 0x20008000
>> arch/arm/mach-s5p6442/Makefile.boot: ? ? zreladdr-y ? := 0x20008000
>> arch/arm/mach-s5pc100/Makefile.boot: ? ? zreladdr-y ? := 0x20008000
>> arch/arm/mach-s5pv210/Makefile.boot: ? ? zreladdr-y ? := 0x20008000
>> arch/arm/mach-s3c2410/Makefile.boot: ? ? zreladdr-y ? := 0x30008000
>> arch/arm/mach-s3c2410/Makefile.boot: ? ? zreladdr-y ? := 0x30108000
>> arch/arm/mach-stmp378x/Makefile.boot: ? ?zreladdr-y ? := 0x40008000
>> arch/arm/mach-stmp37xx/Makefile.boot: ? ?zreladdr-y ? := 0x40008000
>> arch/arm/mach-s3c64xx/Makefile.boot: ? ? zreladdr-y ? := 0x50008000
>> arch/arm/mach-vexpress/Makefile.boot: ? ?zreladdr-y ? := 0x60008000
>> arch/arm/mach-mx25/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x80008000
>> arch/arm/mach-mx3/Makefile.boot: ? ? ? ? zreladdr-y ? := 0x80008000
>> arch/arm/mach-netx/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x80008000
>> arch/arm/mach-omap2/Makefile.boot: ? ? ? zreladdr-y ? := 0x80008000
>> arch/arm/mach-pnx4008/Makefile.boot: ? ? zreladdr-y ? := 0x80008000
>> arch/arm/mach-mx5/Makefile.boot: ? ? ? ? zreladdr-y ? := 0x90008000
>> arch/arm/mach-mxc91231/Makefile.boot: ? ?zreladdr-y ? := 0x90008000
>> arch/arm/mach-iop32x/Makefile.boot: ? ? ?zreladdr-y ? := 0xa0008000
>> arch/arm/mach-pxa/Makefile.boot: ? ? ? ? zreladdr-y ? := 0xa0008000
>> arch/arm/mach-lh7a40x/Makefile.boot: ? ? zreladdr-y ? := 0xc0008000
>> arch/arm/mach-clps711x/Makefile.boot: ? ?zreladdr-y ? := 0xc0028000
>> arch/arm/mach-aaec2000/Makefile.boot: ? ?zreladdr-y ? := 0xf0008000
>> arch/arm/mach-l7200/Makefile.boot: ? ? ? zreladdr-y ? := 0xf0008000
>>
>> Depends on other options/macros, but still can be auto calculated by
>> masking PC with 0xf000_0000:
>>
>> arch/arm/mach-bcmring/Makefile.boot: ? ? zreladdr-y ? := $(CONFIG_BCM_ZRELADDR)
>> * refer to arch/arm/configs/bcmring_defconfig:CONFIG_BCM_ZRELADDR=0x8000
>> arch/arm/mach-h720x/Makefile.boot: ? ? ? zreladdr-$(CONFIG_ARCH_H720X) := 0x40008000
>> arch/arm/mach-shmobile/Makefile.boot: ? ?zreladdr-y ? := $(__ZRELADDR)
>> * __ZRELADDR depends on CONFIG_MEMORY_START
>> arch/arm/configs/ap4evb_defconfig: ? ?CONFIG_MEMORY_START=0x40000000 (SH7372)
>> arch/arm/configs/g3evm_defconfig: ? ? CONFIG_MEMORY_START=0x50000000 (SH7367)
>> arch/arm/configs/g4evm_defconfig: ? ? CONFIG_MEMORY_START=0x40000000 (SH7377)
>>
>> arch/arm/mach-at91/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x70008000 (CONFIG_ARCH_AT91CAP9)
>> arch/arm/mach-at91/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x70008000 (CONFIG_ARCH_AT91SAM9G45)
>> arch/arm/mach-at91/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x20008000 (CONFIG_ARCH_AT91)
>> arch/arm/mach-davinci/Makefile.boot: ? ? zreladdr-y ? := 0xc0008000 (CONFIG_ARCH_DAVINCI_DA8XX)
>> arch/arm/mach-davinci/Makefile.boot: ? ? zreladdr-y ? := 0x80008000 (!CONFIG_ARCH_DAVINCI_DA8XX)
>> arch/arm/mach-ep93xx/Makefile.boot: ? ? ?zreladdr-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET) ? ? := 0x00008000
>> arch/arm/mach-ep93xx/Makefile.boot: ? ? ?zreladdr-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET) ? ? ? ? ?:= 0xc0008000
>> arch/arm/mach-ep93xx/Makefile.boot: ? ? ?zreladdr-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET) ? ? ? ? ?:= 0xd0008000
>> arch/arm/mach-ep93xx/Makefile.boot: ? ? ?zreladdr-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET) ? ? ? ? ?:= 0xe0008000
>> arch/arm/mach-ep93xx/Makefile.boot: ? ? ?zreladdr-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET) ? ?:= 0xf0008000
>> arch/arm/mach-gemini/Makefile.boot: ? ? ?zreladdr-y ? := 0x00008000 (CONFIG_GEMINI_MEM_SWAP)
>> arch/arm/mach-gemini/Makefile.boot: ? ? ?zreladdr-y ? := 0x10008000 (!CONFIG_GEMINI_MEM_SWAP)
>> arch/arm/mach-mx2/Makefile.boot: ? ? ? ? zreladdr-$(CONFIG_MACH_MX21) := 0xC0008000
>> arch/arm/mach-mx2/Makefile.boot: ? ? ? ? zreladdr-$(CONFIG_MACH_MX27) := 0xA0008000
>> arch/arm/mach-realview/Makefile.boot: ? ?zreladdr-y ? := 0x70008000 (CONFIG_REALVIEW_HIGH_PHYS_OFFSET)
>> arch/arm/mach-realview/Makefile.boot: ? ?zreladdr-y ? := 0x00008000 (CONFIG_REALVIEW_HIGH_PHYS_OFFSET)
>> arch/arm/mach-sa1100/Makefile.boot: ? ? ?zreladdr-y ? := 0xc0008000
>> arch/arm/mach-sa1100/Makefile.boot: ? ? ?zreladdr-$(CONFIG_SA1111) := 0xc0208000
>>
>> Machines where ZRELADDR cannot be auto calcuated:
>>
>> arch/arm/mach-mx1/Makefile.boot: ? ? ? ? zreladdr-y ? := 0x08008000
>> arch/arm/mach-shark/Makefile.boot: ? ? ? zreladdr-y ? := 0x08008000
>> arch/arm/mach-u300/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x28E08000
>> arch/arm/mach-u300/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x48008000
> I care about mx1, so I would prefer using 0xf8000000.

Fair enough actually. And my guess of the u300 architecture is the phys
offset actually starts from 0x2800_0000 or 0x4800_0000 which is also
covered by 0xf800_0000. And I think u300 can actually get rid of those
inconsistent addresses by other means though we all know it might be
suffering from the communication processor side of the memory allocation.

>
> What do you think about requiring r4 to be set to physoffset as I did in
> my series?

My only concern is to impose less restrictions on the boot loaders.
And zImage is only one of the possible headers we may have:

 * vmlinux can actually directly booted into as long as it's placed at the
   right place
 * uImage, with zImage or vmlinux (raw or compressed) encapsulated
 * zImage
 * xipImage
 * bootpImage

I'd really like to separate the guess work into two parts so they don't
have dependencies.

> This way zImage would already know PHYSOFFSET and so didn't
> need to guess ZRELADDR. ?OK, until most bootloaders are fixed we need
> to guess, too. ?But at least this would provide a way to stop guessing
> wrong for the affected platforms.
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10  9:16     ` Russell King - ARM Linux
@ 2010-06-10  9:35       ` Uwe Kleine-König
  2010-06-10  9:38       ` Eric Miao
  1 sibling, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10  9:35 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Russell,

On Thu, Jun 10, 2010 at 10:16:08AM +0100, Russell King - ARM Linux wrote:
> On Thu, Jun 10, 2010 at 11:00:15AM +0200, Uwe Kleine-K?nig wrote:
> > What do you think about requiring r4 to be set to physoffset as I did in
> > my series?  This way zImage would already know PHYSOFFSET and so didn't
> > need to guess ZRELADDR.  OK, until most bootloaders are fixed we need
> > to guess, too.  But at least this would provide a way to stop guessing
> > wrong for the affected platforms.
> 
> That means it won't get implemented.  Look at the facts.  It's taken
> _years_ (5+ years) for boot loaders to start passing a value in r1.
> We then switched to the ATAG stuff, and it's again taking years for
> boot loaders to start passing right ATAG stuff - and most of them don't
> get it right.  Eg, lots of uboot are happy to print out the memory
> information on the terminal as they start up, but don't pass memory
> information to the kernel.
> 
> So if we want phys offset in r4, we better realise that it'll take
> something like five years of nagging to get it in place, and even then
> people will continue to use boot loaders which don't have support.
> And if it's only necessary for a handful of platforms, I doubt anyone's
> really going to bother - or even validate that r4 is correct.
> 
> You have a whole set of other problems - how do you cope with existing
> boot loaders which happen to call the kernel with a value in r4 which
> _could_ potentially be valid, but should not be used?  At the moment,
> r4 could contain _any_ value what so ever.
> 
> Let's face it - advertising that "the kernel will eventually start using
> r4" doesn't solve the problem either - we did that with the ATAG list
> and we know the results from that.
> 
> Maybe the right experiment to try this time - if we want r4 to contain
> a value - is to say that kernel 2.6.37 will require a value in r4, and
> won't boot without it, and will therefore be incompatible with old
> boot loaders.
I agree with you.  Either we need to completly break bootloaders that
don't pass the right value or it should work without new requirements
for most machines.
For the machines that fail to guess correctly IMHO the better approach
is to let the bootloader pass the information instead of letting the
user guess the right value.  Maybe this is because I work for a company
that usually sells support for both bootloader and kernel.  The people
that don't want/cannot to touch their bootloader might have a different
mileage.

And note we could implement both ways (if provided via .config use this
value otherwise use r4 if it looks valid else guess).  If we choose that
all values in r4 look valid we have the needed breakage :-)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10  9:16     ` Russell King - ARM Linux
  2010-06-10  9:35       ` Uwe Kleine-König
@ 2010-06-10  9:38       ` Eric Miao
  2010-06-10  9:43         ` Uwe Kleine-König
  1 sibling, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-10  9:38 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Russell King - ARM Linux <linux@arm.linux.org.uk>:
> On Thu, Jun 10, 2010 at 11:00:15AM +0200, Uwe Kleine-K?nig wrote:
>> What do you think about requiring r4 to be set to physoffset as I did in
>> my series? ?This way zImage would already know PHYSOFFSET and so didn't
>> need to guess ZRELADDR. ?OK, until most bootloaders are fixed we need
>> to guess, too. ?But at least this would provide a way to stop guessing
>> wrong for the affected platforms.
>
> That means it won't get implemented. ?Look at the facts. ?It's taken
> _years_ (5+ years) for boot loaders to start passing a value in r1.
> We then switched to the ATAG stuff, and it's again taking years for
> boot loaders to start passing right ATAG stuff - and most of them don't
> get it right. ?Eg, lots of uboot are happy to print out the memory
> information on the terminal as they start up, but don't pass memory
> information to the kernel.
>
> So if we want phys offset in r4, we better realise that it'll take
> something like five years of nagging to get it in place, and even then
> people will continue to use boot loaders which don't have support.
> And if it's only necessary for a handful of platforms, I doubt anyone's
> really going to bother - or even validate that r4 is correct.
>
> You have a whole set of other problems - how do you cope with existing
> boot loaders which happen to call the kernel with a value in r4 which
> _could_ potentially be valid, but should not be used? ?At the moment,
> r4 could contain _any_ value what so ever.
>
> Let's face it - advertising that "the kernel will eventually start using
> r4" doesn't solve the problem either - we did that with the ATAG list
> and we know the results from that.
>
> Maybe the right experiment to try this time - if we want r4 to contain
> a value - is to say that kernel 2.6.37 will require a value in r4, and
> won't boot without it, and will therefore be incompatible with old
> boot loaders.
>

It might be difficult to guess if it's a correct value in r4 and we might
not need it. We know which boards can be compiled together and
the phys_offset can be guessed and we make a single kernel for them,
otherwise we end up building a specific kernel. Although my observation
is that most platforms can guess phys_offset automatically, but due to
the fact there are so many ARM variants out there, and each is doing
things differently, what we can do now is to provide both choices.

And you reminded me that it might be better if we can make RUNTIME_PHYS_OFFSET
depends on the architecture this is test-proofed, so when the day that

RUNTIME_PHYS_OFFSET
        depends on {ALL_ARCH}

happens we can just simplify the mess a bit.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10  9:38       ` Eric Miao
@ 2010-06-10  9:43         ` Uwe Kleine-König
  2010-06-10  9:47           ` Eric Miao
  0 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10  9:43 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 10, 2010 at 05:38:27PM +0800, Eric Miao wrote:
> 2010/6/10 Russell King - ARM Linux <linux@arm.linux.org.uk>:
> > On Thu, Jun 10, 2010 at 11:00:15AM +0200, Uwe Kleine-K?nig wrote:
> >> What do you think about requiring r4 to be set to physoffset as I did in
> >> my series? ?This way zImage would already know PHYSOFFSET and so didn't
> >> need to guess ZRELADDR. ?OK, until most bootloaders are fixed we need
> >> to guess, too. ?But at least this would provide a way to stop guessing
> >> wrong for the affected platforms.
> >
> > That means it won't get implemented. ?Look at the facts. ?It's taken
> > _years_ (5+ years) for boot loaders to start passing a value in r1.
> > We then switched to the ATAG stuff, and it's again taking years for
> > boot loaders to start passing right ATAG stuff - and most of them don't
> > get it right. ?Eg, lots of uboot are happy to print out the memory
> > information on the terminal as they start up, but don't pass memory
> > information to the kernel.
> >
> > So if we want phys offset in r4, we better realise that it'll take
> > something like five years of nagging to get it in place, and even then
> > people will continue to use boot loaders which don't have support.
> > And if it's only necessary for a handful of platforms, I doubt anyone's
> > really going to bother - or even validate that r4 is correct.
> >
> > You have a whole set of other problems - how do you cope with existing
> > boot loaders which happen to call the kernel with a value in r4 which
> > _could_ potentially be valid, but should not be used? ?At the moment,
> > r4 could contain _any_ value what so ever.
> >
> > Let's face it - advertising that "the kernel will eventually start using
> > r4" doesn't solve the problem either - we did that with the ATAG list
> > and we know the results from that.
> >
> > Maybe the right experiment to try this time - if we want r4 to contain
> > a value - is to say that kernel 2.6.37 will require a value in r4, and
> > won't boot without it, and will therefore be incompatible with old
> > boot loaders.
> >
> 
> It might be difficult to guess if it's a correct value in r4 and we might
> not need it. We know which boards can be compiled together and
> the phys_offset can be guessed and we make a single kernel for them,
> otherwise we end up building a specific kernel. Although my observation
> is that most platforms can guess phys_offset automatically, but due to
> the fact there are so many ARM variants out there, and each is doing
> things differently, what we can do now is to provide both choices.
> 
> And you reminded me that it might be better if we can make RUNTIME_PHYS_OFFSET
> depends on the architecture this is test-proofed, so when the day that
> 
> RUNTIME_PHYS_OFFSET
>         depends on {ALL_ARCH}
I would prefer

	config HAVE_RUNTIME_PHYS_OFFSET
		bool

	config RUNTIME_PHYS_OFFSET
		depens on HAVE_RUNTIME_PHYS_OFFSET

	config ARCH_FOO
		select HAVE_RUNTIME_PHYS_OFFSET

for the usual reasons.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 3/5] [ARM] Make TEXT_OFFSET a configurable option
  2010-06-10  8:50   ` Uwe Kleine-König
@ 2010-06-10  9:45     ` Eric Miao
  2010-06-10 10:00       ` Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-10  9:45 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> On Thu, Jun 03, 2010 at 03:36:51PM +0800, Eric Miao wrote:
>> From: Eric Miao <eric.y.miao@gmail.com>
>>
>> Signed-off-by: Eric Miao <eric.miao@canonical.com>
>> ---
>> ?arch/arm/Kconfig ? ? ? ? | ? 13 +++++++++++++
>> ?arch/arm/Makefile ? ? ? ?| ? 13 +------------
>> ?arch/arm/kernel/Makefile | ? ?4 ++--
>> ?3 files changed, 16 insertions(+), 14 deletions(-)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index 1f254bd..e340193 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -1484,6 +1484,19 @@ config ATAGS_PROC
>> ? ? ? ? Should the atags used to boot the kernel be exported in an "atags"
>> ? ? ? ? file in procfs. Useful with kexec.
>>
>> +config TEXT_OFFSET
>> + ? ? hex "Offset of the kernel image from the start of RAM"
> IMHO this should not be user configurable.
>

That's true. The reason I don't want to keep this in Makefile is the
concern about future change to Makefile (that machine-y could be
composed of all the mach-*), and make it a kernel config option at
least provide a way to fix that by the user interactively.

>>

... snip

>> -CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)
>> -AFLAGS_head.o ? ? ? ?:= -DTEXT_OFFSET=$(TEXT_OFFSET)
>> +CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(CONFIG_TEXT_OFFSET)
>> +AFLAGS_head.o ? ? ? ?:= -DTEXT_OFFSET=$(CONFIG_TEXT_OFFSET)
> Why not use CONFIG_TEXT_OFFSET directly in head.S?
> Is CONFIG_TEXT_OFFSET available in vmlinux.lds?

I think so, and I'm fine to either way.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10  9:43         ` Uwe Kleine-König
@ 2010-06-10  9:47           ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-10  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> On Thu, Jun 10, 2010 at 05:38:27PM +0800, Eric Miao wrote:
>> 2010/6/10 Russell King - ARM Linux <linux@arm.linux.org.uk>:
>> > On Thu, Jun 10, 2010 at 11:00:15AM +0200, Uwe Kleine-K?nig wrote:
>> >> What do you think about requiring r4 to be set to physoffset as I did in
>> >> my series? ?This way zImage would already know PHYSOFFSET and so didn't
>> >> need to guess ZRELADDR. ?OK, until most bootloaders are fixed we need
>> >> to guess, too. ?But at least this would provide a way to stop guessing
>> >> wrong for the affected platforms.
>> >
>> > That means it won't get implemented. ?Look at the facts. ?It's taken
>> > _years_ (5+ years) for boot loaders to start passing a value in r1.
>> > We then switched to the ATAG stuff, and it's again taking years for
>> > boot loaders to start passing right ATAG stuff - and most of them don't
>> > get it right. ?Eg, lots of uboot are happy to print out the memory
>> > information on the terminal as they start up, but don't pass memory
>> > information to the kernel.
>> >
>> > So if we want phys offset in r4, we better realise that it'll take
>> > something like five years of nagging to get it in place, and even then
>> > people will continue to use boot loaders which don't have support.
>> > And if it's only necessary for a handful of platforms, I doubt anyone's
>> > really going to bother - or even validate that r4 is correct.
>> >
>> > You have a whole set of other problems - how do you cope with existing
>> > boot loaders which happen to call the kernel with a value in r4 which
>> > _could_ potentially be valid, but should not be used? ?At the moment,
>> > r4 could contain _any_ value what so ever.
>> >
>> > Let's face it - advertising that "the kernel will eventually start using
>> > r4" doesn't solve the problem either - we did that with the ATAG list
>> > and we know the results from that.
>> >
>> > Maybe the right experiment to try this time - if we want r4 to contain
>> > a value - is to say that kernel 2.6.37 will require a value in r4, and
>> > won't boot without it, and will therefore be incompatible with old
>> > boot loaders.
>> >
>>
>> It might be difficult to guess if it's a correct value in r4 and we might
>> not need it. We know which boards can be compiled together and
>> the phys_offset can be guessed and we make a single kernel for them,
>> otherwise we end up building a specific kernel. Although my observation
>> is that most platforms can guess phys_offset automatically, but due to
>> the fact there are so many ARM variants out there, and each is doing
>> things differently, what we can do now is to provide both choices.
>>
>> And you reminded me that it might be better if we can make RUNTIME_PHYS_OFFSET
>> depends on the architecture this is test-proofed, so when the day that
>>
>> RUNTIME_PHYS_OFFSET
>> ? ? ? ? depends on {ALL_ARCH}
> I would prefer
>
> ? ? ? ?config HAVE_RUNTIME_PHYS_OFFSET
> ? ? ? ? ? ? ? ?bool
>
> ? ? ? ?config RUNTIME_PHYS_OFFSET
> ? ? ? ? ? ? ? ?depens on HAVE_RUNTIME_PHYS_OFFSET
>
> ? ? ? ?config ARCH_FOO
> ? ? ? ? ? ? ? ?select HAVE_RUNTIME_PHYS_OFFSET
>
> for the usual reasons.
>

That's a good way to go.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 2/5] [ARM] Remove unused INITRD_PHYS from arch/arm/boot/compressed
  2010-06-10  8:27   ` Uwe Kleine-König
@ 2010-06-10  9:55     ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-10  9:55 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Hello,
>
> On Thu, Jun 03, 2010 at 03:36:50PM +0800, Eric Miao wrote:
>> From: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
>>
>> Original patch from Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>.
>>
>> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
>> Signed-off-by: Eric Miao <eric.miao@canonical.com>
> The patch is OK, but the commit log of my patch was (IMHO) better.
> Something like:
>
> Only arch/arm/boot/bootp/init.S uses initrd_phys, so there is no need to
> pass it in arch/arm/boot/compressed.
>

OK.

> And I would prefer not to have this "Original patch from ..." in the
> commit log. ?Do you use it because the patch system doesn't offer to
> specify the author of a commit?

It's actually a common practice by many other who I cannot remember.
But yeah, it's there because I need to remind me it's not my patch and
don't get the author wrong :-)

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10  9:18     ` Eric Miao
@ 2010-06-10  9:58       ` Uwe Kleine-König
  2010-06-10 10:20         ` Eric Miao
  2010-06-10 22:23       ` Linus Walleij
  1 sibling, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10  9:58 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Eric,

> > What do you think about requiring r4 to be set to physoffset as I did in
> > my series?
> 
> My only concern is to impose less restrictions on the boot loaders.
While it remains optional without runtime physoffset it's OK if you ask
me.

> And zImage is only one of the possible headers we may have:
> 
>  * vmlinux can actually directly booted into as long as it's placed at the
>    right place
>  * uImage, with zImage or vmlinux (raw or compressed) encapsulated
>  * zImage
>  * xipImage
>  * bootpImage
bootpimage is still used?  In a different thread I suggested to remove
it.
The others are just a wrapped vmlinux that needs to be aware anyhow.
And the wrappers only need to pass r4 additionally to r2 and r3 through.

> I'd really like to separate the guess work into two parts so they don't
> have dependencies.
But zreladdr is always physoffset + textoffset, isn't it?  So you should
use the same guess for both physoffset and zreladdr, no?

And if you do it properly, it should even be possible to reuse the same
code for all locations.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 3/5] [ARM] Make TEXT_OFFSET a configurable option
  2010-06-10  9:45     ` Eric Miao
@ 2010-06-10 10:00       ` Uwe Kleine-König
  0 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 10, 2010 at 05:45:53PM +0800, Eric Miao wrote:
> 2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> > On Thu, Jun 03, 2010 at 03:36:51PM +0800, Eric Miao wrote:
> >> From: Eric Miao <eric.y.miao@gmail.com>
> >>
> >> Signed-off-by: Eric Miao <eric.miao@canonical.com>
> >> ---
> >> ?arch/arm/Kconfig ? ? ? ? | ? 13 +++++++++++++
> >> ?arch/arm/Makefile ? ? ? ?| ? 13 +------------
> >> ?arch/arm/kernel/Makefile | ? ?4 ++--
> >> ?3 files changed, 16 insertions(+), 14 deletions(-)
> >>
> >> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> >> index 1f254bd..e340193 100644
> >> --- a/arch/arm/Kconfig
> >> +++ b/arch/arm/Kconfig
> >> @@ -1484,6 +1484,19 @@ config ATAGS_PROC
> >> ? ? ? ? Should the atags used to boot the kernel be exported in an "atags"
> >> ? ? ? ? file in procfs. Useful with kexec.
> >>
> >> +config TEXT_OFFSET
> >> + ? ? hex "Offset of the kernel image from the start of RAM"
> > IMHO this should not be user configurable.
> >
> 
> That's true. The reason I don't want to keep this in Makefile is the
> concern about future change to Makefile (that machine-y could be
> composed of all the mach-*), and make it a kernel config option at
> least provide a way to fix that by the user interactively.
You can have both, just remove the string after "hex" above.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10  9:58       ` Uwe Kleine-König
@ 2010-06-10 10:20         ` Eric Miao
  2010-06-10 22:06           ` Linus Walleij
  0 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-10 10:20 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Hello Eric,
>
>> > What do you think about requiring r4 to be set to physoffset as I did in
>> > my series?
>>
>> My only concern is to impose less restrictions on the boot loaders.
> While it remains optional without runtime physoffset it's OK if you ask
> me.
>
>> And zImage is only one of the possible headers we may have:
>>
>> ?* vmlinux can actually directly booted into as long as it's placed at the
>> ? ?right place
>> ?* uImage, with zImage or vmlinux (raw or compressed) encapsulated
>> ?* zImage
>> ?* xipImage
>> ?* bootpImage
> bootpimage is still used? ?In a different thread I suggested to remove
> it.
> The others are just a wrapped vmlinux that needs to be aware anyhow.
> And the wrappers only need to pass r4 additionally to r2 and r3 through.
>
>> I'd really like to separate the guess work into two parts so they don't
>> have dependencies.
> But zreladdr is always physoffset + textoffset, isn't it?

I'm not completely sure about the u300 case.

> So you should
> use the same guess for both physoffset and zreladdr, no?

My understanding is that separating guess of phys_offset and zreladdr might
be a smoother migration path at this moment and yes it's a trade off.


> And if you do it properly, it should even be possible to reuse the same
> code for all locations.
>
> Best regards
> Uwe
>
> --
> Pengutronix e.K. ? ? ? ? ? ? ? ? ? ? ? ? ? | Uwe Kleine-K?nig ? ? ? ? ? ?|
> Industrial Linux Solutions ? ? ? ? ? ? ? ? | http://www.pengutronix.de/ ?|
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/10] cleanup in early boot code
  2010-06-03  7:36 [PATCH 0/5] Makefile.boot cleanup Eric Miao
                   ` (6 preceding siblings ...)
  2010-06-03  7:57 ` Uwe Kleine-König
@ 2010-06-10 10:24 ` Uwe Kleine-König
  2010-06-10 10:27   ` [PATCH 01/10] arm/zImage: don't hard code the stack size twice Uwe Kleine-König
                     ` (10 more replies)
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
  8 siblings, 11 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:24 UTC (permalink / raw)
  To: linux-arm-kernel

Hello,

a while ago I sent a few patches that clean up in this area, too, some
of them are orthogonal to Eric's.  I resend them in reply to this mail.

Eric, maybe we can start merging your and my work, at least the bits
that doesn't need further discussion between us?  (i.e. the patches I
acked and hopefully the first few of mine)

Do you irc?  I'm (e.g.) in #armlinux on freenode.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 01/10] arm/zImage: don't hard code the stack size twice
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
@ 2010-06-10 10:27   ` Uwe Kleine-König
  2010-06-10 10:31     ` Eric Miao
  2010-06-10 10:27   ` [PATCH 02/10] arm/zImage: some comments for __armv3_mpu_cache_on Uwe Kleine-König
                     ` (9 subsequent siblings)
  10 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:27 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/head.S |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index c5191b1..390aa92 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -315,7 +315,7 @@ LC0:		.word	LC0			@ r1
 		.word	_image_size		@ r6
 		.word	_got_start		@ r11
 		.word	_got_end		@ ip
-		.word	user_stack+4096		@ sp
+		.word	user_stack_end		@ sp
 LC1:		.word	reloc_end - reloc_start
 		.size	LC0, . - LC0
 
@@ -1070,3 +1070,4 @@ reloc_end:
 		.align
 		.section ".stack", "w"
 user_stack:	.space	4096
+user_stack_end:
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 02/10] arm/zImage: some comments for __armv3_mpu_cache_on
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
  2010-06-10 10:27   ` [PATCH 01/10] arm/zImage: don't hard code the stack size twice Uwe Kleine-König
@ 2010-06-10 10:27   ` Uwe Kleine-König
  2010-06-10 21:36     ` Sergei Shtylyov
  2010-06-16  3:16     ` Eric Miao
  2010-06-10 10:27   ` [PATCH 03/10] arm/zImage: __armv3_mpu_cache_flush: respect should-be-zero specification Uwe Kleine-König
                     ` (8 subsequent siblings)
  10 siblings, 2 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:27 UTC (permalink / raw)
  To: linux-arm-kernel

__armv3_mpu_cache_on seems broken.  As there is noone around who knows
about these machines just keep the code as is but point out the strange
things.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/head.S |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 390aa92..384150b 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -396,12 +396,15 @@ __armv3_mpu_cache_on:
 
 		mov	r0, #0
 		mcr	p15, 0, r0, c7, c0, 0	@ invalidate whole cache v3
+		/* ?? ARMv3 MMU doesn not allow reading the control register, does this really work on ARMv3 MPU? */
 		mrc	p15, 0, r0, c1, c0, 0	@ read control reg
 						@ .... .... .... WC.M
 		orr	r0, r0, #0x000d		@ .... .... .... 11.1
+		/* ?? this overwrites the value constructed above? */
 		mov	r0, #0
 		mcr	p15, 0, r0, c1, c0, 0	@ write control reg
 
+		/* ?? invalidate for the second time? */
 		mcr	p15, 0, r0, c7, c0, 0	@ invalidate whole cache v3
 		mov	pc, lr
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 03/10] arm/zImage: __armv3_mpu_cache_flush: respect should-be-zero specification
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
  2010-06-10 10:27   ` [PATCH 01/10] arm/zImage: don't hard code the stack size twice Uwe Kleine-König
  2010-06-10 10:27   ` [PATCH 02/10] arm/zImage: some comments for __armv3_mpu_cache_on Uwe Kleine-König
@ 2010-06-10 10:27   ` Uwe Kleine-König
  2010-06-11  1:23     ` Eric Miao
  2010-06-10 10:27   ` [PATCH 04/10] arm/zImage: fix comments for cache_on, cache_off and cache_clean_flush Uwe Kleine-König
                     ` (7 subsequent siblings)
  10 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:27 UTC (permalink / raw)
  To: linux-arm-kernel

Probably the register content for cache operations is "don't care" in
practice, but as r1 is explicitly zeroed, use that one.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/head.S |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 384150b..4058294 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -991,7 +991,7 @@ no_cache_id:
 __armv3_mmu_cache_flush:
 __armv3_mpu_cache_flush:
 		mov	r1, #0
-		mcr	p15, 0, r0, c7, c0, 0	@ invalidate whole cache v3
+		mcr	p15, 0, r1, c7, c0, 0	@ invalidate whole cache v3
 		mov	pc, lr
 
 /*
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 04/10] arm/zImage: fix comments for cache_on, cache_off and cache_clean_flush
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
                     ` (2 preceding siblings ...)
  2010-06-10 10:27   ` [PATCH 03/10] arm/zImage: __armv3_mpu_cache_flush: respect should-be-zero specification Uwe Kleine-König
@ 2010-06-10 10:27   ` Uwe Kleine-König
  2010-06-17  9:28     ` Eric Miao
  2010-06-10 10:27   ` [PATCH 05/10] arm/zImage: annotate debug functions about corrupted registers Uwe Kleine-König
                     ` (6 subsequent siblings)
  10 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:27 UTC (permalink / raw)
  To: linux-arm-kernel

This adds missing registers to the list of corrupted registers and
removes a wrong comment about r9 on entry

While at it the formatting of the comment to cache_off is changed to
resemble the other two.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/head.S |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 4058294..f8a210b 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -339,9 +339,8 @@ params:		ldr	r0, =params_phys
  *  r4 = kernel execution address
  *  r7 = architecture number
  *  r8 = atags pointer
- *  r9 = run-time address of "start"  (???)
  * On exit,
- *  r1, r2, r3, r9, r10, r12 corrupted
+ *  r0, r1, r2, r3, r9, r10, r12 corrupted
  * This routine must preserve:
  *  r4, r5, r6, r7, r8
  */
@@ -774,8 +773,10 @@ proc_types:
  * Turn off the Cache and MMU.  ARMv3 does not support
  * reading the control register, but ARMv4 does.
  *
- * On exit, r0, r1, r2, r3, r9, r12 corrupted
- * This routine must preserve: r4, r6, r7
+ * On exit,
+ *  r0, r1, r2, r3, r9, r12 corrupted
+ * This routine must preserve:
+ *  r4, r6, r7
  */
 		.align	5
 cache_off:	mov	r3, #12			@ cache_off function
@@ -848,7 +849,7 @@ __armv3_mmu_cache_off:
  * Clean and flush the cache to maintain consistency.
  *
  * On exit,
- *  r1, r2, r3, r9, r11, r12 corrupted
+ *  r1, r2, r3, r9, r10, r11, r12 corrupted
  * This routine must preserve:
  *  r0, r4, r5, r6, r7
  */
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 05/10] arm/zImage: annotate debug functions about corrupted registers
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
                     ` (3 preceding siblings ...)
  2010-06-10 10:27   ` [PATCH 04/10] arm/zImage: fix comments for cache_on, cache_off and cache_clean_flush Uwe Kleine-König
@ 2010-06-10 10:27   ` Uwe Kleine-König
  2010-06-17  9:37     ` Eric Miao
  2010-06-10 10:27   ` [PATCH 06/10] arm: remove bit-rotten STANDALONE_DEBUG for decompressor Uwe Kleine-König
                     ` (5 subsequent siblings)
  10 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:27 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/head.S |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index f8a210b..dbeeb56 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -1005,6 +1005,7 @@ __armv3_mpu_cache_flush:
 phexbuf:	.space	12
 		.size	phexbuf, . - phexbuf
 
+@ phex corrupts {r0, r1, r2, r3}
 phex:		adr	r3, phexbuf
 		mov	r2, #0
 		strb	r2, [r3, r1]
@@ -1019,6 +1020,7 @@ phex:		adr	r3, phexbuf
 		strb	r2, [r3, r1]
 		b	1b
 
+@ puts corrupts {r0, r1, r2, r3}
 puts:		loadsp	r3, r1
 1:		ldrb	r2, [r0], #1
 		teq	r2, #0
@@ -1033,12 +1035,14 @@ puts:		loadsp	r3, r1
 		teq	r0, #0
 		bne	1b
 		mov	pc, lr
+@ putc corrupts {r0, r1, r2, r3}
 putc:
 		mov	r2, r0
 		mov	r0, #0
 		loadsp	r3, r1
 		b	2b
 
+@ memdump corrupts {r0, r1, r2, r3, r10, r11, r12, lr}
 memdump:	mov	r12, r0
 		mov	r10, lr
 		mov	r11, #0
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 06/10] arm: remove bit-rotten STANDALONE_DEBUG for decompressor
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
                     ` (4 preceding siblings ...)
  2010-06-10 10:27   ` [PATCH 05/10] arm/zImage: annotate debug functions about corrupted registers Uwe Kleine-König
@ 2010-06-10 10:27   ` Uwe Kleine-König
  2010-06-17  9:50     ` Eric Miao
  2010-06-10 10:27   ` [PATCH 07/10] arm/zImage: don't define unused symbol initrd_phys Uwe Kleine-König
                     ` (4 subsequent siblings)
  10 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:27 UTC (permalink / raw)
  To: linux-arm-kernel

I tried to get this running to debug the regression introduced by
e7db7b4 without success.  But this has several problems that make it
hard to fix:

  - lib/decompress_inflate.c includes in-kernel headers that make
    it difficult to compile for user space.
  - the binary formats changed both in kernel and user space and
    at least for the kernel side there isn't only a single
    variant.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/Makefile.debug |   23 -----------------------
 arch/arm/boot/compressed/misc.c         |   20 --------------------
 2 files changed, 0 insertions(+), 43 deletions(-)
 delete mode 100644 arch/arm/boot/compressed/Makefile.debug

diff --git a/arch/arm/boot/compressed/Makefile.debug b/arch/arm/boot/compressed/Makefile.debug
deleted file mode 100644
index 491a037..0000000
--- a/arch/arm/boot/compressed/Makefile.debug
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# linux/arch/arm/boot/compressed/Makefile
-#
-# create a compressed vmlinux image from the original vmlinux
-#
-
-COMPRESSED_EXTRA=../../lib/ll_char_wr.o
-OBJECTS=misc-debug.o ll_char_wr.aout.o
-
-CFLAGS=-D__KERNEL__ -O2 -DSTDC_HEADERS -DSTANDALONE_DEBUG -Wall -I../../../../include -c
-
-test-gzip: piggy.aout.o $(OBJECTS)
-	$(CC) -o $@ $(OBJECTS) piggy.aout.o
-
-misc-debug.o: misc.c
-	$(CC) $(CFLAGS) -o $@ misc.c
-
-piggy.aout.o: piggy.o
-	arm-linuxelf-objcopy --change-leading-char -I elf32-arm -O arm-aout32-linux piggy.o piggy.aout.o
-
-ll_char_wr.aout.o: $(COMPRESSED_EXTRA)
-	arm-linuxelf-objcopy --change-leading-char -I elf32-arm -O arm-aout32-linux $(COMPRESSED_EXTRA) ll_char_wr.aout.o
-
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c
index d2b2ef4..e653a6d 100644
--- a/arch/arm/boot/compressed/misc.c
+++ b/arch/arm/boot/compressed/misc.c
@@ -28,9 +28,6 @@ unsigned int __machine_arch_type;
 
 #include <asm/unaligned.h>
 
-#ifdef STANDALONE_DEBUG
-#define putstr printf
-#else
 
 static void putstr(const char *ptr);
 extern void error(char *x);
@@ -116,7 +113,6 @@ static void putstr(const char *ptr)
 	flush();
 }
 
-#endif
 
 void *memcpy(void *__dest, __const void *__src, size_t __n)
 {
@@ -186,7 +182,6 @@ asmlinkage void __div0(void)
 
 extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x));
 
-#ifndef STANDALONE_DEBUG
 
 unsigned long
 decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
@@ -211,18 +206,3 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
 	putstr(" done, booting the kernel.\n");
 	return output_ptr;
 }
-#else
-
-char output_buffer[1500*1024];
-
-int main()
-{
-	output_data = output_buffer;
-
-	putstr("Uncompressing Linux...");
-	decompress(input_data, input_data_end - input_data,
-			NULL, NULL, output_data, NULL, error);
-	putstr("done.\n");
-	return 0;
-}
-#endif
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 07/10] arm/zImage: don't define unused symbol initrd_phys
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
                     ` (5 preceding siblings ...)
  2010-06-10 10:27   ` [PATCH 06/10] arm: remove bit-rotten STANDALONE_DEBUG for decompressor Uwe Kleine-König
@ 2010-06-10 10:27   ` Uwe Kleine-König
  2010-06-17  9:19     ` Eric Miao
  2010-06-10 10:27   ` [PATCH 08/10] arm: deprecate support for old way to pass kernel parameters Uwe Kleine-König
                     ` (3 subsequent siblings)
  10 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:27 UTC (permalink / raw)
  To: linux-arm-kernel

The only user of initrd_phys is arch/arm/boot/bootp/init.S which still
gets the value passed to.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/Makefile |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 53faa90..5419448 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -79,16 +79,13 @@ endif
 EXTRA_CFLAGS  := -fpic -fno-builtin
 EXTRA_AFLAGS  := -Wa,-march=all
 
-# 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.
+# Supply ZRELADDR and PARAMS_PHYS to the decompressor via linker symbols.  We
+# only define params_phys if the machine class defined the corresponding
+# makefile variable.
 LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
 LDFLAGS_vmlinux += --be8
 endif
-ifneq ($(INITRD_PHYS),)
-LDFLAGS_vmlinux += --defsym initrd_phys=$(INITRD_PHYS)
-endif
 ifneq ($(PARAMS_PHYS),)
 LDFLAGS_vmlinux += --defsym params_phys=$(PARAMS_PHYS)
 endif
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 08/10] arm: deprecate support for old way to pass kernel parameters
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
                     ` (6 preceding siblings ...)
  2010-06-10 10:27   ` [PATCH 07/10] arm/zImage: don't define unused symbol initrd_phys Uwe Kleine-König
@ 2010-06-10 10:27   ` Uwe Kleine-König
  2010-06-17  9:58     ` Eric Miao
  2010-06-10 10:27   ` [PATCH 09/10] arm/uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET Uwe Kleine-König
                     ` (2 subsequent siblings)
  10 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:27 UTC (permalink / raw)
  To: linux-arm-kernel

This was deprecated in 2001 and announced to live on for 5 years.

For now provide a kernel parameter for those who still need it.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/Kconfig         |    6 ++++++
 arch/arm/kernel/Makefile |    4 +++-
 arch/arm/kernel/compat.c |    7 -------
 arch/arm/kernel/compat.h |    2 --
 arch/arm/kernel/setup.c  |   11 +++++++++++
 5 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1f254bd..a53ac65 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1374,6 +1374,12 @@ config UACCESS_WITH_MEMCPY
 	  However, if the CPU data cache is using a write-allocate mode,
 	  this option is unlikely to provide any performance gain.
 
+config DEPRECATED_PARAM_STRUCT
+	bool "Provide old way to pass kernel parameters"
+	help
+	  This was deprecated in 2001 and announced to live on for 5 years.
+	  Some old boot loaders still use this way.
+
 endmenu
 
 menu "Boot options"
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index 26d302c..021f72d 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -13,10 +13,12 @@ CFLAGS_REMOVE_return_address.o = -pg
 
 # Object file lists.
 
-obj-y		:= compat.o elf.o entry-armv.o entry-common.o irq.o \
+obj-y		:= elf.o entry-armv.o entry-common.o irq.o \
 		   process.o ptrace.o return_address.o setup.o signal.o \
 		   sys_arm.o stacktrace.o time.o traps.o
 
+obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += compat.o
+
 obj-$(CONFIG_LEDS)		+= leds.o
 obj-$(CONFIG_OC_ETM)		+= etm.o
 
diff --git a/arch/arm/kernel/compat.c b/arch/arm/kernel/compat.c
index 0a13854..9256523 100644
--- a/arch/arm/kernel/compat.c
+++ b/arch/arm/kernel/compat.c
@@ -217,10 +217,3 @@ void __init convert_to_tag_list(struct tag *tags)
 	struct param_struct *params = (struct param_struct *)tags;
 	build_tag_list(params, &params->u2);
 }
-
-void __init squash_mem_tags(struct tag *tag)
-{
-	for (; tag->hdr.size; tag = tag_next(tag))
-		if (tag->hdr.tag == ATAG_MEM)
-			tag->hdr.tag = ATAG_NONE;
-}
diff --git a/arch/arm/kernel/compat.h b/arch/arm/kernel/compat.h
index 27e61a6..39264ab 100644
--- a/arch/arm/kernel/compat.h
+++ b/arch/arm/kernel/compat.h
@@ -9,5 +9,3 @@
 */
 
 extern void convert_to_tag_list(struct tag *tags);
-
-extern void squash_mem_tags(struct tag *tag);
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 122d999..cbc6ddb 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -44,7 +44,9 @@
 #include <asm/traps.h>
 #include <asm/unwind.h>
 
+#if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
 #include "compat.h"
+#endif
 #include "atags.h"
 #include "tcm.h"
 
@@ -663,6 +665,13 @@ static int __init customize_machine(void)
 }
 arch_initcall(customize_machine);
 
+static void __init squash_mem_tags(struct tag *tag)
+{
+	for (; tag->hdr.size; tag = tag_next(tag))
+		if (tag->hdr.tag == ATAG_MEM)
+			tag->hdr.tag = ATAG_NONE;
+}
+
 void __init setup_arch(char **cmdline_p)
 {
 	struct tag *tags = (struct tag *)&init_tags;
@@ -683,12 +692,14 @@ void __init setup_arch(char **cmdline_p)
 	else if (mdesc->boot_params)
 		tags = phys_to_virt(mdesc->boot_params);
 
+#if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
 	/*
 	 * If we have the old style parameters, convert them to
 	 * a tag list.
 	 */
 	if (tags->hdr.tag != ATAG_CORE)
 		convert_to_tag_list(tags);
+#endif
 	if (tags->hdr.tag != ATAG_CORE)
 		tags = (struct tag *)&init_tags;
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 09/10] arm/uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
                     ` (7 preceding siblings ...)
  2010-06-10 10:27   ` [PATCH 08/10] arm: deprecate support for old way to pass kernel parameters Uwe Kleine-König
@ 2010-06-10 10:27   ` Uwe Kleine-König
  2010-06-10 10:27   ` [PATCH 10/10] arm: Allow PHYS_OFFSET to be runtime determined Uwe Kleine-König
  2010-06-10 10:28   ` [PATCH 0/10] cleanup in early boot code Eric Miao
  10 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:27 UTC (permalink / raw)
  To: linux-arm-kernel

the default load address (in the CONFIG_ZBOOT_ROM=n case) is ZRELADDR
which (apart from being a stupid load address for the
RUNTIME_PHYSOFFSET=n case) might not be a valid read/write memory on the
target machine at all.  So require passing a LOADADDR on the command
line.  This obiously makes the uImage more machine dependant than the
zImage.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/Makefile |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index 4a590f4..264dccf 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -64,11 +64,13 @@ quiet_cmd_uimage = UIMAGE  $@
 		   -C none -a $(LOADADDR) -e $(STARTADDR) \
 		   -n 'Linux-$(KERNELRELEASE)' -d $< $@
 
+ifeq ($(CONFIG_RUNTIME_PHYS_OFFSET),)
 ifeq ($(CONFIG_ZBOOT_ROM),y)
 $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
 else
 $(obj)/uImage: LOADADDR=$(ZRELADDR)
 endif
+endif
 
 ifeq ($(CONFIG_THUMB2_KERNEL),y)
 # Set bit 0 to 1 so that "mov pc, rx" switches to Thumb-2 mode
@@ -77,7 +79,9 @@ else
 $(obj)/uImage: STARTADDR=$(LOADADDR)
 endif
 
-$(obj)/uImage:	$(obj)/zImage FORCE
+$(obj)/uImage: $(obj)/zImage FORCE
+	@test -n "$(LOADADDR)" || \
+	(echo "You must specify a load address (i.e. make uImage LOADADDR=0x...)"; exit 1)
 	$(call if_changed,uimage)
 	@echo '  Image $@ is ready'
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 10/10] arm: Allow PHYS_OFFSET to be runtime determined
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
                     ` (8 preceding siblings ...)
  2010-06-10 10:27   ` [PATCH 09/10] arm/uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET Uwe Kleine-König
@ 2010-06-10 10:27   ` Uwe Kleine-König
  2010-06-10 10:28   ` [PATCH 0/10] cleanup in early boot code Eric Miao
  10 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-10 10:27 UTC (permalink / raw)
  To: linux-arm-kernel

This bases on work done earlier by Lennert Buytenhek and Mark A. Greer.
Compared to their approach zreladdr isn't guessed based on the pc
register but the bootloader is expected to pass PHYS_OFFSET in r3.  If
that value doesn't look right (e.g. isn't aligned) it is guessed based
on the value of sp.  This should work for CONFIG_ZBOOT_ROM, too.

To use it for your machine removing the definition of PHYS_OFFSET from
<mach/memory.h> and selecting CONFIG_RUNTIME_PHYS_OFFSET should be
enough.

Cc: Lennert Buytenhek <buytenh@wantstofly.org>
Cc: Steve Chen <schen@mvista.com>
Cc: Mark A. Greer <mgreer@mvista.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
This patch is only included as I forgot to take it out before sending the
initial mail.  But maybe it's not bad to have it in this thread, too.

Best regards
Uwe

 Documentation/arm/Booting         |    1 +
 arch/arm/Kconfig                  |    3 ++
 arch/arm/boot/compressed/Makefile |    1 +
 arch/arm/boot/compressed/head.S   |   50 +++++++++++++++++++++++++++++++++++++
 arch/arm/include/asm/memory.h     |    5 +++
 arch/arm/kernel/head.S            |   31 +++++++++++++++++------
 arch/arm/kernel/setup.c           |   10 ++++++-
 7 files changed, 92 insertions(+), 9 deletions(-)

diff --git a/Documentation/arm/Booting b/Documentation/arm/Booting
index 7685029..ec228a4 100644
--- a/Documentation/arm/Booting
+++ b/Documentation/arm/Booting
@@ -126,6 +126,7 @@ In either case, the following conditions must be met:
   r0 = 0,
   r1 = machine type number discovered in (3) above.
   r2 = physical address of tagged list in system RAM.
+  r3 = PHYS_OFFSET
 
 - CPU mode
   All forms of interrupts must be disabled (IRQs and FIQs)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a53ac65..7ac29a5 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1374,6 +1374,9 @@ config UACCESS_WITH_MEMCPY
 	  However, if the CPU data cache is using a write-allocate mode,
 	  this option is unlikely to provide any performance gain.
 
+config RUNTIME_PHYS_OFFSET
+	bool
+
 config DEPRECATED_PARAM_STRUCT
 	bool "Provide old way to pass kernel parameters"
 	help
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 5419448..0660a25 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -4,6 +4,7 @@
 # create a compressed vmlinuz image from the original vmlinux
 #
 
+AFLAGS_head.o += -DTEXT_OFFSET=$(TEXT_OFFSET)
 HEAD	= head.o
 OBJS	= misc.o decompress.o
 FONTC	= $(srctree)/drivers/video/console/font_acorn_8x8.c
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index dbeeb56..e066d26 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -120,6 +120,16 @@ wait:		mrc	p14, 0, pc, c0, c1, 0
 #endif
 		.endm
 
+		.macro	debug_passed_physoffset
+#ifdef DEBUG
+		bleq	1f
+		kputc	#'!'
+		kphex	r9, 8
+		kputc	#'\n'
+1:
+#endif
+		.endm
+
 		.section ".start", #alloc, #execinstr
 /*
  * sort out different calling conventions
@@ -137,6 +147,7 @@ start:
 		.word	_edata			@ zImage end address
 1:		mov	r7, r1			@ save architecture ID
 		mov	r8, r2			@ save atags pointer
+		mov	r9, r3			@ save phys_offset
 
 #ifndef __ARM_ARCH_2__
 		/*
@@ -234,6 +245,44 @@ not_relocated:	mov	r0, #0
 		cmp	r2, r3
 		blo	1b
 
+#ifdef CONFIG_RUNTIME_PHYS_OFFSET
+		/*
+		 * assert physoffset passed by bootloader is properly
+		 * 2MiB-aligned, ...
+		 */
+		ldr	r10, =0x001fffff
+
+		tst	r9, r10
+		debug_passed_physoffset
+		tst	r9, r10
+
+		/*
+		 * ... if not guess it based on sp.
+		 * sp & 0xf8000000 should work for most machines.  The needed
+		 * preconditions are:
+		 * - physoffset is aligned to a 128MiB boundary
+		 *   (As of Jan 2010 all but s3c2400, u300 and at91 have it.
+		 *   For the latter it depends on configuration.)
+		 * - sp < physoffset + 128MiB (which is definitely true if you
+		 *   only have 128MiB of RAM or less)
+		 */
+		andne	r9, sp, #0xf8000000
+
+#ifdef DEBUG
+		kputc	#'P'
+		kphex	r9, 8
+		kputc	#'\n'
+#endif
+
+		add	r4, r9, #TEXT_OFFSET
+#else /* ifdef CONFIG_RUNTIME_PHYS_OFFSET */
+		/* warn on r4(ZRELADDR) != r9 + TEXT_OFFSET */
+		add	r10, r9, #TEXT_OFFSET
+		cmp	r10, r4
+		debug_passed_physoffset
+
+#endif /* ifdef CONFIG_RUNTIME_PHYS_OFFSET / else */
+
 		/*
 		 * The C runtime environment should now be setup
 		 * sufficiently.  Turn the cache on, set up some
@@ -570,6 +619,7 @@ call_kernel:	bl	cache_clean_flush
 		mov	r0, #0			@ must be zero
 		mov	r1, r7			@ restore architecture number
 		mov	r2, r8			@ restore atags pointer
+		sub	r3, r4, #TEXT_OFFSET	@ physoffset
 		mov	pc, r4			@ call kernel
 
 /*
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h
index 4312ee5..05a7a3f 100644
--- a/arch/arm/include/asm/memory.h
+++ b/arch/arm/include/asm/memory.h
@@ -24,6 +24,11 @@
  */
 #define UL(x) _AC(x, UL)
 
+#if defined(CONFIG_RUNTIME_PHYS_OFFSET) && !defined(__ASSEMBLY__)
+extern unsigned long phys_offset;
+#define PHYS_OFFSET	phys_offset
+#endif
+
 #ifdef CONFIG_MMU
 
 /*
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index eb62bf9..b173bb6 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -22,12 +22,14 @@
 #include <asm/thread_info.h>
 #include <asm/system.h>
 
+#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
 #if (PHYS_OFFSET & 0x001fffff)
 #error "PHYS_OFFSET must be at an even 2MiB boundary!"
 #endif
+#define KERNEL_RAM_PADDR	(PHYS_OFFSET + TEXT_OFFSET)
+#endif
 
 #define KERNEL_RAM_VADDR	(PAGE_OFFSET + TEXT_OFFSET)
-#define KERNEL_RAM_PADDR	(PHYS_OFFSET + TEXT_OFFSET)
 
 
 /*
@@ -44,8 +46,8 @@
 	.globl	swapper_pg_dir
 	.equ	swapper_pg_dir, KERNEL_RAM_VADDR - 0x4000
 
-	.macro	pgtbl, rd
-	ldr	\rd, =(KERNEL_RAM_PADDR - 0x4000)
+	.macro	pgtbl, rd, phys_offset
+	add	\rd, \phys_offset, #(TEXT_OFFSET - 0x4000)
 	.endm
 
 #ifdef CONFIG_XIP_KERNEL
@@ -215,9 +217,25 @@ ENDPROC(__turn_mmu_on)
  * Returns:
  *  r0, r3, r6, r7 corrupted
  *  r4 = physical page table address
+ *  r5 = physical start address of (the first bank of) RAM (PHYS_OFFSET)
  */
 __create_page_tables:
-	pgtbl	r4				@ page table address
+#if defined(CONFIG_RUNTIME_PHYS_OFFSET)
+	@ stext is at PHYS_OFFSET + TEXT_OFFSET.  As PHYS_OFFSET has to be
+	@ 2MiB-aligned and assuming that TEXT_OFFSET < 2MiB
+	@ stext & 0xffe00000 yields PHYS_OFFSET
+	adr	r5, stext
+	ldr	r4, =0xffe00000
+	and	r5, r5, r4
+
+	@ save phys_offset
+	ldr	r4, =(phys_offset - PAGE_OFFSET)
+	str	r5, [r4, r5]
+#else
+	ldr	r5, =PHYS_OFFSET
+#endif
+
+	pgtbl	r4, r5				@ r4 = page table address
 
 	/*
 	 * Clear the 16K level 1 swapper page table
@@ -282,10 +300,7 @@ __create_page_tables:
 	 * Then map first 1MB of ram in case it contains our boot params.
 	 */
 	add	r0, r4, #PAGE_OFFSET >> 18
-	orr	r6, r7, #(PHYS_OFFSET & 0xff000000)
-	.if	(PHYS_OFFSET & 0x00f00000)
-	orr	r6, r6, #(PHYS_OFFSET & 0x00f00000)
-	.endif
+	orr	r6, r7, r5
 	str	r6, [r0]
 
 #ifdef CONFIG_DEBUG_LL
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index cbc6ddb..02fe334 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -69,6 +69,12 @@ __setup("fpe=", fpe_setup);
 extern void paging_init(struct machine_desc *desc);
 extern void reboot_setup(char *str);
 
+#if defined(CONFIG_RUNTIME_PHYS_OFFSET)
+/* assign a value to prevent phys_offset from ending in up bss */
+unsigned long phys_offset = 0xdeadbeef;
+EXPORT_SYMBOL(phys_offset);
+#endif
+
 unsigned int processor_id;
 EXPORT_SYMBOL(processor_id);
 unsigned int __machine_arch_type;
@@ -650,7 +656,7 @@ static struct init_tags {
 	{ tag_size(tag_core), ATAG_CORE },
 	{ 1, PAGE_SIZE, 0xff },
 	{ tag_size(tag_mem32), ATAG_MEM },
-	{ MEM_SIZE, PHYS_OFFSET },
+	{ MEM_SIZE, },
 	{ 0, ATAG_NONE }
 };
 
@@ -691,6 +697,8 @@ void __init setup_arch(char **cmdline_p)
 		tags = phys_to_virt(__atags_pointer);
 	else if (mdesc->boot_params)
 		tags = phys_to_virt(mdesc->boot_params);
+	else
+		init_tags.mem.start = PHYS_OFFSET;
 
 #if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
 	/*
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 0/10] cleanup in early boot code
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
                     ` (9 preceding siblings ...)
  2010-06-10 10:27   ` [PATCH 10/10] arm: Allow PHYS_OFFSET to be runtime determined Uwe Kleine-König
@ 2010-06-10 10:28   ` Eric Miao
  10 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-10 10:28 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Hello,
>
> a while ago I sent a few patches that clean up in this area, too, some
> of them are orthogonal to Eric's. ?I resend them in reply to this mail.
>
> Eric, maybe we can start merging your and my work, at least the bits
> that doesn't need further discussion between us? ?(i.e. the patches I
> acked and hopefully the first few of mine)
>
> Do you irc? ?I'm (e.g.) in #armlinux on freenode.

I'm normally ericm or ericm|ubuntu in #ubuntu-arm, sometime, I'll add
#armlinux into my channels to join automatically

>
> Best regards
> Uwe
>
> --
> Pengutronix e.K. ? ? ? ? ? ? ? ? ? ? ? ? ? | Uwe Kleine-K?nig ? ? ? ? ? ?|
> Industrial Linux Solutions ? ? ? ? ? ? ? ? | http://www.pengutronix.de/ ?|
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 01/10] arm/zImage: don't hard code the stack size twice
  2010-06-10 10:27   ` [PATCH 01/10] arm/zImage: don't hard code the stack size twice Uwe Kleine-König
@ 2010-06-10 10:31     ` Eric Miao
  2010-06-10 18:47       ` Nicolas Pitre
  0 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-10 10:31 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
> ?arch/arm/boot/compressed/head.S | ? ?3 ++-
> ?1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
> index c5191b1..390aa92 100644
> --- a/arch/arm/boot/compressed/head.S
> +++ b/arch/arm/boot/compressed/head.S
> @@ -315,7 +315,7 @@ LC0: ? ? ? ? ? ? ? ?.word ? LC0 ? ? ? ? ? ? ? ? ? ? @ r1
> ? ? ? ? ? ? ? ?.word ? _image_size ? ? ? ? ? ? @ r6
> ? ? ? ? ? ? ? ?.word ? _got_start ? ? ? ? ? ? ?@ r11
> ? ? ? ? ? ? ? ?.word ? _got_end ? ? ? ? ? ? ? ?@ ip
> - ? ? ? ? ? ? ? .word ? user_stack+4096 ? ? ? ? @ sp
> + ? ? ? ? ? ? ? .word ? user_stack_end ? ? ? ? ?@ sp
> ?LC1: ? ? ? ? ? .word ? reloc_end - reloc_start
> ? ? ? ? ? ? ? ?.size ? LC0, . - LC0
>
> @@ -1070,3 +1070,4 @@ reloc_end:
> ? ? ? ? ? ? ? ?.align
> ? ? ? ? ? ? ? ?.section ".stack", "w"
> ?user_stack: ? ?.space ?4096
> +user_stack_end:

This one looks OK to me.

Acked-by: Eric Miao <eric.miao@canonical.com>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10  9:00   ` Uwe Kleine-König
  2010-06-10  9:16     ` Russell King - ARM Linux
  2010-06-10  9:18     ` Eric Miao
@ 2010-06-10 18:40     ` Nicolas Pitre
  2 siblings, 0 replies; 138+ messages in thread
From: Nicolas Pitre @ 2010-06-10 18:40 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 10 Jun 2010, Uwe Kleine-K?nig wrote:

> >  - or the assumption of the zImage being loaded by the boot
> >    loader within 256MB from the start address is simply
> >    incorrect
> Hmmm, this makes the image depending on the bootloader.  Not that nice.
> 
> What do you think about requiring r4 to be set to physoffset as I did in
> my series?  This way zImage would already know PHYSOFFSET and so didn't
> need to guess ZRELADDR.

No.  That would make the dependency on the bootloader even _worse_.

And the fact is that most ARM targets have 256MB of RAM or less anyway, 
making this condition pretty hard to miss.  For those very few targets 
out there with more than 256MB of RAM it is rather safe to presume that 
they do load zImage/uImage in the first 256MB of RAM already, and making 
this condition effective for the future is not that bad.  And if you 
*really* can't satisfy that condition which would be really odd, then 
there is still the Kconfig option.

Compared to this, the conditions for the placement of zImage on x86 are 
far more restrictive.  So I much prefer to use generally safe 
assumptions which are compatible with existing bootloaders rather than 
having a new boot requirement for this.


Nicolas

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-06-03  7:57 ` Uwe Kleine-König
@ 2010-06-10 18:44   ` Nicolas Pitre
  2010-06-11  4:55     ` Uwe Kleine-König
  2010-06-17 19:22   ` Nicolas Pitre
  1 sibling, 1 reply; 138+ messages in thread
From: Nicolas Pitre @ 2010-06-10 18:44 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 3 Jun 2010, Uwe Kleine-K?nig wrote:

> Hello Eric,
> 
> On Thu, Jun 03, 2010 at 03:36:48PM +0800, Eric Miao wrote:
> > Several facts:
> > 
> > 1. ZRELADDR in most cases can be auto detected by maksing PC with
> >    0xf000_0000 if the zImage is placed within the first 256MiB from
> >    the memory start, which is a sane assumption except for:
> > 
> >    - when ARCH_MX1 or ARCH_SHARK is defined
> >    - when ARCH_U300 is defined (U300 really is strange when defining
> >      PHYS_OFFSET and ZRELADDR)
> >    - or when ZBOOT_ROM is defined
> If you guess ZRELADDR based on sp instead of pc it even should work if
> ZBOOT_ROM is defined?!

If you're using ZBOOT_ROM that means you want to execute zImage directly 
from ROM.  This is therefore a highly customized configuration.  In that 
context, having a variable phys-offset doesn't make much sense to start 
with.


Nicolas

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 01/10] arm/zImage: don't hard code the stack size twice
  2010-06-10 10:31     ` Eric Miao
@ 2010-06-10 18:47       ` Nicolas Pitre
  0 siblings, 0 replies; 138+ messages in thread
From: Nicolas Pitre @ 2010-06-10 18:47 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 10 Jun 2010, Eric Miao wrote:

> 2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> > Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> > ---
> > ?arch/arm/boot/compressed/head.S | ? ?3 ++-
> > ?1 files changed, 2 insertions(+), 1 deletions(-)
> >
> > diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
> > index c5191b1..390aa92 100644
> > --- a/arch/arm/boot/compressed/head.S
> > +++ b/arch/arm/boot/compressed/head.S
> > @@ -315,7 +315,7 @@ LC0: ? ? ? ? ? ? ? ?.word ? LC0 ? ? ? ? ? ? ? ? ? ? @ r1
> > ? ? ? ? ? ? ? ?.word ? _image_size ? ? ? ? ? ? @ r6
> > ? ? ? ? ? ? ? ?.word ? _got_start ? ? ? ? ? ? ?@ r11
> > ? ? ? ? ? ? ? ?.word ? _got_end ? ? ? ? ? ? ? ?@ ip
> > - ? ? ? ? ? ? ? .word ? user_stack+4096 ? ? ? ? @ sp
> > + ? ? ? ? ? ? ? .word ? user_stack_end ? ? ? ? ?@ sp
> > ?LC1: ? ? ? ? ? .word ? reloc_end - reloc_start
> > ? ? ? ? ? ? ? ?.size ? LC0, . - LC0
> >
> > @@ -1070,3 +1070,4 @@ reloc_end:
> > ? ? ? ? ? ? ? ?.align
> > ? ? ? ? ? ? ? ?.section ".stack", "w"
> > ?user_stack: ? ?.space ?4096
> > +user_stack_end:
> 
> This one looks OK to me.
> 
> Acked-by: Eric Miao <eric.miao@canonical.com>

Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>


Nicolas

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 02/10] arm/zImage: some comments for __armv3_mpu_cache_on
  2010-06-10 10:27   ` [PATCH 02/10] arm/zImage: some comments for __armv3_mpu_cache_on Uwe Kleine-König
@ 2010-06-10 21:36     ` Sergei Shtylyov
  2010-06-16  3:16     ` Eric Miao
  1 sibling, 0 replies; 138+ messages in thread
From: Sergei Shtylyov @ 2010-06-10 21:36 UTC (permalink / raw)
  To: linux-arm-kernel

Hello.

Uwe Kleine-K?nig wrote:

> __armv3_mpu_cache_on seems broken.  As there is noone around who knows
> about these machines just keep the code as is but point out the strange
> things.

> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
>  arch/arm/boot/compressed/head.S |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
> index 390aa92..384150b 100644
> --- a/arch/arm/boot/compressed/head.S
> +++ b/arch/arm/boot/compressed/head.S
> @@ -396,12 +396,15 @@ __armv3_mpu_cache_on:
>  
>  		mov	r0, #0
>  		mcr	p15, 0, r0, c7, c0, 0	@ invalidate whole cache v3
> +		/* ?? ARMv3 MMU doesn not allow reading the control register, does this really work on ARMv3 MPU? */

    Only "does not".

WBR, Sergei

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10 10:20         ` Eric Miao
@ 2010-06-10 22:06           ` Linus Walleij
  0 siblings, 0 replies; 138+ messages in thread
From: Linus Walleij @ 2010-06-10 22:06 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Eric Miao <eric.miao@canonical.com>:
> 2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:

>> But zreladdr is always physoffset + textoffset, isn't it?
>
> I'm not completely sure about the u300 case.

OK as you see in mach-u300/Makefile.boot we have ZRELADDR
at two different locations:

0x28E08000 or 0x48008000

(textoffset is 0x8000 IIRC)

The stuff in mach-u300/include/memory.h play with the Kconfig
options in mach-u300/Kconfig and is supposed to provide
dynamic resize of the memory for the 0x28e08000 variant,
because that variant can actually be reconfigured by the boot loader
(memory will be assigned to another CPU).

Then PHYS_OFFSET is set to the closest 2MiB boundary toward
lower addresses since this is required by ARM Linux.

As you can see in the Kconfig we currently have 13 MiB meaning
PHYS_OFFSET will be
0x28000000 + (13 - 13&1) *1024*1024 = 0x28C00000

This way we comply with the 2MiB alignment requirement,
even though in this case the actual physical memory begins
at 0x28D00000. So the first MiB does not really exist. This is
then compensated for in arch/arm/mm/mmu.c:

        /*
         * U300 - This platform family can share physical memory
         * between two ARM cpus, one running Linux and the other
         * running another OS.
         */
        if (machine_is_u300()) {
#ifdef CONFIG_MACH_U300_SINGLE_RAM
#if ((CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1) == 1) &&    \
        CONFIG_MACH_U300_2MB_ALIGNMENT_FIX
                res_size = 0x00100000;
#endif
#endif
        }

So we reserve the first MiB which is not actually memory, so
that this will not be used, and Linux will actually make use of
the memory from 0x28D00000.

If we had reserved 14MiB instead it would be:
0x28000000 + (14 - 14&1) *1024*1024 = 0x28E00000

And then it would have matched.

The ZRELADDR in Makefile.boot is actually just some
convention for the bootloader, it will work as long as we
shrink the memory used by the other CPU, if we expand it
past 14MiB everything breaks, like for 16 MiB for the other
CPU physical memory begins at 0x29000000 and trying
to have ZRELADDR at 28e08000 will just result in a
bus error.

So the relation between ZRELADDR and PHYS_OFFSET
on the U300 is:

if CONFIG_MACH_U300_SINGLE_RAM
PHYS_OFFSET = 0x28000000 +
  reserved_for_other_cpu_rounded_to_closest_2MiB_lower_addresses
ZRELADDR = 0x28e00000 + textoffset
else
PHYS_OFFSET = 0x48000000
ZRELADDR = 0x48000000 + textoffset
endif

So the assumption holds if
!CONFIG_MACH_U300_SINGLE_RAM

Else it is complicated.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-03  7:36 ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Eric Miao
                     ` (2 preceding siblings ...)
  2010-06-10  9:00   ` Uwe Kleine-König
@ 2010-06-10 22:17   ` Linus Walleij
  2010-06-11  6:37     ` Uwe Kleine-König
  2010-06-11  4:27   ` srinidhi
  2010-09-02 21:21   ` Russell King - ARM Linux
  5 siblings, 1 reply; 138+ messages in thread
From: Linus Walleij @ 2010-06-10 22:17 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/3 Eric Miao <eric.miao@canonical.com>:

> +config ZRELADDR
> + ? ? ? hex "Physical address of the decompressed kernel image"
> + ? ? ? depends on !AUTO_ZRELADDR
> + ? ? ? default 0x00008000 if ARCH_BCMRING || ARCH_CNS3XXX || ARCH_DOVE ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_EBSA110 || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_IOP13XX || ARCH_IOP33X || ARCH_IXP2000 ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_IXP23XX || ARCH_IXP4XX || ARCH_KIRKWOOD ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_KS8695 ?|| ARCH_LOKI || ARCH_MMP || ARCH_MV78XX0 ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_NOMADIK || ARCH_NUC93X || ARCH_NS9XXX ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_ORION5X || ARCH_SPEAR3XX || ARCH_SPEAR6XX ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_UX5XX || ARCH_VERSATILE || ARCH_W90X900
> + ? ? ? default 0x08008000 if ARCH_MX1 || ARCH_SHARK
> + ? ? ? default 0x10008000 if ARCH_MSM || ARCH_OMAP1 || ARCH_RPC
> + ? ? ? default 0x20008000 if ARCH_S5P6440 || ARCH_S5P6442 ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_S5PC100 || ARCH_S5PV210
> + ? ? ? default 0x30008000 if ARCH_S3C2410 || ARCH_S3C2400 || ARCH_S3C2412 ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_S3C2416 || ARCH_S3C2440 || ARCH_S3C2443
> + ? ? ? default 0x40008000 if ARCH_STMP378X || ARCH_STMP37XX || ARCH_SH7372 ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_SH7377
> + ? ? ? default 0x50008000 if ARCH_S3C64XX || ARCH_SH7367
> + ? ? ? default 0x60008000 if ARCH_VEXPRESS
> + ? ? ? default 0x80008000 if ARCH_MX25 || ARCH_MX3 || ARCH_NETX ||\
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARCH_OMAP2 || ARCH_PNX4008
> + ? ? ? default 0x90008000 if ARCH_MX5 || ARCH_MX91231
> + ? ? ? default 0xa0008000 if ARCH_IOP32X || ARCH_PXA || MACH_MX27
> + ? ? ? default 0xc0008000 if ARCH_LH7A40X || MACH_MX21
> + ? ? ? default 0xf0008000 if ARCH_AAEC2000 || ARCH_L7200
> + ? ? ? default 0xc0028000 if ARCH_CLPS711X
> + ? ? ? default 0x70008000 if ARCH_AT91 && (ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
> + ? ? ? default 0x20008000 if ARCH_AT91 && !(ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
> + ? ? ? default 0xc0008000 if ARCH_DAVINCI && ARCH_DAVINCI_DA8XX
> + ? ? ? default 0x80008000 if ARCH_DAVINCI && !ARCH_DAVINCI_DA8XX
> + ? ? ? default 0x00008000 if ARCH_EP93XX && EP93XX_SDCE3_SYNC_PHYS_OFFSET
> + ? ? ? default 0xc0008000 if ARCH_EP93XX && EP93XX_SDCE0_PHYS_OFFSET
> + ? ? ? default 0xd0008000 if ARCH_EP93XX && EP93XX_SDCE1_PHYS_OFFSET
> + ? ? ? default 0xe0008000 if ARCH_EP93XX && EP93XX_SDCE2_PHYS_OFFSET
> + ? ? ? default 0xf0008000 if ARCH_EP93XX && EP93XX_SDCE3_ASYNC_PHYS_OFFSET
> + ? ? ? default 0x00008000 if ARCH_GEMINI && GEMINI_MEM_SWAP
> + ? ? ? default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP
> + ? ? ? default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET
> + ? ? ? default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET
> + ? ? ? default 0xc0208000 if ARCH_SA1100 && SA1111
> + ? ? ? default 0xc0008000 if ARCH_SA1100 && !SA1111
> + ? ? ? default 0x30108000 if ARCH_S3C2410 && PM_H1940
> + ? ? ? default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM
> + ? ? ? default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM

This looks correct so
Acked-by: Linus Walleij <linus.walleij@stericsson.com>

I assume it should be submitted simultaneously with a patch nuking off
all Makefile.boot files and that infrastructure then?

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10  9:18     ` Eric Miao
  2010-06-10  9:58       ` Uwe Kleine-König
@ 2010-06-10 22:23       ` Linus Walleij
  2010-06-11  1:34         ` Eric Miao
  1 sibling, 1 reply; 138+ messages in thread
From: Linus Walleij @ 2010-06-10 22:23 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Eric Miao <eric.miao@canonical.com>:

>>> arch/arm/mach-mx1/Makefile.boot: ? ? ? ? zreladdr-y ? := 0x08008000
>>> arch/arm/mach-shark/Makefile.boot: ? ? ? zreladdr-y ? := 0x08008000
>>> arch/arm/mach-u300/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x28E08000
>>> arch/arm/mach-u300/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x48008000
>> I care about mx1, so I would prefer using 0xf8000000.
>
> Fair enough actually. And my guess of the u300 architecture is the phys
> offset actually starts from 0x2800_0000 or 0x4800_0000 which is also
> covered by 0xf800_0000.

This is correct and incorrect. :-)

In the latter case yes, it is always at 0x48000000

In the other case the physical memory is indeed at 0x28000000 but
the range reserved for the other (ACC) CPU is locked by the boot
loader, and read/write results in a bus error. So this is compile-time
configurable.

It won't be more than a few MiB though, typically 13.

> And I think u300 can actually get rid of those
> inconsistent addresses by other means though we all know it might be
> suffering from the communication processor side of the memory allocation.

Any ideas, I'd be happy to implement them.

Any details you need, just ask.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 03/10] arm/zImage: __armv3_mpu_cache_flush: respect should-be-zero specification
  2010-06-10 10:27   ` [PATCH 03/10] arm/zImage: __armv3_mpu_cache_flush: respect should-be-zero specification Uwe Kleine-König
@ 2010-06-11  1:23     ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-11  1:23 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Probably the register content for cache operations is "don't care" in
> practice, but as r1 is explicitly zeroed, use that one.
>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
> ?arch/arm/boot/compressed/head.S | ? ?2 +-
> ?1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
> index 384150b..4058294 100644
> --- a/arch/arm/boot/compressed/head.S
> +++ b/arch/arm/boot/compressed/head.S
> @@ -991,7 +991,7 @@ no_cache_id:
> ?__armv3_mmu_cache_flush:
> ?__armv3_mpu_cache_flush:
> ? ? ? ? ? ? ? ?mov ? ? r1, #0
> - ? ? ? ? ? ? ? mcr ? ? p15, 0, r0, c7, c0, 0 ? @ invalidate whole cache v3
> + ? ? ? ? ? ? ? mcr ? ? p15, 0, r1, c7, c0, 0 ? @ invalidate whole cache v3
> ? ? ? ? ? ? ? ?mov ? ? pc, lr

And this is at least more consistent with arch/arm/mm/cache-v3.S, so

Acked-by: Eric Miao <eric.miao@canonical.com>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10 22:23       ` Linus Walleij
@ 2010-06-11  1:34         ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-11  1:34 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/11 Linus Walleij <linus.ml.walleij@gmail.com>:
> 2010/6/10 Eric Miao <eric.miao@canonical.com>:
>
>>>> arch/arm/mach-mx1/Makefile.boot: ? ? ? ? zreladdr-y ? := 0x08008000
>>>> arch/arm/mach-shark/Makefile.boot: ? ? ? zreladdr-y ? := 0x08008000
>>>> arch/arm/mach-u300/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x28E08000
>>>> arch/arm/mach-u300/Makefile.boot: ? ? ? ?zreladdr-y ? := 0x48008000
>>> I care about mx1, so I would prefer using 0xf8000000.
>>
>> Fair enough actually. And my guess of the u300 architecture is the phys
>> offset actually starts from 0x2800_0000 or 0x4800_0000 which is also
>> covered by 0xf800_0000.
>
> This is correct and incorrect. :-)
>
> In the latter case yes, it is always at 0x48000000
>
> In the other case the physical memory is indeed at 0x28000000 but
> the range reserved for the other (ACC) CPU is locked by the boot
> loader, and read/write results in a bus error. So this is compile-time
> configurable.
>
> It won't be more than a few MiB though, typically 13.
>
>> And I think u300 can actually get rid of those
>> inconsistent addresses by other means though we all know it might be
>> suffering from the communication processor side of the memory allocation.
>
> Any ideas, I'd be happy to implement them.
>

Is it possible to reserve the memory in machine_desc.fixup? though not
sure about if the memory will ever be accessed in the early stage.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-03  7:36 ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Eric Miao
                     ` (3 preceding siblings ...)
  2010-06-10 22:17   ` Linus Walleij
@ 2010-06-11  4:27   ` srinidhi
  2010-09-02 21:21   ` Russell King - ARM Linux
  5 siblings, 0 replies; 138+ messages in thread
From: srinidhi @ 2010-06-11  4:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 2010-06-03 at 09:36 +0200, Eric Miao wrote:

(...)

> +
> +config ZRELADDR
> +       hex "Physical address of the decompressed kernel image"
> +       depends on !AUTO_ZRELADDR
> +       default 0x00008000 if ARCH_BCMRING || ARCH_CNS3XXX || ARCH_DOVE ||\
> +                             ARCH_EBSA110 || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR ||\
> +                             ARCH_IOP13XX || ARCH_IOP33X || ARCH_IXP2000 ||\
> +                             ARCH_IXP23XX || ARCH_IXP4XX || ARCH_KIRKWOOD ||\
> +                             ARCH_KS8695  || ARCH_LOKI || ARCH_MMP || ARCH_MV78XX0 ||\
> +                             ARCH_NOMADIK || ARCH_NUC93X || ARCH_NS9XXX ||\
> +                             ARCH_ORION5X || ARCH_SPEAR3XX || ARCH_SPEAR6XX ||\
> +                             ARCH_UX5XX || ARCH_VERSATILE || ARCH_W90X900

s/ARCH_UX5XX/ARCH_U8500

Srinidhi

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-06-10 18:44   ` Nicolas Pitre
@ 2010-06-11  4:55     ` Uwe Kleine-König
  0 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-11  4:55 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 10, 2010 at 02:44:53PM -0400, Nicolas Pitre wrote:
> On Thu, 3 Jun 2010, Uwe Kleine-K?nig wrote:
> 
> > Hello Eric,
> > 
> > On Thu, Jun 03, 2010 at 03:36:48PM +0800, Eric Miao wrote:
> > > Several facts:
> > > 
> > > 1. ZRELADDR in most cases can be auto detected by maksing PC with
> > >    0xf000_0000 if the zImage is placed within the first 256MiB from
> > >    the memory start, which is a sane assumption except for:
> > > 
> > >    - when ARCH_MX1 or ARCH_SHARK is defined
> > >    - when ARCH_U300 is defined (U300 really is strange when defining
> > >      PHYS_OFFSET and ZRELADDR)
> > >    - or when ZBOOT_ROM is defined
> > If you guess ZRELADDR based on sp instead of pc it even should work if
> > ZBOOT_ROM is defined?!
> 
> If you're using ZBOOT_ROM that means you want to execute zImage directly 
> from ROM.  This is therefore a highly customized configuration.  In that 
> context, having a variable phys-offset doesn't make much sense to start 
> with.
Right, but then the kernel needs to know this fixed value for
phys-offset.  In the patches presented by Eric the person configuring
the kernel needs to know that value.  When guessing based on sp she
doesn't need to read addional docs when enabling ZBOOT_ROM.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-10 22:17   ` Linus Walleij
@ 2010-06-11  6:37     ` Uwe Kleine-König
  2010-06-17 19:33       ` Russell King - ARM Linux
  0 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-11  6:37 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Linus,

On Fri, Jun 11, 2010 at 12:17:44AM +0200, Linus Walleij wrote:
> I assume it should be submitted simultaneously with a patch nuking off
> all Makefile.boot files and that infrastructure then?
Only when bootp is deleted or fixed not to use these variables.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 02/10] arm/zImage: some comments for __armv3_mpu_cache_on
  2010-06-10 10:27   ` [PATCH 02/10] arm/zImage: some comments for __armv3_mpu_cache_on Uwe Kleine-König
  2010-06-10 21:36     ` Sergei Shtylyov
@ 2010-06-16  3:16     ` Eric Miao
  2010-06-16  9:19       ` Russell King - ARM Linux
  1 sibling, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-16  3:16 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> __armv3_mpu_cache_on seems broken. ?As there is noone around who knows
> about these machines just keep the code as is but point out the strange
> things.
>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
> ?arch/arm/boot/compressed/head.S | ? ?3 +++
> ?1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
> index 390aa92..384150b 100644
> --- a/arch/arm/boot/compressed/head.S
> +++ b/arch/arm/boot/compressed/head.S
> @@ -396,12 +396,15 @@ __armv3_mpu_cache_on:
>
> ? ? ? ? ? ? ? ?mov ? ? r0, #0
> ? ? ? ? ? ? ? ?mcr ? ? p15, 0, r0, c7, c0, 0 ? @ invalidate whole cache v3
> + ? ? ? ? ? ? ? /* ?? ARMv3 MMU doesn not allow reading the control register, does this really work on ARMv3 MPU? */


>From bogus@does.not.exist.com  Sun Jun  6 12:36:48 2010
From: bogus@does.not.exist.com ()
Date: Sun, 06 Jun 2010 16:36:48 -0000
Subject: No subject
Message-ID: <mailman.1.1276658227.27306.linux-arm-kernel@lists.infradead.org>

http://en.wikipedia.org/wiki/ARM_architecture

ARM740T is actually V4T, and reading of control register should be OK.
Although I guess due to historic reason, it's using armv3_* prefix for
the functions?

> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mrc =C2=A0 =C2=A0 =
p15, 0, r0, c1, c0, 0 =C2=A0 @ read control reg
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0@ .... .... .... WC.M
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0orr =C2=A0 =C2=A0 =
r0, r0, #0x000d =C2=A0 =C2=A0 =C2=A0 =C2=A0 @ .... .... .... 11.1
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* ?? this overwrites =
the value constructed above? */
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mov =C2=A0 =C2=A0 =
r0, #0

This does seem to be an error.

> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mcr =C2=A0 =C2=A0 =
p15, 0, r0, c1, c0, 0 =C2=A0 @ write control reg
>
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* ?? invalidate for t=
he second time? */
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mcr =C2=A0 =C2=A0 =
p15, 0, r0, c7, c0, 0 =C2=A0 @ invalidate whole cache v3
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mov =C2=A0 =C2=A0 =
pc, lr
>
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 02/10] arm/zImage: some comments for __armv3_mpu_cache_on
  2010-06-16  3:16     ` Eric Miao
@ 2010-06-16  9:19       ` Russell King - ARM Linux
  0 siblings, 0 replies; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-06-16  9:19 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jun 16, 2010 at 11:16:43AM +0800, Eric Miao wrote:
> > ? ? ? ? ? ? ? ?mrc ? ? p15, 0, r0, c1, c0, 0 ? @ read control reg
> > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?@ .... .... .... WC.M
> > ? ? ? ? ? ? ? ?orr ? ? r0, r0, #0x000d ? ? ? ? @ .... .... .... 11.1
> > + ? ? ? ? ? ? ? /* ?? this overwrites the value constructed above? */
> > ? ? ? ? ? ? ? ?mov ? ? r0, #0
> 
> This does seem to be an error.

If we can't test the removal of that line, we have to assume that the
existing code was tested, and did work.  (It certainly will work, but
slower because the caches would not be on.)  We don't know if removing
this line would cause problems.

I think it's better just to add a comment about it, and leave the code
as-is.

However, if someone has an ARM740T system and can test the removal of
this, then we can remove it.  I suspect that ARM740T systems are rarely
worked on now though - esp. as the whole nommu stuff doesn't seem to
get much attention.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 07/10] arm/zImage: don't define unused symbol initrd_phys
  2010-06-10 10:27   ` [PATCH 07/10] arm/zImage: don't define unused symbol initrd_phys Uwe Kleine-König
@ 2010-06-17  9:19     ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-17  9:19 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> The only user of initrd_phys is arch/arm/boot/bootp/init.S which still
> gets the value passed to.
>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Acked-by: Eric Miao <eric.miao@canonical.com>

> ---
> ?arch/arm/boot/compressed/Makefile | ? ?9 +++------
> ?1 files changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
> index 53faa90..5419448 100644
> --- a/arch/arm/boot/compressed/Makefile
> +++ b/arch/arm/boot/compressed/Makefile
> @@ -79,16 +79,13 @@ endif
> ?EXTRA_CFLAGS ?:= -fpic -fno-builtin
> ?EXTRA_AFLAGS ?:= -Wa,-march=all
>
> -# 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.
> +# Supply ZRELADDR and PARAMS_PHYS to the decompressor via linker symbols. ?We
> +# only define params_phys if the machine class defined the corresponding
> +# makefile variable.
> ?LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
> ?ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
> ?LDFLAGS_vmlinux += --be8
> ?endif
> -ifneq ($(INITRD_PHYS),)
> -LDFLAGS_vmlinux += --defsym initrd_phys=$(INITRD_PHYS)
> -endif
> ?ifneq ($(PARAMS_PHYS),)
> ?LDFLAGS_vmlinux += --defsym params_phys=$(PARAMS_PHYS)
> ?endif
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 04/10] arm/zImage: fix comments for cache_on, cache_off and cache_clean_flush
  2010-06-10 10:27   ` [PATCH 04/10] arm/zImage: fix comments for cache_on, cache_off and cache_clean_flush Uwe Kleine-König
@ 2010-06-17  9:28     ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-17  9:28 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> This adds missing registers to the list of corrupted registers and
> removes a wrong comment about r9 on entry
>
> While at it the formatting of the comment to cache_off is changed to
> resemble the other two.
>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
> ?arch/arm/boot/compressed/head.S | ? 11 ++++++-----
> ?1 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
> index 4058294..f8a210b 100644
> --- a/arch/arm/boot/compressed/head.S
> +++ b/arch/arm/boot/compressed/head.S
> @@ -339,9 +339,8 @@ params: ? ? ? ? ? ? ldr ? ? r0, =params_phys
> ?* ?r4 = kernel execution address
> ?* ?r7 = architecture number
> ?* ?r8 = atags pointer
> - * ?r9 = run-time address of "start" ?(???)

OK. r9 is actually loaded with CPUID at the very first of call_cache_fn,
so I seriously doubt its usage on entrance.

> ?* On exit,
> - * ?r1, r2, r3, r9, r10, r12 corrupted
> + * ?r0, r1, r2, r3, r9, r10, r12 corrupted

OK.

> ?* This routine must preserve:
> ?* ?r4, r5, r6, r7, r8
> ?*/
> @@ -774,8 +773,10 @@ proc_types:
> ?* Turn off the Cache and MMU. ?ARMv3 does not support
> ?* reading the control register, but ARMv4 does.
> ?*
> - * On exit, r0, r1, r2, r3, r9, r12 corrupted
> - * This routine must preserve: r4, r6, r7
> + * On exit,
> + * ?r0, r1, r2, r3, r9, r12 corrupted
> + * This routine must preserve:
> + * ?r4, r6, r7

OK, as talked, this looks to align with other comments in this file.

> ?*/
> ? ? ? ? ? ? ? ?.align ?5
> ?cache_off: ? ? mov ? ? r3, #12 ? ? ? ? ? ? ? ? @ cache_off function
> @@ -848,7 +849,7 @@ __armv3_mmu_cache_off:
> ?* Clean and flush the cache to maintain consistency.
> ?*
> ?* On exit,
> - * ?r1, r2, r3, r9, r11, r12 corrupted
> + * ?r1, r2, r3, r9, r10, r11, r12 corrupted

OK, took another look and r10 is corrupted in __armv7_mmu_cache_flush,
where it's used to hold the ID_MMFR1.

> ?* This routine must preserve:
> ?* ?r0, r4, r5, r6, r7
> ?*/

So,

Acked-by: Eric Miao <eric.miao@canonical.com>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 05/10] arm/zImage: annotate debug functions about corrupted registers
  2010-06-10 10:27   ` [PATCH 05/10] arm/zImage: annotate debug functions about corrupted registers Uwe Kleine-König
@ 2010-06-17  9:37     ` Eric Miao
  2010-06-17  9:49       ` Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-17  9:37 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Not sure if this is absolutely necessary, though.

> ---
> ?arch/arm/boot/compressed/head.S | ? ?4 ++++
> ?1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
> index f8a210b..dbeeb56 100644
> --- a/arch/arm/boot/compressed/head.S
> +++ b/arch/arm/boot/compressed/head.S
> @@ -1005,6 +1005,7 @@ __armv3_mpu_cache_flush:
> ?phexbuf: ? ? ? .space ?12
> ? ? ? ? ? ? ? ?.size ? phexbuf, . - phexbuf
>
> +@ phex corrupts {r0, r1, r2, r3}
> ?phex: ? ? ? ? ?adr ? ? r3, phexbuf
> ? ? ? ? ? ? ? ?mov ? ? r2, #0
> ? ? ? ? ? ? ? ?strb ? ?r2, [r3, r1]
> @@ -1019,6 +1020,7 @@ phex: ? ? ? ? ? ? adr ? ? r3, phexbuf
> ? ? ? ? ? ? ? ?strb ? ?r2, [r3, r1]
> ? ? ? ? ? ? ? ?b ? ? ? 1b
>
> +@ puts corrupts {r0, r1, r2, r3}
> ?puts: ? ? ? ? ?loadsp ?r3, r1
> ?1: ? ? ? ? ? ? ldrb ? ?r2, [r0], #1
> ? ? ? ? ? ? ? ?teq ? ? r2, #0
> @@ -1033,12 +1035,14 @@ puts: ? ? ? ? ? loadsp ?r3, r1
> ? ? ? ? ? ? ? ?teq ? ? r0, #0
> ? ? ? ? ? ? ? ?bne ? ? 1b
> ? ? ? ? ? ? ? ?mov ? ? pc, lr
> +@ putc corrupts {r0, r1, r2, r3}
> ?putc:
> ? ? ? ? ? ? ? ?mov ? ? r2, r0
> ? ? ? ? ? ? ? ?mov ? ? r0, #0
> ? ? ? ? ? ? ? ?loadsp ?r3, r1
> ? ? ? ? ? ? ? ?b ? ? ? 2b
>
> +@ memdump corrupts {r0, r1, r2, r3, r10, r11, r12, lr}
> ?memdump: ? ? ? mov ? ? r12, r0
> ? ? ? ? ? ? ? ?mov ? ? r10, lr
> ? ? ? ? ? ? ? ?mov ? ? r11, #0
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 05/10] arm/zImage: annotate debug functions about corrupted registers
  2010-06-17  9:37     ` Eric Miao
@ 2010-06-17  9:49       ` Uwe Kleine-König
  0 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-06-17  9:49 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 17, 2010 at 05:37:52PM +0800, Eric Miao wrote:
> 2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> > Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> 
> Not sure if this is absolutely necessary, though.
I had to analyze which registers are corrupted to create the last patch
in the series.  I don't have strong feelings but thought to document my
findings.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 06/10] arm: remove bit-rotten STANDALONE_DEBUG for decompressor
  2010-06-10 10:27   ` [PATCH 06/10] arm: remove bit-rotten STANDALONE_DEBUG for decompressor Uwe Kleine-König
@ 2010-06-17  9:50     ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-17  9:50 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> I tried to get this running to debug the regression introduced by
> e7db7b4 without success. ?But this has several problems that make it
> hard to fix:
>
> ?- lib/decompress_inflate.c includes in-kernel headers that make
> ? ?it difficult to compile for user space.
> ?- the binary formats changed both in kernel and user space and
> ? ?at least for the kernel side there isn't only a single
> ? ?variant.
>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

If it's not fixable, my personal feeling is agree with you to remove it.

> ---
> ?arch/arm/boot/compressed/Makefile.debug | ? 23 -----------------------
> ?arch/arm/boot/compressed/misc.c ? ? ? ? | ? 20 --------------------
> ?2 files changed, 0 insertions(+), 43 deletions(-)
> ?delete mode 100644 arch/arm/boot/compressed/Makefile.debug
>
> diff --git a/arch/arm/boot/compressed/Makefile.debug b/arch/arm/boot/compressed/Makefile.debug
> deleted file mode 100644
> index 491a037..0000000
> --- a/arch/arm/boot/compressed/Makefile.debug
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -#
> -# linux/arch/arm/boot/compressed/Makefile
> -#
> -# create a compressed vmlinux image from the original vmlinux
> -#
> -
> -COMPRESSED_EXTRA=../../lib/ll_char_wr.o
> -OBJECTS=misc-debug.o ll_char_wr.aout.o
> -
> -CFLAGS=-D__KERNEL__ -O2 -DSTDC_HEADERS -DSTANDALONE_DEBUG -Wall -I../../../../include -c
> -
> -test-gzip: piggy.aout.o $(OBJECTS)
> - ? ? ? $(CC) -o $@ $(OBJECTS) piggy.aout.o
> -
> -misc-debug.o: misc.c
> - ? ? ? $(CC) $(CFLAGS) -o $@ misc.c
> -
> -piggy.aout.o: piggy.o
> - ? ? ? arm-linuxelf-objcopy --change-leading-char -I elf32-arm -O arm-aout32-linux piggy.o piggy.aout.o
> -
> -ll_char_wr.aout.o: $(COMPRESSED_EXTRA)
> - ? ? ? arm-linuxelf-objcopy --change-leading-char -I elf32-arm -O arm-aout32-linux $(COMPRESSED_EXTRA) ll_char_wr.aout.o
> -
> diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c
> index d2b2ef4..e653a6d 100644
> --- a/arch/arm/boot/compressed/misc.c
> +++ b/arch/arm/boot/compressed/misc.c
> @@ -28,9 +28,6 @@ unsigned int __machine_arch_type;
>
> ?#include <asm/unaligned.h>
>
> -#ifdef STANDALONE_DEBUG
> -#define putstr printf
> -#else
>
> ?static void putstr(const char *ptr);
> ?extern void error(char *x);
> @@ -116,7 +113,6 @@ static void putstr(const char *ptr)
> ? ? ? ?flush();
> ?}
>
> -#endif
>
> ?void *memcpy(void *__dest, __const void *__src, size_t __n)
> ?{
> @@ -186,7 +182,6 @@ asmlinkage void __div0(void)
>
> ?extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x));
>
> -#ifndef STANDALONE_DEBUG
>
> ?unsigned long
> ?decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
> @@ -211,18 +206,3 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
> ? ? ? ?putstr(" done, booting the kernel.\n");
> ? ? ? ?return output_ptr;
> ?}
> -#else
> -
> -char output_buffer[1500*1024];
> -
> -int main()
> -{
> - ? ? ? output_data = output_buffer;
> -
> - ? ? ? putstr("Uncompressing Linux...");
> - ? ? ? decompress(input_data, input_data_end - input_data,
> - ? ? ? ? ? ? ? ? ? ? ? NULL, NULL, output_data, NULL, error);
> - ? ? ? putstr("done.\n");
> - ? ? ? return 0;
> -}
> -#endif
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 08/10] arm: deprecate support for old way to pass kernel parameters
  2010-06-10 10:27   ` [PATCH 08/10] arm: deprecate support for old way to pass kernel parameters Uwe Kleine-König
@ 2010-06-17  9:58     ` Eric Miao
  2010-06-17 23:00       ` Russell King - ARM Linux
  0 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-06-17  9:58 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> This was deprecated in 2001 and announced to live on for 5 years.
>
> For now provide a kernel parameter for those who still need it.
>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Looks OK to me, Acked.

BTW, is there any existing usage of this and can we remove this
completely from now on?

> ---
> ?arch/arm/Kconfig ? ? ? ? | ? ?6 ++++++
> ?arch/arm/kernel/Makefile | ? ?4 +++-
> ?arch/arm/kernel/compat.c | ? ?7 -------
> ?arch/arm/kernel/compat.h | ? ?2 --
> ?arch/arm/kernel/setup.c ?| ? 11 +++++++++++
> ?5 files changed, 20 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 1f254bd..a53ac65 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1374,6 +1374,12 @@ config UACCESS_WITH_MEMCPY
> ? ? ? ? ?However, if the CPU data cache is using a write-allocate mode,
> ? ? ? ? ?this option is unlikely to provide any performance gain.
>
> +config DEPRECATED_PARAM_STRUCT
> + ? ? ? bool "Provide old way to pass kernel parameters"
> + ? ? ? help
> + ? ? ? ? This was deprecated in 2001 and announced to live on for 5 years.
> + ? ? ? ? Some old boot loaders still use this way.
> +
> ?endmenu
>
> ?menu "Boot options"
> diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
> index 26d302c..021f72d 100644
> --- a/arch/arm/kernel/Makefile
> +++ b/arch/arm/kernel/Makefile
> @@ -13,10 +13,12 @@ CFLAGS_REMOVE_return_address.o = -pg
>
> ?# Object file lists.
>
> -obj-y ? ? ? ? ?:= compat.o elf.o entry-armv.o entry-common.o irq.o \
> +obj-y ? ? ? ? ?:= elf.o entry-armv.o entry-common.o irq.o \
> ? ? ? ? ? ? ? ? ? process.o ptrace.o return_address.o setup.o signal.o \
> ? ? ? ? ? ? ? ? ? sys_arm.o stacktrace.o time.o traps.o
>
> +obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += compat.o
> +
> ?obj-$(CONFIG_LEDS) ? ? ? ? ? ? += leds.o
> ?obj-$(CONFIG_OC_ETM) ? ? ? ? ? += etm.o
>
> diff --git a/arch/arm/kernel/compat.c b/arch/arm/kernel/compat.c
> index 0a13854..9256523 100644
> --- a/arch/arm/kernel/compat.c
> +++ b/arch/arm/kernel/compat.c
> @@ -217,10 +217,3 @@ void __init convert_to_tag_list(struct tag *tags)
> ? ? ? ?struct param_struct *params = (struct param_struct *)tags;
> ? ? ? ?build_tag_list(params, &params->u2);
> ?}
> -
> -void __init squash_mem_tags(struct tag *tag)
> -{
> - ? ? ? for (; tag->hdr.size; tag = tag_next(tag))
> - ? ? ? ? ? ? ? if (tag->hdr.tag == ATAG_MEM)
> - ? ? ? ? ? ? ? ? ? ? ? tag->hdr.tag = ATAG_NONE;
> -}
> diff --git a/arch/arm/kernel/compat.h b/arch/arm/kernel/compat.h
> index 27e61a6..39264ab 100644
> --- a/arch/arm/kernel/compat.h
> +++ b/arch/arm/kernel/compat.h
> @@ -9,5 +9,3 @@
> ?*/
>
> ?extern void convert_to_tag_list(struct tag *tags);
> -
> -extern void squash_mem_tags(struct tag *tag);
> diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
> index 122d999..cbc6ddb 100644
> --- a/arch/arm/kernel/setup.c
> +++ b/arch/arm/kernel/setup.c
> @@ -44,7 +44,9 @@
> ?#include <asm/traps.h>
> ?#include <asm/unwind.h>
>
> +#if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
> ?#include "compat.h"
> +#endif
> ?#include "atags.h"
> ?#include "tcm.h"
>
> @@ -663,6 +665,13 @@ static int __init customize_machine(void)
> ?}
> ?arch_initcall(customize_machine);
>
> +static void __init squash_mem_tags(struct tag *tag)
> +{
> + ? ? ? for (; tag->hdr.size; tag = tag_next(tag))
> + ? ? ? ? ? ? ? if (tag->hdr.tag == ATAG_MEM)
> + ? ? ? ? ? ? ? ? ? ? ? tag->hdr.tag = ATAG_NONE;
> +}
> +
> ?void __init setup_arch(char **cmdline_p)
> ?{
> ? ? ? ?struct tag *tags = (struct tag *)&init_tags;
> @@ -683,12 +692,14 @@ void __init setup_arch(char **cmdline_p)
> ? ? ? ?else if (mdesc->boot_params)
> ? ? ? ? ? ? ? ?tags = phys_to_virt(mdesc->boot_params);
>
> +#if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
> ? ? ? ?/*
> ? ? ? ? * If we have the old style parameters, convert them to
> ? ? ? ? * a tag list.
> ? ? ? ? */
> ? ? ? ?if (tags->hdr.tag != ATAG_CORE)
> ? ? ? ? ? ? ? ?convert_to_tag_list(tags);
> +#endif
> ? ? ? ?if (tags->hdr.tag != ATAG_CORE)
> ? ? ? ? ? ? ? ?tags = (struct tag *)&init_tags;
>
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-06-03  7:57 ` Uwe Kleine-König
  2010-06-10 18:44   ` Nicolas Pitre
@ 2010-06-17 19:22   ` Nicolas Pitre
  2010-06-18  1:31     ` Eric Miao
  2010-06-18  2:30     ` Eric Miao
  1 sibling, 2 replies; 138+ messages in thread
From: Nicolas Pitre @ 2010-06-17 19:22 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 3 Jun 2010, Uwe Kleine-K?nig wrote:

> Hello Eric,
> 
> On Thu, Jun 03, 2010 at 03:36:48PM +0800, Eric Miao wrote:
> > Several facts:
> > 
> > 1. ZRELADDR in most cases can be auto detected by maksing PC with
> >    0xf000_0000 if the zImage is placed within the first 256MiB from
> >    the memory start, which is a sane assumption except for:
> > 
> >    - when ARCH_MX1 or ARCH_SHARK is defined
> >    - when ARCH_U300 is defined (U300 really is strange when defining
> >      PHYS_OFFSET and ZRELADDR)
> >    - or when ZBOOT_ROM is defined
> If you guess ZRELADDR based on sp instead of pc it even should work if
> ZBOOT_ROM is defined?!

What is the relation between sp and ZRELADDR?

While we're pushing forward the notion of a relation between phys offset 
and the location where zImage is loaded in memory, I think that making 
the association with sp is a bit too obscur.  Knowing where you upload 
your kernel is clear, knowing where the stack is allocated in relation 
to that is not that clear.  It is in the .bss section of course, but 
when ZBOOT_ROM is not defined then the .bss happens to be right after 
the zImage binary, while it must be explicitly specified otherwise.

On Sun, 6 Jun 2010, Uwe Kleine-K?nig wrote:

> On Thu, Jun 10, 2010 at 02:44:53PM -0400, Nicolas Pitre wrote:
> > If you're using ZBOOT_ROM that means you want to execute zImage directly
> > from ROM.  This is therefore a highly customized configuration.  In that
> > context, having a variable phys-offset doesn't make much sense to start
> > with.
> Right, but then the kernel needs to know this fixed value for
> phys-offset.  In the patches presented by Eric the person configuring
> the kernel needs to know that value.  When guessing based on sp she
> doesn't need to read addional docs when enabling ZBOOT_ROM.

That's presuming phys offset would still be runtime determined.  Again, 
if you care about ZBOOT_ROM, you probably want a fixed phys offset at 
compile time too.  So that value has to be determined at kernel config 
time, not at run time from pc or sp.  And when dealing with such 
customized expert config options, she better know what she's doing and 
be familiar with the memory layout so not to have to read the datasheet 
only for the physical RAM offset while she already must know what flash 
offset to use.

If anything, you _could_ try doing something similar to:

config PHYS_OFFSET
	[prompt]
	default (CONFIG_ZBOOT_ROM_BSS & 0xf0000000) if ZBOOT_ROM

but I doubt Kconfig might accept such a syntax.


Nicolas

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-11  6:37     ` Uwe Kleine-König
@ 2010-06-17 19:33       ` Russell King - ARM Linux
  0 siblings, 0 replies; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-06-17 19:33 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jun 11, 2010 at 08:37:33AM +0200, Uwe Kleine-K?nig wrote:
> Hello Linus,
> 
> On Fri, Jun 11, 2010 at 12:17:44AM +0200, Linus Walleij wrote:
> > I assume it should be submitted simultaneously with a patch nuking off
> > all Makefile.boot files and that infrastructure then?
> Only when bootp is deleted or fixed not to use these variables.

You can't really "fix" it not to use these variables.  The placement
of things like the ramdisk image is something that can only be
specified with a certain amount of information, such as where the
kernel will be located, how large the decompressed kernel will be,
where the RAM is located, whether there's any platform specific
restrictions on what RAM can be used.

ARM is its own enemy here - not having started out with the memory
architected to be in a certain location like it is on x86 makes all
this very much more complicated, and I doubt that any wrapper around
the kernel which performs in a way like the bootp wrapper could be
made to work reliably without being told explicitly where to place
stuff.

And I'm not in favour of it being deleted; there are boot loaders
out there which can only fetch and boot one image.  Such boot loaders
make it difficult to wrap a ramdisk image with the kernel.  The bootp
wrapper solves that.  It's also not something you want to use ZBOOT=y
with.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 08/10] arm: deprecate support for old way to pass kernel parameters
  2010-06-17  9:58     ` Eric Miao
@ 2010-06-17 23:00       ` Russell King - ARM Linux
  0 siblings, 0 replies; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-06-17 23:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 17, 2010 at 05:58:42PM +0800, Eric Miao wrote:
> 2010/6/10 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> > This was deprecated in 2001 and announced to live on for 5 years.
> >
> > For now provide a kernel parameter for those who still need it.
> >
> > Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> 
> Looks OK to me, Acked.
> 
> BTW, is there any existing usage of this and can we remove this
> completely from now on?

Boot messages from my firewall:

Linux version 2.6.32.8 (rmk at rmk-PC) (gcc version 3.4.3) #11 Sat Mar 27 20:51:49 GMT 2010
CPU: StrongARM-110 [4401a102] revision 2 (ARMv4), cr=0000517d
CPU: VIVT data cache, VIVT instruction cache
Machine: EBSA110
Converting old-style param struct to taglist
ATAG_INITRD is deprecated; please update your bootloader.
Memory policy: ECC disabled, Data cache writeback

Obviously, being a critical machine here, and that I have no way to jtag
it if I brick it, I'm not going to replace the boot loader (which
incidentally can only bootp/tftp one file - the one in the bootp packet.)

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-06-17 19:22   ` Nicolas Pitre
@ 2010-06-18  1:31     ` Eric Miao
  2010-06-18  2:30     ` Eric Miao
  1 sibling, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-18  1:31 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/18 Nicolas Pitre <nico@fluxnic.net>:
> On Thu, 3 Jun 2010, Uwe Kleine-K?nig wrote:
>
>> Hello Eric,
>>
>> On Thu, Jun 03, 2010 at 03:36:48PM +0800, Eric Miao wrote:
>> > Several facts:
>> >
>> > 1. ZRELADDR in most cases can be auto detected by maksing PC with
>> > ? ?0xf000_0000 if the zImage is placed within the first 256MiB from
>> > ? ?the memory start, which is a sane assumption except for:
>> >
>> > ? ?- when ARCH_MX1 or ARCH_SHARK is defined
>> > ? ?- when ARCH_U300 is defined (U300 really is strange when defining
>> > ? ? ?PHYS_OFFSET and ZRELADDR)
>> > ? ?- or when ZBOOT_ROM is defined
>> If you guess ZRELADDR based on sp instead of pc it even should work if
>> ZBOOT_ROM is defined?!
>
> What is the relation between sp and ZRELADDR?
>
> While we're pushing forward the notion of a relation between phys offset
> and the location where zImage is loaded in memory, I think that making
> the association with sp is a bit too obscur. ?Knowing where you upload
> your kernel is clear, knowing where the stack is allocated in relation
> to that is not that clear. ?It is in the .bss section of course, but
> when ZBOOT_ROM is not defined then the .bss happens to be right after
> the zImage binary, while it must be explicitly specified otherwise.
>
> On Sun, 6 Jun 2010, Uwe Kleine-K?nig wrote:
>
>> On Thu, Jun 10, 2010 at 02:44:53PM -0400, Nicolas Pitre wrote:
>> > If you're using ZBOOT_ROM that means you want to execute zImage directly
>> > from ROM. ?This is therefore a highly customized configuration. ?In that
>> > context, having a variable phys-offset doesn't make much sense to start
>> > with.
>> Right, but then the kernel needs to know this fixed value for
>> phys-offset. ?In the patches presented by Eric the person configuring
>> the kernel needs to know that value. ?When guessing based on sp she
>> doesn't need to read addional docs when enabling ZBOOT_ROM.
>
> That's presuming phys offset would still be runtime determined. ?Again,
> if you care about ZBOOT_ROM, you probably want a fixed phys offset at
> compile time too. ?So that value has to be determined at kernel config
> time, not at run time from pc or sp. ?And when dealing with such
> customized expert config options, she better know what she's doing and
> be familiar with the memory layout so not to have to read the datasheet
> only for the physical RAM offset while she already must know what flash
> offset to use.
>
> If anything, you _could_ try doing something similar to:
>
> config PHYS_OFFSET
> ? ? ? ?[prompt]
> ? ? ? ?default (CONFIG_ZBOOT_ROM_BSS & 0xf0000000) if ZBOOT_ROM
>
> but I doubt Kconfig might accept such a syntax.
>

No, Kconfig doesn't. I tried to play this a bit with Kconfig, but failed.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-06-17 19:22   ` Nicolas Pitre
  2010-06-18  1:31     ` Eric Miao
@ 2010-06-18  2:30     ` Eric Miao
  1 sibling, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-06-18  2:30 UTC (permalink / raw)
  To: linux-arm-kernel

2010/6/18 Nicolas Pitre <nico@fluxnic.net>:
> On Thu, 3 Jun 2010, Uwe Kleine-K?nig wrote:
>
>> Hello Eric,
>>
>> On Thu, Jun 03, 2010 at 03:36:48PM +0800, Eric Miao wrote:
>> > Several facts:
>> >
>> > 1. ZRELADDR in most cases can be auto detected by maksing PC with
>> > ? ?0xf000_0000 if the zImage is placed within the first 256MiB from
>> > ? ?the memory start, which is a sane assumption except for:
>> >
>> > ? ?- when ARCH_MX1 or ARCH_SHARK is defined
>> > ? ?- when ARCH_U300 is defined (U300 really is strange when defining
>> > ? ? ?PHYS_OFFSET and ZRELADDR)
>> > ? ?- or when ZBOOT_ROM is defined
>> If you guess ZRELADDR based on sp instead of pc it even should work if
>> ZBOOT_ROM is defined?!
>
> What is the relation between sp and ZRELADDR?
>
> While we're pushing forward the notion of a relation between phys offset
> and the location where zImage is loaded in memory, I think that making
> the association with sp is a bit too obscur. ?Knowing where you upload
> your kernel is clear, knowing where the stack is allocated in relation
> to that is not that clear. ?It is in the .bss section of course, but
> when ZBOOT_ROM is not defined then the .bss happens to be right after
> the zImage binary, while it must be explicitly specified otherwise.
>

I agree with Nico. Associating PHYS_OFFSET with pc is more straight-forward,
and I think it will save us some effort just not to support a runtime
phys_offset
with ZBOOT enabled.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-06-03  7:36 [PATCH 0/5] Makefile.boot cleanup Eric Miao
                   ` (7 preceding siblings ...)
  2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
@ 2010-07-05 14:13 ` Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 01/11] ARM: zImage: don't hard code the stack size twice Uwe Kleine-König
                     ` (11 more replies)
  8 siblings, 12 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:13 UTC (permalink / raw)
  To: linux-arm-kernel

Hello,

this series is a merge between Eric's and my patches that we did to
clean up the early boot code.  It doesn't contain runtime physoffset
support for now, but I plan to pick that up later.

Best regards
Uwe

The following changes since commit 7e27d6e778cd87b6f2415515d7127eba53fe5d02:

  Linux 2.6.35-rc3 (2010-06-11 19:14:04 -0700)

are available in the git repository at:
  git://git.pengutronix.de/git/ukl/linux-2.6.git arm/booting

Eric Miao (2):
      ARM: Remove unused PARAMS_PHYS from arch/arm/boot/compressed
      Auto calculate ZRELADDR and provide option for exceptions

Uwe Kleine-K?nig (9):
      ARM: zImage: don't hard code the stack size twice
      ARM: zImage: some comments for __armv3_mpu_cache_on
      ARM: zImage: __armv3_mpu_cache_flush: respect should-be-zero specification
      ARM: zImage: fix comments for cache_on, cache_off and cache_clean_flush
      ARM: zImage: annotate debug functions about corrupted registers
      ARM: remove bit-rotten STANDALONE_DEBUG for decompressor
      ARM: zImage: don't define unused symbol initrd_phys
      ARM: deprecate support for old way to pass kernel parameters
      ARM: uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET

 arch/arm/Kconfig                        |  105 +++++++++++++++++++++++++++++++
 arch/arm/boot/Makefile                  |   14 +++--
 arch/arm/boot/compressed/Makefile       |   11 +---
 arch/arm/boot/compressed/Makefile.debug |   23 -------
 arch/arm/boot/compressed/head.S         |   40 +++++++++---
 arch/arm/boot/compressed/misc.c         |   20 ------
 arch/arm/kernel/Makefile                |    4 +-
 arch/arm/kernel/compat.c                |    7 --
 arch/arm/kernel/compat.h                |    2 -
 arch/arm/kernel/setup.c                 |   11 +++
 10 files changed, 157 insertions(+), 80 deletions(-)
 delete mode 100644 arch/arm/boot/compressed/Makefile.debug
-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 01/11] ARM: zImage: don't hard code the stack size twice
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 02/11] ARM: zImage: some comments for __armv3_mpu_cache_on Uwe Kleine-König
                     ` (10 subsequent siblings)
  11 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

Acked-by: Eric Miao <eric.miao@canonical.com>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/head.S |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index c5191b1..390aa92 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -315,7 +315,7 @@ LC0:		.word	LC0			@ r1
 		.word	_image_size		@ r6
 		.word	_got_start		@ r11
 		.word	_got_end		@ ip
-		.word	user_stack+4096		@ sp
+		.word	user_stack_end		@ sp
 LC1:		.word	reloc_end - reloc_start
 		.size	LC0, . - LC0
 
@@ -1070,3 +1070,4 @@ reloc_end:
 		.align
 		.section ".stack", "w"
 user_stack:	.space	4096
+user_stack_end:
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 02/11] ARM: zImage: some comments for __armv3_mpu_cache_on
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 01/11] ARM: zImage: don't hard code the stack size twice Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 03/11] ARM: zImage: __armv3_mpu_cache_flush: respect should-be-zero specification Uwe Kleine-König
                     ` (9 subsequent siblings)
  11 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

__armv3_mpu_cache_on seems broken.  As there is noone around who knows
about these machines just keep the code as is but point out the strange
things.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/head.S |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 390aa92..7b7d95c 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -396,12 +396,18 @@ __armv3_mpu_cache_on:
 
 		mov	r0, #0
 		mcr	p15, 0, r0, c7, c0, 0	@ invalidate whole cache v3
+		/*
+		 * ?? ARMv3 MMU does not allow reading the control register,
+		 * does this really work on ARMv3 MPU?
+		 */
 		mrc	p15, 0, r0, c1, c0, 0	@ read control reg
 						@ .... .... .... WC.M
 		orr	r0, r0, #0x000d		@ .... .... .... 11.1
+		/* ?? this overwrites the value constructed above? */
 		mov	r0, #0
 		mcr	p15, 0, r0, c1, c0, 0	@ write control reg
 
+		/* ?? invalidate for the second time? */
 		mcr	p15, 0, r0, c7, c0, 0	@ invalidate whole cache v3
 		mov	pc, lr
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 03/11] ARM: zImage: __armv3_mpu_cache_flush: respect should-be-zero specification
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 01/11] ARM: zImage: don't hard code the stack size twice Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 02/11] ARM: zImage: some comments for __armv3_mpu_cache_on Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 04/11] ARM: zImage: fix comments for cache_on, cache_off and cache_clean_flush Uwe Kleine-König
                     ` (8 subsequent siblings)
  11 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

Probably the register content for cache operations is "don't care" in
practice, but as r1 is explicitly zeroed, use that one.

Acked-by: Eric Miao <eric.miao@canonical.com>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/head.S |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 7b7d95c..2366613 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -994,7 +994,7 @@ no_cache_id:
 __armv3_mmu_cache_flush:
 __armv3_mpu_cache_flush:
 		mov	r1, #0
-		mcr	p15, 0, r0, c7, c0, 0	@ invalidate whole cache v3
+		mcr	p15, 0, r1, c7, c0, 0	@ invalidate whole cache v3
 		mov	pc, lr
 
 /*
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 04/11] ARM: zImage: fix comments for cache_on, cache_off and cache_clean_flush
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
                     ` (2 preceding siblings ...)
  2010-07-05 14:15   ` [PATCH 03/11] ARM: zImage: __armv3_mpu_cache_flush: respect should-be-zero specification Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 05/11] ARM: zImage: annotate debug functions about corrupted registers Uwe Kleine-König
                     ` (7 subsequent siblings)
  11 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

This adds missing registers to the list of corrupted registers and
removes a wrong comment about r9 on entry

While at it the formatting of the comment to cache_off is changed to
resemble the other two.

Acked-by: Eric Miao <eric.miao@canonical.com>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/head.S |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 2366613..ca62ff5 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -339,9 +339,8 @@ params:		ldr	r0, =params_phys
  *  r4 = kernel execution address
  *  r7 = architecture number
  *  r8 = atags pointer
- *  r9 = run-time address of "start"  (???)
  * On exit,
- *  r1, r2, r3, r9, r10, r12 corrupted
+ *  r0, r1, r2, r3, r9, r10, r12 corrupted
  * This routine must preserve:
  *  r4, r5, r6, r7, r8
  */
@@ -777,8 +776,10 @@ proc_types:
  * Turn off the Cache and MMU.  ARMv3 does not support
  * reading the control register, but ARMv4 does.
  *
- * On exit, r0, r1, r2, r3, r9, r12 corrupted
- * This routine must preserve: r4, r6, r7
+ * On exit,
+ *  r0, r1, r2, r3, r9, r12 corrupted
+ * This routine must preserve:
+ *  r4, r6, r7
  */
 		.align	5
 cache_off:	mov	r3, #12			@ cache_off function
@@ -851,7 +852,7 @@ __armv3_mmu_cache_off:
  * Clean and flush the cache to maintain consistency.
  *
  * On exit,
- *  r1, r2, r3, r9, r11, r12 corrupted
+ *  r1, r2, r3, r9, r10, r11, r12 corrupted
  * This routine must preserve:
  *  r0, r4, r5, r6, r7
  */
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 05/11] ARM: zImage: annotate debug functions about corrupted registers
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
                     ` (3 preceding siblings ...)
  2010-07-05 14:15   ` [PATCH 04/11] ARM: zImage: fix comments for cache_on, cache_off and cache_clean_flush Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 06/11] ARM: remove bit-rotten STANDALONE_DEBUG for decompressor Uwe Kleine-König
                     ` (6 subsequent siblings)
  11 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/head.S |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index ca62ff5..f61c76e 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -1008,6 +1008,7 @@ __armv3_mpu_cache_flush:
 phexbuf:	.space	12
 		.size	phexbuf, . - phexbuf
 
+@ phex corrupts {r0, r1, r2, r3}
 phex:		adr	r3, phexbuf
 		mov	r2, #0
 		strb	r2, [r3, r1]
@@ -1022,6 +1023,7 @@ phex:		adr	r3, phexbuf
 		strb	r2, [r3, r1]
 		b	1b
 
+@ puts corrupts {r0, r1, r2, r3}
 puts:		loadsp	r3, r1
 1:		ldrb	r2, [r0], #1
 		teq	r2, #0
@@ -1036,12 +1038,14 @@ puts:		loadsp	r3, r1
 		teq	r0, #0
 		bne	1b
 		mov	pc, lr
+@ putc corrupts {r0, r1, r2, r3}
 putc:
 		mov	r2, r0
 		mov	r0, #0
 		loadsp	r3, r1
 		b	2b
 
+@ memdump corrupts {r0, r1, r2, r3, r10, r11, r12, lr}
 memdump:	mov	r12, r0
 		mov	r10, lr
 		mov	r11, #0
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 06/11] ARM: remove bit-rotten STANDALONE_DEBUG for decompressor
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
                     ` (4 preceding siblings ...)
  2010-07-05 14:15   ` [PATCH 05/11] ARM: zImage: annotate debug functions about corrupted registers Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 15:36     ` Nicolas Pitre
  2010-07-05 14:15   ` [PATCH 07/11] ARM: zImage: don't define unused symbol initrd_phys Uwe Kleine-König
                     ` (5 subsequent siblings)
  11 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

I tried to get this running to debug the regression introduced by
e7db7b4 without success.  But this has several problems that make it
hard to fix:

  - lib/decompress_inflate.c includes in-kernel headers that make
    it difficult to compile for user space.
  - the binary formats changed both in kernel and user space and
    at least for the kernel side there isn't only a single
    variant.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/Makefile.debug |   23 -----------------------
 arch/arm/boot/compressed/misc.c         |   20 --------------------
 2 files changed, 0 insertions(+), 43 deletions(-)
 delete mode 100644 arch/arm/boot/compressed/Makefile.debug

diff --git a/arch/arm/boot/compressed/Makefile.debug b/arch/arm/boot/compressed/Makefile.debug
deleted file mode 100644
index 491a037..0000000
--- a/arch/arm/boot/compressed/Makefile.debug
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# linux/arch/arm/boot/compressed/Makefile
-#
-# create a compressed vmlinux image from the original vmlinux
-#
-
-COMPRESSED_EXTRA=../../lib/ll_char_wr.o
-OBJECTS=misc-debug.o ll_char_wr.aout.o
-
-CFLAGS=-D__KERNEL__ -O2 -DSTDC_HEADERS -DSTANDALONE_DEBUG -Wall -I../../../../include -c
-
-test-gzip: piggy.aout.o $(OBJECTS)
-	$(CC) -o $@ $(OBJECTS) piggy.aout.o
-
-misc-debug.o: misc.c
-	$(CC) $(CFLAGS) -o $@ misc.c
-
-piggy.aout.o: piggy.o
-	arm-linuxelf-objcopy --change-leading-char -I elf32-arm -O arm-aout32-linux piggy.o piggy.aout.o
-
-ll_char_wr.aout.o: $(COMPRESSED_EXTRA)
-	arm-linuxelf-objcopy --change-leading-char -I elf32-arm -O arm-aout32-linux $(COMPRESSED_EXTRA) ll_char_wr.aout.o
-
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c
index d2b2ef4..e653a6d 100644
--- a/arch/arm/boot/compressed/misc.c
+++ b/arch/arm/boot/compressed/misc.c
@@ -28,9 +28,6 @@ unsigned int __machine_arch_type;
 
 #include <asm/unaligned.h>
 
-#ifdef STANDALONE_DEBUG
-#define putstr printf
-#else
 
 static void putstr(const char *ptr);
 extern void error(char *x);
@@ -116,7 +113,6 @@ static void putstr(const char *ptr)
 	flush();
 }
 
-#endif
 
 void *memcpy(void *__dest, __const void *__src, size_t __n)
 {
@@ -186,7 +182,6 @@ asmlinkage void __div0(void)
 
 extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x));
 
-#ifndef STANDALONE_DEBUG
 
 unsigned long
 decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
@@ -211,18 +206,3 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
 	putstr(" done, booting the kernel.\n");
 	return output_ptr;
 }
-#else
-
-char output_buffer[1500*1024];
-
-int main()
-{
-	output_data = output_buffer;
-
-	putstr("Uncompressing Linux...");
-	decompress(input_data, input_data_end - input_data,
-			NULL, NULL, output_data, NULL, error);
-	putstr("done.\n");
-	return 0;
-}
-#endif
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 07/11] ARM: zImage: don't define unused symbol initrd_phys
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
                     ` (5 preceding siblings ...)
  2010-07-05 14:15   ` [PATCH 06/11] ARM: remove bit-rotten STANDALONE_DEBUG for decompressor Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 08/11] ARM: deprecate support for old way to pass kernel parameters Uwe Kleine-König
                     ` (4 subsequent siblings)
  11 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

The only user of initrd_phys is arch/arm/boot/bootp/init.S which still
gets the value passed to.

Acked-by: Eric Miao <eric.miao@canonical.com>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/Makefile |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 53faa90..5419448 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -79,16 +79,13 @@ endif
 EXTRA_CFLAGS  := -fpic -fno-builtin
 EXTRA_AFLAGS  := -Wa,-march=all
 
-# 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.
+# Supply ZRELADDR and PARAMS_PHYS to the decompressor via linker symbols.  We
+# only define params_phys if the machine class defined the corresponding
+# makefile variable.
 LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
 LDFLAGS_vmlinux += --be8
 endif
-ifneq ($(INITRD_PHYS),)
-LDFLAGS_vmlinux += --defsym initrd_phys=$(INITRD_PHYS)
-endif
 ifneq ($(PARAMS_PHYS),)
 LDFLAGS_vmlinux += --defsym params_phys=$(PARAMS_PHYS)
 endif
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 08/11] ARM: deprecate support for old way to pass kernel parameters
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
                     ` (6 preceding siblings ...)
  2010-07-05 14:15   ` [PATCH 07/11] ARM: zImage: don't define unused symbol initrd_phys Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 09/11] ARM: uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET Uwe Kleine-König
                     ` (3 subsequent siblings)
  11 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

This was deprecated in 2001 and announced to live on for 5 years.

For now provide a kernel parameter for those who still need it.

Acked-by: Eric Miao <eric.miao@canonical.com>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/Kconfig         |    6 ++++++
 arch/arm/kernel/Makefile |    4 +++-
 arch/arm/kernel/compat.c |    7 -------
 arch/arm/kernel/compat.h |    2 --
 arch/arm/kernel/setup.c  |   11 +++++++++++
 5 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1f254bd..a53ac65 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1374,6 +1374,12 @@ config UACCESS_WITH_MEMCPY
 	  However, if the CPU data cache is using a write-allocate mode,
 	  this option is unlikely to provide any performance gain.
 
+config DEPRECATED_PARAM_STRUCT
+	bool "Provide old way to pass kernel parameters"
+	help
+	  This was deprecated in 2001 and announced to live on for 5 years.
+	  Some old boot loaders still use this way.
+
 endmenu
 
 menu "Boot options"
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index 26d302c..021f72d 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -13,10 +13,12 @@ CFLAGS_REMOVE_return_address.o = -pg
 
 # Object file lists.
 
-obj-y		:= compat.o elf.o entry-armv.o entry-common.o irq.o \
+obj-y		:= elf.o entry-armv.o entry-common.o irq.o \
 		   process.o ptrace.o return_address.o setup.o signal.o \
 		   sys_arm.o stacktrace.o time.o traps.o
 
+obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += compat.o
+
 obj-$(CONFIG_LEDS)		+= leds.o
 obj-$(CONFIG_OC_ETM)		+= etm.o
 
diff --git a/arch/arm/kernel/compat.c b/arch/arm/kernel/compat.c
index 0a13854..9256523 100644
--- a/arch/arm/kernel/compat.c
+++ b/arch/arm/kernel/compat.c
@@ -217,10 +217,3 @@ void __init convert_to_tag_list(struct tag *tags)
 	struct param_struct *params = (struct param_struct *)tags;
 	build_tag_list(params, &params->u2);
 }
-
-void __init squash_mem_tags(struct tag *tag)
-{
-	for (; tag->hdr.size; tag = tag_next(tag))
-		if (tag->hdr.tag == ATAG_MEM)
-			tag->hdr.tag = ATAG_NONE;
-}
diff --git a/arch/arm/kernel/compat.h b/arch/arm/kernel/compat.h
index 27e61a6..39264ab 100644
--- a/arch/arm/kernel/compat.h
+++ b/arch/arm/kernel/compat.h
@@ -9,5 +9,3 @@
 */
 
 extern void convert_to_tag_list(struct tag *tags);
-
-extern void squash_mem_tags(struct tag *tag);
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 122d999..cbc6ddb 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -44,7 +44,9 @@
 #include <asm/traps.h>
 #include <asm/unwind.h>
 
+#if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
 #include "compat.h"
+#endif
 #include "atags.h"
 #include "tcm.h"
 
@@ -663,6 +665,13 @@ static int __init customize_machine(void)
 }
 arch_initcall(customize_machine);
 
+static void __init squash_mem_tags(struct tag *tag)
+{
+	for (; tag->hdr.size; tag = tag_next(tag))
+		if (tag->hdr.tag == ATAG_MEM)
+			tag->hdr.tag = ATAG_NONE;
+}
+
 void __init setup_arch(char **cmdline_p)
 {
 	struct tag *tags = (struct tag *)&init_tags;
@@ -683,12 +692,14 @@ void __init setup_arch(char **cmdline_p)
 	else if (mdesc->boot_params)
 		tags = phys_to_virt(mdesc->boot_params);
 
+#if defined(CONFIG_DEPRECATED_PARAM_STRUCT)
 	/*
 	 * If we have the old style parameters, convert them to
 	 * a tag list.
 	 */
 	if (tags->hdr.tag != ATAG_CORE)
 		convert_to_tag_list(tags);
+#endif
 	if (tags->hdr.tag != ATAG_CORE)
 		tags = (struct tag *)&init_tags;
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 09/11] ARM: uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
                     ` (7 preceding siblings ...)
  2010-07-05 14:15   ` [PATCH 08/11] ARM: deprecate support for old way to pass kernel parameters Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 16:03     ` Nicolas Pitre
  2010-07-05 14:15   ` [PATCH 10/11] ARM: Remove unused PARAMS_PHYS from arch/arm/boot/compressed Uwe Kleine-König
                     ` (2 subsequent siblings)
  11 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

the default load address (in the CONFIG_ZBOOT_ROM=n case) is ZRELADDR
which (apart from being a stupid load address for the
RUNTIME_PHYSOFFSET=n case) might not be a valid read/write memory on the
target machine at all.  So require passing a LOADADDR on the command
line.  This obiously makes the uImage more machine dependant than the
zImage.

Note RUNTIME_PHYSOFFSET doesn't exist yet, but is about to come soon.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/Makefile |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index 4a590f4..264dccf 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -64,11 +64,13 @@ quiet_cmd_uimage = UIMAGE  $@
 		   -C none -a $(LOADADDR) -e $(STARTADDR) \
 		   -n 'Linux-$(KERNELRELEASE)' -d $< $@
 
+ifeq ($(CONFIG_RUNTIME_PHYS_OFFSET),)
 ifeq ($(CONFIG_ZBOOT_ROM),y)
 $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
 else
 $(obj)/uImage: LOADADDR=$(ZRELADDR)
 endif
+endif
 
 ifeq ($(CONFIG_THUMB2_KERNEL),y)
 # Set bit 0 to 1 so that "mov pc, rx" switches to Thumb-2 mode
@@ -77,7 +79,9 @@ else
 $(obj)/uImage: STARTADDR=$(LOADADDR)
 endif
 
-$(obj)/uImage:	$(obj)/zImage FORCE
+$(obj)/uImage: $(obj)/zImage FORCE
+	@test -n "$(LOADADDR)" || \
+	(echo "You must specify a load address (i.e. make uImage LOADADDR=0x...)"; exit 1)
 	$(call if_changed,uimage)
 	@echo '  Image $@ is ready'
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 10/11] ARM: Remove unused PARAMS_PHYS from arch/arm/boot/compressed
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
                     ` (8 preceding siblings ...)
  2010-07-05 14:15   ` [PATCH 09/11] ARM: uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 14:15   ` [PATCH 11/11] Auto calculate ZRELADDR and provide option for exceptions Uwe Kleine-König
  2010-07-07 14:45   ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
  11 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

From: Eric Miao <eric.y.miao@gmail.com>

The only reference in arch/arm/boot/compressed to PARAMS_PHYS is
params() in head.S, which can be directly converted to the exact
address as specified by arch/arm/mach-rpc/Makefile.boot.

Signed-off-by: Eric Miao <eric.miao@canonical.com>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/boot/compressed/Makefile |    7 +------
 arch/arm/boot/compressed/head.S   |    2 +-
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 5419448..2a80c9d 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -79,16 +79,11 @@ endif
 EXTRA_CFLAGS  := -fpic -fno-builtin
 EXTRA_AFLAGS  := -Wa,-march=all
 
-# Supply ZRELADDR and PARAMS_PHYS to the decompressor via linker symbols.  We
-# only define params_phys if the machine class defined the corresponding
-# makefile variable.
+# Supply ZRELADDR to the decompressor via a linker symbol.
 LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
 LDFLAGS_vmlinux += --be8
 endif
-ifneq ($(PARAMS_PHYS),)
-LDFLAGS_vmlinux += --defsym params_phys=$(PARAMS_PHYS)
-endif
 # ?
 LDFLAGS_vmlinux += -p
 # Report unresolved symbol references
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index f61c76e..d27faa1 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -321,7 +321,7 @@ LC1:		.word	reloc_end - reloc_start
 
 #ifdef CONFIG_ARCH_RPC
 		.globl	params
-params:		ldr	r0, =params_phys
+params:		ldr	r0, =0x10000100		@ params_phys for RPC
 		mov	pc, lr
 		.ltorg
 		.align
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 11/11] Auto calculate ZRELADDR and provide option for exceptions
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
                     ` (9 preceding siblings ...)
  2010-07-05 14:15   ` [PATCH 10/11] ARM: Remove unused PARAMS_PHYS from arch/arm/boot/compressed Uwe Kleine-König
@ 2010-07-05 14:15   ` Uwe Kleine-König
  2010-07-05 15:31     ` Nicolas Pitre
  2010-07-31 15:54     ` Russell King - ARM Linux
  2010-07-07 14:45   ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
  11 siblings, 2 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-05 14:15 UTC (permalink / raw)
  To: linux-arm-kernel

From: Eric Miao <eric.miao@canonical.com>

As long as the zImage is placed within the 128MB range from the start of
memory, ZRELADDR (Address where the decompressed kernel will be placed,
usually == PHYS_OFFSET + TEXT_OFFSET) can be determined at run-time by
masking PC with 0xf80000000.

Running through all the Makefile.boot, all those zreladdr-y
addresses == 0x[0-f][08]00_0000 + TEXT_OFFSET can be determined at
run-time.

Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
CONFIG_ZRELADDR _must_ be explicitly specified if:

- ((zreladdr-y - TEXT_OFFSET) & ~0xf8000000) != 0, which means
  masking PC with 0xf8000000 will result in an incorrect address.
  Currently this is only a problem on u300.

- or the assumption of the zImage being loaded by the bootloader within
  the first 128MB of RAM is incorrect

- or when ZBOOT_ROM is used, where the above assumption is usually wrong.

[ukleinek: changed mask from 0xf0000000 to 0xf8000000 for mx1 and shark
+ some review fixes from the mailing list]

Signed-off-by: Eric Miao <eric.miao@canonical.com>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/Kconfig                  |   99 +++++++++++++++++++++++++++++++++++++
 arch/arm/boot/Makefile            |    8 +--
 arch/arm/boot/compressed/Makefile |    3 +-
 arch/arm/boot/compressed/head.S   |   12 +++-
 4 files changed, 112 insertions(+), 10 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a53ac65..0b0cf0d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1490,6 +1490,105 @@ config ATAGS_PROC
 	  Should the atags used to boot the kernel be exported in an "atags"
 	  file in procfs. Useful with kexec.
 
+config AUTO_ZRELADDR
+	bool "Auto calculation of the decompressed kernel image address"
+	depends on !ZBOOT_ROM && !ARCH_U300
+	help
+	  ZRELADDR is the physical address where the decompressed kernel
+	  image will be placed. If AUTO_ZRELADDR is selected, the address
+	  will be determined at run-time by masking the current IP with
+	  0xf8000000. This assumes the zImage being placed in the first 128MB
+	  from start of memory.
+
+config ZRELADDR
+	hex "Physical address of the decompressed kernel image"
+	depends on !AUTO_ZRELADDR
+	default 0x00008000 if ARCH_BCMRING ||\
+		ARCH_CNS3XXX ||\
+		ARCH_DOVE ||\
+		ARCH_EBSA110 ||\
+		ARCH_FOOTBRIDGE ||\
+		ARCH_INTEGRATOR ||\
+		ARCH_IOP13XX ||\
+		ARCH_IOP33X ||\
+		ARCH_IXP2000 ||\
+		ARCH_IXP23XX ||\
+		ARCH_IXP4XX ||\
+		ARCH_KIRKWOOD ||\
+		ARCH_KS8695 ||\
+		ARCH_LOKI ||\
+		ARCH_MMP ||\
+		ARCH_MV78XX0 ||\
+		ARCH_NOMADIK ||\
+		ARCH_NUC93X ||\
+		ARCH_NS9XXX ||\
+		ARCH_ORION5X ||\
+		ARCH_SPEAR3XX ||\
+		ARCH_SPEAR6XX ||\
+		ARCH_U8500 ||\
+		ARCH_VERSATILE ||\
+		ARCH_W90X900
+	default 0x08008000 if ARCH_MX1 ||\
+		ARCH_SHARK
+	default 0x10008000 if ARCH_MSM ||\
+		ARCH_OMAP1 ||\
+		ARCH_RPC
+	default 0x20008000 if ARCH_S5P6440 ||\
+		ARCH_S5P6442 ||\
+		ARCH_S5PC100 ||\
+		ARCH_S5PV210
+	default 0x30008000 if ARCH_S3C2410 ||\
+		ARCH_S3C2400 ||\
+		ARCH_S3C2412 ||\
+		ARCH_S3C2416 ||\
+		ARCH_S3C2440 ||\
+		ARCH_S3C2443
+	default 0x40008000 if ARCH_STMP378X ||\
+		ARCH_STMP37XX ||\
+		ARCH_SH7372 ||\
+		ARCH_SH7377
+	default 0x50008000 if ARCH_S3C64XX ||\
+		ARCH_SH7367
+	default 0x60008000 if ARCH_VEXPRESS
+	default 0x80008000 if ARCH_MX25 ||\
+		ARCH_MX3 ||\
+		ARCH_NETX ||\
+		ARCH_OMAP2PLUS ||\
+		ARCH_PNX4008
+	default 0x90008000 if ARCH_MX5 ||\
+		ARCH_MX91231
+	default 0xa0008000 if ARCH_IOP32X ||\
+		ARCH_PXA ||\
+		MACH_MX27
+	default 0xc0008000 if ARCH_LH7A40X ||\
+		MACH_MX21
+	default 0xf0008000 if ARCH_AAEC2000 ||\
+		ARCH_L7200
+	default 0xc0028000 if ARCH_CLPS711X
+	default 0x70008000 if ARCH_AT91 && (ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
+	default 0x20008000 if ARCH_AT91 && !(ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
+	default 0xc0008000 if ARCH_DAVINCI && ARCH_DAVINCI_DA8XX
+	default 0x80008000 if ARCH_DAVINCI && !ARCH_DAVINCI_DA8XX
+	default 0x00008000 if ARCH_EP93XX && EP93XX_SDCE3_SYNC_PHYS_OFFSET
+	default 0xc0008000 if ARCH_EP93XX && EP93XX_SDCE0_PHYS_OFFSET
+	default 0xd0008000 if ARCH_EP93XX && EP93XX_SDCE1_PHYS_OFFSET
+	default 0xe0008000 if ARCH_EP93XX && EP93XX_SDCE2_PHYS_OFFSET
+	default 0xf0008000 if ARCH_EP93XX && EP93XX_SDCE3_ASYNC_PHYS_OFFSET
+	default 0x00008000 if ARCH_GEMINI && GEMINI_MEM_SWAP
+	default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP
+	default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET
+	default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET
+	default 0xc0208000 if ARCH_SA1100 && SA1111
+	default 0xc0008000 if ARCH_SA1100 && !SA1111
+	default 0x30108000 if ARCH_S3C2410 && PM_H1940
+	default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM
+	default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM
+	help
+	  ZRELADDR is the physical address where the decompressed kernel
+	  image will be placed. ZRELADDR has to be specified when the
+	  assumption of AUTO_ZRELADDR is not valid, or when ZBOOT_ROM is
+	  selected.
+
 endmenu
 
 menu "CPU Power Management"
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index 264dccf..5e89c2c 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -14,18 +14,16 @@
 MKIMAGE         := $(srctree)/scripts/mkuboot.sh
 
 ifneq ($(MACHINE),)
-include $(srctree)/$(MACHINE)/Makefile.boot
+-include $(srctree)/$(MACHINE)/Makefile.boot
 endif
 
 # Note: the following conditions must always be true:
-#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
 #   PARAMS_PHYS must be within 4MB of ZRELADDR
 #   INITRD_PHYS must be in RAM
-ZRELADDR    := $(zreladdr-y)
 PARAMS_PHYS := $(params_phys-y)
 INITRD_PHYS := $(initrd_phys-y)
 
-export ZRELADDR INITRD_PHYS PARAMS_PHYS
+export INITRD_PHYS PARAMS_PHYS
 
 targets := Image zImage xipImage bootpImage uImage
 
@@ -68,7 +66,7 @@ ifeq ($(CONFIG_RUNTIME_PHYS_OFFSET),)
 ifeq ($(CONFIG_ZBOOT_ROM),y)
 $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
 else
-$(obj)/uImage: LOADADDR=$(ZRELADDR)
+$(obj)/uImage: LOADADDR=$(CONFIG_ZRELADDR)
 endif
 endif
 
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 2a80c9d..cc8380b 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -4,6 +4,7 @@
 # create a compressed vmlinuz image from the original vmlinux
 #
 
+AFLAGS_head.o += -DTEXT_OFFSET=$(TEXT_OFFSET)
 HEAD	= head.o
 OBJS	= misc.o decompress.o
 FONTC	= $(srctree)/drivers/video/console/font_acorn_8x8.c
@@ -79,8 +80,6 @@ endif
 EXTRA_CFLAGS  := -fpic -fno-builtin
 EXTRA_AFLAGS  := -Wa,-march=all
 
-# Supply ZRELADDR to the decompressor via a linker symbol.
-LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
 LDFLAGS_vmlinux += --be8
 endif
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index d27faa1..abf4d65 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -170,9 +170,16 @@ not_angel:
 
 		.text
 		adr	r0, LC0
- ARM(		ldmia	r0, {r1, r2, r3, r4, r5, r6, r11, ip, sp})
- THUMB(		ldmia	r0, {r1, r2, r3, r4, r5, r6, r11, ip}	)
+ ARM(		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip, sp})
+ THUMB(		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip}	)
  THUMB(		ldr	sp, [r0, #32]				)
+#ifdef CONFIG_AUTO_ZRELADDR
+		@ determine final kernel image address
+		and	r4, pc, #0xf8000000
+		add	r4, r4, #TEXT_OFFSET
+#else
+		ldr	r4, =CONFIG_ZRELADDR
+#endif
 		subs	r0, r0, r1		@ calculate the delta offset
 
 						@ if delta is zero, we are
@@ -310,7 +317,6 @@ wont_overwrite:	mov	r0, r4
 LC0:		.word	LC0			@ r1
 		.word	__bss_start		@ r2
 		.word	_end			@ r3
-		.word	zreladdr		@ r4
 		.word	_start			@ r5
 		.word	_image_size		@ r6
 		.word	_got_start		@ r11
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 11/11] Auto calculate ZRELADDR and provide option for exceptions
  2010-07-05 14:15   ` [PATCH 11/11] Auto calculate ZRELADDR and provide option for exceptions Uwe Kleine-König
@ 2010-07-05 15:31     ` Nicolas Pitre
  2010-07-06  2:09       ` Eric Miao
  2010-07-31 15:54     ` Russell King - ARM Linux
  1 sibling, 1 reply; 138+ messages in thread
From: Nicolas Pitre @ 2010-07-05 15:31 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 5 Jul 2010, Uwe Kleine-K?nig wrote:

> From: Eric Miao <eric.miao@canonical.com>
> 
> As long as the zImage is placed within the 128MB range from the start of
> memory, ZRELADDR (Address where the decompressed kernel will be placed,
> usually == PHYS_OFFSET + TEXT_OFFSET) can be determined at run-time by
> masking PC with 0xf80000000.
> 
> Running through all the Makefile.boot, all those zreladdr-y
> addresses == 0x[0-f][08]00_0000 + TEXT_OFFSET can be determined at
> run-time.
> 
> Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
> CONFIG_ZRELADDR _must_ be explicitly specified if:
> 
> - ((zreladdr-y - TEXT_OFFSET) & ~0xf8000000) != 0, which means
>   masking PC with 0xf8000000 will result in an incorrect address.
>   Currently this is only a problem on u300.
> 
> - or the assumption of the zImage being loaded by the bootloader within
>   the first 128MB of RAM is incorrect
> 
> - or when ZBOOT_ROM is used, where the above assumption is usually wrong.
> 
> [ukleinek: changed mask from 0xf0000000 to 0xf8000000 for mx1 and shark
> + some review fixes from the mailing list]
> 
> Signed-off-by: Eric Miao <eric.miao@canonical.com>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Although Eric did all the work, the original idea was mine.  Therefore:

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>





> ---
>  arch/arm/Kconfig                  |   99 +++++++++++++++++++++++++++++++++++++
>  arch/arm/boot/Makefile            |    8 +--
>  arch/arm/boot/compressed/Makefile |    3 +-
>  arch/arm/boot/compressed/head.S   |   12 +++-
>  4 files changed, 112 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index a53ac65..0b0cf0d 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1490,6 +1490,105 @@ config ATAGS_PROC
>  	  Should the atags used to boot the kernel be exported in an "atags"
>  	  file in procfs. Useful with kexec.
>  
> +config AUTO_ZRELADDR
> +	bool "Auto calculation of the decompressed kernel image address"
> +	depends on !ZBOOT_ROM && !ARCH_U300
> +	help
> +	  ZRELADDR is the physical address where the decompressed kernel
> +	  image will be placed. If AUTO_ZRELADDR is selected, the address
> +	  will be determined at run-time by masking the current IP with
> +	  0xf8000000. This assumes the zImage being placed in the first 128MB
> +	  from start of memory.
> +
> +config ZRELADDR
> +	hex "Physical address of the decompressed kernel image"
> +	depends on !AUTO_ZRELADDR
> +	default 0x00008000 if ARCH_BCMRING ||\
> +		ARCH_CNS3XXX ||\
> +		ARCH_DOVE ||\
> +		ARCH_EBSA110 ||\
> +		ARCH_FOOTBRIDGE ||\
> +		ARCH_INTEGRATOR ||\
> +		ARCH_IOP13XX ||\
> +		ARCH_IOP33X ||\
> +		ARCH_IXP2000 ||\
> +		ARCH_IXP23XX ||\
> +		ARCH_IXP4XX ||\
> +		ARCH_KIRKWOOD ||\
> +		ARCH_KS8695 ||\
> +		ARCH_LOKI ||\
> +		ARCH_MMP ||\
> +		ARCH_MV78XX0 ||\
> +		ARCH_NOMADIK ||\
> +		ARCH_NUC93X ||\
> +		ARCH_NS9XXX ||\
> +		ARCH_ORION5X ||\
> +		ARCH_SPEAR3XX ||\
> +		ARCH_SPEAR6XX ||\
> +		ARCH_U8500 ||\
> +		ARCH_VERSATILE ||\
> +		ARCH_W90X900
> +	default 0x08008000 if ARCH_MX1 ||\
> +		ARCH_SHARK
> +	default 0x10008000 if ARCH_MSM ||\
> +		ARCH_OMAP1 ||\
> +		ARCH_RPC
> +	default 0x20008000 if ARCH_S5P6440 ||\
> +		ARCH_S5P6442 ||\
> +		ARCH_S5PC100 ||\
> +		ARCH_S5PV210
> +	default 0x30008000 if ARCH_S3C2410 ||\
> +		ARCH_S3C2400 ||\
> +		ARCH_S3C2412 ||\
> +		ARCH_S3C2416 ||\
> +		ARCH_S3C2440 ||\
> +		ARCH_S3C2443
> +	default 0x40008000 if ARCH_STMP378X ||\
> +		ARCH_STMP37XX ||\
> +		ARCH_SH7372 ||\
> +		ARCH_SH7377
> +	default 0x50008000 if ARCH_S3C64XX ||\
> +		ARCH_SH7367
> +	default 0x60008000 if ARCH_VEXPRESS
> +	default 0x80008000 if ARCH_MX25 ||\
> +		ARCH_MX3 ||\
> +		ARCH_NETX ||\
> +		ARCH_OMAP2PLUS ||\
> +		ARCH_PNX4008
> +	default 0x90008000 if ARCH_MX5 ||\
> +		ARCH_MX91231
> +	default 0xa0008000 if ARCH_IOP32X ||\
> +		ARCH_PXA ||\
> +		MACH_MX27
> +	default 0xc0008000 if ARCH_LH7A40X ||\
> +		MACH_MX21
> +	default 0xf0008000 if ARCH_AAEC2000 ||\
> +		ARCH_L7200
> +	default 0xc0028000 if ARCH_CLPS711X
> +	default 0x70008000 if ARCH_AT91 && (ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
> +	default 0x20008000 if ARCH_AT91 && !(ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
> +	default 0xc0008000 if ARCH_DAVINCI && ARCH_DAVINCI_DA8XX
> +	default 0x80008000 if ARCH_DAVINCI && !ARCH_DAVINCI_DA8XX
> +	default 0x00008000 if ARCH_EP93XX && EP93XX_SDCE3_SYNC_PHYS_OFFSET
> +	default 0xc0008000 if ARCH_EP93XX && EP93XX_SDCE0_PHYS_OFFSET
> +	default 0xd0008000 if ARCH_EP93XX && EP93XX_SDCE1_PHYS_OFFSET
> +	default 0xe0008000 if ARCH_EP93XX && EP93XX_SDCE2_PHYS_OFFSET
> +	default 0xf0008000 if ARCH_EP93XX && EP93XX_SDCE3_ASYNC_PHYS_OFFSET
> +	default 0x00008000 if ARCH_GEMINI && GEMINI_MEM_SWAP
> +	default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP
> +	default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET
> +	default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET
> +	default 0xc0208000 if ARCH_SA1100 && SA1111
> +	default 0xc0008000 if ARCH_SA1100 && !SA1111
> +	default 0x30108000 if ARCH_S3C2410 && PM_H1940
> +	default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM
> +	default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM
> +	help
> +	  ZRELADDR is the physical address where the decompressed kernel
> +	  image will be placed. ZRELADDR has to be specified when the
> +	  assumption of AUTO_ZRELADDR is not valid, or when ZBOOT_ROM is
> +	  selected.
> +
>  endmenu
>  
>  menu "CPU Power Management"
> diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
> index 264dccf..5e89c2c 100644
> --- a/arch/arm/boot/Makefile
> +++ b/arch/arm/boot/Makefile
> @@ -14,18 +14,16 @@
>  MKIMAGE         := $(srctree)/scripts/mkuboot.sh
>  
>  ifneq ($(MACHINE),)
> -include $(srctree)/$(MACHINE)/Makefile.boot
> +-include $(srctree)/$(MACHINE)/Makefile.boot
>  endif
>  
>  # Note: the following conditions must always be true:
> -#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
>  #   PARAMS_PHYS must be within 4MB of ZRELADDR
>  #   INITRD_PHYS must be in RAM
> -ZRELADDR    := $(zreladdr-y)
>  PARAMS_PHYS := $(params_phys-y)
>  INITRD_PHYS := $(initrd_phys-y)
>  
> -export ZRELADDR INITRD_PHYS PARAMS_PHYS
> +export INITRD_PHYS PARAMS_PHYS
>  
>  targets := Image zImage xipImage bootpImage uImage
>  
> @@ -68,7 +66,7 @@ ifeq ($(CONFIG_RUNTIME_PHYS_OFFSET),)
>  ifeq ($(CONFIG_ZBOOT_ROM),y)
>  $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
>  else
> -$(obj)/uImage: LOADADDR=$(ZRELADDR)
> +$(obj)/uImage: LOADADDR=$(CONFIG_ZRELADDR)
>  endif
>  endif
>  
> diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
> index 2a80c9d..cc8380b 100644
> --- a/arch/arm/boot/compressed/Makefile
> +++ b/arch/arm/boot/compressed/Makefile
> @@ -4,6 +4,7 @@
>  # create a compressed vmlinuz image from the original vmlinux
>  #
>  
> +AFLAGS_head.o += -DTEXT_OFFSET=$(TEXT_OFFSET)
>  HEAD	= head.o
>  OBJS	= misc.o decompress.o
>  FONTC	= $(srctree)/drivers/video/console/font_acorn_8x8.c
> @@ -79,8 +80,6 @@ endif
>  EXTRA_CFLAGS  := -fpic -fno-builtin
>  EXTRA_AFLAGS  := -Wa,-march=all
>  
> -# Supply ZRELADDR to the decompressor via a linker symbol.
> -LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
>  ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
>  LDFLAGS_vmlinux += --be8
>  endif
> diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
> index d27faa1..abf4d65 100644
> --- a/arch/arm/boot/compressed/head.S
> +++ b/arch/arm/boot/compressed/head.S
> @@ -170,9 +170,16 @@ not_angel:
>  
>  		.text
>  		adr	r0, LC0
> - ARM(		ldmia	r0, {r1, r2, r3, r4, r5, r6, r11, ip, sp})
> - THUMB(		ldmia	r0, {r1, r2, r3, r4, r5, r6, r11, ip}	)
> + ARM(		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip, sp})
> + THUMB(		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip}	)
>   THUMB(		ldr	sp, [r0, #32]				)
> +#ifdef CONFIG_AUTO_ZRELADDR
> +		@ determine final kernel image address
> +		and	r4, pc, #0xf8000000
> +		add	r4, r4, #TEXT_OFFSET
> +#else
> +		ldr	r4, =CONFIG_ZRELADDR
> +#endif
>  		subs	r0, r0, r1		@ calculate the delta offset
>  
>  						@ if delta is zero, we are
> @@ -310,7 +317,6 @@ wont_overwrite:	mov	r0, r4
>  LC0:		.word	LC0			@ r1
>  		.word	__bss_start		@ r2
>  		.word	_end			@ r3
> -		.word	zreladdr		@ r4
>  		.word	_start			@ r5
>  		.word	_image_size		@ r6
>  		.word	_got_start		@ r11
> -- 
> 1.7.1
> 

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 06/11] ARM: remove bit-rotten STANDALONE_DEBUG for decompressor
  2010-07-05 14:15   ` [PATCH 06/11] ARM: remove bit-rotten STANDALONE_DEBUG for decompressor Uwe Kleine-König
@ 2010-07-05 15:36     ` Nicolas Pitre
  0 siblings, 0 replies; 138+ messages in thread
From: Nicolas Pitre @ 2010-07-05 15:36 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 5 Jul 2010, Uwe Kleine-K?nig wrote:

> I tried to get this running to debug the regression introduced by
> e7db7b4 without success.  But this has several problems that make it
> hard to fix:
> 
>   - lib/decompress_inflate.c includes in-kernel headers that make
>     it difficult to compile for user space.
>   - the binary formats changed both in kernel and user space and
>     at least for the kernel side there isn't only a single
>     variant.
> 
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>


> ---
>  arch/arm/boot/compressed/Makefile.debug |   23 -----------------------
>  arch/arm/boot/compressed/misc.c         |   20 --------------------
>  2 files changed, 0 insertions(+), 43 deletions(-)
>  delete mode 100644 arch/arm/boot/compressed/Makefile.debug
> 
> diff --git a/arch/arm/boot/compressed/Makefile.debug b/arch/arm/boot/compressed/Makefile.debug
> deleted file mode 100644
> index 491a037..0000000
> --- a/arch/arm/boot/compressed/Makefile.debug
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -#
> -# linux/arch/arm/boot/compressed/Makefile
> -#
> -# create a compressed vmlinux image from the original vmlinux
> -#
> -
> -COMPRESSED_EXTRA=../../lib/ll_char_wr.o
> -OBJECTS=misc-debug.o ll_char_wr.aout.o
> -
> -CFLAGS=-D__KERNEL__ -O2 -DSTDC_HEADERS -DSTANDALONE_DEBUG -Wall -I../../../../include -c
> -
> -test-gzip: piggy.aout.o $(OBJECTS)
> -	$(CC) -o $@ $(OBJECTS) piggy.aout.o
> -
> -misc-debug.o: misc.c
> -	$(CC) $(CFLAGS) -o $@ misc.c
> -
> -piggy.aout.o: piggy.o
> -	arm-linuxelf-objcopy --change-leading-char -I elf32-arm -O arm-aout32-linux piggy.o piggy.aout.o
> -
> -ll_char_wr.aout.o: $(COMPRESSED_EXTRA)
> -	arm-linuxelf-objcopy --change-leading-char -I elf32-arm -O arm-aout32-linux $(COMPRESSED_EXTRA) ll_char_wr.aout.o
> -
> diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c
> index d2b2ef4..e653a6d 100644
> --- a/arch/arm/boot/compressed/misc.c
> +++ b/arch/arm/boot/compressed/misc.c
> @@ -28,9 +28,6 @@ unsigned int __machine_arch_type;
>  
>  #include <asm/unaligned.h>
>  
> -#ifdef STANDALONE_DEBUG
> -#define putstr printf
> -#else
>  
>  static void putstr(const char *ptr);
>  extern void error(char *x);
> @@ -116,7 +113,6 @@ static void putstr(const char *ptr)
>  	flush();
>  }
>  
> -#endif
>  
>  void *memcpy(void *__dest, __const void *__src, size_t __n)
>  {
> @@ -186,7 +182,6 @@ asmlinkage void __div0(void)
>  
>  extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x));
>  
> -#ifndef STANDALONE_DEBUG
>  
>  unsigned long
>  decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
> @@ -211,18 +206,3 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
>  	putstr(" done, booting the kernel.\n");
>  	return output_ptr;
>  }
> -#else
> -
> -char output_buffer[1500*1024];
> -
> -int main()
> -{
> -	output_data = output_buffer;
> -
> -	putstr("Uncompressing Linux...");
> -	decompress(input_data, input_data_end - input_data,
> -			NULL, NULL, output_data, NULL, error);
> -	putstr("done.\n");
> -	return 0;
> -}
> -#endif
> -- 
> 1.7.1
> 

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 09/11] ARM: uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET
  2010-07-05 14:15   ` [PATCH 09/11] ARM: uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET Uwe Kleine-König
@ 2010-07-05 16:03     ` Nicolas Pitre
  0 siblings, 0 replies; 138+ messages in thread
From: Nicolas Pitre @ 2010-07-05 16:03 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 5 Jul 2010, Uwe Kleine-K?nig wrote:

> the default load address (in the CONFIG_ZBOOT_ROM=n case) is ZRELADDR
> which (apart from being a stupid load address for the
> RUNTIME_PHYSOFFSET=n case) might not be a valid read/write memory on the
> target machine at all.  So require passing a LOADADDR on the command
> line.  This obiously makes the uImage more machine dependant than the
> zImage.

Why is this required?  If something is stupid here, it is the fact that 
the U-Boot image format insists on having a load address being built 
into it.  That certainly makes uImage an unsuitable image format for the 
distribution of a cross platform kernel image.

Besides that, you are claiming above that ZRELADDR might not be a valid 
writable address when ZBOOT_ROM=n.  If that was true we would be having 
boot failures all over the place already.

Remember that the goal for this revived effort behind the 
RUNTIME_PHYSOFFSET support is to eventually be able to boot a single 
kernel binary on multiple different platforms.  Asking that a load 
address be provided at kernel compile time is rather incompatible with 
that goal.  If there is no good default LOADADDR value for mkimage then 
simply don't provide any.  I hope that mkimage can cope with that.  
Otherwise just give it 0 which is as wrong as any other value and let 
that be an incentive for the U-Boot people to fix the tool properly 
(i.e. use that as a flag to let U-Boot that the load address must be 
explicitly provided with the load command or whatever).

Therefore, this is a NAK from me.


Nicolas

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 11/11] Auto calculate ZRELADDR and provide option for exceptions
  2010-07-05 15:31     ` Nicolas Pitre
@ 2010-07-06  2:09       ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-07-06  2:09 UTC (permalink / raw)
  To: linux-arm-kernel

2010/7/5 Nicolas Pitre <nico@fluxnic.net>:
> On Mon, 5 Jul 2010, Uwe Kleine-K?nig wrote:
>
>> From: Eric Miao <eric.miao@canonical.com>
>>
>> As long as the zImage is placed within the 128MB range from the start of
>> memory, ZRELADDR (Address where the decompressed kernel will be placed,
>> usually == PHYS_OFFSET + TEXT_OFFSET) can be determined at run-time by
>> masking PC with 0xf80000000.
>>
>> Running through all the Makefile.boot, all those zreladdr-y
>> addresses == 0x[0-f][08]00_0000 + TEXT_OFFSET can be determined at
>> run-time.
>>
>> Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
>> CONFIG_ZRELADDR _must_ be explicitly specified if:
>>
>> - ((zreladdr-y - TEXT_OFFSET) & ~0xf8000000) != 0, which means
>> ? masking PC with 0xf8000000 will result in an incorrect address.
>> ? Currently this is only a problem on u300.
>>
>> - or the assumption of the zImage being loaded by the bootloader within
>> ? the first 128MB of RAM is incorrect
>>
>> - or when ZBOOT_ROM is used, where the above assumption is usually wrong.
>>
>> [ukleinek: changed mask from 0xf0000000 to 0xf8000000 for mx1 and shark
>> + some review fixes from the mailing list]
>>
>> Signed-off-by: Eric Miao <eric.miao@canonical.com>
>> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
>
> Although Eric did all the work, the original idea was mine. ?Therefore:
>
> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
>

Yep. Uwe, please add this, thanks.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
                     ` (10 preceding siblings ...)
  2010-07-05 14:15   ` [PATCH 11/11] Auto calculate ZRELADDR and provide option for exceptions Uwe Kleine-König
@ 2010-07-07 14:45   ` Uwe Kleine-König
  2010-07-07 15:54     ` Nicolas Pitre
  11 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-07 14:45 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Russell,

On Mon, Jul 05, 2010 at 04:13:44PM +0200, Uwe Kleine-K?nig wrote:
> this series is a merge between Eric's and my patches that we did to
> clean up the early boot code.  It doesn't contain runtime physoffset
> support for now, but I plan to pick that up later.

I added Nicolas' Acks to my tree and dropped the one patch he objected.

Are you willing to pull these now?

Best regards
Uwe

> The following changes since commit 7e27d6e778cd87b6f2415515d7127eba53fe5d02:
> 
>   Linux 2.6.35-rc3 (2010-06-11 19:14:04 -0700)
> 
> are available in the git repository at:
>   git://git.pengutronix.de/git/ukl/linux-2.6.git arm/booting
> 
> Eric Miao (2):
>       ARM: Remove unused PARAMS_PHYS from arch/arm/boot/compressed
>       Auto calculate ZRELADDR and provide option for exceptions
> 
> Uwe Kleine-K?nig (9):
>       ARM: zImage: don't hard code the stack size twice
>       ARM: zImage: some comments for __armv3_mpu_cache_on
>       ARM: zImage: __armv3_mpu_cache_flush: respect should-be-zero specification
>       ARM: zImage: fix comments for cache_on, cache_off and cache_clean_flush
>       ARM: zImage: annotate debug functions about corrupted registers
>       ARM: remove bit-rotten STANDALONE_DEBUG for decompressor
>       ARM: zImage: don't define unused symbol initrd_phys
>       ARM: deprecate support for old way to pass kernel parameters
>       ARM: uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET
> 
>  arch/arm/Kconfig                        |  105 +++++++++++++++++++++++++++++++
>  arch/arm/boot/Makefile                  |   14 +++--
>  arch/arm/boot/compressed/Makefile       |   11 +---
>  arch/arm/boot/compressed/Makefile.debug |   23 -------
>  arch/arm/boot/compressed/head.S         |   40 +++++++++---
>  arch/arm/boot/compressed/misc.c         |   20 ------
>  arch/arm/kernel/Makefile                |    4 +-
>  arch/arm/kernel/compat.c                |    7 --
>  arch/arm/kernel/compat.h                |    2 -
>  arch/arm/kernel/setup.c                 |   11 +++
>  10 files changed, 157 insertions(+), 80 deletions(-)
>  delete mode 100644 arch/arm/boot/compressed/Makefile.debug
> -- 
> Pengutronix e.K.                           | Uwe Kleine-K?nig            |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-07-07 14:45   ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
@ 2010-07-07 15:54     ` Nicolas Pitre
  2010-07-08  7:08       ` Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Nicolas Pitre @ 2010-07-07 15:54 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 7 Jul 2010, Uwe Kleine-K?nig wrote:

> Hi Russell,
> 
> On Mon, Jul 05, 2010 at 04:13:44PM +0200, Uwe Kleine-K?nig wrote:
> > this series is a merge between Eric's and my patches that we did to
> > clean up the early boot code.  It doesn't contain runtime physoffset
> > support for now, but I plan to pick that up later.
> 
> I added Nicolas' Acks to my tree and dropped the one patch he objected.
> 
> Are you willing to pull these now?

FWIW, I'm fine with Russell pulling this into his tree for the next 
merge window.  Maybe you could just resend an official pull request with 
the updated info.  I'll include it in the Linaro consolidation tree in 
the mean time if you don't mind.


Nicolas

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-07-07 15:54     ` Nicolas Pitre
@ 2010-07-08  7:08       ` Uwe Kleine-König
  2010-07-08 20:49         ` Nicolas Pitre
                           ` (2 more replies)
  0 siblings, 3 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-08  7:08 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Russell,

On Wed, Jul 07, 2010 at 11:54:14AM -0400, Nicolas Pitre wrote:
> On Wed, 7 Jul 2010, Uwe Kleine-K?nig wrote:
> > On Mon, Jul 05, 2010 at 04:13:44PM +0200, Uwe Kleine-K?nig wrote:
> > > this series is a merge between Eric's and my patches that we did to
> > > clean up the early boot code.  It doesn't contain runtime physoffset
> > > support for now, but I plan to pick that up later.
> > 
> > I added Nicolas' Acks to my tree and dropped the one patch he objected.
> > 
> > Are you willing to pull these now?
> 
> FWIW, I'm fine with Russell pulling this into his tree for the next 
> merge window.  Maybe you could just resend an official pull request with 
> the updated info.
OK, I thought it similar enough to the original request, but if it helps
I can do that:

The following changes since commit 7e27d6e778cd87b6f2415515d7127eba53fe5d02:

  Linux 2.6.35-rc3 (2010-06-11 19:14:04 -0700)

are available in the git repository at:
  git://git.pengutronix.de/git/ukl/linux-2.6.git arm/booting

Eric Miao (2):
      ARM: Remove unused PARAMS_PHYS from arch/arm/boot/compressed
      Auto calculate ZRELADDR and provide option for exceptions

Uwe Kleine-K?nig (8):
      ARM: zImage: don't hard code the stack size twice
      ARM: zImage: some comments for __armv3_mpu_cache_on
      ARM: zImage: __armv3_mpu_cache_flush: respect should-be-zero specification
      ARM: zImage: fix comments for cache_on, cache_off and cache_clean_flush
      ARM: zImage: annotate debug functions about corrupted registers
      ARM: remove bit-rotten STANDALONE_DEBUG for decompressor
      ARM: zImage: don't define unused symbol initrd_phys
      ARM: deprecate support for old way to pass kernel parameters

 arch/arm/Kconfig                        |  105 +++++++++++++++++++++++++++++++
 arch/arm/boot/Makefile                  |    8 +--
 arch/arm/boot/compressed/Makefile       |   11 +---
 arch/arm/boot/compressed/Makefile.debug |   23 -------
 arch/arm/boot/compressed/head.S         |   40 +++++++++---
 arch/arm/boot/compressed/misc.c         |   20 ------
 arch/arm/kernel/Makefile                |    4 +-
 arch/arm/kernel/compat.c                |    7 --
 arch/arm/kernel/compat.h                |    2 -
 arch/arm/kernel/setup.c                 |   11 +++
 10 files changed, 152 insertions(+), 79 deletions(-)
 delete mode 100644 arch/arm/boot/compressed/Makefile.debug

Russell, can you please pull this for the next merge window?

>                    I'll include it in the Linaro consolidation tree in 
> the mean time if you don't mind.
I don't know what the "Linaro consolidation tree" is, but I'm sure that
even if I minded I couldn't stop you to take it. :-)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-07-08  7:08       ` Uwe Kleine-König
@ 2010-07-08 20:49         ` Nicolas Pitre
  2010-07-10  9:16         ` Eric Miao
  2010-07-21  8:20         ` Uwe Kleine-König
  2 siblings, 0 replies; 138+ messages in thread
From: Nicolas Pitre @ 2010-07-08 20:49 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 8 Jul 2010, Uwe Kleine-K?nig wrote:

> >                    I'll include it in the Linaro consolidation tree in 
> > the mean time if you don't mind.
> I don't know what the "Linaro consolidation tree" is, but I'm sure that
> even if I minded I couldn't stop you to take it. :-)

I think it is good courtesy to ask.

FYI: Linaro is http://www.linaro.org.

The consolidation tree is described here: 
https://wiki.ubuntu.com/Specs/M/ARMKernelVersionAlignment

And the result can be found here:
http://git.linaro.org/gitweb?p=linux/arm_next.git;a=summary


Nicolas

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-07-08  7:08       ` Uwe Kleine-König
  2010-07-08 20:49         ` Nicolas Pitre
@ 2010-07-10  9:16         ` Eric Miao
  2010-07-21  8:20         ` Uwe Kleine-König
  2 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-07-10  9:16 UTC (permalink / raw)
  To: linux-arm-kernel

2010/7/8 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Hello Russell,
>
> On Wed, Jul 07, 2010 at 11:54:14AM -0400, Nicolas Pitre wrote:
>> On Wed, 7 Jul 2010, Uwe Kleine-K?nig wrote:
>> > On Mon, Jul 05, 2010 at 04:13:44PM +0200, Uwe Kleine-K?nig wrote:
>> > > this series is a merge between Eric's and my patches that we did to
>> > > clean up the early boot code. ?It doesn't contain runtime physoffset
>> > > support for now, but I plan to pick that up later.
>> >
>> > I added Nicolas' Acks to my tree and dropped the one patch he objected.
>> >
>> > Are you willing to pull these now?
>>
>> FWIW, I'm fine with Russell pulling this into his tree for the next
>> merge window. ?Maybe you could just resend an official pull request with
>> the updated info.
> OK, I thought it similar enough to the original request, but if it helps
> I can do that:
>
> The following changes since commit 7e27d6e778cd87b6f2415515d7127eba53fe5d02:
>
> ?Linux 2.6.35-rc3 (2010-06-11 19:14:04 -0700)
>
> are available in the git repository at:
> ?git://git.pengutronix.de/git/ukl/linux-2.6.git arm/booting
>
> Eric Miao (2):
> ? ? ?ARM: Remove unused PARAMS_PHYS from arch/arm/boot/compressed
> ? ? ?Auto calculate ZRELADDR and provide option for exceptions

This seems to miss the "ARM:" prefix, though a small issue.

>
> Uwe Kleine-K?nig (8):
> ? ? ?ARM: zImage: don't hard code the stack size twice
> ? ? ?ARM: zImage: some comments for __armv3_mpu_cache_on
> ? ? ?ARM: zImage: __armv3_mpu_cache_flush: respect should-be-zero specification
> ? ? ?ARM: zImage: fix comments for cache_on, cache_off and cache_clean_flush
> ? ? ?ARM: zImage: annotate debug functions about corrupted registers
> ? ? ?ARM: remove bit-rotten STANDALONE_DEBUG for decompressor
> ? ? ?ARM: zImage: don't define unused symbol initrd_phys
> ? ? ?ARM: deprecate support for old way to pass kernel parameters
>
> ?arch/arm/Kconfig ? ? ? ? ? ? ? ? ? ? ? ?| ?105 +++++++++++++++++++++++++++++++
> ?arch/arm/boot/Makefile ? ? ? ? ? ? ? ? ?| ? ?8 +--
> ?arch/arm/boot/compressed/Makefile ? ? ? | ? 11 +---
> ?arch/arm/boot/compressed/Makefile.debug | ? 23 -------
> ?arch/arm/boot/compressed/head.S ? ? ? ? | ? 40 +++++++++---
> ?arch/arm/boot/compressed/misc.c ? ? ? ? | ? 20 ------
> ?arch/arm/kernel/Makefile ? ? ? ? ? ? ? ?| ? ?4 +-
> ?arch/arm/kernel/compat.c ? ? ? ? ? ? ? ?| ? ?7 --
> ?arch/arm/kernel/compat.h ? ? ? ? ? ? ? ?| ? ?2 -
> ?arch/arm/kernel/setup.c ? ? ? ? ? ? ? ? | ? 11 +++
> ?10 files changed, 152 insertions(+), 79 deletions(-)
> ?delete mode 100644 arch/arm/boot/compressed/Makefile.debug
>
> Russell, can you please pull this for the next merge window?
>
>> ? ? ? ? ? ? ? ? ? ?I'll include it in the Linaro consolidation tree in
>> the mean time if you don't mind.
> I don't know what the "Linaro consolidation tree" is, but I'm sure that
> even if I minded I couldn't stop you to take it. :-)
>
> Best regards
> Uwe
>
> --
> Pengutronix e.K. ? ? ? ? ? ? ? ? ? ? ? ? ? | Uwe Kleine-K?nig ? ? ? ? ? ?|
> Industrial Linux Solutions ? ? ? ? ? ? ? ? | http://www.pengutronix.de/ ?|
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 0/5] Makefile.boot cleanup
  2010-07-08  7:08       ` Uwe Kleine-König
  2010-07-08 20:49         ` Nicolas Pitre
  2010-07-10  9:16         ` Eric Miao
@ 2010-07-21  8:20         ` Uwe Kleine-König
  2010-07-29 16:17           ` Git pull request, was " Nicolas Pitre
  2 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-07-21  8:20 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Russell,

On Thu, Jul 08, 2010 at 09:08:26AM +0200, Uwe Kleine-K?nig wrote:
> On Wed, Jul 07, 2010 at 11:54:14AM -0400, Nicolas Pitre wrote:
> > On Wed, 7 Jul 2010, Uwe Kleine-K?nig wrote:
> > > On Mon, Jul 05, 2010 at 04:13:44PM +0200, Uwe Kleine-K?nig wrote:
> > > > this series is a merge between Eric's and my patches that we did to
> > > > clean up the early boot code.  It doesn't contain runtime physoffset
> > > > support for now, but I plan to pick that up later.
> > > 
> > > I added Nicolas' Acks to my tree and dropped the one patch he objected.
> > > 
> > > Are you willing to pull these now?
> > 
> > FWIW, I'm fine with Russell pulling this into his tree for the next 
> > merge window.  Maybe you could just resend an official pull request with 
> > the updated info.
> OK, I thought it similar enough to the original request, but if it helps
> I can do that:
> 
> The following changes since commit 7e27d6e778cd87b6f2415515d7127eba53fe5d02:
> 
>   Linux 2.6.35-rc3 (2010-06-11 19:14:04 -0700)
> 
> are available in the git repository at:
>   git://git.pengutronix.de/git/ukl/linux-2.6.git arm/booting
> 
> Eric Miao (2):
>       ARM: Remove unused PARAMS_PHYS from arch/arm/boot/compressed
>       Auto calculate ZRELADDR and provide option for exceptions
> 
> Uwe Kleine-K?nig (8):
>       ARM: zImage: don't hard code the stack size twice
>       ARM: zImage: some comments for __armv3_mpu_cache_on
>       ARM: zImage: __armv3_mpu_cache_flush: respect should-be-zero specification
>       ARM: zImage: fix comments for cache_on, cache_off and cache_clean_flush
>       ARM: zImage: annotate debug functions about corrupted registers
>       ARM: remove bit-rotten STANDALONE_DEBUG for decompressor
>       ARM: zImage: don't define unused symbol initrd_phys
>       ARM: deprecate support for old way to pass kernel parameters
I added an ARM: prefix to Eric's second commit, other than that the
branch is unchanged.  Do you pull for .36-rc1?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* Git pull request, was Re: [PATCH 0/5] Makefile.boot cleanup
  2010-07-21  8:20         ` Uwe Kleine-König
@ 2010-07-29 16:17           ` Nicolas Pitre
  0 siblings, 0 replies; 138+ messages in thread
From: Nicolas Pitre @ 2010-07-29 16:17 UTC (permalink / raw)
  To: linux-arm-kernel

Russell,

Could you pull the above for the upcoming merge window please?
We've got a couple patches depending on this and that would simplify 
things if this was merged into mainline.


On Wed, 21 Jul 2010, Uwe Kleine-K?nig wrote:

> Hello Russell,
> 
> On Thu, Jul 08, 2010 at 09:08:26AM +0200, Uwe Kleine-K?nig wrote:
> > On Wed, Jul 07, 2010 at 11:54:14AM -0400, Nicolas Pitre wrote:
> > > On Wed, 7 Jul 2010, Uwe Kleine-K?nig wrote:
> > > > On Mon, Jul 05, 2010 at 04:13:44PM +0200, Uwe Kleine-K?nig wrote:
> > > > > this series is a merge between Eric's and my patches that we did to
> > > > > clean up the early boot code.  It doesn't contain runtime physoffset
> > > > > support for now, but I plan to pick that up later.
> > > > 
> > > > I added Nicolas' Acks to my tree and dropped the one patch he objected.
> > > > 
> > > > Are you willing to pull these now?
> > > 
> > > FWIW, I'm fine with Russell pulling this into his tree for the next 
> > > merge window.  Maybe you could just resend an official pull request with 
> > > the updated info.
> > OK, I thought it similar enough to the original request, but if it helps
> > I can do that:
> > 
> > The following changes since commit 7e27d6e778cd87b6f2415515d7127eba53fe5d02:
> > 
> >   Linux 2.6.35-rc3 (2010-06-11 19:14:04 -0700)
> > 
> > are available in the git repository at:
> >   git://git.pengutronix.de/git/ukl/linux-2.6.git arm/booting
> > 
> > Eric Miao (2):
> >       ARM: Remove unused PARAMS_PHYS from arch/arm/boot/compressed
> >       Auto calculate ZRELADDR and provide option for exceptions
> > 
> > Uwe Kleine-K?nig (8):
> >       ARM: zImage: don't hard code the stack size twice
> >       ARM: zImage: some comments for __armv3_mpu_cache_on
> >       ARM: zImage: __armv3_mpu_cache_flush: respect should-be-zero specification
> >       ARM: zImage: fix comments for cache_on, cache_off and cache_clean_flush
> >       ARM: zImage: annotate debug functions about corrupted registers
> >       ARM: remove bit-rotten STANDALONE_DEBUG for decompressor
> >       ARM: zImage: don't define unused symbol initrd_phys
> >       ARM: deprecate support for old way to pass kernel parameters
> I added an ARM: prefix to Eric's second commit, other than that the
> branch is unchanged.  Do you pull for .36-rc1?
> 
> Best regards
> Uwe
> 
> -- 
> Pengutronix e.K.                           | Uwe Kleine-K?nig            |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> 

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 11/11] Auto calculate ZRELADDR and provide option for exceptions
  2010-07-05 14:15   ` [PATCH 11/11] Auto calculate ZRELADDR and provide option for exceptions Uwe Kleine-König
  2010-07-05 15:31     ` Nicolas Pitre
@ 2010-07-31 15:54     ` Russell King - ARM Linux
  2010-07-31 17:44       ` Nicolas Pitre
  2010-08-02  8:42       ` [PATCH] ARM: don't expose CONFIG_ZRELADDR to the users Uwe Kleine-König
  1 sibling, 2 replies; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-07-31 15:54 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Jul 05, 2010 at 04:15:29PM +0200, Uwe Kleine-K?nig wrote:
> +config ZRELADDR
> +	hex "Physical address of the decompressed kernel image"

Does it really make sense for users to be able to edit this?  I don't
think so as some platforms depend on its value being set appropriately,
plus the requirements for it aren't documented in the help text.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 11/11] Auto calculate ZRELADDR and provide option for exceptions
  2010-07-31 15:54     ` Russell King - ARM Linux
@ 2010-07-31 17:44       ` Nicolas Pitre
  2010-08-02  8:42       ` [PATCH] ARM: don't expose CONFIG_ZRELADDR to the users Uwe Kleine-König
  1 sibling, 0 replies; 138+ messages in thread
From: Nicolas Pitre @ 2010-07-31 17:44 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat, 31 Jul 2010, Russell King - ARM Linux wrote:

> On Mon, Jul 05, 2010 at 04:15:29PM +0200, Uwe Kleine-K?nig wrote:
> > +config ZRELADDR
> > +	hex "Physical address of the decompressed kernel image"
> 
> Does it really make sense for users to be able to edit this?  I don't
> think so as some platforms depend on its value being set appropriately,
> plus the requirements for it aren't documented in the help text.

No, I don't think we should expose this to the user.


Nicolas

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH] ARM: don't expose CONFIG_ZRELADDR to the users
  2010-07-31 15:54     ` Russell King - ARM Linux
  2010-07-31 17:44       ` Nicolas Pitre
@ 2010-08-02  8:42       ` Uwe Kleine-König
  1 sibling, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-08-02  8:42 UTC (permalink / raw)
  To: linux-arm-kernel

This value is essential for booting a zImage and only depends on the
memory layout of the machine to boot.  This value was specified in
Makefile.boot before

	e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)

and so wasn't available to change via .config.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Nicolas Pitre <nico@fluxnic.net>
Cc: Eric Miao <eric.miao@canonical.com>
---
 arch/arm/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e39caa8..ec0e124 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1528,7 +1528,7 @@ config AUTO_ZRELADDR
 	  from start of memory.
 
 config ZRELADDR
-	hex "Physical address of the decompressed kernel image"
+	hex
 	depends on !AUTO_ZRELADDR
 	default 0x00008000 if ARCH_BCMRING ||\
 		ARCH_CNS3XXX ||\
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-06-03  7:36 ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Eric Miao
                     ` (4 preceding siblings ...)
  2010-06-11  4:27   ` srinidhi
@ 2010-09-02 21:21   ` Russell King - ARM Linux
  2010-09-02 21:27     ` Russell King - ARM Linux
  5 siblings, 1 reply; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-09-02 21:21 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 03, 2010 at 03:36:52PM +0800, Eric Miao wrote:
> From: Eric Miao <eric.y.miao@gmail.com>
> 
> Original idea and prototype came from Nicolas Pitre.
> 
> As long as the zImage is placed within the 256MB range from the
> start of the memory, ZRELADDR (Address where the decompressed
> kernel will be placed, usually  == PHYS_OFFSET + TEXT_OFFSET)
> can be determined at run-time by masking PC with 0xf000_0000.
> 
> Running through all the Makefile.boot, all those zreladdr-y
> address == 0x[0-f]000_0000 + TEXT_OFFSET can be determined at
> run-time.
> 
> Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
> CONFIG_ZRELADDR _must_ be explicitly specified if:
> 
>  - ((zreladdr-y - TEXT_OFFSET) & ~0xf0000000) != 0, which means
>    a maksing of PC with 0xf000_0000 will result an incorrect
>    address.
> 
>  - or the assumption of the zImage being loaded by the boot
>    loader within 256MB from the start address is simply
>    incorrect
> 
>  - or when ZBOOT_ROM is used, where the above assumption is
>    normally wrong
> 
> List of all Makefile.boot:

Not so.  What happened to H720x platforms, which are now broken?
Any chance of fixing the regression that this introduced?

http://armlinux.simtec.co.uk/kautobuild/2.6.36-rc3/h7202_defconfig/zimage.log

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-09-02 21:21   ` Russell King - ARM Linux
@ 2010-09-02 21:27     ` Russell King - ARM Linux
  2010-09-03  7:48       ` Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-09-02 21:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Sep 02, 2010 at 10:21:45PM +0100, Russell King - ARM Linux wrote:
> On Thu, Jun 03, 2010 at 03:36:52PM +0800, Eric Miao wrote:
> > From: Eric Miao <eric.y.miao@gmail.com>
> > 
> > Original idea and prototype came from Nicolas Pitre.
> > 
> > As long as the zImage is placed within the 256MB range from the
> > start of the memory, ZRELADDR (Address where the decompressed
> > kernel will be placed, usually  == PHYS_OFFSET + TEXT_OFFSET)
> > can be determined at run-time by masking PC with 0xf000_0000.
> > 
> > Running through all the Makefile.boot, all those zreladdr-y
> > address == 0x[0-f]000_0000 + TEXT_OFFSET can be determined at
> > run-time.
> > 
> > Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
> > CONFIG_ZRELADDR _must_ be explicitly specified if:
> > 
> >  - ((zreladdr-y - TEXT_OFFSET) & ~0xf0000000) != 0, which means
> >    a maksing of PC with 0xf000_0000 will result an incorrect
> >    address.
> > 
> >  - or the assumption of the zImage being loaded by the boot
> >    loader within 256MB from the start address is simply
> >    incorrect
> > 
> >  - or when ZBOOT_ROM is used, where the above assumption is
> >    normally wrong
> > 
> > List of all Makefile.boot:
> 
> Not so.  What happened to H720x platforms, which are now broken?
> Any chance of fixing the regression that this introduced?
> 
> http://armlinux.simtec.co.uk/kautobuild/2.6.36-rc3/h7202_defconfig/zimage.log

And while we're here, why hasn't anyone removed the zreladdr
definitions in Makefile.boot yet?  Or do we still need them and
we now have the same information defined in two different places?

This all looks like a half-done job at the moment.  Please clean it up.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-09-02 21:27     ` Russell King - ARM Linux
@ 2010-09-03  7:48       ` Uwe Kleine-König
  2010-09-03  9:55         ` Uwe Kleine-König
  2010-09-03 13:33         ` Eric Miao
  0 siblings, 2 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03  7:48 UTC (permalink / raw)
  To: linux-arm-kernel

Hello,

On Thu, Sep 02, 2010 at 10:27:23PM +0100, Russell King - ARM Linux wrote:
> On Thu, Sep 02, 2010 at 10:21:45PM +0100, Russell King - ARM Linux wrote:
> > On Thu, Jun 03, 2010 at 03:36:52PM +0800, Eric Miao wrote:
> > > From: Eric Miao <eric.y.miao@gmail.com>
> > > 
> > > Original idea and prototype came from Nicolas Pitre.
> > > 
> > > As long as the zImage is placed within the 256MB range from the
> > > start of the memory, ZRELADDR (Address where the decompressed
> > > kernel will be placed, usually  == PHYS_OFFSET + TEXT_OFFSET)
> > > can be determined at run-time by masking PC with 0xf000_0000.
> > > 
> > > Running through all the Makefile.boot, all those zreladdr-y
> > > address == 0x[0-f]000_0000 + TEXT_OFFSET can be determined at
> > > run-time.
> > > 
> > > Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
> > > CONFIG_ZRELADDR _must_ be explicitly specified if:
> > > 
> > >  - ((zreladdr-y - TEXT_OFFSET) & ~0xf0000000) != 0, which means
> > >    a maksing of PC with 0xf000_0000 will result an incorrect
> > >    address.
> > > 
> > >  - or the assumption of the zImage being loaded by the boot
> > >    loader within 256MB from the start address is simply
> > >    incorrect
> > > 
> > >  - or when ZBOOT_ROM is used, where the above assumption is
> > >    normally wrong
> > > 
> > > List of all Makefile.boot:
> > 
> > Not so.  What happened to H720x platforms, which are now broken?
> > Any chance of fixing the regression that this introduced?
> > 
> > http://armlinux.simtec.co.uk/kautobuild/2.6.36-rc3/h7202_defconfig/zimage.log
> 
> And while we're here, why hasn't anyone removed the zreladdr
> definitions in Makefile.boot yet?  Or do we still need them and
> we now have the same information defined in two different places?
> 
> This all looks like a half-done job at the moment.  Please clean it up.
The original series removed all the 'Makefile.boot's IIRC.  Currently
the params_phys-y value is needed though.  So should I send a patch that
just removes the zreladdr values?

Eric, what are your plans regarding the runtime-physoffset stuff?  (I
currently have none.)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-09-03  7:48       ` Uwe Kleine-König
@ 2010-09-03  9:55         ` Uwe Kleine-König
  2010-09-03  9:56           ` [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA Uwe Kleine-König
                             ` (9 more replies)
  2010-09-03 13:33         ` Eric Miao
  1 sibling, 10 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03  9:55 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Russell,

On Fri, Sep 03, 2010 at 09:48:06AM +0200, Uwe Kleine-K?nig wrote:
> On Thu, Sep 02, 2010 at 10:27:23PM +0100, Russell King - ARM Linux wrote:
> > 
> > And while we're here, why hasn't anyone removed the zreladdr
> > definitions in Makefile.boot yet?  Or do we still need them and
> > we now have the same information defined in two different places?
> > 
> > This all looks like a half-done job at the moment.  Please clean it up.
> The original series removed all the 'Makefile.boot's IIRC.  Currently
> the params_phys-y value is needed though.  So should I send a patch that
> just removes the zreladdr values?
I looked into that and found some more issues.  I hope I catched them
all now.  While doing that removing the zreladdr lines was nearly for
free.  So I did that, too.

I couldn't determine who to cc: for the ARCH_H720X patch.  Russell, do
you maintain this platform?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-03  9:55         ` Uwe Kleine-König
@ 2010-09-03  9:56           ` Uwe Kleine-König
  2010-09-03 17:46             ` Erik Gilling
  2010-09-03  9:56             ` Uwe Kleine-König
                             ` (8 subsequent siblings)
  9 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03  9:56 UTC (permalink / raw)
  To: linux-arm-kernel

This was missed in commit

	e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)

Cc: linux-tegra at vger.kernel.org
Cc: Colin Cross <ccross@android.com>
Cc: Erik Gilling <konkers@android.com>
Cc: Olof Johansson <olof@lixom.net>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/Kconfig                  |    1 +
 arch/arm/mach-tegra/Makefile.boot |    1 -
 2 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a7ed21f..16bc8eb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1601,6 +1601,7 @@ config ZRELADDR
 		ARCH_ORION5X ||\
 		ARCH_SPEAR3XX ||\
 		ARCH_SPEAR6XX ||\
+		ARCH_TEGRA ||\
 		ARCH_U8500 ||\
 		ARCH_VERSATILE ||\
 		ARCH_W90X900
diff --git a/arch/arm/mach-tegra/Makefile.boot b/arch/arm/mach-tegra/Makefile.boot
index db52d61..6044e12 100644
--- a/arch/arm/mach-tegra/Makefile.boot
+++ b/arch/arm/mach-tegra/Makefile.boot
@@ -1,3 +1,2 @@
-zreladdr-$(CONFIG_ARCH_TEGRA_2x_SOC)	:= 0x00008000
 params_phys-$(CONFIG_ARCH_TEGRA_2x_SOC)	:= 0x00000100
 initrd_phys-$(CONFIG_ARCH_TEGRA_2x_SOC)	:= 0x00800000
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr
  2010-09-03  9:55         ` Uwe Kleine-König
@ 2010-09-03  9:56             ` Uwe Kleine-König
  2010-09-03  9:56             ` Uwe Kleine-König
                               ` (8 subsequent siblings)
  9 siblings, 0 replies; 138+ messages in thread
From:  @ 2010-09-03  9:56 UTC (permalink / raw)
  To: linux-arm-kernel

The calculated value in Makefile.boot isn't used anymore since

	e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)

and physoffset can better be set in mach/memory.h depending on the
actual machine type.

Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: linux-sh@vger.kernel.org
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 arch/arm/mach-shmobile/Kconfig               |   11 -----------
 arch/arm/mach-shmobile/Makefile.boot         |    9 ---------
 arch/arm/mach-shmobile/include/mach/memory.h |   15 ++++++++++++++-
 3 files changed, 14 insertions(+), 21 deletions(-)
 delete mode 100644 arch/arm/mach-shmobile/Makefile.boot

diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
index 54b479c..45e134e 100644
--- a/arch/arm/mach-shmobile/Kconfig
+++ b/arch/arm/mach-shmobile/Kconfig
@@ -61,17 +61,6 @@ comment "SH-Mobile System Configuration"
 
 menu "Memory configuration"
 
-config MEMORY_START
-	hex "Physical memory start address"
-	default "0x50000000" if MACH_G3EVM
-	default "0x40000000" if MACH_G4EVM
-	default "0x40000000" if MACH_AP4EVB
-	default "0x00000000"
-	---help---
-	  Tweak this only when porting to a new machine which does not
-	  already have a defconfig. Changing it from the known correct
-	  value on any of the known systems will only lead to disaster.
-
 config MEMORY_SIZE
 	hex "Physical memory size"
 	default "0x08000000" if MACH_G3EVM
diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot
deleted file mode 100644
index 1c08ee9..0000000
--- a/arch/arm/mach-shmobile/Makefile.boot
+++ /dev/null
@@ -1,9 +0,0 @@
-__ZRELADDR	:= $(shell /bin/bash -c 'printf "0x%08x" \
-		     $$[$(CONFIG_MEMORY_START) + 0x8000]')
-
-   zreladdr-y   := $(__ZRELADDR)
-
-# Unsupported legacy stuff
-#
-#params_phys-y (Instead: Pass atags pointer in r2)
-#initrd_phys-y (Instead: Use compiled-in initramfs)
diff --git a/arch/arm/mach-shmobile/include/mach/memory.h b/arch/arm/mach-shmobile/include/mach/memory.h
index 377584e..100f734 100644
--- a/arch/arm/mach-shmobile/include/mach/memory.h
+++ b/arch/arm/mach-shmobile/include/mach/memory.h
@@ -1,7 +1,20 @@
 #ifndef __ASM_MACH_MEMORY_H
 #define __ASM_MACH_MEMORY_H
 
-#define PHYS_OFFSET	UL(CONFIG_MEMORY_START)
+#define SH7367_PHYS_OFFSET UL(0x50000000)
+#define SH7372_PHYS_OFFSET UL(0x40000000)
+#define SH7377_PHYS_OFFSET UL(0x40000000)
+
+#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
+# if defined(CONFIG_ARCH_SH7367)
+#  define PHYS_OFFSET	SH7367_PHYS_OFFSET
+# elif defined(CONFIG_ARCH_SH7372)
+#  define PHYS_OFFSET	SH7372_PHYS_OFFSET
+# elif defined(CONFIG_ARCH_SH7377)
+#  define PHYS_OFFSET	SH7377_PHYS_OFFSET
+# endif
+#endif /* if !defined(CONFIG_RUNTIME_PHYS_OFFSET) */
+
 #define MEM_SIZE	UL(CONFIG_MEMORY_SIZE)
 
 /* DMA memory at 0xf6000000 - 0xffdfffff */
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr
@ 2010-09-03  9:56             ` Uwe Kleine-König
  0 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03  9:56 UTC (permalink / raw)
  To: linux-arm-kernel

The calculated value in Makefile.boot isn't used anymore since

	e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)

and physoffset can better be set in mach/memory.h depending on the
actual machine type.

Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: linux-sh at vger.kernel.org
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/mach-shmobile/Kconfig               |   11 -----------
 arch/arm/mach-shmobile/Makefile.boot         |    9 ---------
 arch/arm/mach-shmobile/include/mach/memory.h |   15 ++++++++++++++-
 3 files changed, 14 insertions(+), 21 deletions(-)
 delete mode 100644 arch/arm/mach-shmobile/Makefile.boot

diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
index 54b479c..45e134e 100644
--- a/arch/arm/mach-shmobile/Kconfig
+++ b/arch/arm/mach-shmobile/Kconfig
@@ -61,17 +61,6 @@ comment "SH-Mobile System Configuration"
 
 menu "Memory configuration"
 
-config MEMORY_START
-	hex "Physical memory start address"
-	default "0x50000000" if MACH_G3EVM
-	default "0x40000000" if MACH_G4EVM
-	default "0x40000000" if MACH_AP4EVB
-	default "0x00000000"
-	---help---
-	  Tweak this only when porting to a new machine which does not
-	  already have a defconfig. Changing it from the known correct
-	  value on any of the known systems will only lead to disaster.
-
 config MEMORY_SIZE
 	hex "Physical memory size"
 	default "0x08000000" if MACH_G3EVM
diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot
deleted file mode 100644
index 1c08ee9..0000000
--- a/arch/arm/mach-shmobile/Makefile.boot
+++ /dev/null
@@ -1,9 +0,0 @@
-__ZRELADDR	:= $(shell /bin/bash -c 'printf "0x%08x" \
-		     $$[$(CONFIG_MEMORY_START) + 0x8000]')
-
-   zreladdr-y   := $(__ZRELADDR)
-
-# Unsupported legacy stuff
-#
-#params_phys-y (Instead: Pass atags pointer in r2)
-#initrd_phys-y (Instead: Use compiled-in initramfs)
diff --git a/arch/arm/mach-shmobile/include/mach/memory.h b/arch/arm/mach-shmobile/include/mach/memory.h
index 377584e..100f734 100644
--- a/arch/arm/mach-shmobile/include/mach/memory.h
+++ b/arch/arm/mach-shmobile/include/mach/memory.h
@@ -1,7 +1,20 @@
 #ifndef __ASM_MACH_MEMORY_H
 #define __ASM_MACH_MEMORY_H
 
-#define PHYS_OFFSET	UL(CONFIG_MEMORY_START)
+#define SH7367_PHYS_OFFSET UL(0x50000000)
+#define SH7372_PHYS_OFFSET UL(0x40000000)
+#define SH7377_PHYS_OFFSET UL(0x40000000)
+
+#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
+# if defined(CONFIG_ARCH_SH7367)
+#  define PHYS_OFFSET	SH7367_PHYS_OFFSET
+# elif defined(CONFIG_ARCH_SH7372)
+#  define PHYS_OFFSET	SH7372_PHYS_OFFSET
+# elif defined(CONFIG_ARCH_SH7377)
+#  define PHYS_OFFSET	SH7377_PHYS_OFFSET
+# endif
+#endif /* if !defined(CONFIG_RUNTIME_PHYS_OFFSET) */
+
 #define MEM_SIZE	UL(CONFIG_MEMORY_SIZE)
 
 /* DMA memory at 0xf6000000 - 0xffdfffff */
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 3/7] ARM: specify ZRELADDR for ARCH_H720X
  2010-09-03  9:55         ` Uwe Kleine-König
  2010-09-03  9:56           ` [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA Uwe Kleine-König
  2010-09-03  9:56             ` Uwe Kleine-König
@ 2010-09-03  9:56           ` Uwe Kleine-König
  2010-09-03 13:40             ` Eric Miao
  2010-09-03  9:56           ` [PATCH 4/7] ARM: specify ZRELADDR for ARCH_LPC32XX Uwe Kleine-König
                             ` (6 subsequent siblings)
  9 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03  9:56 UTC (permalink / raw)
  To: linux-arm-kernel

This was missed in commit

	e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/Kconfig                  |    4 +++-
 arch/arm/mach-h720x/Makefile.boot |    2 --
 2 files changed, 3 insertions(+), 3 deletions(-)
 delete mode 100644 arch/arm/mach-h720x/Makefile.boot

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 16bc8eb..c43b508 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1620,7 +1620,9 @@ config ZRELADDR
 		ARCH_S3C2416 ||\
 		ARCH_S3C2440 ||\
 		ARCH_S3C2443
-	default 0x40008000 if ARCH_STMP378X ||\
+	default 0x40008000 if \
+		ARCH_H720X ||\
+		ARCH_STMP378X ||\
 		ARCH_STMP37XX ||\
 		ARCH_SH7372 ||\
 		ARCH_SH7377 ||\
diff --git a/arch/arm/mach-h720x/Makefile.boot b/arch/arm/mach-h720x/Makefile.boot
deleted file mode 100644
index 5298401..0000000
--- a/arch/arm/mach-h720x/Makefile.boot
+++ /dev/null
@@ -1,2 +0,0 @@
-   zreladdr-$(CONFIG_ARCH_H720X)	:= 0x40008000
-
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 4/7] ARM: specify ZRELADDR for ARCH_LPC32XX
  2010-09-03  9:55         ` Uwe Kleine-König
                             ` (2 preceding siblings ...)
  2010-09-03  9:56           ` [PATCH 3/7] ARM: specify ZRELADDR for ARCH_H720X Uwe Kleine-König
@ 2010-09-03  9:56           ` Uwe Kleine-König
  2010-09-03 13:41             ` Eric Miao
  2010-09-03  9:56           ` [PATCH 5/7] ARM: don't expose CONFIG_ZRELADDR to the users Uwe Kleine-König
                             ` (5 subsequent siblings)
  9 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03  9:56 UTC (permalink / raw)
  To: linux-arm-kernel

This was missed in commit

	e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)

Cc: Kevin Wells <wellsk40@gmail.com>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/Kconfig                    |    4 +++-
 arch/arm/mach-lpc32xx/Makefile.boot |    1 -
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c43b508..4a9a55c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1630,7 +1630,9 @@ config ZRELADDR
 	default 0x50008000 if ARCH_S3C64XX ||\
 		ARCH_SH7367
 	default 0x60008000 if ARCH_VEXPRESS
-	default 0x80008000 if ARCH_MX25 ||\
+	default 0x80008000 if \
+		ARCH_LPC32XX ||\
+		ARCH_MX25 ||\
 		ARCH_MX3 ||\
 		ARCH_NETX ||\
 		ARCH_OMAP2PLUS ||\
diff --git a/arch/arm/mach-lpc32xx/Makefile.boot b/arch/arm/mach-lpc32xx/Makefile.boot
index b796b41..e6bde79 100644
--- a/arch/arm/mach-lpc32xx/Makefile.boot
+++ b/arch/arm/mach-lpc32xx/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x80008000
 params_phys-y	:= 0x80000100
 initrd_phys-y	:= 0x82000000
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 5/7] ARM: don't expose CONFIG_ZRELADDR to the users
  2010-09-03  9:55         ` Uwe Kleine-König
                             ` (3 preceding siblings ...)
  2010-09-03  9:56           ` [PATCH 4/7] ARM: specify ZRELADDR for ARCH_LPC32XX Uwe Kleine-König
@ 2010-09-03  9:56           ` Uwe Kleine-König
  2010-09-03 13:30             ` Eric Miao
  2010-09-03  9:56           ` [PATCH 6/7] ARM: fix ordering of defaults for config ZRELADDR Uwe Kleine-König
                             ` (4 subsequent siblings)
  9 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03  9:56 UTC (permalink / raw)
  To: linux-arm-kernel

This value is essential for booting a zImage and only depends on the
memory layout of the machine to boot.  This value was specified in
Makefile.boot before

	e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)

and so wasn't available to change via .config.

The only exception is bcmring that had a extra config for specifing the
address used, which is removed in this commit, too, as it isn't used
anymore since e69edc79.  This is the only machine that still gets a
possibility to change CONFIG_ZRELADDR.

Cc: Russell King <linux@arm.linux.org.uk>
Cc: Nicolas Pitre <nico@fluxnic.net>
Cc: Eric Miao <eric.miao@canonical.com>
Cc: Leo Chen <leochen@broadcom.com>
Cc: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/Kconfig                    |    2 +-
 arch/arm/configs/bcmring_defconfig  |    1 -
 arch/arm/mach-bcmring/Kconfig       |    3 ---
 arch/arm/mach-bcmring/Makefile.boot |    1 -
 4 files changed, 1 insertions(+), 6 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4a9a55c..0654afe 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1577,7 +1577,7 @@ config AUTO_ZRELADDR
 	  from start of memory.
 
 config ZRELADDR
-	hex "Physical address of the decompressed kernel image"
+	hex "Physical address of the decompressed kernel image" if ARCH_BCMRING
 	depends on !AUTO_ZRELADDR
 	default 0x00008000 if ARCH_BCMRING ||\
 		ARCH_CNS3XXX ||\
diff --git a/arch/arm/configs/bcmring_defconfig b/arch/arm/configs/bcmring_defconfig
index 75984cd..9168d05 100644
--- a/arch/arm/configs/bcmring_defconfig
+++ b/arch/arm/configs/bcmring_defconfig
@@ -21,7 +21,6 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_IOSCHED_DEADLINE is not set
 # CONFIG_IOSCHED_CFQ is not set
 CONFIG_ARCH_BCMRING=y
-CONFIG_BCM_ZRELADDR=0x8000
 CONFIG_CPU_32v6K=y
 CONFIG_NO_HZ=y
 CONFIG_PREEMPT=y
diff --git a/arch/arm/mach-bcmring/Kconfig b/arch/arm/mach-bcmring/Kconfig
index 457b438..e076cc8 100644
--- a/arch/arm/mach-bcmring/Kconfig
+++ b/arch/arm/mach-bcmring/Kconfig
@@ -13,9 +13,6 @@ endchoice
 menu "BCMRING Options"
 	depends on ARCH_BCMRING
 
-config BCM_ZRELADDR
-	hex "Compressed ZREL ADDR"
-
 endmenu
 
 # source "drivers/char/bcmring/Kconfig"
diff --git a/arch/arm/mach-bcmring/Makefile.boot b/arch/arm/mach-bcmring/Makefile.boot
index fb53b28..6894871 100644
--- a/arch/arm/mach-bcmring/Makefile.boot
+++ b/arch/arm/mach-bcmring/Makefile.boot
@@ -1,6 +1,5 @@
 # Address where decompressor will be written and eventually executed.
 #
 # default to SDRAM
-zreladdr-y      := $(CONFIG_BCM_ZRELADDR)
 params_phys-y   := 0x00000800
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 6/7] ARM: fix ordering of defaults for config ZRELADDR
  2010-09-03  9:55         ` Uwe Kleine-König
                             ` (4 preceding siblings ...)
  2010-09-03  9:56           ` [PATCH 5/7] ARM: don't expose CONFIG_ZRELADDR to the users Uwe Kleine-König
@ 2010-09-03  9:56           ` Uwe Kleine-König
  2010-09-03  9:56           ` [PATCH 7/7] ARM: removed unused zreladdr specifications in all Makefile.boot files Uwe Kleine-König
                             ` (3 subsequent siblings)
  9 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03  9:56 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/Kconfig |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0654afe..ed564a5 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1596,8 +1596,8 @@ config ZRELADDR
 		ARCH_MMP ||\
 		ARCH_MV78XX0 ||\
 		ARCH_NOMADIK ||\
-		ARCH_NUC93X ||\
 		ARCH_NS9XXX ||\
+		ARCH_NUC93X ||\
 		ARCH_ORION5X ||\
 		ARCH_SPEAR3XX ||\
 		ARCH_SPEAR6XX ||\
@@ -1660,9 +1660,9 @@ config ZRELADDR
 	default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP
 	default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET
 	default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET
+	default 0x30108000 if ARCH_S3C2410 && PM_H1940
 	default 0xc0208000 if ARCH_SA1100 && SA1111
 	default 0xc0008000 if ARCH_SA1100 && !SA1111
-	default 0x30108000 if ARCH_S3C2410 && PM_H1940
 	default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM
 	default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM
 	help
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 7/7] ARM: removed unused zreladdr specifications in all Makefile.boot files
  2010-09-03  9:55         ` Uwe Kleine-König
                             ` (5 preceding siblings ...)
  2010-09-03  9:56           ` [PATCH 6/7] ARM: fix ordering of defaults for config ZRELADDR Uwe Kleine-König
@ 2010-09-03  9:56           ` Uwe Kleine-König
  2010-09-03 15:01             ` Eric Miao
  2010-09-03 20:46           ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Uwe Kleine-König
                             ` (2 subsequent siblings)
  9 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03  9:56 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/mach-aaec2000/Makefile.boot   |    1 -
 arch/arm/mach-at91/Makefile.boot       |    3 ---
 arch/arm/mach-clps711x/Makefile.boot   |    1 -
 arch/arm/mach-cns3xxx/Makefile.boot    |    1 -
 arch/arm/mach-davinci/Makefile.boot    |    2 --
 arch/arm/mach-dove/Makefile.boot       |    1 -
 arch/arm/mach-ebsa110/Makefile.boot    |    1 -
 arch/arm/mach-ep93xx/Makefile.boot     |    5 -----
 arch/arm/mach-footbridge/Makefile.boot |    1 -
 arch/arm/mach-gemini/Makefile.boot     |    2 --
 arch/arm/mach-imx/Makefile.boot        |    3 ---
 arch/arm/mach-integrator/Makefile.boot |    1 -
 arch/arm/mach-iop13xx/Makefile.boot    |    1 -
 arch/arm/mach-iop32x/Makefile.boot     |    1 -
 arch/arm/mach-iop33x/Makefile.boot     |    1 -
 arch/arm/mach-ixp2000/Makefile.boot    |    1 -
 arch/arm/mach-ixp23xx/Makefile.boot    |    1 -
 arch/arm/mach-ixp4xx/Makefile.boot     |    1 -
 arch/arm/mach-kirkwood/Makefile.boot   |    1 -
 arch/arm/mach-ks8695/Makefile.boot     |    1 -
 arch/arm/mach-lh7a40x/Makefile.boot    |    1 -
 arch/arm/mach-loki/Makefile.boot       |    1 -
 arch/arm/mach-mmp/Makefile.boot        |    1 -
 arch/arm/mach-msm/Makefile.boot        |    1 -
 arch/arm/mach-mv78xx0/Makefile.boot    |    1 -
 arch/arm/mach-mx25/Makefile.boot       |    1 -
 arch/arm/mach-mx3/Makefile.boot        |    1 -
 arch/arm/mach-mx5/Makefile.boot        |    1 -
 arch/arm/mach-mxc91231/Makefile.boot   |    1 -
 arch/arm/mach-netx/Makefile.boot       |    1 -
 arch/arm/mach-nomadik/Makefile.boot    |    1 -
 arch/arm/mach-ns9xxx/Makefile.boot     |    1 -
 arch/arm/mach-nuc93x/Makefile.boot     |    1 -
 arch/arm/mach-omap1/Makefile.boot      |    1 -
 arch/arm/mach-omap2/Makefile.boot      |    1 -
 arch/arm/mach-orion5x/Makefile.boot    |    1 -
 arch/arm/mach-pnx4008/Makefile.boot    |    1 -
 arch/arm/mach-pxa/Makefile.boot        |    1 -
 arch/arm/mach-realview/Makefile.boot   |    2 --
 arch/arm/mach-rpc/Makefile.boot        |    1 -
 arch/arm/mach-s3c2410/Makefile.boot    |    2 --
 arch/arm/mach-s3c64xx/Makefile.boot    |    1 -
 arch/arm/mach-s5p6440/Makefile.boot    |    1 -
 arch/arm/mach-s5p6442/Makefile.boot    |    1 -
 arch/arm/mach-s5pc100/Makefile.boot    |    1 -
 arch/arm/mach-s5pv210/Makefile.boot    |    1 -
 arch/arm/mach-s5pv310/Makefile.boot    |    1 -
 arch/arm/mach-sa1100/Makefile.boot     |    2 --
 arch/arm/mach-shark/Makefile.boot      |    2 --
 arch/arm/mach-spear3xx/Makefile.boot   |    1 -
 arch/arm/mach-spear6xx/Makefile.boot   |    1 -
 arch/arm/mach-stmp378x/Makefile.boot   |    1 -
 arch/arm/mach-stmp37xx/Makefile.boot   |    1 -
 arch/arm/mach-u300/Makefile.boot       |    2 --
 arch/arm/mach-ux500/Makefile.boot      |    1 -
 arch/arm/mach-versatile/Makefile.boot  |    1 -
 arch/arm/mach-vexpress/Makefile.boot   |    1 -
 arch/arm/mach-w90x900/Makefile.boot    |    1 -
 58 files changed, 0 insertions(+), 73 deletions(-)
 delete mode 100644 arch/arm/mach-shark/Makefile.boot

diff --git a/arch/arm/mach-aaec2000/Makefile.boot b/arch/arm/mach-aaec2000/Makefile.boot
index 8f5a8b7..e69de29 100644
--- a/arch/arm/mach-aaec2000/Makefile.boot
+++ b/arch/arm/mach-aaec2000/Makefile.boot
@@ -1 +0,0 @@
-	zreladdr-y := 0xf0008000
diff --git a/arch/arm/mach-at91/Makefile.boot b/arch/arm/mach-at91/Makefile.boot
index 3462b81..9d7c05c 100644
--- a/arch/arm/mach-at91/Makefile.boot
+++ b/arch/arm/mach-at91/Makefile.boot
@@ -4,15 +4,12 @@
 #   INITRD_PHYS must be in RAM
 
 ifeq ($(CONFIG_ARCH_AT91CAP9),y)
-   zreladdr-y	:= 0x70008000
 params_phys-y	:= 0x70000100
 initrd_phys-y	:= 0x70410000
 else ifeq ($(CONFIG_ARCH_AT91SAM9G45),y)
-   zreladdr-y	:= 0x70008000
 params_phys-y	:= 0x70000100
 initrd_phys-y	:= 0x70410000
 else
-   zreladdr-y	:= 0x20008000
 params_phys-y	:= 0x20000100
 initrd_phys-y	:= 0x20410000
 endif
diff --git a/arch/arm/mach-clps711x/Makefile.boot b/arch/arm/mach-clps711x/Makefile.boot
index a51fcef..eba77d3 100644
--- a/arch/arm/mach-clps711x/Makefile.boot
+++ b/arch/arm/mach-clps711x/Makefile.boot
@@ -1,5 +1,4 @@
 # The standard locations for stuff on CLPS711x type processors
-   zreladdr-y				:= 0xc0028000
 params_phys-y				:= 0xc0000100
 # Should probably have some agreement on these...
 initrd_phys-$(CONFIG_ARCH_P720T)	:= 0xc0400000
diff --git a/arch/arm/mach-cns3xxx/Makefile.boot b/arch/arm/mach-cns3xxx/Makefile.boot
index 7770128..6ac39ff 100644
--- a/arch/arm/mach-cns3xxx/Makefile.boot
+++ b/arch/arm/mach-cns3xxx/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00C00000
diff --git a/arch/arm/mach-davinci/Makefile.boot b/arch/arm/mach-davinci/Makefile.boot
index db97ef2..8cdb5ac 100644
--- a/arch/arm/mach-davinci/Makefile.boot
+++ b/arch/arm/mach-davinci/Makefile.boot
@@ -2,12 +2,10 @@ ifeq ($(CONFIG_ARCH_DAVINCI_DA8XX),y)
 ifeq ($(CONFIG_ARCH_DAVINCI_DMx),y)
 $(error Cannot enable DaVinci and DA8XX platforms concurrently)
 else
-   zreladdr-y	:= 0xc0008000
 params_phys-y	:= 0xc0000100
 initrd_phys-y	:= 0xc0800000
 endif
 else
-   zreladdr-y	:= 0x80008000
 params_phys-y	:= 0x80000100
 initrd_phys-y	:= 0x80800000
 endif
diff --git a/arch/arm/mach-dove/Makefile.boot b/arch/arm/mach-dove/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-dove/Makefile.boot
+++ b/arch/arm/mach-dove/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-ebsa110/Makefile.boot b/arch/arm/mach-ebsa110/Makefile.boot
index 2321260..cb7c513 100644
--- a/arch/arm/mach-ebsa110/Makefile.boot
+++ b/arch/arm/mach-ebsa110/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000400
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-ep93xx/Makefile.boot b/arch/arm/mach-ep93xx/Makefile.boot
index 0ad33f1..fcffffa 100644
--- a/arch/arm/mach-ep93xx/Makefile.boot
+++ b/arch/arm/mach-ep93xx/Makefile.boot
@@ -1,14 +1,9 @@
-   zreladdr-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET)	:= 0x00008000
 params_phys-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET)	:= 0x00000100
 
-   zreladdr-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET)		:= 0xc0008000
 params_phys-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET)		:= 0xc0000100
 
-   zreladdr-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET)		:= 0xd0008000
 params_phys-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET)		:= 0xd0000100
 
-   zreladdr-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET)		:= 0xe0008000
 params_phys-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET)		:= 0xe0000100
 
-   zreladdr-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET)	:= 0xf0008000
 params_phys-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET)	:= 0xf0000100
diff --git a/arch/arm/mach-footbridge/Makefile.boot b/arch/arm/mach-footbridge/Makefile.boot
index c7e75ac..ee22553 100644
--- a/arch/arm/mach-footbridge/Makefile.boot
+++ b/arch/arm/mach-footbridge/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-gemini/Makefile.boot b/arch/arm/mach-gemini/Makefile.boot
index 22a52c2..88f25e9 100644
--- a/arch/arm/mach-gemini/Makefile.boot
+++ b/arch/arm/mach-gemini/Makefile.boot
@@ -1,9 +1,7 @@
 ifeq ($(CONFIG_GEMINI_MEM_SWAP),y)
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 else
-   zreladdr-y	:= 0x10008000
 params_phys-y	:= 0x10000100
 initrd_phys-y	:= 0x10800000
 endif
diff --git a/arch/arm/mach-imx/Makefile.boot b/arch/arm/mach-imx/Makefile.boot
index 7988a85..110aa36 100644
--- a/arch/arm/mach-imx/Makefile.boot
+++ b/arch/arm/mach-imx/Makefile.boot
@@ -1,11 +1,8 @@
-zreladdr-$(CONFIG_ARCH_MX1)	:= 0x08008000
 params_phys-$(CONFIG_ARCH_MX1)	:= 0x08000100
 initrd_phys-$(CONFIG_ARCH_MX1)	:= 0x08800000
 
-zreladdr-$(CONFIG_MACH_MX21)	:= 0xC0008000
 params_phys-$(CONFIG_MACH_MX21)	:= 0xC0000100
 initrd_phys-$(CONFIG_MACH_MX21)	:= 0xC0800000
 
-zreladdr-$(CONFIG_MACH_MX27)	:= 0xA0008000
 params_phys-$(CONFIG_MACH_MX27)	:= 0xA0000100
 initrd_phys-$(CONFIG_MACH_MX27)	:= 0xA0800000
diff --git a/arch/arm/mach-integrator/Makefile.boot b/arch/arm/mach-integrator/Makefile.boot
index c7e75ac..ee22553 100644
--- a/arch/arm/mach-integrator/Makefile.boot
+++ b/arch/arm/mach-integrator/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-iop13xx/Makefile.boot b/arch/arm/mach-iop13xx/Makefile.boot
index 0b0e19f..6e25cb5 100644
--- a/arch/arm/mach-iop13xx/Makefile.boot
+++ b/arch/arm/mach-iop13xx/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y   := 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y 	:= 0x00800000
diff --git a/arch/arm/mach-iop32x/Makefile.boot b/arch/arm/mach-iop32x/Makefile.boot
index 47000dc..5e0e4f6 100644
--- a/arch/arm/mach-iop32x/Makefile.boot
+++ b/arch/arm/mach-iop32x/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0xa0008000
 params_phys-y	:= 0xa0000100
 initrd_phys-y	:= 0xa0800000
diff --git a/arch/arm/mach-iop33x/Makefile.boot b/arch/arm/mach-iop33x/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-iop33x/Makefile.boot
+++ b/arch/arm/mach-iop33x/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-ixp2000/Makefile.boot b/arch/arm/mach-ixp2000/Makefile.boot
index d84c580..1bca921 100644
--- a/arch/arm/mach-ixp2000/Makefile.boot
+++ b/arch/arm/mach-ixp2000/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 
diff --git a/arch/arm/mach-ixp23xx/Makefile.boot b/arch/arm/mach-ixp23xx/Makefile.boot
index d5561ad..cb69427 100644
--- a/arch/arm/mach-ixp23xx/Makefile.boot
+++ b/arch/arm/mach-ixp23xx/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
diff --git a/arch/arm/mach-ixp4xx/Makefile.boot b/arch/arm/mach-ixp4xx/Makefile.boot
index d84c580..1bca921 100644
--- a/arch/arm/mach-ixp4xx/Makefile.boot
+++ b/arch/arm/mach-ixp4xx/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 
diff --git a/arch/arm/mach-kirkwood/Makefile.boot b/arch/arm/mach-kirkwood/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-kirkwood/Makefile.boot
+++ b/arch/arm/mach-kirkwood/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-ks8695/Makefile.boot b/arch/arm/mach-ks8695/Makefile.boot
index 48eb2cb..11ea079 100644
--- a/arch/arm/mach-ks8695/Makefile.boot
+++ b/arch/arm/mach-ks8695/Makefile.boot
@@ -3,6 +3,5 @@
 #   PARAMS_PHYS must be within 4MB of ZRELADDR
 #   INITRD_PHYS must be in RAM
 
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-lh7a40x/Makefile.boot b/arch/arm/mach-lh7a40x/Makefile.boot
index af941be..5a78392 100644
--- a/arch/arm/mach-lh7a40x/Makefile.boot
+++ b/arch/arm/mach-lh7a40x/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0xc0008000
 params_phys-y	:= 0xc0000100
 initrd_phys-y	:= 0xc4000000
 
diff --git a/arch/arm/mach-loki/Makefile.boot b/arch/arm/mach-loki/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-loki/Makefile.boot
+++ b/arch/arm/mach-loki/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-mmp/Makefile.boot b/arch/arm/mach-mmp/Makefile.boot
index 574a4aa..e69de29 100644
--- a/arch/arm/mach-mmp/Makefile.boot
+++ b/arch/arm/mach-mmp/Makefile.boot
@@ -1 +0,0 @@
-   zreladdr-y	:= 0x00008000
diff --git a/arch/arm/mach-msm/Makefile.boot b/arch/arm/mach-msm/Makefile.boot
index 24dfbf8..14acc97 100644
--- a/arch/arm/mach-msm/Makefile.boot
+++ b/arch/arm/mach-msm/Makefile.boot
@@ -1,3 +1,2 @@
-  zreladdr-y		:= 0x10008000
 params_phys-y		:= 0x10000100
 initrd_phys-y		:= 0x10800000
diff --git a/arch/arm/mach-mv78xx0/Makefile.boot b/arch/arm/mach-mv78xx0/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-mv78xx0/Makefile.boot
+++ b/arch/arm/mach-mv78xx0/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-mx25/Makefile.boot b/arch/arm/mach-mx25/Makefile.boot
index e1dd366..77987d8 100644
--- a/arch/arm/mach-mx25/Makefile.boot
+++ b/arch/arm/mach-mx25/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x80008000
 params_phys-y	:= 0x80000100
 initrd_phys-y	:= 0x80800000
diff --git a/arch/arm/mach-mx3/Makefile.boot b/arch/arm/mach-mx3/Makefile.boot
index e1dd366..77987d8 100644
--- a/arch/arm/mach-mx3/Makefile.boot
+++ b/arch/arm/mach-mx3/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x80008000
 params_phys-y	:= 0x80000100
 initrd_phys-y	:= 0x80800000
diff --git a/arch/arm/mach-mx5/Makefile.boot b/arch/arm/mach-mx5/Makefile.boot
index 9939a19..62b05d4 100644
--- a/arch/arm/mach-mx5/Makefile.boot
+++ b/arch/arm/mach-mx5/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x90008000
 params_phys-y	:= 0x90000100
 initrd_phys-y	:= 0x90800000
diff --git a/arch/arm/mach-mxc91231/Makefile.boot b/arch/arm/mach-mxc91231/Makefile.boot
index 9939a19..62b05d4 100644
--- a/arch/arm/mach-mxc91231/Makefile.boot
+++ b/arch/arm/mach-mxc91231/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x90008000
 params_phys-y	:= 0x90000100
 initrd_phys-y	:= 0x90800000
diff --git a/arch/arm/mach-netx/Makefile.boot b/arch/arm/mach-netx/Makefile.boot
index b81cf6a..8b13789 100644
--- a/arch/arm/mach-netx/Makefile.boot
+++ b/arch/arm/mach-netx/Makefile.boot
@@ -1,2 +1 @@
-    zreladdr-y			:= 0x80008000
 
diff --git a/arch/arm/mach-nomadik/Makefile.boot b/arch/arm/mach-nomadik/Makefile.boot
index c7e75ac..ee22553 100644
--- a/arch/arm/mach-nomadik/Makefile.boot
+++ b/arch/arm/mach-nomadik/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-ns9xxx/Makefile.boot b/arch/arm/mach-ns9xxx/Makefile.boot
index 5465491..bdf4f71 100644
--- a/arch/arm/mach-ns9xxx/Makefile.boot
+++ b/arch/arm/mach-ns9xxx/Makefile.boot
@@ -1,2 +1 @@
-zreladdr-y := 0x8000
 params_phys-y := 0x100
diff --git a/arch/arm/mach-nuc93x/Makefile.boot b/arch/arm/mach-nuc93x/Makefile.boot
index a057b54..1bca921 100644
--- a/arch/arm/mach-nuc93x/Makefile.boot
+++ b/arch/arm/mach-nuc93x/Makefile.boot
@@ -1,3 +1,2 @@
-zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 
diff --git a/arch/arm/mach-omap1/Makefile.boot b/arch/arm/mach-omap1/Makefile.boot
index 292d56c..14acc97 100644
--- a/arch/arm/mach-omap1/Makefile.boot
+++ b/arch/arm/mach-omap1/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y		:= 0x10008000
 params_phys-y		:= 0x10000100
 initrd_phys-y		:= 0x10800000
diff --git a/arch/arm/mach-omap2/Makefile.boot b/arch/arm/mach-omap2/Makefile.boot
index 565aff7..a99818f 100644
--- a/arch/arm/mach-omap2/Makefile.boot
+++ b/arch/arm/mach-omap2/Makefile.boot
@@ -1,3 +1,2 @@
-  zreladdr-y		:= 0x80008000
 params_phys-y		:= 0x80000100
 initrd_phys-y		:= 0x80800000
diff --git a/arch/arm/mach-orion5x/Makefile.boot b/arch/arm/mach-orion5x/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-orion5x/Makefile.boot
+++ b/arch/arm/mach-orion5x/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-pnx4008/Makefile.boot b/arch/arm/mach-pnx4008/Makefile.boot
index 44c7117..76905a0 100644
--- a/arch/arm/mach-pnx4008/Makefile.boot
+++ b/arch/arm/mach-pnx4008/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y		:= 0x80008000
 params_phys-y		:= 0x80000100
 initrd_phys-y		:= 0x80800000
 
diff --git a/arch/arm/mach-pxa/Makefile.boot b/arch/arm/mach-pxa/Makefile.boot
index 1ead671..8b13789 100644
--- a/arch/arm/mach-pxa/Makefile.boot
+++ b/arch/arm/mach-pxa/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0xa0008000
 
diff --git a/arch/arm/mach-realview/Makefile.boot b/arch/arm/mach-realview/Makefile.boot
index d97e003..886d020 100644
--- a/arch/arm/mach-realview/Makefile.boot
+++ b/arch/arm/mach-realview/Makefile.boot
@@ -1,9 +1,7 @@
 ifeq ($(CONFIG_REALVIEW_HIGH_PHYS_OFFSET),y)
-   zreladdr-y	:= 0x70008000
 params_phys-y	:= 0x70000100
 initrd_phys-y	:= 0x70800000
 else
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 endif
diff --git a/arch/arm/mach-rpc/Makefile.boot b/arch/arm/mach-rpc/Makefile.boot
index 9c9e768..3c7cc4a 100644
--- a/arch/arm/mach-rpc/Makefile.boot
+++ b/arch/arm/mach-rpc/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x10008000
 params_phys-y	:= 0x10000100
 initrd_phys-y	:= 0x18000000
 
diff --git a/arch/arm/mach-s3c2410/Makefile.boot b/arch/arm/mach-s3c2410/Makefile.boot
index 58c1dd7..69dbda1 100644
--- a/arch/arm/mach-s3c2410/Makefile.boot
+++ b/arch/arm/mach-s3c2410/Makefile.boot
@@ -1,7 +1,5 @@
 ifeq ($(CONFIG_PM_H1940),y)
-	zreladdr-y		:= 0x30108000
 	params_phys-y	:= 0x30100100
 else
-	zreladdr-y		:= 0x30008000
 	params_phys-y	:= 0x30000100
 endif
diff --git a/arch/arm/mach-s3c64xx/Makefile.boot b/arch/arm/mach-s3c64xx/Makefile.boot
index ba41fdc..b6349bd 100644
--- a/arch/arm/mach-s3c64xx/Makefile.boot
+++ b/arch/arm/mach-s3c64xx/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x50008000
 params_phys-y	:= 0x50000100
diff --git a/arch/arm/mach-s5p6440/Makefile.boot b/arch/arm/mach-s5p6440/Makefile.boot
index ff90aa1..9a79532 100644
--- a/arch/arm/mach-s5p6440/Makefile.boot
+++ b/arch/arm/mach-s5p6440/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x20008000
 params_phys-y	:= 0x20000100
diff --git a/arch/arm/mach-s5p6442/Makefile.boot b/arch/arm/mach-s5p6442/Makefile.boot
index ff90aa1..9a79532 100644
--- a/arch/arm/mach-s5p6442/Makefile.boot
+++ b/arch/arm/mach-s5p6442/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x20008000
 params_phys-y	:= 0x20000100
diff --git a/arch/arm/mach-s5pc100/Makefile.boot b/arch/arm/mach-s5pc100/Makefile.boot
index ff90aa1..9a79532 100644
--- a/arch/arm/mach-s5pc100/Makefile.boot
+++ b/arch/arm/mach-s5pc100/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x20008000
 params_phys-y	:= 0x20000100
diff --git a/arch/arm/mach-s5pv210/Makefile.boot b/arch/arm/mach-s5pv210/Makefile.boot
index ff90aa1..9a79532 100644
--- a/arch/arm/mach-s5pv210/Makefile.boot
+++ b/arch/arm/mach-s5pv210/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x20008000
 params_phys-y	:= 0x20000100
diff --git a/arch/arm/mach-s5pv310/Makefile.boot b/arch/arm/mach-s5pv310/Makefile.boot
index d65956f..85644bc 100644
--- a/arch/arm/mach-s5pv310/Makefile.boot
+++ b/arch/arm/mach-s5pv310/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x40008000
 params_phys-y	:= 0x40000100
diff --git a/arch/arm/mach-sa1100/Makefile.boot b/arch/arm/mach-sa1100/Makefile.boot
index a56ad04..df520d6 100644
--- a/arch/arm/mach-sa1100/Makefile.boot
+++ b/arch/arm/mach-sa1100/Makefile.boot
@@ -1,6 +1,4 @@
-   zreladdr-y	:= 0xc0008000
 ifeq ($(CONFIG_ARCH_SA1100),y)
-   zreladdr-$(CONFIG_SA1111)		:= 0xc0208000
 endif
 params_phys-y	:= 0xc0000100
 initrd_phys-y	:= 0xc0800000
diff --git a/arch/arm/mach-shark/Makefile.boot b/arch/arm/mach-shark/Makefile.boot
deleted file mode 100644
index 4320f8b..0000000
--- a/arch/arm/mach-shark/Makefile.boot
+++ /dev/null
@@ -1,2 +0,0 @@
-   zreladdr-y	:= 0x08008000
-
diff --git a/arch/arm/mach-spear3xx/Makefile.boot b/arch/arm/mach-spear3xx/Makefile.boot
index 7a1f3c0..80f4945 100644
--- a/arch/arm/mach-spear3xx/Makefile.boot
+++ b/arch/arm/mach-spear3xx/Makefile.boot
@@ -1,3 +1,2 @@
-zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-spear6xx/Makefile.boot b/arch/arm/mach-spear6xx/Makefile.boot
index 7a1f3c0..80f4945 100644
--- a/arch/arm/mach-spear6xx/Makefile.boot
+++ b/arch/arm/mach-spear6xx/Makefile.boot
@@ -1,3 +1,2 @@
-zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-stmp378x/Makefile.boot b/arch/arm/mach-stmp378x/Makefile.boot
index 1568ad4..71e6728 100644
--- a/arch/arm/mach-stmp378x/Makefile.boot
+++ b/arch/arm/mach-stmp378x/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x40008000
 params_phys-y	:= 0x40000100
 initrd_phys-y	:= 0x40800000
diff --git a/arch/arm/mach-stmp37xx/Makefile.boot b/arch/arm/mach-stmp37xx/Makefile.boot
index 1568ad4..71e6728 100644
--- a/arch/arm/mach-stmp37xx/Makefile.boot
+++ b/arch/arm/mach-stmp37xx/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x40008000
 params_phys-y	:= 0x40000100
 initrd_phys-y	:= 0x40800000
diff --git a/arch/arm/mach-u300/Makefile.boot b/arch/arm/mach-u300/Makefile.boot
index 6fbfc6e..9f7ca02 100644
--- a/arch/arm/mach-u300/Makefile.boot
+++ b/arch/arm/mach-u300/Makefile.boot
@@ -4,10 +4,8 @@
 #   INITRD_PHYS must be in RAM
 
 ifdef CONFIG_MACH_U300_SINGLE_RAM
-     zreladdr-y	:= 0x28E08000
   params_phys-y	:= 0x28E00100
 else
-     zreladdr-y	:= 0x48008000
   params_phys-y	:= 0x48000100
 endif
 
diff --git a/arch/arm/mach-ux500/Makefile.boot b/arch/arm/mach-ux500/Makefile.boot
index c7e75ac..ee22553 100644
--- a/arch/arm/mach-ux500/Makefile.boot
+++ b/arch/arm/mach-ux500/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-versatile/Makefile.boot b/arch/arm/mach-versatile/Makefile.boot
index c7e75ac..ee22553 100644
--- a/arch/arm/mach-versatile/Makefile.boot
+++ b/arch/arm/mach-versatile/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-vexpress/Makefile.boot b/arch/arm/mach-vexpress/Makefile.boot
index 07c2d9c..9acbba0 100644
--- a/arch/arm/mach-vexpress/Makefile.boot
+++ b/arch/arm/mach-vexpress/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x60008000
 params_phys-y	:= 0x60000100
 initrd_phys-y	:= 0x60800000
diff --git a/arch/arm/mach-w90x900/Makefile.boot b/arch/arm/mach-w90x900/Makefile.boot
index a057b54..1bca921 100644
--- a/arch/arm/mach-w90x900/Makefile.boot
+++ b/arch/arm/mach-w90x900/Makefile.boot
@@ -1,3 +1,2 @@
-zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 5/7] ARM: don't expose CONFIG_ZRELADDR to the users
  2010-09-03  9:56           ` [PATCH 5/7] ARM: don't expose CONFIG_ZRELADDR to the users Uwe Kleine-König
@ 2010-09-03 13:30             ` Eric Miao
  2010-09-03 18:53               ` Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-09-03 13:30 UTC (permalink / raw)
  To: linux-arm-kernel

2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
>
> This value is essential for booting a zImage and only depends on the
> memory layout of the machine to boot. ?This value was specified in
> Makefile.boot before
>
> ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
>
> and so wasn't available to change via .config.
>
> The only exception is bcmring that had a extra config for specifing the
> address used, which is removed in this commit, too, as it isn't used
> anymore since e69edc79. ?This is the only machine that still gets a
> possibility to change CONFIG_ZRELADDR.

This looks correct to me.

>
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: Nicolas Pitre <nico@fluxnic.net>
> Cc: Eric Miao <eric.miao@canonical.com>
> Cc: Leo Chen <leochen@broadcom.com>
> Cc: Scott Branden <sbranden@broadcom.com>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
> ?arch/arm/Kconfig ? ? ? ? ? ? ? ? ? ?| ? ?2 +-
> ?arch/arm/configs/bcmring_defconfig ?| ? ?1 -
> ?arch/arm/mach-bcmring/Kconfig ? ? ? | ? ?3 ---
> ?arch/arm/mach-bcmring/Makefile.boot | ? ?1 -
> ?4 files changed, 1 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 4a9a55c..0654afe 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1577,7 +1577,7 @@ config AUTO_ZRELADDR
> ? ? ? ? ?from start of memory.
>
> ?config ZRELADDR
> - ? ? ? hex "Physical address of the decompressed kernel image"
> + ? ? ? hex "Physical address of the decompressed kernel image" if ARCH_BCMRING
> ? ? ? ?depends on !AUTO_ZRELADDR
> ? ? ? ?default 0x00008000 if ARCH_BCMRING ||\
> ? ? ? ? ? ? ? ?ARCH_CNS3XXX ||\
> diff --git a/arch/arm/configs/bcmring_defconfig b/arch/arm/configs/bcmring_defconfig
> index 75984cd..9168d05 100644
> --- a/arch/arm/configs/bcmring_defconfig
> +++ b/arch/arm/configs/bcmring_defconfig
> @@ -21,7 +21,6 @@ CONFIG_MODULE_UNLOAD=y
> ?# CONFIG_IOSCHED_DEADLINE is not set
> ?# CONFIG_IOSCHED_CFQ is not set
> ?CONFIG_ARCH_BCMRING=y
> -CONFIG_BCM_ZRELADDR=0x8000
> ?CONFIG_CPU_32v6K=y
> ?CONFIG_NO_HZ=y
> ?CONFIG_PREEMPT=y
> diff --git a/arch/arm/mach-bcmring/Kconfig b/arch/arm/mach-bcmring/Kconfig
> index 457b438..e076cc8 100644
> --- a/arch/arm/mach-bcmring/Kconfig
> +++ b/arch/arm/mach-bcmring/Kconfig
> @@ -13,9 +13,6 @@ endchoice
> ?menu "BCMRING Options"
> ? ? ? ?depends on ARCH_BCMRING
>
> -config BCM_ZRELADDR
> - ? ? ? hex "Compressed ZREL ADDR"
> -
> ?endmenu
>
> ?# source "drivers/char/bcmring/Kconfig"
> diff --git a/arch/arm/mach-bcmring/Makefile.boot b/arch/arm/mach-bcmring/Makefile.boot
> index fb53b28..6894871 100644
> --- a/arch/arm/mach-bcmring/Makefile.boot
> +++ b/arch/arm/mach-bcmring/Makefile.boot
> @@ -1,6 +1,5 @@
> ?# Address where decompressor will be written and eventually executed.
> ?#
> ?# default to SDRAM
> -zreladdr-y ? ? ?:= $(CONFIG_BCM_ZRELADDR)
> ?params_phys-y ? := 0x00000800
>
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-09-03  7:48       ` Uwe Kleine-König
  2010-09-03  9:55         ` Uwe Kleine-König
@ 2010-09-03 13:33         ` Eric Miao
  1 sibling, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-09-03 13:33 UTC (permalink / raw)
  To: linux-arm-kernel

2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Hello,
>
> On Thu, Sep 02, 2010 at 10:27:23PM +0100, Russell King - ARM Linux wrote:
>> On Thu, Sep 02, 2010 at 10:21:45PM +0100, Russell King - ARM Linux wrote:
>> > On Thu, Jun 03, 2010 at 03:36:52PM +0800, Eric Miao wrote:
>> > > From: Eric Miao <eric.y.miao@gmail.com>
>> > >
>> > > Original idea and prototype came from Nicolas Pitre.
>> > >
>> > > As long as the zImage is placed within the 256MB range from the
>> > > start of the memory, ZRELADDR (Address where the decompressed
>> > > kernel will be placed, usually ?== PHYS_OFFSET + TEXT_OFFSET)
>> > > can be determined at run-time by masking PC with 0xf000_0000.
>> > >
>> > > Running through all the Makefile.boot, all those zreladdr-y
>> > > address == 0x[0-f]000_0000 + TEXT_OFFSET can be determined at
>> > > run-time.
>> > >
>> > > Option CONFIG_AUTO_ZRELADDR and CONFIG_ZRELADDR are introduced,
>> > > CONFIG_ZRELADDR _must_ be explicitly specified if:
>> > >
>> > > ?- ((zreladdr-y - TEXT_OFFSET) & ~0xf0000000) != 0, which means
>> > > ? ?a maksing of PC with 0xf000_0000 will result an incorrect
>> > > ? ?address.
>> > >
>> > > ?- or the assumption of the zImage being loaded by the boot
>> > > ? ?loader within 256MB from the start address is simply
>> > > ? ?incorrect
>> > >
>> > > ?- or when ZBOOT_ROM is used, where the above assumption is
>> > > ? ?normally wrong
>> > >
>> > > List of all Makefile.boot:
>> >
>> > Not so. ?What happened to H720x platforms, which are now broken?
>> > Any chance of fixing the regression that this introduced?
>> >
>> > http://armlinux.simtec.co.uk/kautobuild/2.6.36-rc3/h7202_defconfig/zimage.log
>>
>> And while we're here, why hasn't anyone removed the zreladdr
>> definitions in Makefile.boot yet? ?Or do we still need them and
>> we now have the same information defined in two different places?
>>
>> This all looks like a half-done job at the moment. ?Please clean it up.
> The original series removed all the 'Makefile.boot's IIRC. ?Currently
> the params_phys-y value is needed though. ?So should I send a patch that
> just removes the zreladdr values?
>

That sounds like a plan. And for those platforms which requires only
zreladdr-y, the whole Makefile.boot can just be removed. e.g.
mach-pxa and mach-mmp.

> Eric, what are your plans regarding the runtime-physoffset stuff? ?(I
> currently have none.)
>
> Best regards
> Uwe
>
> --
> Pengutronix e.K. ? ? ? ? ? ? ? ? ? ? ? ? ? | Uwe Kleine-K?nig ? ? ? ? ? ?|
> Industrial Linux Solutions ? ? ? ? ? ? ? ? | http://www.pengutronix.de/ ?|
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* Re: [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to
  2010-09-03  9:56             ` Uwe Kleine-König
@ 2010-09-03 13:39               ` Eric Miao
  -1 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-09-03 13:39 UTC (permalink / raw)
  To: linux-arm-kernel

2010/9/3 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
> The calculated value in Makefile.boot isn't used anymore since
>
>        e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
>
> and physoffset can better be set in mach/memory.h depending on the
> actual machine type.
>
> Cc: Paul Mundt <lethal@linux-sh.org>
> Cc: Magnus Damm <magnus.damm@gmail.com>
> Cc: linux-sh@vger.kernel.org
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
>  arch/arm/mach-shmobile/Kconfig               |   11 -----------
>  arch/arm/mach-shmobile/Makefile.boot         |    9 ---------
>  arch/arm/mach-shmobile/include/mach/memory.h |   15 ++++++++++++++-
>  3 files changed, 14 insertions(+), 21 deletions(-)
>  delete mode 100644 arch/arm/mach-shmobile/Makefile.boot
>
> diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
> index 54b479c..45e134e 100644
> --- a/arch/arm/mach-shmobile/Kconfig
> +++ b/arch/arm/mach-shmobile/Kconfig
> @@ -61,17 +61,6 @@ comment "SH-Mobile System Configuration"
>
>  menu "Memory configuration"
>
> -config MEMORY_START
> -       hex "Physical memory start address"
> -       default "0x50000000" if MACH_G3EVM
> -       default "0x40000000" if MACH_G4EVM
> -       default "0x40000000" if MACH_AP4EVB
> -       default "0x00000000"
> -       ---help---
> -         Tweak this only when porting to a new machine which does not
> -         already have a defconfig. Changing it from the known correct
> -         value on any of the known systems will only lead to disaster.
> -
>  config MEMORY_SIZE
>        hex "Physical memory size"
>        default "0x08000000" if MACH_G3EVM
> diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot
> deleted file mode 100644
> index 1c08ee9..0000000
> --- a/arch/arm/mach-shmobile/Makefile.boot
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -__ZRELADDR     := $(shell /bin/bash -c 'printf "0x%08x" \
> -                    $$[$(CONFIG_MEMORY_START) + 0x8000]')
> -
> -   zreladdr-y   := $(__ZRELADDR)
> -
> -# Unsupported legacy stuff
> -#
> -#params_phys-y (Instead: Pass atags pointer in r2)
> -#initrd_phys-y (Instead: Use compiled-in initramfs)
> diff --git a/arch/arm/mach-shmobile/include/mach/memory.h b/arch/arm/mach-shmobile/include/mach/memory.h
> index 377584e..100f734 100644
> --- a/arch/arm/mach-shmobile/include/mach/memory.h
> +++ b/arch/arm/mach-shmobile/include/mach/memory.h
> @@ -1,7 +1,20 @@
>  #ifndef __ASM_MACH_MEMORY_H
>  #define __ASM_MACH_MEMORY_H
>
> -#define PHYS_OFFSET    UL(CONFIG_MEMORY_START)
> +#define SH7367_PHYS_OFFSET UL(0x50000000)
> +#define SH7372_PHYS_OFFSET UL(0x40000000)
> +#define SH7377_PHYS_OFFSET UL(0x40000000)
> +
> +#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
> +# if defined(CONFIG_ARCH_SH7367)
> +#  define PHYS_OFFSET  SH7367_PHYS_OFFSET
> +# elif defined(CONFIG_ARCH_SH7372)
> +#  define PHYS_OFFSET  SH7372_PHYS_OFFSET
> +# elif defined(CONFIG_ARCH_SH7377)
> +#  define PHYS_OFFSET  SH7377_PHYS_OFFSET
> +# endif
> +#endif /* if !defined(CONFIG_RUNTIME_PHYS_OFFSET) */
> +

Looks like the CONFIG_MEMORY_START was a configurable option, tho
not sure if it can be configured to other values, but making it fixed here
doesn't seem to be a consistent change. (meaning there is assumption
here).

>  #define MEM_SIZE       UL(CONFIG_MEMORY_SIZE)
>
>  /* DMA memory at 0xf6000000 - 0xffdfffff */
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr
@ 2010-09-03 13:39               ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-09-03 13:39 UTC (permalink / raw)
  To: linux-arm-kernel

2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> The calculated value in Makefile.boot isn't used anymore since
>
> ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
>
> and physoffset can better be set in mach/memory.h depending on the
> actual machine type.
>
> Cc: Paul Mundt <lethal@linux-sh.org>
> Cc: Magnus Damm <magnus.damm@gmail.com>
> Cc: linux-sh at vger.kernel.org
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
> ?arch/arm/mach-shmobile/Kconfig ? ? ? ? ? ? ? | ? 11 -----------
> ?arch/arm/mach-shmobile/Makefile.boot ? ? ? ? | ? ?9 ---------
> ?arch/arm/mach-shmobile/include/mach/memory.h | ? 15 ++++++++++++++-
> ?3 files changed, 14 insertions(+), 21 deletions(-)
> ?delete mode 100644 arch/arm/mach-shmobile/Makefile.boot
>
> diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
> index 54b479c..45e134e 100644
> --- a/arch/arm/mach-shmobile/Kconfig
> +++ b/arch/arm/mach-shmobile/Kconfig
> @@ -61,17 +61,6 @@ comment "SH-Mobile System Configuration"
>
> ?menu "Memory configuration"
>
> -config MEMORY_START
> - ? ? ? hex "Physical memory start address"
> - ? ? ? default "0x50000000" if MACH_G3EVM
> - ? ? ? default "0x40000000" if MACH_G4EVM
> - ? ? ? default "0x40000000" if MACH_AP4EVB
> - ? ? ? default "0x00000000"
> - ? ? ? ---help---
> - ? ? ? ? Tweak this only when porting to a new machine which does not
> - ? ? ? ? already have a defconfig. Changing it from the known correct
> - ? ? ? ? value on any of the known systems will only lead to disaster.
> -
> ?config MEMORY_SIZE
> ? ? ? ?hex "Physical memory size"
> ? ? ? ?default "0x08000000" if MACH_G3EVM
> diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot
> deleted file mode 100644
> index 1c08ee9..0000000
> --- a/arch/arm/mach-shmobile/Makefile.boot
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -__ZRELADDR ? ? := $(shell /bin/bash -c 'printf "0x%08x" \
> - ? ? ? ? ? ? ? ? ? ?$$[$(CONFIG_MEMORY_START) + 0x8000]')
> -
> - ? zreladdr-y ? := $(__ZRELADDR)
> -
> -# Unsupported legacy stuff
> -#
> -#params_phys-y (Instead: Pass atags pointer in r2)
> -#initrd_phys-y (Instead: Use compiled-in initramfs)
> diff --git a/arch/arm/mach-shmobile/include/mach/memory.h b/arch/arm/mach-shmobile/include/mach/memory.h
> index 377584e..100f734 100644
> --- a/arch/arm/mach-shmobile/include/mach/memory.h
> +++ b/arch/arm/mach-shmobile/include/mach/memory.h
> @@ -1,7 +1,20 @@
> ?#ifndef __ASM_MACH_MEMORY_H
> ?#define __ASM_MACH_MEMORY_H
>
> -#define PHYS_OFFSET ? ?UL(CONFIG_MEMORY_START)
> +#define SH7367_PHYS_OFFSET UL(0x50000000)
> +#define SH7372_PHYS_OFFSET UL(0x40000000)
> +#define SH7377_PHYS_OFFSET UL(0x40000000)
> +
> +#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
> +# if defined(CONFIG_ARCH_SH7367)
> +# ?define PHYS_OFFSET ?SH7367_PHYS_OFFSET
> +# elif defined(CONFIG_ARCH_SH7372)
> +# ?define PHYS_OFFSET ?SH7372_PHYS_OFFSET
> +# elif defined(CONFIG_ARCH_SH7377)
> +# ?define PHYS_OFFSET ?SH7377_PHYS_OFFSET
> +# endif
> +#endif /* if !defined(CONFIG_RUNTIME_PHYS_OFFSET) */
> +

Looks like the CONFIG_MEMORY_START was a configurable option, tho
not sure if it can be configured to other values, but making it fixed here
doesn't seem to be a consistent change. (meaning there is assumption
here).

> ?#define MEM_SIZE ? ? ? UL(CONFIG_MEMORY_SIZE)
>
> ?/* DMA memory at 0xf6000000 - 0xffdfffff */
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 3/7] ARM: specify ZRELADDR for ARCH_H720X
  2010-09-03  9:56           ` [PATCH 3/7] ARM: specify ZRELADDR for ARCH_H720X Uwe Kleine-König
@ 2010-09-03 13:40             ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-09-03 13:40 UTC (permalink / raw)
  To: linux-arm-kernel

2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> This was missed in commit
>
> ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

This is straight-forward. Ack.

> ---
> ?arch/arm/Kconfig ? ? ? ? ? ? ? ? ?| ? ?4 +++-
> ?arch/arm/mach-h720x/Makefile.boot | ? ?2 --
> ?2 files changed, 3 insertions(+), 3 deletions(-)
> ?delete mode 100644 arch/arm/mach-h720x/Makefile.boot
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 16bc8eb..c43b508 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1620,7 +1620,9 @@ config ZRELADDR
> ? ? ? ? ? ? ? ?ARCH_S3C2416 ||\
> ? ? ? ? ? ? ? ?ARCH_S3C2440 ||\
> ? ? ? ? ? ? ? ?ARCH_S3C2443
> - ? ? ? default 0x40008000 if ARCH_STMP378X ||\
> + ? ? ? default 0x40008000 if \
> + ? ? ? ? ? ? ? ARCH_H720X ||\
> + ? ? ? ? ? ? ? ARCH_STMP378X ||\
> ? ? ? ? ? ? ? ?ARCH_STMP37XX ||\
> ? ? ? ? ? ? ? ?ARCH_SH7372 ||\
> ? ? ? ? ? ? ? ?ARCH_SH7377 ||\
> diff --git a/arch/arm/mach-h720x/Makefile.boot b/arch/arm/mach-h720x/Makefile.boot
> deleted file mode 100644
> index 5298401..0000000
> --- a/arch/arm/mach-h720x/Makefile.boot
> +++ /dev/null
> @@ -1,2 +0,0 @@
> - ? zreladdr-$(CONFIG_ARCH_H720X) ? ? ? := 0x40008000
> -
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/7] ARM: specify ZRELADDR for ARCH_LPC32XX
  2010-09-03  9:56           ` [PATCH 4/7] ARM: specify ZRELADDR for ARCH_LPC32XX Uwe Kleine-König
@ 2010-09-03 13:41             ` Eric Miao
  0 siblings, 0 replies; 138+ messages in thread
From: Eric Miao @ 2010-09-03 13:41 UTC (permalink / raw)
  To: linux-arm-kernel

2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> This was missed in commit
>
> ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
>
> Cc: Kevin Wells <wellsk40@gmail.com>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Looks straight-forward. Ack.

> ---
> ?arch/arm/Kconfig ? ? ? ? ? ? ? ? ? ?| ? ?4 +++-
> ?arch/arm/mach-lpc32xx/Makefile.boot | ? ?1 -
> ?2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index c43b508..4a9a55c 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1630,7 +1630,9 @@ config ZRELADDR
> ? ? ? ?default 0x50008000 if ARCH_S3C64XX ||\
> ? ? ? ? ? ? ? ?ARCH_SH7367
> ? ? ? ?default 0x60008000 if ARCH_VEXPRESS
> - ? ? ? default 0x80008000 if ARCH_MX25 ||\
> + ? ? ? default 0x80008000 if \
> + ? ? ? ? ? ? ? ARCH_LPC32XX ||\
> + ? ? ? ? ? ? ? ARCH_MX25 ||\
> ? ? ? ? ? ? ? ?ARCH_MX3 ||\
> ? ? ? ? ? ? ? ?ARCH_NETX ||\
> ? ? ? ? ? ? ? ?ARCH_OMAP2PLUS ||\
> diff --git a/arch/arm/mach-lpc32xx/Makefile.boot b/arch/arm/mach-lpc32xx/Makefile.boot
> index b796b41..e6bde79 100644
> --- a/arch/arm/mach-lpc32xx/Makefile.boot
> +++ b/arch/arm/mach-lpc32xx/Makefile.boot
> @@ -1,4 +1,3 @@
> - ? zreladdr-y ?:= 0x80008000
> ?params_phys-y ?:= 0x80000100
> ?initrd_phys-y ?:= 0x82000000
>
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 7/7] ARM: removed unused zreladdr specifications in all Makefile.boot files
  2010-09-03  9:56           ` [PATCH 7/7] ARM: removed unused zreladdr specifications in all Makefile.boot files Uwe Kleine-König
@ 2010-09-03 15:01             ` Eric Miao
  2010-09-03 18:48               ` [PATCH 7/7 v2] " Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-09-03 15:01 UTC (permalink / raw)
  To: linux-arm-kernel

2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
> ?arch/arm/mach-aaec2000/Makefile.boot ? | ? ?1 -
> ?arch/arm/mach-at91/Makefile.boot ? ? ? | ? ?3 ---
> ?arch/arm/mach-clps711x/Makefile.boot ? | ? ?1 -
> ?arch/arm/mach-cns3xxx/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-davinci/Makefile.boot ? ?| ? ?2 --
> ?arch/arm/mach-dove/Makefile.boot ? ? ? | ? ?1 -
> ?arch/arm/mach-ebsa110/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-ep93xx/Makefile.boot ? ? | ? ?5 -----
> ?arch/arm/mach-footbridge/Makefile.boot | ? ?1 -
> ?arch/arm/mach-gemini/Makefile.boot ? ? | ? ?2 --
> ?arch/arm/mach-imx/Makefile.boot ? ? ? ?| ? ?3 ---
> ?arch/arm/mach-integrator/Makefile.boot | ? ?1 -
> ?arch/arm/mach-iop13xx/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-iop32x/Makefile.boot ? ? | ? ?1 -
> ?arch/arm/mach-iop33x/Makefile.boot ? ? | ? ?1 -
> ?arch/arm/mach-ixp2000/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-ixp23xx/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-ixp4xx/Makefile.boot ? ? | ? ?1 -
> ?arch/arm/mach-kirkwood/Makefile.boot ? | ? ?1 -
> ?arch/arm/mach-ks8695/Makefile.boot ? ? | ? ?1 -
> ?arch/arm/mach-lh7a40x/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-loki/Makefile.boot ? ? ? | ? ?1 -
> ?arch/arm/mach-mmp/Makefile.boot ? ? ? ?| ? ?1 -
> ?arch/arm/mach-msm/Makefile.boot ? ? ? ?| ? ?1 -
> ?arch/arm/mach-mv78xx0/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-mx25/Makefile.boot ? ? ? | ? ?1 -
> ?arch/arm/mach-mx3/Makefile.boot ? ? ? ?| ? ?1 -
> ?arch/arm/mach-mx5/Makefile.boot ? ? ? ?| ? ?1 -
> ?arch/arm/mach-mxc91231/Makefile.boot ? | ? ?1 -
> ?arch/arm/mach-netx/Makefile.boot ? ? ? | ? ?1 -
> ?arch/arm/mach-nomadik/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-ns9xxx/Makefile.boot ? ? | ? ?1 -
> ?arch/arm/mach-nuc93x/Makefile.boot ? ? | ? ?1 -
> ?arch/arm/mach-omap1/Makefile.boot ? ? ?| ? ?1 -
> ?arch/arm/mach-omap2/Makefile.boot ? ? ?| ? ?1 -
> ?arch/arm/mach-orion5x/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-pnx4008/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-pxa/Makefile.boot ? ? ? ?| ? ?1 -

I'd prefer some of the Makefile.boot be completely removed if they
contain only the definition of zreladdr-y, e.g. mach-pxa/

> ?arch/arm/mach-realview/Makefile.boot ? | ? ?2 --
> ?arch/arm/mach-rpc/Makefile.boot ? ? ? ?| ? ?1 -
> ?arch/arm/mach-s3c2410/Makefile.boot ? ?| ? ?2 --
> ?arch/arm/mach-s3c64xx/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-s5p6440/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-s5p6442/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-s5pc100/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-s5pv210/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-s5pv310/Makefile.boot ? ?| ? ?1 -
> ?arch/arm/mach-sa1100/Makefile.boot ? ? | ? ?2 --
> ?arch/arm/mach-shark/Makefile.boot ? ? ?| ? ?2 --
> ?arch/arm/mach-spear3xx/Makefile.boot ? | ? ?1 -
> ?arch/arm/mach-spear6xx/Makefile.boot ? | ? ?1 -
> ?arch/arm/mach-stmp378x/Makefile.boot ? | ? ?1 -
> ?arch/arm/mach-stmp37xx/Makefile.boot ? | ? ?1 -
> ?arch/arm/mach-u300/Makefile.boot ? ? ? | ? ?2 --
> ?arch/arm/mach-ux500/Makefile.boot ? ? ?| ? ?1 -
> ?arch/arm/mach-versatile/Makefile.boot ?| ? ?1 -
> ?arch/arm/mach-vexpress/Makefile.boot ? | ? ?1 -
> ?arch/arm/mach-w90x900/Makefile.boot ? ?| ? ?1 -
> ?58 files changed, 0 insertions(+), 73 deletions(-)
> ?delete mode 100644 arch/arm/mach-shark/Makefile.boot
>
> diff --git a/arch/arm/mach-aaec2000/Makefile.boot b/arch/arm/mach-aaec2000/Makefile.boot
> index 8f5a8b7..e69de29 100644
> --- a/arch/arm/mach-aaec2000/Makefile.boot
> +++ b/arch/arm/mach-aaec2000/Makefile.boot
> @@ -1 +0,0 @@
> - ? ? ? zreladdr-y := 0xf0008000
> diff --git a/arch/arm/mach-at91/Makefile.boot b/arch/arm/mach-at91/Makefile.boot
> index 3462b81..9d7c05c 100644
> --- a/arch/arm/mach-at91/Makefile.boot
> +++ b/arch/arm/mach-at91/Makefile.boot
> @@ -4,15 +4,12 @@
> ?# ? INITRD_PHYS must be in RAM
>
> ?ifeq ($(CONFIG_ARCH_AT91CAP9),y)
> - ? zreladdr-y ?:= 0x70008000
> ?params_phys-y ?:= 0x70000100
> ?initrd_phys-y ?:= 0x70410000
> ?else ifeq ($(CONFIG_ARCH_AT91SAM9G45),y)
> - ? zreladdr-y ?:= 0x70008000
> ?params_phys-y ?:= 0x70000100
> ?initrd_phys-y ?:= 0x70410000
> ?else
> - ? zreladdr-y ?:= 0x20008000
> ?params_phys-y ?:= 0x20000100
> ?initrd_phys-y ?:= 0x20410000
> ?endif
> diff --git a/arch/arm/mach-clps711x/Makefile.boot b/arch/arm/mach-clps711x/Makefile.boot
> index a51fcef..eba77d3 100644
> --- a/arch/arm/mach-clps711x/Makefile.boot
> +++ b/arch/arm/mach-clps711x/Makefile.boot
> @@ -1,5 +1,4 @@
> ?# The standard locations for stuff on CLPS711x type processors
> - ? zreladdr-y ? ? ? ? ? ? ? ? ? ? ? ? ?:= 0xc0028000
> ?params_phys-y ? ? ? ? ? ? ? ? ? ? ? ? ?:= 0xc0000100
> ?# Should probably have some agreement on these...
> ?initrd_phys-$(CONFIG_ARCH_P720T) ? ? ? := 0xc0400000
> diff --git a/arch/arm/mach-cns3xxx/Makefile.boot b/arch/arm/mach-cns3xxx/Makefile.boot
> index 7770128..6ac39ff 100644
> --- a/arch/arm/mach-cns3xxx/Makefile.boot
> +++ b/arch/arm/mach-cns3xxx/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00C00000
> diff --git a/arch/arm/mach-davinci/Makefile.boot b/arch/arm/mach-davinci/Makefile.boot
> index db97ef2..8cdb5ac 100644
> --- a/arch/arm/mach-davinci/Makefile.boot
> +++ b/arch/arm/mach-davinci/Makefile.boot
> @@ -2,12 +2,10 @@ ifeq ($(CONFIG_ARCH_DAVINCI_DA8XX),y)
> ?ifeq ($(CONFIG_ARCH_DAVINCI_DMx),y)
> ?$(error Cannot enable DaVinci and DA8XX platforms concurrently)
> ?else
> - ? zreladdr-y ?:= 0xc0008000
> ?params_phys-y ?:= 0xc0000100
> ?initrd_phys-y ?:= 0xc0800000
> ?endif
> ?else
> - ? zreladdr-y ?:= 0x80008000
> ?params_phys-y ?:= 0x80000100
> ?initrd_phys-y ?:= 0x80800000
> ?endif
> diff --git a/arch/arm/mach-dove/Makefile.boot b/arch/arm/mach-dove/Makefile.boot
> index 67039c3..80f4945 100644
> --- a/arch/arm/mach-dove/Makefile.boot
> +++ b/arch/arm/mach-dove/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> diff --git a/arch/arm/mach-ebsa110/Makefile.boot b/arch/arm/mach-ebsa110/Makefile.boot
> index 2321260..cb7c513 100644
> --- a/arch/arm/mach-ebsa110/Makefile.boot
> +++ b/arch/arm/mach-ebsa110/Makefile.boot
> @@ -1,4 +1,3 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000400
> ?initrd_phys-y ?:= 0x00800000
>
> diff --git a/arch/arm/mach-ep93xx/Makefile.boot b/arch/arm/mach-ep93xx/Makefile.boot
> index 0ad33f1..fcffffa 100644
> --- a/arch/arm/mach-ep93xx/Makefile.boot
> +++ b/arch/arm/mach-ep93xx/Makefile.boot
> @@ -1,14 +1,9 @@
> - ? zreladdr-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET) ? ?:= 0x00008000
> ?params_phys-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET) ? ?:= 0x00000100
>
> - ? zreladdr-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET) ? ? ? ? := 0xc0008000
> ?params_phys-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET) ? ? ? ? := 0xc0000100
>
> - ? zreladdr-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET) ? ? ? ? := 0xd0008000
> ?params_phys-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET) ? ? ? ? := 0xd0000100
>
> - ? zreladdr-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET) ? ? ? ? := 0xe0008000
> ?params_phys-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET) ? ? ? ? := 0xe0000100
>
> - ? zreladdr-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET) ? := 0xf0008000
> ?params_phys-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET) ? := 0xf0000100
> diff --git a/arch/arm/mach-footbridge/Makefile.boot b/arch/arm/mach-footbridge/Makefile.boot
> index c7e75ac..ee22553 100644
> --- a/arch/arm/mach-footbridge/Makefile.boot
> +++ b/arch/arm/mach-footbridge/Makefile.boot
> @@ -1,4 +1,3 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
>
> diff --git a/arch/arm/mach-gemini/Makefile.boot b/arch/arm/mach-gemini/Makefile.boot
> index 22a52c2..88f25e9 100644
> --- a/arch/arm/mach-gemini/Makefile.boot
> +++ b/arch/arm/mach-gemini/Makefile.boot
> @@ -1,9 +1,7 @@
> ?ifeq ($(CONFIG_GEMINI_MEM_SWAP),y)
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> ?else
> - ? zreladdr-y ?:= 0x10008000
> ?params_phys-y ?:= 0x10000100
> ?initrd_phys-y ?:= 0x10800000
> ?endif
> diff --git a/arch/arm/mach-imx/Makefile.boot b/arch/arm/mach-imx/Makefile.boot
> index 7988a85..110aa36 100644
> --- a/arch/arm/mach-imx/Makefile.boot
> +++ b/arch/arm/mach-imx/Makefile.boot
> @@ -1,11 +1,8 @@
> -zreladdr-$(CONFIG_ARCH_MX1) ? ?:= 0x08008000
> ?params_phys-$(CONFIG_ARCH_MX1) := 0x08000100
> ?initrd_phys-$(CONFIG_ARCH_MX1) := 0x08800000
>
> -zreladdr-$(CONFIG_MACH_MX21) ? := 0xC0008000
> ?params_phys-$(CONFIG_MACH_MX21) ? ? ? ?:= 0xC0000100
> ?initrd_phys-$(CONFIG_MACH_MX21) ? ? ? ?:= 0xC0800000
>
> -zreladdr-$(CONFIG_MACH_MX27) ? := 0xA0008000
> ?params_phys-$(CONFIG_MACH_MX27) ? ? ? ?:= 0xA0000100
> ?initrd_phys-$(CONFIG_MACH_MX27) ? ? ? ?:= 0xA0800000
> diff --git a/arch/arm/mach-integrator/Makefile.boot b/arch/arm/mach-integrator/Makefile.boot
> index c7e75ac..ee22553 100644
> --- a/arch/arm/mach-integrator/Makefile.boot
> +++ b/arch/arm/mach-integrator/Makefile.boot
> @@ -1,4 +1,3 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
>
> diff --git a/arch/arm/mach-iop13xx/Makefile.boot b/arch/arm/mach-iop13xx/Makefile.boot
> index 0b0e19f..6e25cb5 100644
> --- a/arch/arm/mach-iop13xx/Makefile.boot
> +++ b/arch/arm/mach-iop13xx/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ? := 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> diff --git a/arch/arm/mach-iop32x/Makefile.boot b/arch/arm/mach-iop32x/Makefile.boot
> index 47000dc..5e0e4f6 100644
> --- a/arch/arm/mach-iop32x/Makefile.boot
> +++ b/arch/arm/mach-iop32x/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0xa0008000
> ?params_phys-y ?:= 0xa0000100
> ?initrd_phys-y ?:= 0xa0800000
> diff --git a/arch/arm/mach-iop33x/Makefile.boot b/arch/arm/mach-iop33x/Makefile.boot
> index 67039c3..80f4945 100644
> --- a/arch/arm/mach-iop33x/Makefile.boot
> +++ b/arch/arm/mach-iop33x/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> diff --git a/arch/arm/mach-ixp2000/Makefile.boot b/arch/arm/mach-ixp2000/Makefile.boot
> index d84c580..1bca921 100644
> --- a/arch/arm/mach-ixp2000/Makefile.boot
> +++ b/arch/arm/mach-ixp2000/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
>
> diff --git a/arch/arm/mach-ixp23xx/Makefile.boot b/arch/arm/mach-ixp23xx/Makefile.boot
> index d5561ad..cb69427 100644
> --- a/arch/arm/mach-ixp23xx/Makefile.boot
> +++ b/arch/arm/mach-ixp23xx/Makefile.boot
> @@ -1,2 +1 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> diff --git a/arch/arm/mach-ixp4xx/Makefile.boot b/arch/arm/mach-ixp4xx/Makefile.boot
> index d84c580..1bca921 100644
> --- a/arch/arm/mach-ixp4xx/Makefile.boot
> +++ b/arch/arm/mach-ixp4xx/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
>
> diff --git a/arch/arm/mach-kirkwood/Makefile.boot b/arch/arm/mach-kirkwood/Makefile.boot
> index 67039c3..80f4945 100644
> --- a/arch/arm/mach-kirkwood/Makefile.boot
> +++ b/arch/arm/mach-kirkwood/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> diff --git a/arch/arm/mach-ks8695/Makefile.boot b/arch/arm/mach-ks8695/Makefile.boot
> index 48eb2cb..11ea079 100644
> --- a/arch/arm/mach-ks8695/Makefile.boot
> +++ b/arch/arm/mach-ks8695/Makefile.boot
> @@ -3,6 +3,5 @@
> ?# ? PARAMS_PHYS must be within 4MB of ZRELADDR
> ?# ? INITRD_PHYS must be in RAM
>
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> diff --git a/arch/arm/mach-lh7a40x/Makefile.boot b/arch/arm/mach-lh7a40x/Makefile.boot
> index af941be..5a78392 100644
> --- a/arch/arm/mach-lh7a40x/Makefile.boot
> +++ b/arch/arm/mach-lh7a40x/Makefile.boot
> @@ -1,4 +1,3 @@
> - ? zreladdr-y ?:= 0xc0008000
> ?params_phys-y ?:= 0xc0000100
> ?initrd_phys-y ?:= 0xc4000000
>
> diff --git a/arch/arm/mach-loki/Makefile.boot b/arch/arm/mach-loki/Makefile.boot
> index 67039c3..80f4945 100644
> --- a/arch/arm/mach-loki/Makefile.boot
> +++ b/arch/arm/mach-loki/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> diff --git a/arch/arm/mach-mmp/Makefile.boot b/arch/arm/mach-mmp/Makefile.boot
> index 574a4aa..e69de29 100644
> --- a/arch/arm/mach-mmp/Makefile.boot
> +++ b/arch/arm/mach-mmp/Makefile.boot
> @@ -1 +0,0 @@
> - ? zreladdr-y ?:= 0x00008000
> diff --git a/arch/arm/mach-msm/Makefile.boot b/arch/arm/mach-msm/Makefile.boot
> index 24dfbf8..14acc97 100644
> --- a/arch/arm/mach-msm/Makefile.boot
> +++ b/arch/arm/mach-msm/Makefile.boot
> @@ -1,3 +1,2 @@
> - ?zreladdr-y ? ? ? ? ? := 0x10008000
> ?params_phys-y ? ? ? ? ?:= 0x10000100
> ?initrd_phys-y ? ? ? ? ?:= 0x10800000
> diff --git a/arch/arm/mach-mv78xx0/Makefile.boot b/arch/arm/mach-mv78xx0/Makefile.boot
> index 67039c3..80f4945 100644
> --- a/arch/arm/mach-mv78xx0/Makefile.boot
> +++ b/arch/arm/mach-mv78xx0/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> diff --git a/arch/arm/mach-mx25/Makefile.boot b/arch/arm/mach-mx25/Makefile.boot
> index e1dd366..77987d8 100644
> --- a/arch/arm/mach-mx25/Makefile.boot
> +++ b/arch/arm/mach-mx25/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x80008000
> ?params_phys-y ?:= 0x80000100
> ?initrd_phys-y ?:= 0x80800000
> diff --git a/arch/arm/mach-mx3/Makefile.boot b/arch/arm/mach-mx3/Makefile.boot
> index e1dd366..77987d8 100644
> --- a/arch/arm/mach-mx3/Makefile.boot
> +++ b/arch/arm/mach-mx3/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x80008000
> ?params_phys-y ?:= 0x80000100
> ?initrd_phys-y ?:= 0x80800000
> diff --git a/arch/arm/mach-mx5/Makefile.boot b/arch/arm/mach-mx5/Makefile.boot
> index 9939a19..62b05d4 100644
> --- a/arch/arm/mach-mx5/Makefile.boot
> +++ b/arch/arm/mach-mx5/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x90008000
> ?params_phys-y ?:= 0x90000100
> ?initrd_phys-y ?:= 0x90800000
> diff --git a/arch/arm/mach-mxc91231/Makefile.boot b/arch/arm/mach-mxc91231/Makefile.boot
> index 9939a19..62b05d4 100644
> --- a/arch/arm/mach-mxc91231/Makefile.boot
> +++ b/arch/arm/mach-mxc91231/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x90008000
> ?params_phys-y ?:= 0x90000100
> ?initrd_phys-y ?:= 0x90800000
> diff --git a/arch/arm/mach-netx/Makefile.boot b/arch/arm/mach-netx/Makefile.boot
> index b81cf6a..8b13789 100644
> --- a/arch/arm/mach-netx/Makefile.boot
> +++ b/arch/arm/mach-netx/Makefile.boot
> @@ -1,2 +1 @@
> - ? ?zreladdr-y ? ? ? ? ? ? ? ? := 0x80008000
>
> diff --git a/arch/arm/mach-nomadik/Makefile.boot b/arch/arm/mach-nomadik/Makefile.boot
> index c7e75ac..ee22553 100644
> --- a/arch/arm/mach-nomadik/Makefile.boot
> +++ b/arch/arm/mach-nomadik/Makefile.boot
> @@ -1,4 +1,3 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
>
> diff --git a/arch/arm/mach-ns9xxx/Makefile.boot b/arch/arm/mach-ns9xxx/Makefile.boot
> index 5465491..bdf4f71 100644
> --- a/arch/arm/mach-ns9xxx/Makefile.boot
> +++ b/arch/arm/mach-ns9xxx/Makefile.boot
> @@ -1,2 +1 @@
> -zreladdr-y := 0x8000
> ?params_phys-y := 0x100
> diff --git a/arch/arm/mach-nuc93x/Makefile.boot b/arch/arm/mach-nuc93x/Makefile.boot
> index a057b54..1bca921 100644
> --- a/arch/arm/mach-nuc93x/Makefile.boot
> +++ b/arch/arm/mach-nuc93x/Makefile.boot
> @@ -1,3 +1,2 @@
> -zreladdr-y ? ? := 0x00008000
> ?params_phys-y ?:= 0x00000100
>
> diff --git a/arch/arm/mach-omap1/Makefile.boot b/arch/arm/mach-omap1/Makefile.boot
> index 292d56c..14acc97 100644
> --- a/arch/arm/mach-omap1/Makefile.boot
> +++ b/arch/arm/mach-omap1/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ? ? ? ? ?:= 0x10008000
> ?params_phys-y ? ? ? ? ?:= 0x10000100
> ?initrd_phys-y ? ? ? ? ?:= 0x10800000
> diff --git a/arch/arm/mach-omap2/Makefile.boot b/arch/arm/mach-omap2/Makefile.boot
> index 565aff7..a99818f 100644
> --- a/arch/arm/mach-omap2/Makefile.boot
> +++ b/arch/arm/mach-omap2/Makefile.boot
> @@ -1,3 +1,2 @@
> - ?zreladdr-y ? ? ? ? ? := 0x80008000
> ?params_phys-y ? ? ? ? ?:= 0x80000100
> ?initrd_phys-y ? ? ? ? ?:= 0x80800000
> diff --git a/arch/arm/mach-orion5x/Makefile.boot b/arch/arm/mach-orion5x/Makefile.boot
> index 67039c3..80f4945 100644
> --- a/arch/arm/mach-orion5x/Makefile.boot
> +++ b/arch/arm/mach-orion5x/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> diff --git a/arch/arm/mach-pnx4008/Makefile.boot b/arch/arm/mach-pnx4008/Makefile.boot
> index 44c7117..76905a0 100644
> --- a/arch/arm/mach-pnx4008/Makefile.boot
> +++ b/arch/arm/mach-pnx4008/Makefile.boot
> @@ -1,4 +1,3 @@
> - ? zreladdr-y ? ? ? ? ?:= 0x80008000
> ?params_phys-y ? ? ? ? ?:= 0x80000100
> ?initrd_phys-y ? ? ? ? ?:= 0x80800000
>
> diff --git a/arch/arm/mach-pxa/Makefile.boot b/arch/arm/mach-pxa/Makefile.boot
> index 1ead671..8b13789 100644
> --- a/arch/arm/mach-pxa/Makefile.boot
> +++ b/arch/arm/mach-pxa/Makefile.boot
> @@ -1,2 +1 @@
> - ? zreladdr-y ?:= 0xa0008000
>
> diff --git a/arch/arm/mach-realview/Makefile.boot b/arch/arm/mach-realview/Makefile.boot
> index d97e003..886d020 100644
> --- a/arch/arm/mach-realview/Makefile.boot
> +++ b/arch/arm/mach-realview/Makefile.boot
> @@ -1,9 +1,7 @@
> ?ifeq ($(CONFIG_REALVIEW_HIGH_PHYS_OFFSET),y)
> - ? zreladdr-y ?:= 0x70008000
> ?params_phys-y ?:= 0x70000100
> ?initrd_phys-y ?:= 0x70800000
> ?else
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> ?endif
> diff --git a/arch/arm/mach-rpc/Makefile.boot b/arch/arm/mach-rpc/Makefile.boot
> index 9c9e768..3c7cc4a 100644
> --- a/arch/arm/mach-rpc/Makefile.boot
> +++ b/arch/arm/mach-rpc/Makefile.boot
> @@ -1,4 +1,3 @@
> - ? zreladdr-y ?:= 0x10008000
> ?params_phys-y ?:= 0x10000100
> ?initrd_phys-y ?:= 0x18000000
>
> diff --git a/arch/arm/mach-s3c2410/Makefile.boot b/arch/arm/mach-s3c2410/Makefile.boot
> index 58c1dd7..69dbda1 100644
> --- a/arch/arm/mach-s3c2410/Makefile.boot
> +++ b/arch/arm/mach-s3c2410/Makefile.boot
> @@ -1,7 +1,5 @@
> ?ifeq ($(CONFIG_PM_H1940),y)
> - ? ? ? zreladdr-y ? ? ? ? ? ? ?:= 0x30108000
> ? ? ? ?params_phys-y ? := 0x30100100
> ?else
> - ? ? ? zreladdr-y ? ? ? ? ? ? ?:= 0x30008000
> ? ? ? ?params_phys-y ? := 0x30000100
> ?endif
> diff --git a/arch/arm/mach-s3c64xx/Makefile.boot b/arch/arm/mach-s3c64xx/Makefile.boot
> index ba41fdc..b6349bd 100644
> --- a/arch/arm/mach-s3c64xx/Makefile.boot
> +++ b/arch/arm/mach-s3c64xx/Makefile.boot
> @@ -1,2 +1 @@
> - ? zreladdr-y ?:= 0x50008000
> ?params_phys-y ?:= 0x50000100
> diff --git a/arch/arm/mach-s5p6440/Makefile.boot b/arch/arm/mach-s5p6440/Makefile.boot
> index ff90aa1..9a79532 100644
> --- a/arch/arm/mach-s5p6440/Makefile.boot
> +++ b/arch/arm/mach-s5p6440/Makefile.boot
> @@ -1,2 +1 @@
> - ? zreladdr-y ?:= 0x20008000
> ?params_phys-y ?:= 0x20000100
> diff --git a/arch/arm/mach-s5p6442/Makefile.boot b/arch/arm/mach-s5p6442/Makefile.boot
> index ff90aa1..9a79532 100644
> --- a/arch/arm/mach-s5p6442/Makefile.boot
> +++ b/arch/arm/mach-s5p6442/Makefile.boot
> @@ -1,2 +1 @@
> - ? zreladdr-y ?:= 0x20008000
> ?params_phys-y ?:= 0x20000100
> diff --git a/arch/arm/mach-s5pc100/Makefile.boot b/arch/arm/mach-s5pc100/Makefile.boot
> index ff90aa1..9a79532 100644
> --- a/arch/arm/mach-s5pc100/Makefile.boot
> +++ b/arch/arm/mach-s5pc100/Makefile.boot
> @@ -1,2 +1 @@
> - ? zreladdr-y ?:= 0x20008000
> ?params_phys-y ?:= 0x20000100
> diff --git a/arch/arm/mach-s5pv210/Makefile.boot b/arch/arm/mach-s5pv210/Makefile.boot
> index ff90aa1..9a79532 100644
> --- a/arch/arm/mach-s5pv210/Makefile.boot
> +++ b/arch/arm/mach-s5pv210/Makefile.boot
> @@ -1,2 +1 @@
> - ? zreladdr-y ?:= 0x20008000
> ?params_phys-y ?:= 0x20000100
> diff --git a/arch/arm/mach-s5pv310/Makefile.boot b/arch/arm/mach-s5pv310/Makefile.boot
> index d65956f..85644bc 100644
> --- a/arch/arm/mach-s5pv310/Makefile.boot
> +++ b/arch/arm/mach-s5pv310/Makefile.boot
> @@ -1,2 +1 @@
> - ? zreladdr-y ?:= 0x40008000
> ?params_phys-y ?:= 0x40000100
> diff --git a/arch/arm/mach-sa1100/Makefile.boot b/arch/arm/mach-sa1100/Makefile.boot
> index a56ad04..df520d6 100644
> --- a/arch/arm/mach-sa1100/Makefile.boot
> +++ b/arch/arm/mach-sa1100/Makefile.boot
> @@ -1,6 +1,4 @@
> - ? zreladdr-y ?:= 0xc0008000
> ?ifeq ($(CONFIG_ARCH_SA1100),y)
> - ? zreladdr-$(CONFIG_SA1111) ? ? ? ? ? := 0xc0208000
> ?endif
> ?params_phys-y ?:= 0xc0000100
> ?initrd_phys-y ?:= 0xc0800000
> diff --git a/arch/arm/mach-shark/Makefile.boot b/arch/arm/mach-shark/Makefile.boot
> deleted file mode 100644
> index 4320f8b..0000000
> --- a/arch/arm/mach-shark/Makefile.boot
> +++ /dev/null
> @@ -1,2 +0,0 @@
> - ? zreladdr-y ?:= 0x08008000
> -
> diff --git a/arch/arm/mach-spear3xx/Makefile.boot b/arch/arm/mach-spear3xx/Makefile.boot
> index 7a1f3c0..80f4945 100644
> --- a/arch/arm/mach-spear3xx/Makefile.boot
> +++ b/arch/arm/mach-spear3xx/Makefile.boot
> @@ -1,3 +1,2 @@
> -zreladdr-y ? ? := 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> diff --git a/arch/arm/mach-spear6xx/Makefile.boot b/arch/arm/mach-spear6xx/Makefile.boot
> index 7a1f3c0..80f4945 100644
> --- a/arch/arm/mach-spear6xx/Makefile.boot
> +++ b/arch/arm/mach-spear6xx/Makefile.boot
> @@ -1,3 +1,2 @@
> -zreladdr-y ? ? := 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
> diff --git a/arch/arm/mach-stmp378x/Makefile.boot b/arch/arm/mach-stmp378x/Makefile.boot
> index 1568ad4..71e6728 100644
> --- a/arch/arm/mach-stmp378x/Makefile.boot
> +++ b/arch/arm/mach-stmp378x/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x40008000
> ?params_phys-y ?:= 0x40000100
> ?initrd_phys-y ?:= 0x40800000
> diff --git a/arch/arm/mach-stmp37xx/Makefile.boot b/arch/arm/mach-stmp37xx/Makefile.boot
> index 1568ad4..71e6728 100644
> --- a/arch/arm/mach-stmp37xx/Makefile.boot
> +++ b/arch/arm/mach-stmp37xx/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x40008000
> ?params_phys-y ?:= 0x40000100
> ?initrd_phys-y ?:= 0x40800000
> diff --git a/arch/arm/mach-u300/Makefile.boot b/arch/arm/mach-u300/Makefile.boot
> index 6fbfc6e..9f7ca02 100644
> --- a/arch/arm/mach-u300/Makefile.boot
> +++ b/arch/arm/mach-u300/Makefile.boot
> @@ -4,10 +4,8 @@
> ?# ? INITRD_PHYS must be in RAM
>
> ?ifdef CONFIG_MACH_U300_SINGLE_RAM
> - ? ? zreladdr-y ? ? ? ?:= 0x28E08000
> ? params_phys-y ? ? ? ?:= 0x28E00100
> ?else
> - ? ? zreladdr-y ? ? ? ?:= 0x48008000
> ? params_phys-y ? ? ? ?:= 0x48000100
> ?endif
>
> diff --git a/arch/arm/mach-ux500/Makefile.boot b/arch/arm/mach-ux500/Makefile.boot
> index c7e75ac..ee22553 100644
> --- a/arch/arm/mach-ux500/Makefile.boot
> +++ b/arch/arm/mach-ux500/Makefile.boot
> @@ -1,4 +1,3 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
>
> diff --git a/arch/arm/mach-versatile/Makefile.boot b/arch/arm/mach-versatile/Makefile.boot
> index c7e75ac..ee22553 100644
> --- a/arch/arm/mach-versatile/Makefile.boot
> +++ b/arch/arm/mach-versatile/Makefile.boot
> @@ -1,4 +1,3 @@
> - ? zreladdr-y ?:= 0x00008000
> ?params_phys-y ?:= 0x00000100
> ?initrd_phys-y ?:= 0x00800000
>
> diff --git a/arch/arm/mach-vexpress/Makefile.boot b/arch/arm/mach-vexpress/Makefile.boot
> index 07c2d9c..9acbba0 100644
> --- a/arch/arm/mach-vexpress/Makefile.boot
> +++ b/arch/arm/mach-vexpress/Makefile.boot
> @@ -1,3 +1,2 @@
> - ? zreladdr-y ?:= 0x60008000
> ?params_phys-y ?:= 0x60000100
> ?initrd_phys-y ?:= 0x60800000
> diff --git a/arch/arm/mach-w90x900/Makefile.boot b/arch/arm/mach-w90x900/Makefile.boot
> index a057b54..1bca921 100644
> --- a/arch/arm/mach-w90x900/Makefile.boot
> +++ b/arch/arm/mach-w90x900/Makefile.boot
> @@ -1,3 +1,2 @@
> -zreladdr-y ? ? := 0x00008000
> ?params_phys-y ?:= 0x00000100
>
> --
> 1.7.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-03  9:56           ` [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA Uwe Kleine-König
@ 2010-09-03 17:46             ` Erik Gilling
  2010-09-03 19:01               ` Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Erik Gilling @ 2010-09-03 17:46 UTC (permalink / raw)
  To: linux-arm-kernel

Yeah I saw that and posted a patch on the 27th and sent a pull request
to Linus on Wednesday.  Hopefully it will make rc4.

Cheers,
    ERik

On Fri, Sep 3, 2010 at 2:56 AM, Uwe Kleine-K?nig
<u.kleine-koenig@pengutronix.de> wrote:
> This was missed in commit
>
> ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
>
> Cc: linux-tegra at vger.kernel.org
> Cc: Colin Cross <ccross@android.com>
> Cc: Erik Gilling <konkers@android.com>
> Cc: Olof Johansson <olof@lixom.net>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
> ?arch/arm/Kconfig ? ? ? ? ? ? ? ? ?| ? ?1 +
> ?arch/arm/mach-tegra/Makefile.boot | ? ?1 -
> ?2 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index a7ed21f..16bc8eb 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1601,6 +1601,7 @@ config ZRELADDR
> ? ? ? ? ? ? ? ?ARCH_ORION5X ||\
> ? ? ? ? ? ? ? ?ARCH_SPEAR3XX ||\
> ? ? ? ? ? ? ? ?ARCH_SPEAR6XX ||\
> + ? ? ? ? ? ? ? ARCH_TEGRA ||\
> ? ? ? ? ? ? ? ?ARCH_U8500 ||\
> ? ? ? ? ? ? ? ?ARCH_VERSATILE ||\
> ? ? ? ? ? ? ? ?ARCH_W90X900
> diff --git a/arch/arm/mach-tegra/Makefile.boot b/arch/arm/mach-tegra/Makefile.boot
> index db52d61..6044e12 100644
> --- a/arch/arm/mach-tegra/Makefile.boot
> +++ b/arch/arm/mach-tegra/Makefile.boot
> @@ -1,3 +1,2 @@
> -zreladdr-$(CONFIG_ARCH_TEGRA_2x_SOC) ? := 0x00008000
> ?params_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) ? ? ? ?:= 0x00000100
> ?initrd_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) ? ? ? ?:= 0x00800000
> --
> 1.7.1
>
>

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 7/7 v2] ARM: removed unused zreladdr specifications in all Makefile.boot files
  2010-09-03 15:01             ` Eric Miao
@ 2010-09-03 18:48               ` Uwe Kleine-König
  0 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03 18:48 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
Hello,

compared to v1 I now deleted

	arch/arm/mach-aaec2000/Makefile.boot
	arch/arm/mach-mmp/Makefile.boot 
	arch/arm/mach-netx/Makefile.boot
	arch/arm/mach-pxa/Makefile.boot

(found by grep -L '[^=]' arch/arm/mach-*/Makefile.boot)
and removed an (now) empty if from

	arch/arm/mach-sa1100/Makefile.boot

(and a trailing empty line)

Thanks
Uwe

 arch/arm/mach-aaec2000/Makefile.boot   |    1 -
 arch/arm/mach-at91/Makefile.boot       |    3 ---
 arch/arm/mach-clps711x/Makefile.boot   |    1 -
 arch/arm/mach-cns3xxx/Makefile.boot    |    1 -
 arch/arm/mach-davinci/Makefile.boot    |    2 --
 arch/arm/mach-dove/Makefile.boot       |    1 -
 arch/arm/mach-ebsa110/Makefile.boot    |    1 -
 arch/arm/mach-ep93xx/Makefile.boot     |    5 -----
 arch/arm/mach-footbridge/Makefile.boot |    1 -
 arch/arm/mach-gemini/Makefile.boot     |    2 --
 arch/arm/mach-imx/Makefile.boot        |    3 ---
 arch/arm/mach-integrator/Makefile.boot |    1 -
 arch/arm/mach-iop13xx/Makefile.boot    |    1 -
 arch/arm/mach-iop32x/Makefile.boot     |    1 -
 arch/arm/mach-iop33x/Makefile.boot     |    1 -
 arch/arm/mach-ixp2000/Makefile.boot    |    1 -
 arch/arm/mach-ixp23xx/Makefile.boot    |    1 -
 arch/arm/mach-ixp4xx/Makefile.boot     |    1 -
 arch/arm/mach-kirkwood/Makefile.boot   |    1 -
 arch/arm/mach-ks8695/Makefile.boot     |    1 -
 arch/arm/mach-lh7a40x/Makefile.boot    |    1 -
 arch/arm/mach-loki/Makefile.boot       |    1 -
 arch/arm/mach-mmp/Makefile.boot        |    1 -
 arch/arm/mach-msm/Makefile.boot        |    1 -
 arch/arm/mach-mv78xx0/Makefile.boot    |    1 -
 arch/arm/mach-mx25/Makefile.boot       |    1 -
 arch/arm/mach-mx3/Makefile.boot        |    1 -
 arch/arm/mach-mx5/Makefile.boot        |    1 -
 arch/arm/mach-mxc91231/Makefile.boot   |    1 -
 arch/arm/mach-netx/Makefile.boot       |    2 --
 arch/arm/mach-nomadik/Makefile.boot    |    1 -
 arch/arm/mach-ns9xxx/Makefile.boot     |    1 -
 arch/arm/mach-nuc93x/Makefile.boot     |    1 -
 arch/arm/mach-omap1/Makefile.boot      |    1 -
 arch/arm/mach-omap2/Makefile.boot      |    1 -
 arch/arm/mach-orion5x/Makefile.boot    |    1 -
 arch/arm/mach-pnx4008/Makefile.boot    |    1 -
 arch/arm/mach-pxa/Makefile.boot        |    2 --
 arch/arm/mach-realview/Makefile.boot   |    2 --
 arch/arm/mach-rpc/Makefile.boot        |    1 -
 arch/arm/mach-s3c2410/Makefile.boot    |    2 --
 arch/arm/mach-s3c64xx/Makefile.boot    |    1 -
 arch/arm/mach-s5p6440/Makefile.boot    |    1 -
 arch/arm/mach-s5p6442/Makefile.boot    |    1 -
 arch/arm/mach-s5pc100/Makefile.boot    |    1 -
 arch/arm/mach-s5pv210/Makefile.boot    |    1 -
 arch/arm/mach-s5pv310/Makefile.boot    |    1 -
 arch/arm/mach-sa1100/Makefile.boot     |    5 -----
 arch/arm/mach-shark/Makefile.boot      |    2 --
 arch/arm/mach-spear3xx/Makefile.boot   |    1 -
 arch/arm/mach-spear6xx/Makefile.boot   |    1 -
 arch/arm/mach-stmp378x/Makefile.boot   |    1 -
 arch/arm/mach-stmp37xx/Makefile.boot   |    1 -
 arch/arm/mach-u300/Makefile.boot       |    2 --
 arch/arm/mach-ux500/Makefile.boot      |    1 -
 arch/arm/mach-versatile/Makefile.boot  |    1 -
 arch/arm/mach-vexpress/Makefile.boot   |    1 -
 arch/arm/mach-w90x900/Makefile.boot    |    1 -
 58 files changed, 0 insertions(+), 78 deletions(-)
 delete mode 100644 arch/arm/mach-aaec2000/Makefile.boot
 delete mode 100644 arch/arm/mach-mmp/Makefile.boot
 delete mode 100644 arch/arm/mach-netx/Makefile.boot
 delete mode 100644 arch/arm/mach-pxa/Makefile.boot
 delete mode 100644 arch/arm/mach-shark/Makefile.boot

diff --git a/arch/arm/mach-aaec2000/Makefile.boot b/arch/arm/mach-aaec2000/Makefile.boot
deleted file mode 100644
index 8f5a8b7..0000000
--- a/arch/arm/mach-aaec2000/Makefile.boot
+++ /dev/null
@@ -1 +0,0 @@
-	zreladdr-y := 0xf0008000
diff --git a/arch/arm/mach-at91/Makefile.boot b/arch/arm/mach-at91/Makefile.boot
index 3462b81..9d7c05c 100644
--- a/arch/arm/mach-at91/Makefile.boot
+++ b/arch/arm/mach-at91/Makefile.boot
@@ -4,15 +4,12 @@
 #   INITRD_PHYS must be in RAM
 
 ifeq ($(CONFIG_ARCH_AT91CAP9),y)
-   zreladdr-y	:= 0x70008000
 params_phys-y	:= 0x70000100
 initrd_phys-y	:= 0x70410000
 else ifeq ($(CONFIG_ARCH_AT91SAM9G45),y)
-   zreladdr-y	:= 0x70008000
 params_phys-y	:= 0x70000100
 initrd_phys-y	:= 0x70410000
 else
-   zreladdr-y	:= 0x20008000
 params_phys-y	:= 0x20000100
 initrd_phys-y	:= 0x20410000
 endif
diff --git a/arch/arm/mach-clps711x/Makefile.boot b/arch/arm/mach-clps711x/Makefile.boot
index a51fcef..eba77d3 100644
--- a/arch/arm/mach-clps711x/Makefile.boot
+++ b/arch/arm/mach-clps711x/Makefile.boot
@@ -1,5 +1,4 @@
 # The standard locations for stuff on CLPS711x type processors
-   zreladdr-y				:= 0xc0028000
 params_phys-y				:= 0xc0000100
 # Should probably have some agreement on these...
 initrd_phys-$(CONFIG_ARCH_P720T)	:= 0xc0400000
diff --git a/arch/arm/mach-cns3xxx/Makefile.boot b/arch/arm/mach-cns3xxx/Makefile.boot
index 7770128..6ac39ff 100644
--- a/arch/arm/mach-cns3xxx/Makefile.boot
+++ b/arch/arm/mach-cns3xxx/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00C00000
diff --git a/arch/arm/mach-davinci/Makefile.boot b/arch/arm/mach-davinci/Makefile.boot
index db97ef2..8cdb5ac 100644
--- a/arch/arm/mach-davinci/Makefile.boot
+++ b/arch/arm/mach-davinci/Makefile.boot
@@ -2,12 +2,10 @@ ifeq ($(CONFIG_ARCH_DAVINCI_DA8XX),y)
 ifeq ($(CONFIG_ARCH_DAVINCI_DMx),y)
 $(error Cannot enable DaVinci and DA8XX platforms concurrently)
 else
-   zreladdr-y	:= 0xc0008000
 params_phys-y	:= 0xc0000100
 initrd_phys-y	:= 0xc0800000
 endif
 else
-   zreladdr-y	:= 0x80008000
 params_phys-y	:= 0x80000100
 initrd_phys-y	:= 0x80800000
 endif
diff --git a/arch/arm/mach-dove/Makefile.boot b/arch/arm/mach-dove/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-dove/Makefile.boot
+++ b/arch/arm/mach-dove/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-ebsa110/Makefile.boot b/arch/arm/mach-ebsa110/Makefile.boot
index 2321260..cb7c513 100644
--- a/arch/arm/mach-ebsa110/Makefile.boot
+++ b/arch/arm/mach-ebsa110/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000400
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-ep93xx/Makefile.boot b/arch/arm/mach-ep93xx/Makefile.boot
index 0ad33f1..fcffffa 100644
--- a/arch/arm/mach-ep93xx/Makefile.boot
+++ b/arch/arm/mach-ep93xx/Makefile.boot
@@ -1,14 +1,9 @@
-   zreladdr-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET)	:= 0x00008000
 params_phys-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET)	:= 0x00000100
 
-   zreladdr-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET)		:= 0xc0008000
 params_phys-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET)		:= 0xc0000100
 
-   zreladdr-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET)		:= 0xd0008000
 params_phys-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET)		:= 0xd0000100
 
-   zreladdr-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET)		:= 0xe0008000
 params_phys-$(CONFIG_EP93XX_SDCE2_PHYS_OFFSET)		:= 0xe0000100
 
-   zreladdr-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET)	:= 0xf0008000
 params_phys-$(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET)	:= 0xf0000100
diff --git a/arch/arm/mach-footbridge/Makefile.boot b/arch/arm/mach-footbridge/Makefile.boot
index c7e75ac..ee22553 100644
--- a/arch/arm/mach-footbridge/Makefile.boot
+++ b/arch/arm/mach-footbridge/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-gemini/Makefile.boot b/arch/arm/mach-gemini/Makefile.boot
index 22a52c2..88f25e9 100644
--- a/arch/arm/mach-gemini/Makefile.boot
+++ b/arch/arm/mach-gemini/Makefile.boot
@@ -1,9 +1,7 @@
 ifeq ($(CONFIG_GEMINI_MEM_SWAP),y)
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 else
-   zreladdr-y	:= 0x10008000
 params_phys-y	:= 0x10000100
 initrd_phys-y	:= 0x10800000
 endif
diff --git a/arch/arm/mach-imx/Makefile.boot b/arch/arm/mach-imx/Makefile.boot
index 7988a85..110aa36 100644
--- a/arch/arm/mach-imx/Makefile.boot
+++ b/arch/arm/mach-imx/Makefile.boot
@@ -1,11 +1,8 @@
-zreladdr-$(CONFIG_ARCH_MX1)	:= 0x08008000
 params_phys-$(CONFIG_ARCH_MX1)	:= 0x08000100
 initrd_phys-$(CONFIG_ARCH_MX1)	:= 0x08800000
 
-zreladdr-$(CONFIG_MACH_MX21)	:= 0xC0008000
 params_phys-$(CONFIG_MACH_MX21)	:= 0xC0000100
 initrd_phys-$(CONFIG_MACH_MX21)	:= 0xC0800000
 
-zreladdr-$(CONFIG_MACH_MX27)	:= 0xA0008000
 params_phys-$(CONFIG_MACH_MX27)	:= 0xA0000100
 initrd_phys-$(CONFIG_MACH_MX27)	:= 0xA0800000
diff --git a/arch/arm/mach-integrator/Makefile.boot b/arch/arm/mach-integrator/Makefile.boot
index c7e75ac..ee22553 100644
--- a/arch/arm/mach-integrator/Makefile.boot
+++ b/arch/arm/mach-integrator/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-iop13xx/Makefile.boot b/arch/arm/mach-iop13xx/Makefile.boot
index 0b0e19f..6e25cb5 100644
--- a/arch/arm/mach-iop13xx/Makefile.boot
+++ b/arch/arm/mach-iop13xx/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y   := 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y 	:= 0x00800000
diff --git a/arch/arm/mach-iop32x/Makefile.boot b/arch/arm/mach-iop32x/Makefile.boot
index 47000dc..5e0e4f6 100644
--- a/arch/arm/mach-iop32x/Makefile.boot
+++ b/arch/arm/mach-iop32x/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0xa0008000
 params_phys-y	:= 0xa0000100
 initrd_phys-y	:= 0xa0800000
diff --git a/arch/arm/mach-iop33x/Makefile.boot b/arch/arm/mach-iop33x/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-iop33x/Makefile.boot
+++ b/arch/arm/mach-iop33x/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-ixp2000/Makefile.boot b/arch/arm/mach-ixp2000/Makefile.boot
index d84c580..1bca921 100644
--- a/arch/arm/mach-ixp2000/Makefile.boot
+++ b/arch/arm/mach-ixp2000/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 
diff --git a/arch/arm/mach-ixp23xx/Makefile.boot b/arch/arm/mach-ixp23xx/Makefile.boot
index d5561ad..cb69427 100644
--- a/arch/arm/mach-ixp23xx/Makefile.boot
+++ b/arch/arm/mach-ixp23xx/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
diff --git a/arch/arm/mach-ixp4xx/Makefile.boot b/arch/arm/mach-ixp4xx/Makefile.boot
index d84c580..1bca921 100644
--- a/arch/arm/mach-ixp4xx/Makefile.boot
+++ b/arch/arm/mach-ixp4xx/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 
diff --git a/arch/arm/mach-kirkwood/Makefile.boot b/arch/arm/mach-kirkwood/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-kirkwood/Makefile.boot
+++ b/arch/arm/mach-kirkwood/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-ks8695/Makefile.boot b/arch/arm/mach-ks8695/Makefile.boot
index 48eb2cb..11ea079 100644
--- a/arch/arm/mach-ks8695/Makefile.boot
+++ b/arch/arm/mach-ks8695/Makefile.boot
@@ -3,6 +3,5 @@
 #   PARAMS_PHYS must be within 4MB of ZRELADDR
 #   INITRD_PHYS must be in RAM
 
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-lh7a40x/Makefile.boot b/arch/arm/mach-lh7a40x/Makefile.boot
index af941be..5a78392 100644
--- a/arch/arm/mach-lh7a40x/Makefile.boot
+++ b/arch/arm/mach-lh7a40x/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0xc0008000
 params_phys-y	:= 0xc0000100
 initrd_phys-y	:= 0xc4000000
 
diff --git a/arch/arm/mach-loki/Makefile.boot b/arch/arm/mach-loki/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-loki/Makefile.boot
+++ b/arch/arm/mach-loki/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-mmp/Makefile.boot b/arch/arm/mach-mmp/Makefile.boot
deleted file mode 100644
index 574a4aa..0000000
--- a/arch/arm/mach-mmp/Makefile.boot
+++ /dev/null
@@ -1 +0,0 @@
-   zreladdr-y	:= 0x00008000
diff --git a/arch/arm/mach-msm/Makefile.boot b/arch/arm/mach-msm/Makefile.boot
index 24dfbf8..14acc97 100644
--- a/arch/arm/mach-msm/Makefile.boot
+++ b/arch/arm/mach-msm/Makefile.boot
@@ -1,3 +1,2 @@
-  zreladdr-y		:= 0x10008000
 params_phys-y		:= 0x10000100
 initrd_phys-y		:= 0x10800000
diff --git a/arch/arm/mach-mv78xx0/Makefile.boot b/arch/arm/mach-mv78xx0/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-mv78xx0/Makefile.boot
+++ b/arch/arm/mach-mv78xx0/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-mx25/Makefile.boot b/arch/arm/mach-mx25/Makefile.boot
index e1dd366..77987d8 100644
--- a/arch/arm/mach-mx25/Makefile.boot
+++ b/arch/arm/mach-mx25/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x80008000
 params_phys-y	:= 0x80000100
 initrd_phys-y	:= 0x80800000
diff --git a/arch/arm/mach-mx3/Makefile.boot b/arch/arm/mach-mx3/Makefile.boot
index e1dd366..77987d8 100644
--- a/arch/arm/mach-mx3/Makefile.boot
+++ b/arch/arm/mach-mx3/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x80008000
 params_phys-y	:= 0x80000100
 initrd_phys-y	:= 0x80800000
diff --git a/arch/arm/mach-mx5/Makefile.boot b/arch/arm/mach-mx5/Makefile.boot
index 9939a19..62b05d4 100644
--- a/arch/arm/mach-mx5/Makefile.boot
+++ b/arch/arm/mach-mx5/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x90008000
 params_phys-y	:= 0x90000100
 initrd_phys-y	:= 0x90800000
diff --git a/arch/arm/mach-mxc91231/Makefile.boot b/arch/arm/mach-mxc91231/Makefile.boot
index 9939a19..62b05d4 100644
--- a/arch/arm/mach-mxc91231/Makefile.boot
+++ b/arch/arm/mach-mxc91231/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x90008000
 params_phys-y	:= 0x90000100
 initrd_phys-y	:= 0x90800000
diff --git a/arch/arm/mach-netx/Makefile.boot b/arch/arm/mach-netx/Makefile.boot
deleted file mode 100644
index b81cf6a..0000000
--- a/arch/arm/mach-netx/Makefile.boot
+++ /dev/null
@@ -1,2 +0,0 @@
-    zreladdr-y			:= 0x80008000
-
diff --git a/arch/arm/mach-nomadik/Makefile.boot b/arch/arm/mach-nomadik/Makefile.boot
index c7e75ac..ee22553 100644
--- a/arch/arm/mach-nomadik/Makefile.boot
+++ b/arch/arm/mach-nomadik/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-ns9xxx/Makefile.boot b/arch/arm/mach-ns9xxx/Makefile.boot
index 5465491..bdf4f71 100644
--- a/arch/arm/mach-ns9xxx/Makefile.boot
+++ b/arch/arm/mach-ns9xxx/Makefile.boot
@@ -1,2 +1 @@
-zreladdr-y := 0x8000
 params_phys-y := 0x100
diff --git a/arch/arm/mach-nuc93x/Makefile.boot b/arch/arm/mach-nuc93x/Makefile.boot
index a057b54..1bca921 100644
--- a/arch/arm/mach-nuc93x/Makefile.boot
+++ b/arch/arm/mach-nuc93x/Makefile.boot
@@ -1,3 +1,2 @@
-zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 
diff --git a/arch/arm/mach-omap1/Makefile.boot b/arch/arm/mach-omap1/Makefile.boot
index 292d56c..14acc97 100644
--- a/arch/arm/mach-omap1/Makefile.boot
+++ b/arch/arm/mach-omap1/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y		:= 0x10008000
 params_phys-y		:= 0x10000100
 initrd_phys-y		:= 0x10800000
diff --git a/arch/arm/mach-omap2/Makefile.boot b/arch/arm/mach-omap2/Makefile.boot
index 565aff7..a99818f 100644
--- a/arch/arm/mach-omap2/Makefile.boot
+++ b/arch/arm/mach-omap2/Makefile.boot
@@ -1,3 +1,2 @@
-  zreladdr-y		:= 0x80008000
 params_phys-y		:= 0x80000100
 initrd_phys-y		:= 0x80800000
diff --git a/arch/arm/mach-orion5x/Makefile.boot b/arch/arm/mach-orion5x/Makefile.boot
index 67039c3..80f4945 100644
--- a/arch/arm/mach-orion5x/Makefile.boot
+++ b/arch/arm/mach-orion5x/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-pnx4008/Makefile.boot b/arch/arm/mach-pnx4008/Makefile.boot
index 44c7117..76905a0 100644
--- a/arch/arm/mach-pnx4008/Makefile.boot
+++ b/arch/arm/mach-pnx4008/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y		:= 0x80008000
 params_phys-y		:= 0x80000100
 initrd_phys-y		:= 0x80800000
 
diff --git a/arch/arm/mach-pxa/Makefile.boot b/arch/arm/mach-pxa/Makefile.boot
deleted file mode 100644
index 1ead671..0000000
--- a/arch/arm/mach-pxa/Makefile.boot
+++ /dev/null
@@ -1,2 +0,0 @@
-   zreladdr-y	:= 0xa0008000
-
diff --git a/arch/arm/mach-realview/Makefile.boot b/arch/arm/mach-realview/Makefile.boot
index d97e003..886d020 100644
--- a/arch/arm/mach-realview/Makefile.boot
+++ b/arch/arm/mach-realview/Makefile.boot
@@ -1,9 +1,7 @@
 ifeq ($(CONFIG_REALVIEW_HIGH_PHYS_OFFSET),y)
-   zreladdr-y	:= 0x70008000
 params_phys-y	:= 0x70000100
 initrd_phys-y	:= 0x70800000
 else
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 endif
diff --git a/arch/arm/mach-rpc/Makefile.boot b/arch/arm/mach-rpc/Makefile.boot
index 9c9e768..3c7cc4a 100644
--- a/arch/arm/mach-rpc/Makefile.boot
+++ b/arch/arm/mach-rpc/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x10008000
 params_phys-y	:= 0x10000100
 initrd_phys-y	:= 0x18000000
 
diff --git a/arch/arm/mach-s3c2410/Makefile.boot b/arch/arm/mach-s3c2410/Makefile.boot
index 58c1dd7..69dbda1 100644
--- a/arch/arm/mach-s3c2410/Makefile.boot
+++ b/arch/arm/mach-s3c2410/Makefile.boot
@@ -1,7 +1,5 @@
 ifeq ($(CONFIG_PM_H1940),y)
-	zreladdr-y		:= 0x30108000
 	params_phys-y	:= 0x30100100
 else
-	zreladdr-y		:= 0x30008000
 	params_phys-y	:= 0x30000100
 endif
diff --git a/arch/arm/mach-s3c64xx/Makefile.boot b/arch/arm/mach-s3c64xx/Makefile.boot
index ba41fdc..b6349bd 100644
--- a/arch/arm/mach-s3c64xx/Makefile.boot
+++ b/arch/arm/mach-s3c64xx/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x50008000
 params_phys-y	:= 0x50000100
diff --git a/arch/arm/mach-s5p6440/Makefile.boot b/arch/arm/mach-s5p6440/Makefile.boot
index ff90aa1..9a79532 100644
--- a/arch/arm/mach-s5p6440/Makefile.boot
+++ b/arch/arm/mach-s5p6440/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x20008000
 params_phys-y	:= 0x20000100
diff --git a/arch/arm/mach-s5p6442/Makefile.boot b/arch/arm/mach-s5p6442/Makefile.boot
index ff90aa1..9a79532 100644
--- a/arch/arm/mach-s5p6442/Makefile.boot
+++ b/arch/arm/mach-s5p6442/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x20008000
 params_phys-y	:= 0x20000100
diff --git a/arch/arm/mach-s5pc100/Makefile.boot b/arch/arm/mach-s5pc100/Makefile.boot
index ff90aa1..9a79532 100644
--- a/arch/arm/mach-s5pc100/Makefile.boot
+++ b/arch/arm/mach-s5pc100/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x20008000
 params_phys-y	:= 0x20000100
diff --git a/arch/arm/mach-s5pv210/Makefile.boot b/arch/arm/mach-s5pv210/Makefile.boot
index ff90aa1..9a79532 100644
--- a/arch/arm/mach-s5pv210/Makefile.boot
+++ b/arch/arm/mach-s5pv210/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x20008000
 params_phys-y	:= 0x20000100
diff --git a/arch/arm/mach-s5pv310/Makefile.boot b/arch/arm/mach-s5pv310/Makefile.boot
index d65956f..85644bc 100644
--- a/arch/arm/mach-s5pv310/Makefile.boot
+++ b/arch/arm/mach-s5pv310/Makefile.boot
@@ -1,2 +1 @@
-   zreladdr-y	:= 0x40008000
 params_phys-y	:= 0x40000100
diff --git a/arch/arm/mach-sa1100/Makefile.boot b/arch/arm/mach-sa1100/Makefile.boot
index a56ad04..2690ce5 100644
--- a/arch/arm/mach-sa1100/Makefile.boot
+++ b/arch/arm/mach-sa1100/Makefile.boot
@@ -1,7 +1,2 @@
-   zreladdr-y	:= 0xc0008000
-ifeq ($(CONFIG_ARCH_SA1100),y)
-   zreladdr-$(CONFIG_SA1111)		:= 0xc0208000
-endif
 params_phys-y	:= 0xc0000100
 initrd_phys-y	:= 0xc0800000
-
diff --git a/arch/arm/mach-shark/Makefile.boot b/arch/arm/mach-shark/Makefile.boot
deleted file mode 100644
index 4320f8b..0000000
--- a/arch/arm/mach-shark/Makefile.boot
+++ /dev/null
@@ -1,2 +0,0 @@
-   zreladdr-y	:= 0x08008000
-
diff --git a/arch/arm/mach-spear3xx/Makefile.boot b/arch/arm/mach-spear3xx/Makefile.boot
index 7a1f3c0..80f4945 100644
--- a/arch/arm/mach-spear3xx/Makefile.boot
+++ b/arch/arm/mach-spear3xx/Makefile.boot
@@ -1,3 +1,2 @@
-zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-spear6xx/Makefile.boot b/arch/arm/mach-spear6xx/Makefile.boot
index 7a1f3c0..80f4945 100644
--- a/arch/arm/mach-spear6xx/Makefile.boot
+++ b/arch/arm/mach-spear6xx/Makefile.boot
@@ -1,3 +1,2 @@
-zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
diff --git a/arch/arm/mach-stmp378x/Makefile.boot b/arch/arm/mach-stmp378x/Makefile.boot
index 1568ad4..71e6728 100644
--- a/arch/arm/mach-stmp378x/Makefile.boot
+++ b/arch/arm/mach-stmp378x/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x40008000
 params_phys-y	:= 0x40000100
 initrd_phys-y	:= 0x40800000
diff --git a/arch/arm/mach-stmp37xx/Makefile.boot b/arch/arm/mach-stmp37xx/Makefile.boot
index 1568ad4..71e6728 100644
--- a/arch/arm/mach-stmp37xx/Makefile.boot
+++ b/arch/arm/mach-stmp37xx/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x40008000
 params_phys-y	:= 0x40000100
 initrd_phys-y	:= 0x40800000
diff --git a/arch/arm/mach-u300/Makefile.boot b/arch/arm/mach-u300/Makefile.boot
index 6fbfc6e..9f7ca02 100644
--- a/arch/arm/mach-u300/Makefile.boot
+++ b/arch/arm/mach-u300/Makefile.boot
@@ -4,10 +4,8 @@
 #   INITRD_PHYS must be in RAM
 
 ifdef CONFIG_MACH_U300_SINGLE_RAM
-     zreladdr-y	:= 0x28E08000
   params_phys-y	:= 0x28E00100
 else
-     zreladdr-y	:= 0x48008000
   params_phys-y	:= 0x48000100
 endif
 
diff --git a/arch/arm/mach-ux500/Makefile.boot b/arch/arm/mach-ux500/Makefile.boot
index c7e75ac..ee22553 100644
--- a/arch/arm/mach-ux500/Makefile.boot
+++ b/arch/arm/mach-ux500/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-versatile/Makefile.boot b/arch/arm/mach-versatile/Makefile.boot
index c7e75ac..ee22553 100644
--- a/arch/arm/mach-versatile/Makefile.boot
+++ b/arch/arm/mach-versatile/Makefile.boot
@@ -1,4 +1,3 @@
-   zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 initrd_phys-y	:= 0x00800000
 
diff --git a/arch/arm/mach-vexpress/Makefile.boot b/arch/arm/mach-vexpress/Makefile.boot
index 07c2d9c..9acbba0 100644
--- a/arch/arm/mach-vexpress/Makefile.boot
+++ b/arch/arm/mach-vexpress/Makefile.boot
@@ -1,3 +1,2 @@
-   zreladdr-y	:= 0x60008000
 params_phys-y	:= 0x60000100
 initrd_phys-y	:= 0x60800000
diff --git a/arch/arm/mach-w90x900/Makefile.boot b/arch/arm/mach-w90x900/Makefile.boot
index a057b54..1bca921 100644
--- a/arch/arm/mach-w90x900/Makefile.boot
+++ b/arch/arm/mach-w90x900/Makefile.boot
@@ -1,3 +1,2 @@
-zreladdr-y	:= 0x00008000
 params_phys-y	:= 0x00000100
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* Re: [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to
  2010-09-03 13:39               ` [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr Eric Miao
@ 2010-09-03 18:53                 ` Uwe Kleine-König
  -1 siblings, 0 replies; 138+ messages in thread
From:  @ 2010-09-03 18:53 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Eric,

On Fri, Sep 03, 2010 at 09:39:45PM +0800, Eric Miao wrote:
> 2010/9/3 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
> > The calculated value in Makefile.boot isn't used anymore since
> >
> >        e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
> >
> > and physoffset can better be set in mach/memory.h depending on the
> > actual machine type.
> >
> > Cc: Paul Mundt <lethal@linux-sh.org>
> > Cc: Magnus Damm <magnus.damm@gmail.com>
> > Cc: linux-sh@vger.kernel.org
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > ---
> >  arch/arm/mach-shmobile/Kconfig               |   11 -----------
> >  arch/arm/mach-shmobile/Makefile.boot         |    9 ---------
> >  arch/arm/mach-shmobile/include/mach/memory.h |   15 ++++++++++++++-
> >  3 files changed, 14 insertions(+), 21 deletions(-)
> >  delete mode 100644 arch/arm/mach-shmobile/Makefile.boot
> >
> > diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
> > index 54b479c..45e134e 100644
> > --- a/arch/arm/mach-shmobile/Kconfig
> > +++ b/arch/arm/mach-shmobile/Kconfig
> > @@ -61,17 +61,6 @@ comment "SH-Mobile System Configuration"
> >
> >  menu "Memory configuration"
> >
> > -config MEMORY_START
> > -       hex "Physical memory start address"
> > -       default "0x50000000" if MACH_G3EVM
> > -       default "0x40000000" if MACH_G4EVM
> > -       default "0x40000000" if MACH_AP4EVB
> > -       default "0x00000000"
> > -       ---help---
> > -         Tweak this only when porting to a new machine which does not
> > -         already have a defconfig. Changing it from the known correct
> > -         value on any of the known systems will only lead to disaster.
> > -
> >  config MEMORY_SIZE
> >        hex "Physical memory size"
> >        default "0x08000000" if MACH_G3EVM
> > diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot
> > deleted file mode 100644
> > index 1c08ee9..0000000
> > --- a/arch/arm/mach-shmobile/Makefile.boot
> > +++ /dev/null
> > @@ -1,9 +0,0 @@
> > -__ZRELADDR     := $(shell /bin/bash -c 'printf "0x%08x" \
> > -                    $$[$(CONFIG_MEMORY_START) + 0x8000]')
> > -
> > -   zreladdr-y   := $(__ZRELADDR)
> > -
> > -# Unsupported legacy stuff
> > -#
> > -#params_phys-y (Instead: Pass atags pointer in r2)
> > -#initrd_phys-y (Instead: Use compiled-in initramfs)
> > diff --git a/arch/arm/mach-shmobile/include/mach/memory.h b/arch/arm/mach-shmobile/include/mach/memory.h
> > index 377584e..100f734 100644
> > --- a/arch/arm/mach-shmobile/include/mach/memory.h
> > +++ b/arch/arm/mach-shmobile/include/mach/memory.h
> > @@ -1,7 +1,20 @@
> >  #ifndef __ASM_MACH_MEMORY_H
> >  #define __ASM_MACH_MEMORY_H
> >
> > -#define PHYS_OFFSET    UL(CONFIG_MEMORY_START)
> > +#define SH7367_PHYS_OFFSET UL(0x50000000)
> > +#define SH7372_PHYS_OFFSET UL(0x40000000)
> > +#define SH7377_PHYS_OFFSET UL(0x40000000)
> > +
> > +#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
> > +# if defined(CONFIG_ARCH_SH7367)
> > +#  define PHYS_OFFSET  SH7367_PHYS_OFFSET
> > +# elif defined(CONFIG_ARCH_SH7372)
> > +#  define PHYS_OFFSET  SH7372_PHYS_OFFSET
> > +# elif defined(CONFIG_ARCH_SH7377)
> > +#  define PHYS_OFFSET  SH7377_PHYS_OFFSET
> > +# endif
> > +#endif /* if !defined(CONFIG_RUNTIME_PHYS_OFFSET) */
> > +
> 
> Looks like the CONFIG_MEMORY_START was a configurable option, tho
> not sure if it can be configured to other values, but making it fixed here
> doesn't seem to be a consistent change. (meaning there is assumption
> here).
That is why I put RFC in the subject :-)  Anyhow, ZRELADDR is hard coded
since e69edc79 (without ZRELADDR_AUTO).  And the help text suggested to
only tweak it "when porting to a new machine which does not already have
a defconfig".  As a person making a new port should be able to add a new
default for ZRELADDR to arch/arm/Kconfig I think it's OK to remove the
possibility to create a broken kernel for the people that don't work on
a new port.
 
Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr
@ 2010-09-03 18:53                 ` Uwe Kleine-König
  0 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03 18:53 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Eric,

On Fri, Sep 03, 2010 at 09:39:45PM +0800, Eric Miao wrote:
> 2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> > The calculated value in Makefile.boot isn't used anymore since
> >
> > ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
> >
> > and physoffset can better be set in mach/memory.h depending on the
> > actual machine type.
> >
> > Cc: Paul Mundt <lethal@linux-sh.org>
> > Cc: Magnus Damm <magnus.damm@gmail.com>
> > Cc: linux-sh at vger.kernel.org
> > Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> > ---
> > ?arch/arm/mach-shmobile/Kconfig ? ? ? ? ? ? ? | ? 11 -----------
> > ?arch/arm/mach-shmobile/Makefile.boot ? ? ? ? | ? ?9 ---------
> > ?arch/arm/mach-shmobile/include/mach/memory.h | ? 15 ++++++++++++++-
> > ?3 files changed, 14 insertions(+), 21 deletions(-)
> > ?delete mode 100644 arch/arm/mach-shmobile/Makefile.boot
> >
> > diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
> > index 54b479c..45e134e 100644
> > --- a/arch/arm/mach-shmobile/Kconfig
> > +++ b/arch/arm/mach-shmobile/Kconfig
> > @@ -61,17 +61,6 @@ comment "SH-Mobile System Configuration"
> >
> > ?menu "Memory configuration"
> >
> > -config MEMORY_START
> > - ? ? ? hex "Physical memory start address"
> > - ? ? ? default "0x50000000" if MACH_G3EVM
> > - ? ? ? default "0x40000000" if MACH_G4EVM
> > - ? ? ? default "0x40000000" if MACH_AP4EVB
> > - ? ? ? default "0x00000000"
> > - ? ? ? ---help---
> > - ? ? ? ? Tweak this only when porting to a new machine which does not
> > - ? ? ? ? already have a defconfig. Changing it from the known correct
> > - ? ? ? ? value on any of the known systems will only lead to disaster.
> > -
> > ?config MEMORY_SIZE
> > ? ? ? ?hex "Physical memory size"
> > ? ? ? ?default "0x08000000" if MACH_G3EVM
> > diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot
> > deleted file mode 100644
> > index 1c08ee9..0000000
> > --- a/arch/arm/mach-shmobile/Makefile.boot
> > +++ /dev/null
> > @@ -1,9 +0,0 @@
> > -__ZRELADDR ? ? := $(shell /bin/bash -c 'printf "0x%08x" \
> > - ? ? ? ? ? ? ? ? ? ?$$[$(CONFIG_MEMORY_START) + 0x8000]')
> > -
> > - ? zreladdr-y ? := $(__ZRELADDR)
> > -
> > -# Unsupported legacy stuff
> > -#
> > -#params_phys-y (Instead: Pass atags pointer in r2)
> > -#initrd_phys-y (Instead: Use compiled-in initramfs)
> > diff --git a/arch/arm/mach-shmobile/include/mach/memory.h b/arch/arm/mach-shmobile/include/mach/memory.h
> > index 377584e..100f734 100644
> > --- a/arch/arm/mach-shmobile/include/mach/memory.h
> > +++ b/arch/arm/mach-shmobile/include/mach/memory.h
> > @@ -1,7 +1,20 @@
> > ?#ifndef __ASM_MACH_MEMORY_H
> > ?#define __ASM_MACH_MEMORY_H
> >
> > -#define PHYS_OFFSET ? ?UL(CONFIG_MEMORY_START)
> > +#define SH7367_PHYS_OFFSET UL(0x50000000)
> > +#define SH7372_PHYS_OFFSET UL(0x40000000)
> > +#define SH7377_PHYS_OFFSET UL(0x40000000)
> > +
> > +#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
> > +# if defined(CONFIG_ARCH_SH7367)
> > +# ?define PHYS_OFFSET ?SH7367_PHYS_OFFSET
> > +# elif defined(CONFIG_ARCH_SH7372)
> > +# ?define PHYS_OFFSET ?SH7372_PHYS_OFFSET
> > +# elif defined(CONFIG_ARCH_SH7377)
> > +# ?define PHYS_OFFSET ?SH7377_PHYS_OFFSET
> > +# endif
> > +#endif /* if !defined(CONFIG_RUNTIME_PHYS_OFFSET) */
> > +
> 
> Looks like the CONFIG_MEMORY_START was a configurable option, tho
> not sure if it can be configured to other values, but making it fixed here
> doesn't seem to be a consistent change. (meaning there is assumption
> here).
That is why I put RFC in the subject :-)  Anyhow, ZRELADDR is hard coded
since e69edc79 (without ZRELADDR_AUTO).  And the help text suggested to
only tweak it "when porting to a new machine which does not already have
a defconfig".  As a person making a new port should be able to add a new
default for ZRELADDR to arch/arm/Kconfig I think it's OK to remove the
possibility to create a broken kernel for the people that don't work on
a new port.
 
Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 5/7] ARM: don't expose CONFIG_ZRELADDR to the users
  2010-09-03 13:30             ` Eric Miao
@ 2010-09-03 18:53               ` Uwe Kleine-König
  2010-09-04  8:52                 ` Eric Miao
  0 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03 18:53 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Sep 03, 2010 at 09:30:50PM +0800, Eric Miao wrote:
> 2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> >
> > This value is essential for booting a zImage and only depends on the
> > memory layout of the machine to boot. ?This value was specified in
> > Makefile.boot before
> >
> > ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
> >
> > and so wasn't available to change via .config.
> >
> > The only exception is bcmring that had a extra config for specifing the
> > address used, which is removed in this commit, too, as it isn't used
> > anymore since e69edc79. ?This is the only machine that still gets a
> > possibility to change CONFIG_ZRELADDR.
> 
> This looks correct to me.
That's an Ack?

Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-03 17:46             ` Erik Gilling
@ 2010-09-03 19:01               ` Uwe Kleine-König
  2010-09-03 19:19                 ` Erik Gilling
  0 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03 19:01 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Erik,

On Fri, Sep 03, 2010 at 10:46:43AM -0700, Erik Gilling wrote:
> Yeah I saw that and posted a patch on the 27th and sent a pull request
> to Linus on Wednesday.  Hopefully it will make rc4.
OK for me, I'll keep it in my queue and will drop it when Linus got
the change.  You didn't remove the line from
arch/arm/mach-tegra/Makefile.boot, though.

(hmm, I thought that patches that touch common files like
arch/arm/Kconfig should go via rmk?!)  (BTW, I think lines like
Change-Id: Ic28177a645e2d5bc53099c15dcd5b1ae7f3d5208 in the commit log
are OK in general if they help you in any way.  Maybe just prefix it
something unique, 'Android-Change-Id:'?)

Best regards
Uwe
 
> On Fri, Sep 3, 2010 at 2:56 AM, Uwe Kleine-K?nig
> <u.kleine-koenig@pengutronix.de> wrote:
> > This was missed in commit
> >
> > ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
> >
> > Cc: linux-tegra at vger.kernel.org
> > Cc: Colin Cross <ccross@android.com>
> > Cc: Erik Gilling <konkers@android.com>
> > Cc: Olof Johansson <olof@lixom.net>
> > Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> > ---
> > ?arch/arm/Kconfig ? ? ? ? ? ? ? ? ?| ? ?1 +
> > ?arch/arm/mach-tegra/Makefile.boot | ? ?1 -
> > ?2 files changed, 1 insertions(+), 1 deletions(-)

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-03 19:01               ` Uwe Kleine-König
@ 2010-09-03 19:19                 ` Erik Gilling
  2010-09-03 19:23                   ` Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Erik Gilling @ 2010-09-03 19:19 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Sep 3, 2010 at 12:01 PM, Uwe Kleine-K?nig
<u.kleine-koenig@pengutronix.de> wrote:
> On Fri, Sep 03, 2010 at 10:46:43AM -0700, Erik Gilling wrote:
>> Yeah I saw that and posted a patch on the 27th and sent a pull request
>> to Linus on Wednesday. ?Hopefully it will make rc4.
> OK for me, I'll keep it in my queue and will drop it when Linus got
> the change. ?You didn't remove the line from
> arch/arm/mach-tegra/Makefile.boot, though.

I'll do that too.

> (hmm, I thought that patches that touch common files like
> arch/arm/Kconfig should go via rmk?!)

I looked and saw that others (specifically samsung) had submitted this
fix directly to Linus.  I'm still learning the ropes here and am happy
to hear some clarification either way.

> (BTW, I think lines like
> Change-Id: Ic28177a645e2d5bc53099c15dcd5b1ae7f3d5208 in the commit log
> are OK in general if they help you in any way. ?Maybe just prefix it
> something unique, 'Android-Change-Id:'?)

These are used by our code review system
(https://review.source.android.com) so changing the name is just as
easy as taking it out.  Plus the patches that end up getting posted
are rarely the same ones that are on top of our own tree.

-Erik

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-03 19:19                 ` Erik Gilling
@ 2010-09-03 19:23                   ` Uwe Kleine-König
  2010-09-08  9:11                     ` Russell King - ARM Linux
  0 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03 19:23 UTC (permalink / raw)
  To: linux-arm-kernel

Hello,

On Fri, Sep 03, 2010 at 12:19:26PM -0700, Erik Gilling wrote:
> On Fri, Sep 3, 2010 at 12:01 PM, Uwe Kleine-K?nig
> <u.kleine-koenig@pengutronix.de> wrote:
> > On Fri, Sep 03, 2010 at 10:46:43AM -0700, Erik Gilling wrote:
> >> Yeah I saw that and posted a patch on the 27th and sent a pull request
> >> to Linus on Wednesday. ?Hopefully it will make rc4.
> > OK for me, I'll keep it in my queue and will drop it when Linus got
> > the change. ?You didn't remove the line from
> > arch/arm/mach-tegra/Makefile.boot, though.
> 
> I'll do that too.
Note that Linus don't like to pull branches that don't match the pull
request.  (This makes him feel pulling uncooked changes.)
If you do, you can add my Ack.

> > (hmm, I thought that patches that touch common files like
> > arch/arm/Kconfig should go via rmk?!)
> 
> I looked and saw that others (specifically samsung) had submitted this
> fix directly to Linus.  I'm still learning the ropes here and am happy
> to hear some clarification either way.
Note that just me wondering if it's right doesn't necessarily means it's
not.  Russell, can you comment?  Is it trivial enough and obviously only
tegra related that it's OK?
 
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-09-03  9:55         ` Uwe Kleine-König
                             ` (6 preceding siblings ...)
  2010-09-03  9:56           ` [PATCH 7/7] ARM: removed unused zreladdr specifications in all Makefile.boot files Uwe Kleine-König
@ 2010-09-03 20:46           ` Uwe Kleine-König
  2010-09-05 18:52           ` Uwe Kleine-König
  2010-09-08  9:11           ` Russell King - ARM Linux
  9 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-03 20:46 UTC (permalink / raw)
  To: linux-arm-kernel

Hello,

[Added Ben to Cc:]
> On Fri, Sep 03, 2010 at 09:48:06AM +0200, Uwe Kleine-K?nig wrote:
> > On Thu, Sep 02, 2010 at 10:27:23PM +0100, Russell King - ARM Linux wrote:
> > > 
> > > And while we're here, why hasn't anyone removed the zreladdr
> > > definitions in Makefile.boot yet?  Or do we still need them and
> > > we now have the same information defined in two different places?
> > > 
> > > This all looks like a half-done job at the moment.  Please clean it up.
> > The original series removed all the 'Makefile.boot's IIRC.  Currently
> > the params_phys-y value is needed though.  So should I send a patch that
> > just removes the zreladdr values?
> I looked into that and found some more issues.  I hope I catched them
> all now.  While doing that removing the zreladdr lines was nearly for
> free.  So I did that, too.
I just found another (probably harmless) issue:  arch/arm/Kconfig has:

	...
        default 0x30008000 if ARCH_S3C2410 ||\
                ARCH_S3C2400 ||\
                ARCH_S3C2412 ||\
                ARCH_S3C2416 ||\
                ARCH_S3C2440 ||\
                ARCH_S3C2443
	...

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 5/7] ARM: don't expose CONFIG_ZRELADDR to the users
  2010-09-03 18:53               ` Uwe Kleine-König
@ 2010-09-04  8:52                 ` Eric Miao
  2010-09-07 22:39                   ` Mathieu Rondonneau
  0 siblings, 1 reply; 138+ messages in thread
From: Eric Miao @ 2010-09-04  8:52 UTC (permalink / raw)
  To: linux-arm-kernel

2010/9/4 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> On Fri, Sep 03, 2010 at 09:30:50PM +0800, Eric Miao wrote:
>> 2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
>> >
>> > This value is essential for booting a zImage and only depends on the
>> > memory layout of the machine to boot. ?This value was specified in
>> > Makefile.boot before
>> >
>> > ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
>> >
>> > and so wasn't available to change via .config.
>> >
>> > The only exception is bcmring that had a extra config for specifing the
>> > address used, which is removed in this commit, too, as it isn't used
>> > anymore since e69edc79. ?This is the only machine that still gets a
>> > possibility to change CONFIG_ZRELADDR.
>>
>> This looks correct to me.
> That's an Ack?
>

Ack.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-09-03  9:55         ` Uwe Kleine-König
                             ` (7 preceding siblings ...)
  2010-09-03 20:46           ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Uwe Kleine-König
@ 2010-09-05 18:52           ` Uwe Kleine-König
  2010-09-08  9:14             ` Russell King - ARM Linux
  2010-09-08  9:11           ` Russell King - ARM Linux
  9 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-05 18:52 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Russell,

On Fri, Sep 03, 2010 at 11:55:04AM +0200, Uwe Kleine-K?nig wrote:
> On Fri, Sep 03, 2010 at 09:48:06AM +0200, Uwe Kleine-K?nig wrote:
> > On Thu, Sep 02, 2010 at 10:27:23PM +0100, Russell King - ARM Linux wrote:
> > > 
> > > And while we're here, why hasn't anyone removed the zreladdr
> > > definitions in Makefile.boot yet?  Or do we still need them and
> > > we now have the same information defined in two different places?
> > > 
> > > This all looks like a half-done job at the moment.  Please clean it up.
> > The original series removed all the 'Makefile.boot's IIRC.  Currently
> > the params_phys-y value is needed though.  So should I send a patch that
> > just removes the zreladdr values?
> I looked into that and found some more issues.  I hope I catched them
> all now.  While doing that removing the zreladdr lines was nearly for
> free.  So I did that, too.
I just noticed that you already started working here on your master
branch.  (Commit cbb288bf874f86 hides ZRELADDR.)

In a different thread you said you might revert the commit introducing
ZRELADDR.  In case you are not satisfied by Eric's and my work on this
series let my point out that I sent the a patch identically to
cbb288bf874f86 in reply to the mail you link to in cbb288bf874f86's
commit message already a month ago.

Are you OK with my series?  If yes, can you please say so, then I will
rebase on top of your current master branch.

Thanks
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 5/7] ARM: don't expose CONFIG_ZRELADDR to the users
  2010-09-04  8:52                 ` Eric Miao
@ 2010-09-07 22:39                   ` Mathieu Rondonneau
  2010-09-08  5:04                     ` Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Mathieu Rondonneau @ 2010-09-07 22:39 UTC (permalink / raw)
  To: linux-arm-kernel

> 2010/9/4 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
>> On Fri, Sep 03, 2010 at 09:30:50PM +0800, Eric Miao wrote:
>>> 2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
>>> >
>>> > This value is essential for booting a zImage and only depends on the
>>> > memory layout of the machine to boot. ?This value was specified in
>>> > Makefile.boot before
>>> >
>>> > ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
>>> >
>>> > and so wasn't available to change via .config.
>>> >
>>> > The only exception is bcmring that had a extra config for specifing the
>>> > address used, which is removed in this commit, too, as it isn't used
>>> > anymore since e69edc79. ?This is the only machine that still gets a
>>> > possibility to change CONFIG_ZRELADDR.
>>>
>>> This looks correct to me.
>> That's an Ack?
>>
>
> Ack.
>

I think it should be:

--- a/arch/arm/mach-bcmring/Makefile.boot
+++ b/arch/arm/mach-bcmring/Makefile.boot
@@ -1,6 +1,5 @@
 # Address where decompressor will be written and eventually executed.
 #
 # default to SDRAM
-zreladdr-y      := $(CONFIG_BCM_ZRELADDR)
+zreladdr-y      := $(CONFIG_ZRELADDR)
 params_phys-y   := 0x00000800


instead of


--- a/arch/arm/mach-bcmring/Makefile.boot
+++ b/arch/arm/mach-bcmring/Makefile.boot
@@ -1,6 +1,5 @@
 # Address where decompressor will be written and eventually executed.
 #
 # default to SDRAM
-zreladdr-y      := $(CONFIG_BCM_ZRELADDR)
 params_phys-y   := 0x00000800


-Mathieu

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 5/7] ARM: don't expose CONFIG_ZRELADDR to the users
  2010-09-07 22:39                   ` Mathieu Rondonneau
@ 2010-09-08  5:04                     ` Uwe Kleine-König
  0 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-08  5:04 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Mathieu,

On Tue, Sep 07, 2010 at 03:39:20PM -0700, Mathieu Rondonneau wrote:
> > 2010/9/4 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> >> On Fri, Sep 03, 2010 at 09:30:50PM +0800, Eric Miao wrote:
> >>> 2010/9/3 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> >>> >
> >>> > This value is essential for booting a zImage and only depends on the
> >>> > memory layout of the machine to boot. ?This value was specified in
> >>> > Makefile.boot before
> >>> >
> >>> > ? ? ? ?e69edc79 (ARM: Auto calculate ZRELADDR and provide option for exceptions)
> >>> >
> >>> > and so wasn't available to change via .config.
> >>> >
> >>> > The only exception is bcmring that had a extra config for specifing the
> >>> > address used, which is removed in this commit, too, as it isn't used
> >>> > anymore since e69edc79. ?This is the only machine that still gets a
> >>> > possibility to change CONFIG_ZRELADDR.
> >>>
> >>> This looks correct to me.
> >> That's an Ack?
> >>
> >
> > Ack.
> >
> 
> I think it should be:
> 
> --- a/arch/arm/mach-bcmring/Makefile.boot
> +++ b/arch/arm/mach-bcmring/Makefile.boot
> @@ -1,6 +1,5 @@
>  # Address where decompressor will be written and eventually executed.
>  #
>  # default to SDRAM
> -zreladdr-y      := $(CONFIG_BCM_ZRELADDR)
> +zreladdr-y      := $(CONFIG_ZRELADDR)
>  params_phys-y   := 0x00000800
> 
No, the variable zreladdr-y isn't used anymore, see path 7/7.

> 
> instead of
> 
> 
> --- a/arch/arm/mach-bcmring/Makefile.boot
> +++ b/arch/arm/mach-bcmring/Makefile.boot
> @@ -1,6 +1,5 @@
>  # Address where decompressor will be written and eventually executed.
>  #
>  # default to SDRAM
> -zreladdr-y      := $(CONFIG_BCM_ZRELADDR)
>  params_phys-y   := 0x00000800
> 
> 
> -Mathieu
There is no "Mathieu" in arch/arm/mach-bcmring/Makefile.boot to remove
:-)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-03 19:23                   ` Uwe Kleine-König
@ 2010-09-08  9:11                     ` Russell King - ARM Linux
  2010-09-08 11:56                       ` Russell King - ARM Linux
  0 siblings, 1 reply; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-09-08  9:11 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Sep 03, 2010 at 09:23:29PM +0200, Uwe Kleine-K?nig wrote:
> Hello,
> 
> On Fri, Sep 03, 2010 at 12:19:26PM -0700, Erik Gilling wrote:
> > On Fri, Sep 3, 2010 at 12:01 PM, Uwe Kleine-K?nig
> > > (hmm, I thought that patches that touch common files like
> > > arch/arm/Kconfig should go via rmk?!)
> > 
> > I looked and saw that others (specifically samsung) had submitted this
> > fix directly to Linus.  I'm still learning the ropes here and am happy
> > to hear some clarification either way.
>
> Note that just me wondering if it's right doesn't necessarily means it's
> not.  Russell, can you comment?  Is it trivial enough and obviously only
> tegra related that it's OK?

The problem happens when there's related changes already in others git
trees which clash or conflict with those changes.

This whole CONFIG_ZRELADDR thing seems like a step backwards towards a
situation where we will get conflicts with multiple changes - but without
gaining anything substantial in moving away from Makefile.boot.

Unless someone can come up with a real justification for CONFIG_ZRELADDR
I'm mindful to revert it.  (But - if people have sent these changes to
Linus already, that's going to make reverting it a lot harder.)

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-09-03  9:55         ` Uwe Kleine-König
                             ` (8 preceding siblings ...)
  2010-09-05 18:52           ` Uwe Kleine-König
@ 2010-09-08  9:11           ` Russell King - ARM Linux
  2010-09-08 20:31             ` Robert Schwebel
  9 siblings, 1 reply; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-09-08  9:11 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Sep 03, 2010 at 11:55:04AM +0200, Uwe Kleine-K?nig wrote:
> Hello Russell,
> 
> On Fri, Sep 03, 2010 at 09:48:06AM +0200, Uwe Kleine-K?nig wrote:
> > On Thu, Sep 02, 2010 at 10:27:23PM +0100, Russell King - ARM Linux wrote:
> > > 
> > > And while we're here, why hasn't anyone removed the zreladdr
> > > definitions in Makefile.boot yet?  Or do we still need them and
> > > we now have the same information defined in two different places?
> > > 
> > > This all looks like a half-done job at the moment.  Please clean it up.
> > The original series removed all the 'Makefile.boot's IIRC.  Currently
> > the params_phys-y value is needed though.  So should I send a patch that
> > just removes the zreladdr values?
> I looked into that and found some more issues.  I hope I catched them
> all now.  While doing that removing the zreladdr lines was nearly for
> free.  So I did that, too.
> 
> I couldn't determine who to cc: for the ARCH_H720X patch.  Russell, do
> you maintain this platform?

Nope.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-09-05 18:52           ` Uwe Kleine-König
@ 2010-09-08  9:14             ` Russell King - ARM Linux
  0 siblings, 0 replies; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-09-08  9:14 UTC (permalink / raw)
  To: linux-arm-kernel

On Sun, Sep 05, 2010 at 08:52:54PM +0200, Uwe Kleine-K?nig wrote:
> Hello Russell,
> 
> On Fri, Sep 03, 2010 at 11:55:04AM +0200, Uwe Kleine-K?nig wrote:
> > On Fri, Sep 03, 2010 at 09:48:06AM +0200, Uwe Kleine-K?nig wrote:
> > > On Thu, Sep 02, 2010 at 10:27:23PM +0100, Russell King - ARM Linux wrote:
> > > > 
> > > > And while we're here, why hasn't anyone removed the zreladdr
> > > > definitions in Makefile.boot yet?  Or do we still need them and
> > > > we now have the same information defined in two different places?
> > > > 
> > > > This all looks like a half-done job at the moment.  Please clean it up.
> > > The original series removed all the 'Makefile.boot's IIRC.  Currently
> > > the params_phys-y value is needed though.  So should I send a patch that
> > > just removes the zreladdr values?
> > I looked into that and found some more issues.  I hope I catched them
> > all now.  While doing that removing the zreladdr lines was nearly for
> > free.  So I did that, too.
> I just noticed that you already started working here on your master
> branch.  (Commit cbb288bf874f86 hides ZRELADDR.)
> 
> In a different thread you said you might revert the commit introducing
> ZRELADDR.  In case you are not satisfied by Eric's and my work on this
> series let my point out that I sent the a patch identically to
> cbb288bf874f86 in reply to the mail you link to in cbb288bf874f86's
> commit message already a month ago.
> 
> Are you OK with my series?  If yes, can you please say so, then I will
> rebase on top of your current master branch.

See one of my other replies today; I think it'll just be better in the
long run to get rid of this CONFIG_ZRELADDR idea.  Our original way
of doing this was simpler, less error prone, and less conflict prone.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-08  9:11                     ` Russell King - ARM Linux
@ 2010-09-08 11:56                       ` Russell King - ARM Linux
  2010-09-08 12:16                         ` Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-09-08 11:56 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 08, 2010 at 10:11:13AM +0100, Russell King - ARM Linux wrote:
> On Fri, Sep 03, 2010 at 09:23:29PM +0200, Uwe Kleine-K?nig wrote:
> > Hello,
> > 
> > On Fri, Sep 03, 2010 at 12:19:26PM -0700, Erik Gilling wrote:
> > > On Fri, Sep 3, 2010 at 12:01 PM, Uwe Kleine-K?nig
> > > > (hmm, I thought that patches that touch common files like
> > > > arch/arm/Kconfig should go via rmk?!)
> > > 
> > > I looked and saw that others (specifically samsung) had submitted this
> > > fix directly to Linus.  I'm still learning the ropes here and am happy
> > > to hear some clarification either way.
> >
> > Note that just me wondering if it's right doesn't necessarily means it's
> > not.  Russell, can you comment?  Is it trivial enough and obviously only
> > tegra related that it's OK?
> 
> The problem happens when there's related changes already in others git
> trees which clash or conflict with those changes.
> 
> This whole CONFIG_ZRELADDR thing seems like a step backwards towards a
> situation where we will get conflicts with multiple changes - but without
> gaining anything substantial in moving away from Makefile.boot.
> 
> Unless someone can come up with a real justification for CONFIG_ZRELADDR
> I'm mindful to revert it.  (But - if people have sent these changes to
> Linus already, that's going to make reverting it a lot harder.)

This is what I'm considering committing to sort out this ZRELADDR mess -
it gives people who want AUTO_ZRELADDR their pie, while allowing us to
keep the proven reliability of original method of handling ZRELADDR.

 arch/arm/Kconfig                  |   90 -------------------------------------
 arch/arm/boot/Makefile            |    8 ++-
 arch/arm/boot/compressed/Makefile |    4 ++
 arch/arm/boot/compressed/head.S   |    2 +-
 4 files changed, 10 insertions(+), 94 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a7ed21f..553b7cf 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1576,96 +1576,6 @@ config AUTO_ZRELADDR
 	  0xf8000000. This assumes the zImage being placed in the first 128MB
 	  from start of memory.
 
-config ZRELADDR
-	hex "Physical address of the decompressed kernel image"
-	depends on !AUTO_ZRELADDR
-	default 0x00008000 if ARCH_BCMRING ||\
-		ARCH_CNS3XXX ||\
-		ARCH_DOVE ||\
-		ARCH_EBSA110 ||\
-		ARCH_FOOTBRIDGE ||\
-		ARCH_INTEGRATOR ||\
-		ARCH_IOP13XX ||\
-		ARCH_IOP33X ||\
-		ARCH_IXP2000 ||\
-		ARCH_IXP23XX ||\
-		ARCH_IXP4XX ||\
-		ARCH_KIRKWOOD ||\
-		ARCH_KS8695 ||\
-		ARCH_LOKI ||\
-		ARCH_MMP ||\
-		ARCH_MV78XX0 ||\
-		ARCH_NOMADIK ||\
-		ARCH_NUC93X ||\
-		ARCH_NS9XXX ||\
-		ARCH_ORION5X ||\
-		ARCH_SPEAR3XX ||\
-		ARCH_SPEAR6XX ||\
-		ARCH_U8500 ||\
-		ARCH_VERSATILE ||\
-		ARCH_W90X900
-	default 0x08008000 if ARCH_MX1 ||\
-		ARCH_SHARK
-	default 0x10008000 if ARCH_MSM ||\
-		ARCH_OMAP1 ||\
-		ARCH_RPC
-	default 0x20008000 if ARCH_S5P6440 ||\
-		ARCH_S5P6442 ||\
-		ARCH_S5PC100 ||\
-		ARCH_S5PV210
-	default 0x30008000 if ARCH_S3C2410 ||\
-		ARCH_S3C2400 ||\
-		ARCH_S3C2412 ||\
-		ARCH_S3C2416 ||\
-		ARCH_S3C2440 ||\
-		ARCH_S3C2443
-	default 0x40008000 if ARCH_STMP378X ||\
-		ARCH_STMP37XX ||\
-		ARCH_SH7372 ||\
-		ARCH_SH7377 ||\
-		ARCH_S5PV310
-	default 0x50008000 if ARCH_S3C64XX ||\
-		ARCH_SH7367
-	default 0x60008000 if ARCH_VEXPRESS
-	default 0x80008000 if ARCH_MX25 ||\
-		ARCH_MX3 ||\
-		ARCH_NETX ||\
-		ARCH_OMAP2PLUS ||\
-		ARCH_PNX4008
-	default 0x90008000 if ARCH_MX5 ||\
-		ARCH_MX91231
-	default 0xa0008000 if ARCH_IOP32X ||\
-		ARCH_PXA ||\
-		MACH_MX27
-	default 0xc0008000 if ARCH_LH7A40X ||\
-		MACH_MX21
-	default 0xf0008000 if ARCH_AAEC2000 ||\
-		ARCH_L7200
-	default 0xc0028000 if ARCH_CLPS711X
-	default 0x70008000 if ARCH_AT91 && (ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
-	default 0x20008000 if ARCH_AT91 && !(ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
-	default 0xc0008000 if ARCH_DAVINCI && ARCH_DAVINCI_DA8XX
-	default 0x80008000 if ARCH_DAVINCI && !ARCH_DAVINCI_DA8XX
-	default 0x00008000 if ARCH_EP93XX && EP93XX_SDCE3_SYNC_PHYS_OFFSET
-	default 0xc0008000 if ARCH_EP93XX && EP93XX_SDCE0_PHYS_OFFSET
-	default 0xd0008000 if ARCH_EP93XX && EP93XX_SDCE1_PHYS_OFFSET
-	default 0xe0008000 if ARCH_EP93XX && EP93XX_SDCE2_PHYS_OFFSET
-	default 0xf0008000 if ARCH_EP93XX && EP93XX_SDCE3_ASYNC_PHYS_OFFSET
-	default 0x00008000 if ARCH_GEMINI && GEMINI_MEM_SWAP
-	default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP
-	default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET
-	default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET
-	default 0xc0208000 if ARCH_SA1100 && SA1111
-	default 0xc0008000 if ARCH_SA1100 && !SA1111
-	default 0x30108000 if ARCH_S3C2410 && PM_H1940
-	default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM
-	default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM
-	help
-	  ZRELADDR is the physical address where the decompressed kernel
-	  image will be placed. ZRELADDR has to be specified when the
-	  assumption of AUTO_ZRELADDR is not valid, or when ZBOOT_ROM is
-	  selected.
-
 endmenu
 
 menu "CPU Power Management"
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index f705213..4a590f4 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -14,16 +14,18 @@
 MKIMAGE         := $(srctree)/scripts/mkuboot.sh
 
 ifneq ($(MACHINE),)
--include $(srctree)/$(MACHINE)/Makefile.boot
+include $(srctree)/$(MACHINE)/Makefile.boot
 endif
 
 # Note: the following conditions must always be true:
+#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
 #   PARAMS_PHYS must be within 4MB of ZRELADDR
 #   INITRD_PHYS must be in RAM
+ZRELADDR    := $(zreladdr-y)
 PARAMS_PHYS := $(params_phys-y)
 INITRD_PHYS := $(initrd_phys-y)
 
-export INITRD_PHYS PARAMS_PHYS
+export ZRELADDR INITRD_PHYS PARAMS_PHYS
 
 targets := Image zImage xipImage bootpImage uImage
 
@@ -65,7 +67,7 @@ quiet_cmd_uimage = UIMAGE  $@
 ifeq ($(CONFIG_ZBOOT_ROM),y)
 $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
 else
-$(obj)/uImage: LOADADDR=$(CONFIG_ZRELADDR)
+$(obj)/uImage: LOADADDR=$(ZRELADDR)
 endif
 
 ifeq ($(CONFIG_THUMB2_KERNEL),y)
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 68775e3..b23f6bc 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -79,6 +79,10 @@ endif
 EXTRA_CFLAGS  := -fpic -fno-builtin
 EXTRA_AFLAGS  := -Wa,-march=all
 
+# Supply ZRELADDR to the decompressor via a linker symbol.
+ifneq ($(CONFIG_AUTO_ZRELADDR),y)
+LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
+endif
 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
 LDFLAGS_vmlinux += --be8
 endif
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 6af9907..6825c34 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -177,7 +177,7 @@ not_angel:
 		and	r4, pc, #0xf8000000
 		add	r4, r4, #TEXT_OFFSET
 #else
-		ldr	r4, =CONFIG_ZRELADDR
+		ldr	r4, =zreladdr
 #endif
 		subs	r0, r0, r1		@ calculate the delta offset
 

^ permalink raw reply related	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-08 11:56                       ` Russell King - ARM Linux
@ 2010-09-08 12:16                         ` Uwe Kleine-König
  2010-09-08 22:07                           ` Russell King - ARM Linux
  0 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-08 12:16 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Russell,

On Wed, Sep 08, 2010 at 12:56:10PM +0100, Russell King - ARM Linux wrote:
> On Wed, Sep 08, 2010 at 10:11:13AM +0100, Russell King - ARM Linux wrote:
> > On Fri, Sep 03, 2010 at 09:23:29PM +0200, Uwe Kleine-K?nig wrote:
> > > Hello,
> > > 
> > > On Fri, Sep 03, 2010 at 12:19:26PM -0700, Erik Gilling wrote:
> > > > On Fri, Sep 3, 2010 at 12:01 PM, Uwe Kleine-K?nig
> > > > > (hmm, I thought that patches that touch common files like
> > > > > arch/arm/Kconfig should go via rmk?!)
> > > > 
> > > > I looked and saw that others (specifically samsung) had submitted this
> > > > fix directly to Linus.  I'm still learning the ropes here and am happy
> > > > to hear some clarification either way.
> > >
> > > Note that just me wondering if it's right doesn't necessarily means it's
> > > not.  Russell, can you comment?  Is it trivial enough and obviously only
> > > tegra related that it's OK?
> > 
> > The problem happens when there's related changes already in others git
> > trees which clash or conflict with those changes.
> > 
> > This whole CONFIG_ZRELADDR thing seems like a step backwards towards a
> > situation where we will get conflicts with multiple changes - but without
> > gaining anything substantial in moving away from Makefile.boot.
> > 
> > Unless someone can come up with a real justification for CONFIG_ZRELADDR
> > I'm mindful to revert it.  (But - if people have sent these changes to
> > Linus already, that's going to make reverting it a lot harder.)
> 
> This is what I'm considering committing to sort out this ZRELADDR mess -
> it gives people who want AUTO_ZRELADDR their pie, while allowing us to
> keep the proven reliability of original method of handling ZRELADDR.
Would be OK for me.  We might have to fix up some machines though.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions
  2010-09-08  9:11           ` Russell King - ARM Linux
@ 2010-09-08 20:31             ` Robert Schwebel
  0 siblings, 0 replies; 138+ messages in thread
From: Robert Schwebel @ 2010-09-08 20:31 UTC (permalink / raw)
  To: linux-arm-kernel

Uwe,

On Wed, Sep 08, 2010 at 10:11:49AM +0100, Russell King - ARM Linux wrote:
> > I looked into that and found some more issues.  I hope I catched them
> > all now.  While doing that removing the zreladdr lines was nearly for
> > free.  So I did that, too.
> > 
> > I couldn't determine who to cc: for the ARCH_H720X patch.  Russell, do
> > you maintain this platform?
> 
> Nope.

Sascha does probably maintain H720x. However, I'm not sure if there is
somebody out there who does still use it actively.

rsc
-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-08 12:16                         ` Uwe Kleine-König
@ 2010-09-08 22:07                           ` Russell King - ARM Linux
  2010-09-09  7:24                             ` Uwe Kleine-König
  0 siblings, 1 reply; 138+ messages in thread
From: Russell King - ARM Linux @ 2010-09-08 22:07 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 08, 2010 at 02:16:34PM +0200, Uwe Kleine-K?nig wrote:
> Hello Russell,
> 
> On Wed, Sep 08, 2010 at 12:56:10PM +0100, Russell King - ARM Linux wrote:
> > On Wed, Sep 08, 2010 at 10:11:13AM +0100, Russell King - ARM Linux wrote:
> > > On Fri, Sep 03, 2010 at 09:23:29PM +0200, Uwe Kleine-K?nig wrote:
> > > > Hello,
> > > > 
> > > > On Fri, Sep 03, 2010 at 12:19:26PM -0700, Erik Gilling wrote:
> > > > > On Fri, Sep 3, 2010 at 12:01 PM, Uwe Kleine-K?nig
> > > > > > (hmm, I thought that patches that touch common files like
> > > > > > arch/arm/Kconfig should go via rmk?!)
> > > > > 
> > > > > I looked and saw that others (specifically samsung) had submitted this
> > > > > fix directly to Linus.  I'm still learning the ropes here and am happy
> > > > > to hear some clarification either way.
> > > >
> > > > Note that just me wondering if it's right doesn't necessarily means it's
> > > > not.  Russell, can you comment?  Is it trivial enough and obviously only
> > > > tegra related that it's OK?
> > > 
> > > The problem happens when there's related changes already in others git
> > > trees which clash or conflict with those changes.
> > > 
> > > This whole CONFIG_ZRELADDR thing seems like a step backwards towards a
> > > situation where we will get conflicts with multiple changes - but without
> > > gaining anything substantial in moving away from Makefile.boot.
> > > 
> > > Unless someone can come up with a real justification for CONFIG_ZRELADDR
> > > I'm mindful to revert it.  (But - if people have sent these changes to
> > > Linus already, that's going to make reverting it a lot harder.)
> > 
> > This is what I'm considering committing to sort out this ZRELADDR mess -
> > it gives people who want AUTO_ZRELADDR their pie, while allowing us to
> > keep the proven reliability of original method of handling ZRELADDR.
> Would be OK for me.  We might have to fix up some machines though.

Any ideas what needs to be fixed?  And is that an acked-by ?

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-08 22:07                           ` Russell King - ARM Linux
@ 2010-09-09  7:24                             ` Uwe Kleine-König
  2010-09-09 16:56                               ` Erik Gilling
  0 siblings, 1 reply; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-09  7:24 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Russell,

On Wed, Sep 08, 2010 at 11:07:10PM +0100, Russell King - ARM Linux wrote:
> On Wed, Sep 08, 2010 at 02:16:34PM +0200, Uwe Kleine-K?nig wrote:
> > Hello Russell,
> > 
> > On Wed, Sep 08, 2010 at 12:56:10PM +0100, Russell King - ARM Linux wrote:
> > > On Wed, Sep 08, 2010 at 10:11:13AM +0100, Russell King - ARM Linux wrote:
> > > > On Fri, Sep 03, 2010 at 09:23:29PM +0200, Uwe Kleine-K?nig wrote:
> > > > > Hello,
> > > > > 
> > > > > On Fri, Sep 03, 2010 at 12:19:26PM -0700, Erik Gilling wrote:
> > > > > > On Fri, Sep 3, 2010 at 12:01 PM, Uwe Kleine-K?nig
> > > > > > > (hmm, I thought that patches that touch common files like
> > > > > > > arch/arm/Kconfig should go via rmk?!)
> > > > > > 
> > > > > > I looked and saw that others (specifically samsung) had submitted this
> > > > > > fix directly to Linus.  I'm still learning the ropes here and am happy
> > > > > > to hear some clarification either way.
> > > > >
> > > > > Note that just me wondering if it's right doesn't necessarily means it's
> > > > > not.  Russell, can you comment?  Is it trivial enough and obviously only
> > > > > tegra related that it's OK?
> > > > 
> > > > The problem happens when there's related changes already in others git
> > > > trees which clash or conflict with those changes.
> > > > 
> > > > This whole CONFIG_ZRELADDR thing seems like a step backwards towards a
> > > > situation where we will get conflicts with multiple changes - but without
> > > > gaining anything substantial in moving away from Makefile.boot.
> > > > 
> > > > Unless someone can come up with a real justification for CONFIG_ZRELADDR
> > > > I'm mindful to revert it.  (But - if people have sent these changes to
> > > > Linus already, that's going to make reverting it a lot harder.)
> > > 
> > > This is what I'm considering committing to sort out this ZRELADDR mess -
> > > it gives people who want AUTO_ZRELADDR their pie, while allowing us to
> > > keep the proven reliability of original method of handling ZRELADDR.
> > Would be OK for me.  We might have to fix up some machines though.
> 
> Any ideas what needs to be fixed?
I thought that there may be platforms that don't have a specification of
zreladdr-y anymore in Makefile.boot.  Maybe the Tegra-stuff that Linus
should pull removes it.  Other than that I'd check s3c.  The rest should
be OK.

>                                    And is that an acked-by ?
yeah, you can take it as such.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA
  2010-09-09  7:24                             ` Uwe Kleine-König
@ 2010-09-09 16:56                               ` Erik Gilling
  0 siblings, 0 replies; 138+ messages in thread
From: Erik Gilling @ 2010-09-09 16:56 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Sep 9, 2010 at 12:24 AM, Uwe Kleine-K?nig
<u.kleine-koenig@pengutronix.de> wrote:
>> Any ideas what needs to be fixed?
> I thought that there may be platforms that don't have a specification of
> zreladdr-y anymore in Makefile.boot. ?Maybe the Tegra-stuff that Linus
> should pull removes it. ?Other than that I'd check s3c. ?The rest should
> be OK.

The tegra patch does not remove the zreladdr-y in Makefile.boot.

-Erik

^ permalink raw reply	[flat|nested] 138+ messages in thread

* Re: [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr
  2010-09-03  9:56             ` Uwe Kleine-König
@ 2010-09-14  8:08               ` Paul Mundt
  -1 siblings, 0 replies; 138+ messages in thread
From: Paul Mundt @ 2010-09-14  8:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Sep 03, 2010 at 11:56:53AM +0200, Uwe Kleine-K??nig wrote:
> -config MEMORY_START
> -	hex "Physical memory start address"
> -	default "0x50000000" if MACH_G3EVM
> -	default "0x40000000" if MACH_G4EVM
> -	default "0x40000000" if MACH_AP4EVB
> -	default "0x00000000"
> -	---help---
> -	  Tweak this only when porting to a new machine which does not
> -	  already have a defconfig. Changing it from the known correct
> -	  value on any of the known systems will only lead to disaster.
> -

[snip]

> -#define PHYS_OFFSET	UL(CONFIG_MEMORY_START)
> +#define SH7367_PHYS_OFFSET UL(0x50000000)
> +#define SH7372_PHYS_OFFSET UL(0x40000000)
> +#define SH7377_PHYS_OFFSET UL(0x40000000)
> +
> +#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
> +# if defined(CONFIG_ARCH_SH7367)
> +#  define PHYS_OFFSET	SH7367_PHYS_OFFSET
> +# elif defined(CONFIG_ARCH_SH7372)
> +#  define PHYS_OFFSET	SH7372_PHYS_OFFSET
> +# elif defined(CONFIG_ARCH_SH7377)
> +#  define PHYS_OFFSET	SH7377_PHYS_OFFSET
> +# endif
> +#endif /* if !defined(CONFIG_RUNTIME_PHYS_OFFSET) */
> +

You've taken a board-specific property and made it CPU-specific. There is
nothing about these CPUs that mandates memory starting here, it just
happens that for the moment we have 1 board per CPU, but that's not an
assumption we can really bank on.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr
@ 2010-09-14  8:08               ` Paul Mundt
  0 siblings, 0 replies; 138+ messages in thread
From: Paul Mundt @ 2010-09-14  8:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Sep 03, 2010 at 11:56:53AM +0200, Uwe Kleine-K??nig wrote:
> -config MEMORY_START
> -	hex "Physical memory start address"
> -	default "0x50000000" if MACH_G3EVM
> -	default "0x40000000" if MACH_G4EVM
> -	default "0x40000000" if MACH_AP4EVB
> -	default "0x00000000"
> -	---help---
> -	  Tweak this only when porting to a new machine which does not
> -	  already have a defconfig. Changing it from the known correct
> -	  value on any of the known systems will only lead to disaster.
> -

[snip]

> -#define PHYS_OFFSET	UL(CONFIG_MEMORY_START)
> +#define SH7367_PHYS_OFFSET UL(0x50000000)
> +#define SH7372_PHYS_OFFSET UL(0x40000000)
> +#define SH7377_PHYS_OFFSET UL(0x40000000)
> +
> +#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
> +# if defined(CONFIG_ARCH_SH7367)
> +#  define PHYS_OFFSET	SH7367_PHYS_OFFSET
> +# elif defined(CONFIG_ARCH_SH7372)
> +#  define PHYS_OFFSET	SH7372_PHYS_OFFSET
> +# elif defined(CONFIG_ARCH_SH7377)
> +#  define PHYS_OFFSET	SH7377_PHYS_OFFSET
> +# endif
> +#endif /* if !defined(CONFIG_RUNTIME_PHYS_OFFSET) */
> +

You've taken a board-specific property and made it CPU-specific. There is
nothing about these CPUs that mandates memory starting here, it just
happens that for the moment we have 1 board per CPU, but that's not an
assumption we can really bank on.

^ permalink raw reply	[flat|nested] 138+ messages in thread

* Re: [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to
  2010-09-14  8:08               ` Paul Mundt
@ 2010-09-14 12:23                 ` Uwe Kleine-König
  -1 siblings, 0 replies; 138+ messages in thread
From:  @ 2010-09-14 12:23 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Paul,

On Tue, Sep 14, 2010 at 05:08:29PM +0900, Paul Mundt wrote:
> On Fri, Sep 03, 2010 at 11:56:53AM +0200, Uwe Kleine-K??nig wrote:
> > -config MEMORY_START
> > -	hex "Physical memory start address"
> > -	default "0x50000000" if MACH_G3EVM
> > -	default "0x40000000" if MACH_G4EVM
> > -	default "0x40000000" if MACH_AP4EVB
> > -	default "0x00000000"
> > -	---help---
> > -	  Tweak this only when porting to a new machine which does not
> > -	  already have a defconfig. Changing it from the known correct
> > -	  value on any of the known systems will only lead to disaster.
> > -
> 
> [snip]
> 
> > -#define PHYS_OFFSET	UL(CONFIG_MEMORY_START)
> > +#define SH7367_PHYS_OFFSET UL(0x50000000)
> > +#define SH7372_PHYS_OFFSET UL(0x40000000)
> > +#define SH7377_PHYS_OFFSET UL(0x40000000)
> > +
> > +#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
> > +# if defined(CONFIG_ARCH_SH7367)
> > +#  define PHYS_OFFSET	SH7367_PHYS_OFFSET
> > +# elif defined(CONFIG_ARCH_SH7372)
> > +#  define PHYS_OFFSET	SH7372_PHYS_OFFSET
> > +# elif defined(CONFIG_ARCH_SH7377)
> > +#  define PHYS_OFFSET	SH7377_PHYS_OFFSET
> > +# endif
> > +#endif /* if !defined(CONFIG_RUNTIME_PHYS_OFFSET) */
> > +
> 
> You've taken a board-specific property and made it CPU-specific. There is
> nothing about these CPUs that mandates memory starting here, it just
> happens that for the moment we have 1 board per CPU, but that's not an
> assumption we can really bank on.
I choosed to do so as CONFIG_ZRELADDR (which is now reverted) used the
ARCH_... symbols, too, to select the needed values.  And that's my I
marked the patch as RFC.  So would you consider this patch acceptible if
I respin it using the MACH_... symbols?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

* [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr
@ 2010-09-14 12:23                 ` Uwe Kleine-König
  0 siblings, 0 replies; 138+ messages in thread
From: Uwe Kleine-König @ 2010-09-14 12:23 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Paul,

On Tue, Sep 14, 2010 at 05:08:29PM +0900, Paul Mundt wrote:
> On Fri, Sep 03, 2010 at 11:56:53AM +0200, Uwe Kleine-K??nig wrote:
> > -config MEMORY_START
> > -	hex "Physical memory start address"
> > -	default "0x50000000" if MACH_G3EVM
> > -	default "0x40000000" if MACH_G4EVM
> > -	default "0x40000000" if MACH_AP4EVB
> > -	default "0x00000000"
> > -	---help---
> > -	  Tweak this only when porting to a new machine which does not
> > -	  already have a defconfig. Changing it from the known correct
> > -	  value on any of the known systems will only lead to disaster.
> > -
> 
> [snip]
> 
> > -#define PHYS_OFFSET	UL(CONFIG_MEMORY_START)
> > +#define SH7367_PHYS_OFFSET UL(0x50000000)
> > +#define SH7372_PHYS_OFFSET UL(0x40000000)
> > +#define SH7377_PHYS_OFFSET UL(0x40000000)
> > +
> > +#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
> > +# if defined(CONFIG_ARCH_SH7367)
> > +#  define PHYS_OFFSET	SH7367_PHYS_OFFSET
> > +# elif defined(CONFIG_ARCH_SH7372)
> > +#  define PHYS_OFFSET	SH7372_PHYS_OFFSET
> > +# elif defined(CONFIG_ARCH_SH7377)
> > +#  define PHYS_OFFSET	SH7377_PHYS_OFFSET
> > +# endif
> > +#endif /* if !defined(CONFIG_RUNTIME_PHYS_OFFSET) */
> > +
> 
> You've taken a board-specific property and made it CPU-specific. There is
> nothing about these CPUs that mandates memory starting here, it just
> happens that for the moment we have 1 board per CPU, but that's not an
> assumption we can really bank on.
I choosed to do so as CONFIG_ZRELADDR (which is now reverted) used the
ARCH_... symbols, too, to select the needed values.  And that's my I
marked the patch as RFC.  So would you consider this patch acceptible if
I respin it using the MACH_... symbols?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 138+ messages in thread

end of thread, other threads:[~2010-09-14 12:23 UTC | newest]

Thread overview: 138+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-03  7:36 [PATCH 0/5] Makefile.boot cleanup Eric Miao
2010-06-03  7:36 ` [PATCH 1/5] [ARM] Remove unused PARAMS_PHYS from arch/arm/boot/compressed Eric Miao
2010-06-10  8:48   ` Uwe Kleine-König
2010-06-03  7:36 ` [PATCH 2/5] [ARM] Remove unused INITRD_PHYS " Eric Miao
2010-06-10  8:27   ` Uwe Kleine-König
2010-06-10  9:55     ` Eric Miao
2010-06-03  7:36 ` [PATCH 3/5] [ARM] Make TEXT_OFFSET a configurable option Eric Miao
2010-06-10  8:50   ` Uwe Kleine-König
2010-06-10  9:45     ` Eric Miao
2010-06-10 10:00       ` Uwe Kleine-König
2010-06-03  7:36 ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Eric Miao
2010-06-07  8:51   ` Tony Lindgren
2010-06-07 15:12   ` Marek Vasut
2010-06-08  6:12     ` Eric Miao
2010-06-10  9:00   ` Uwe Kleine-König
2010-06-10  9:16     ` Russell King - ARM Linux
2010-06-10  9:35       ` Uwe Kleine-König
2010-06-10  9:38       ` Eric Miao
2010-06-10  9:43         ` Uwe Kleine-König
2010-06-10  9:47           ` Eric Miao
2010-06-10  9:18     ` Eric Miao
2010-06-10  9:58       ` Uwe Kleine-König
2010-06-10 10:20         ` Eric Miao
2010-06-10 22:06           ` Linus Walleij
2010-06-10 22:23       ` Linus Walleij
2010-06-11  1:34         ` Eric Miao
2010-06-10 18:40     ` Nicolas Pitre
2010-06-10 22:17   ` Linus Walleij
2010-06-11  6:37     ` Uwe Kleine-König
2010-06-17 19:33       ` Russell King - ARM Linux
2010-06-11  4:27   ` srinidhi
2010-09-02 21:21   ` Russell King - ARM Linux
2010-09-02 21:27     ` Russell King - ARM Linux
2010-09-03  7:48       ` Uwe Kleine-König
2010-09-03  9:55         ` Uwe Kleine-König
2010-09-03  9:56           ` [PATCH 1/7] ARM: specify ZRELADDR for ARCH_TEGRA Uwe Kleine-König
2010-09-03 17:46             ` Erik Gilling
2010-09-03 19:01               ` Uwe Kleine-König
2010-09-03 19:19                 ` Erik Gilling
2010-09-03 19:23                   ` Uwe Kleine-König
2010-09-08  9:11                     ` Russell King - ARM Linux
2010-09-08 11:56                       ` Russell King - ARM Linux
2010-09-08 12:16                         ` Uwe Kleine-König
2010-09-08 22:07                           ` Russell King - ARM Linux
2010-09-09  7:24                             ` Uwe Kleine-König
2010-09-09 16:56                               ` Erik Gilling
2010-09-03  9:56           ` [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr 
2010-09-03  9:56             ` Uwe Kleine-König
2010-09-03 13:39             ` [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to Eric Miao
2010-09-03 13:39               ` [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr Eric Miao
2010-09-03 18:53               ` [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to 
2010-09-03 18:53                 ` [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr Uwe Kleine-König
2010-09-14  8:08             ` Paul Mundt
2010-09-14  8:08               ` Paul Mundt
2010-09-14 12:23               ` [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to 
2010-09-14 12:23                 ` [PATCH 2/7] [RFC] ARM: shmobile: remove unneeded hack to calculate zreladdr Uwe Kleine-König
2010-09-03  9:56           ` [PATCH 3/7] ARM: specify ZRELADDR for ARCH_H720X Uwe Kleine-König
2010-09-03 13:40             ` Eric Miao
2010-09-03  9:56           ` [PATCH 4/7] ARM: specify ZRELADDR for ARCH_LPC32XX Uwe Kleine-König
2010-09-03 13:41             ` Eric Miao
2010-09-03  9:56           ` [PATCH 5/7] ARM: don't expose CONFIG_ZRELADDR to the users Uwe Kleine-König
2010-09-03 13:30             ` Eric Miao
2010-09-03 18:53               ` Uwe Kleine-König
2010-09-04  8:52                 ` Eric Miao
2010-09-07 22:39                   ` Mathieu Rondonneau
2010-09-08  5:04                     ` Uwe Kleine-König
2010-09-03  9:56           ` [PATCH 6/7] ARM: fix ordering of defaults for config ZRELADDR Uwe Kleine-König
2010-09-03  9:56           ` [PATCH 7/7] ARM: removed unused zreladdr specifications in all Makefile.boot files Uwe Kleine-König
2010-09-03 15:01             ` Eric Miao
2010-09-03 18:48               ` [PATCH 7/7 v2] " Uwe Kleine-König
2010-09-03 20:46           ` [PATCH 4/5] [ARM] Auto calculate ZRELADDR and provide option for exceptions Uwe Kleine-König
2010-09-05 18:52           ` Uwe Kleine-König
2010-09-08  9:14             ` Russell King - ARM Linux
2010-09-08  9:11           ` Russell King - ARM Linux
2010-09-08 20:31             ` Robert Schwebel
2010-09-03 13:33         ` Eric Miao
2010-06-03  7:36 ` [PATCH 5/5] [ARM] Move inclusion of Makefile.boot into arch/arm/boot/bootp Eric Miao
2010-06-10  9:01   ` Uwe Kleine-König
2010-06-03  7:43 ` [PATCH 0/5] Makefile.boot cleanup Eric Miao
2010-06-03  8:00   ` Uwe Kleine-König
2010-06-03  8:27     ` Eric Miao
2010-06-03  7:57 ` Uwe Kleine-König
2010-06-10 18:44   ` Nicolas Pitre
2010-06-11  4:55     ` Uwe Kleine-König
2010-06-17 19:22   ` Nicolas Pitre
2010-06-18  1:31     ` Eric Miao
2010-06-18  2:30     ` Eric Miao
2010-06-10 10:24 ` [PATCH 0/10] cleanup in early boot code Uwe Kleine-König
2010-06-10 10:27   ` [PATCH 01/10] arm/zImage: don't hard code the stack size twice Uwe Kleine-König
2010-06-10 10:31     ` Eric Miao
2010-06-10 18:47       ` Nicolas Pitre
2010-06-10 10:27   ` [PATCH 02/10] arm/zImage: some comments for __armv3_mpu_cache_on Uwe Kleine-König
2010-06-10 21:36     ` Sergei Shtylyov
2010-06-16  3:16     ` Eric Miao
2010-06-16  9:19       ` Russell King - ARM Linux
2010-06-10 10:27   ` [PATCH 03/10] arm/zImage: __armv3_mpu_cache_flush: respect should-be-zero specification Uwe Kleine-König
2010-06-11  1:23     ` Eric Miao
2010-06-10 10:27   ` [PATCH 04/10] arm/zImage: fix comments for cache_on, cache_off and cache_clean_flush Uwe Kleine-König
2010-06-17  9:28     ` Eric Miao
2010-06-10 10:27   ` [PATCH 05/10] arm/zImage: annotate debug functions about corrupted registers Uwe Kleine-König
2010-06-17  9:37     ` Eric Miao
2010-06-17  9:49       ` Uwe Kleine-König
2010-06-10 10:27   ` [PATCH 06/10] arm: remove bit-rotten STANDALONE_DEBUG for decompressor Uwe Kleine-König
2010-06-17  9:50     ` Eric Miao
2010-06-10 10:27   ` [PATCH 07/10] arm/zImage: don't define unused symbol initrd_phys Uwe Kleine-König
2010-06-17  9:19     ` Eric Miao
2010-06-10 10:27   ` [PATCH 08/10] arm: deprecate support for old way to pass kernel parameters Uwe Kleine-König
2010-06-17  9:58     ` Eric Miao
2010-06-17 23:00       ` Russell King - ARM Linux
2010-06-10 10:27   ` [PATCH 09/10] arm/uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET Uwe Kleine-König
2010-06-10 10:27   ` [PATCH 10/10] arm: Allow PHYS_OFFSET to be runtime determined Uwe Kleine-König
2010-06-10 10:28   ` [PATCH 0/10] cleanup in early boot code Eric Miao
2010-07-05 14:13 ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
2010-07-05 14:15   ` [PATCH 01/11] ARM: zImage: don't hard code the stack size twice Uwe Kleine-König
2010-07-05 14:15   ` [PATCH 02/11] ARM: zImage: some comments for __armv3_mpu_cache_on Uwe Kleine-König
2010-07-05 14:15   ` [PATCH 03/11] ARM: zImage: __armv3_mpu_cache_flush: respect should-be-zero specification Uwe Kleine-König
2010-07-05 14:15   ` [PATCH 04/11] ARM: zImage: fix comments for cache_on, cache_off and cache_clean_flush Uwe Kleine-König
2010-07-05 14:15   ` [PATCH 05/11] ARM: zImage: annotate debug functions about corrupted registers Uwe Kleine-König
2010-07-05 14:15   ` [PATCH 06/11] ARM: remove bit-rotten STANDALONE_DEBUG for decompressor Uwe Kleine-König
2010-07-05 15:36     ` Nicolas Pitre
2010-07-05 14:15   ` [PATCH 07/11] ARM: zImage: don't define unused symbol initrd_phys Uwe Kleine-König
2010-07-05 14:15   ` [PATCH 08/11] ARM: deprecate support for old way to pass kernel parameters Uwe Kleine-König
2010-07-05 14:15   ` [PATCH 09/11] ARM: uImage: require passing a LOADADDR when building with RUNTIME_PHYSOFFSET Uwe Kleine-König
2010-07-05 16:03     ` Nicolas Pitre
2010-07-05 14:15   ` [PATCH 10/11] ARM: Remove unused PARAMS_PHYS from arch/arm/boot/compressed Uwe Kleine-König
2010-07-05 14:15   ` [PATCH 11/11] Auto calculate ZRELADDR and provide option for exceptions Uwe Kleine-König
2010-07-05 15:31     ` Nicolas Pitre
2010-07-06  2:09       ` Eric Miao
2010-07-31 15:54     ` Russell King - ARM Linux
2010-07-31 17:44       ` Nicolas Pitre
2010-08-02  8:42       ` [PATCH] ARM: don't expose CONFIG_ZRELADDR to the users Uwe Kleine-König
2010-07-07 14:45   ` [PATCH 0/5] Makefile.boot cleanup Uwe Kleine-König
2010-07-07 15:54     ` Nicolas Pitre
2010-07-08  7:08       ` Uwe Kleine-König
2010-07-08 20:49         ` Nicolas Pitre
2010-07-10  9:16         ` Eric Miao
2010-07-21  8:20         ` Uwe Kleine-König
2010-07-29 16:17           ` Git pull request, was " Nicolas Pitre

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.