aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-09-09 17:39:41 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-09-09 17:39:41 -0400
commit9e84ed63dc71e13b62cea5ec6b0049260cca0b7a (patch)
tree4aae9bbc9d5033d514a7601d6972c355808e859c /arch/arm
parentde9ea203d105f760e8e995c07aa80e855a9aedba (diff)
ARM: Partially revert "Auto calculate ZRELADDR and provide option for exceptions"
Partially revert e69edc7, which introduced automatic zreladdr support. The change in the way the manual definition is defined seems to be error and conflict prone. Go back to the original way we were handling this for the time being, while keeping the automatic zreladdr facility. Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/Kconfig91
-rw-r--r--arch/arm/boot/Makefile8
-rw-r--r--arch/arm/boot/compressed/Makefile4
-rw-r--r--arch/arm/boot/compressed/head.S2
4 files changed, 10 insertions, 95 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 16bc8eb4901c..553b7cf17bfb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1576,97 +1576,6 @@ config AUTO_ZRELADDR
1576 0xf8000000. This assumes the zImage being placed in the first 128MB 1576 0xf8000000. This assumes the zImage being placed in the first 128MB
1577 from start of memory. 1577 from start of memory.
1578 1578
1579config ZRELADDR
1580 hex "Physical address of the decompressed kernel image"
1581 depends on !AUTO_ZRELADDR
1582 default 0x00008000 if ARCH_BCMRING ||\
1583 ARCH_CNS3XXX ||\
1584 ARCH_DOVE ||\
1585 ARCH_EBSA110 ||\
1586 ARCH_FOOTBRIDGE ||\
1587 ARCH_INTEGRATOR ||\
1588 ARCH_IOP13XX ||\
1589 ARCH_IOP33X ||\
1590 ARCH_IXP2000 ||\
1591 ARCH_IXP23XX ||\
1592 ARCH_IXP4XX ||\
1593 ARCH_KIRKWOOD ||\
1594 ARCH_KS8695 ||\
1595 ARCH_LOKI ||\
1596 ARCH_MMP ||\
1597 ARCH_MV78XX0 ||\
1598 ARCH_NOMADIK ||\
1599 ARCH_NUC93X ||\
1600 ARCH_NS9XXX ||\
1601 ARCH_ORION5X ||\
1602 ARCH_SPEAR3XX ||\
1603 ARCH_SPEAR6XX ||\
1604 ARCH_TEGRA ||\
1605 ARCH_U8500 ||\
1606 ARCH_VERSATILE ||\
1607 ARCH_W90X900
1608 default 0x08008000 if ARCH_MX1 ||\
1609 ARCH_SHARK
1610 default 0x10008000 if ARCH_MSM ||\
1611 ARCH_OMAP1 ||\
1612 ARCH_RPC
1613 default 0x20008000 if ARCH_S5P6440 ||\
1614 ARCH_S5P6442 ||\
1615 ARCH_S5PC100 ||\
1616 ARCH_S5PV210
1617 default 0x30008000 if ARCH_S3C2410 ||\
1618 ARCH_S3C2400 ||\
1619 ARCH_S3C2412 ||\
1620 ARCH_S3C2416 ||\
1621 ARCH_S3C2440 ||\
1622 ARCH_S3C2443
1623 default 0x40008000 if ARCH_STMP378X ||\
1624 ARCH_STMP37XX ||\
1625 ARCH_SH7372 ||\
1626 ARCH_SH7377 ||\
1627 ARCH_S5PV310
1628 default 0x50008000 if ARCH_S3C64XX ||\
1629 ARCH_SH7367
1630 default 0x60008000 if ARCH_VEXPRESS
1631 default 0x80008000 if ARCH_MX25 ||\
1632 ARCH_MX3 ||\
1633 ARCH_NETX ||\
1634 ARCH_OMAP2PLUS ||\
1635 ARCH_PNX4008
1636 default 0x90008000 if ARCH_MX5 ||\
1637 ARCH_MX91231
1638 default 0xa0008000 if ARCH_IOP32X ||\
1639 ARCH_PXA ||\
1640 MACH_MX27
1641 default 0xc0008000 if ARCH_LH7A40X ||\
1642 MACH_MX21
1643 default 0xf0008000 if ARCH_AAEC2000 ||\
1644 ARCH_L7200
1645 default 0xc0028000 if ARCH_CLPS711X
1646 default 0x70008000 if ARCH_AT91 && (ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
1647 default 0x20008000 if ARCH_AT91 && !(ARCH_AT91CAP9 || ARCH_AT91SAM9G45)
1648 default 0xc0008000 if ARCH_DAVINCI && ARCH_DAVINCI_DA8XX
1649 default 0x80008000 if ARCH_DAVINCI && !ARCH_DAVINCI_DA8XX
1650 default 0x00008000 if ARCH_EP93XX && EP93XX_SDCE3_SYNC_PHYS_OFFSET
1651 default 0xc0008000 if ARCH_EP93XX && EP93XX_SDCE0_PHYS_OFFSET
1652 default 0xd0008000 if ARCH_EP93XX && EP93XX_SDCE1_PHYS_OFFSET
1653 default 0xe0008000 if ARCH_EP93XX && EP93XX_SDCE2_PHYS_OFFSET
1654 default 0xf0008000 if ARCH_EP93XX && EP93XX_SDCE3_ASYNC_PHYS_OFFSET
1655 default 0x00008000 if ARCH_GEMINI && GEMINI_MEM_SWAP
1656 default 0x10008000 if ARCH_GEMINI && !GEMINI_MEM_SWAP
1657 default 0x70008000 if ARCH_REALVIEW && REALVIEW_HIGH_PHYS_OFFSET
1658 default 0x00008000 if ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET
1659 default 0xc0208000 if ARCH_SA1100 && SA1111
1660 default 0xc0008000 if ARCH_SA1100 && !SA1111
1661 default 0x30108000 if ARCH_S3C2410 && PM_H1940
1662 default 0x28E08000 if ARCH_U300 && MACH_U300_SINGLE_RAM
1663 default 0x48008000 if ARCH_U300 && !MACH_U300_SINGLE_RAM
1664 help
1665 ZRELADDR is the physical address where the decompressed kernel
1666 image will be placed. ZRELADDR has to be specified when the
1667 assumption of AUTO_ZRELADDR is not valid, or when ZBOOT_ROM is
1668 selected.
1669
1670endmenu 1579endmenu
1671 1580
1672menu "CPU Power Management" 1581menu "CPU Power Management"
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index f705213caa88..4a590f4113e2 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -14,16 +14,18 @@
14MKIMAGE := $(srctree)/scripts/mkuboot.sh 14MKIMAGE := $(srctree)/scripts/mkuboot.sh
15 15
16ifneq ($(MACHINE),) 16ifneq ($(MACHINE),)
17-include $(srctree)/$(MACHINE)/Makefile.boot 17include $(srctree)/$(MACHINE)/Makefile.boot
18endif 18endif
19 19
20# Note: the following conditions must always be true: 20# Note: the following conditions must always be true:
21# ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
21# PARAMS_PHYS must be within 4MB of ZRELADDR 22# PARAMS_PHYS must be within 4MB of ZRELADDR
22# INITRD_PHYS must be in RAM 23# INITRD_PHYS must be in RAM
24ZRELADDR := $(zreladdr-y)
23PARAMS_PHYS := $(params_phys-y) 25PARAMS_PHYS := $(params_phys-y)
24INITRD_PHYS := $(initrd_phys-y) 26INITRD_PHYS := $(initrd_phys-y)
25 27
26export INITRD_PHYS PARAMS_PHYS 28export ZRELADDR INITRD_PHYS PARAMS_PHYS
27 29
28targets := Image zImage xipImage bootpImage uImage 30targets := Image zImage xipImage bootpImage uImage
29 31
@@ -65,7 +67,7 @@ quiet_cmd_uimage = UIMAGE $@
65ifeq ($(CONFIG_ZBOOT_ROM),y) 67ifeq ($(CONFIG_ZBOOT_ROM),y)
66$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT) 68$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
67else 69else
68$(obj)/uImage: LOADADDR=$(CONFIG_ZRELADDR) 70$(obj)/uImage: LOADADDR=$(ZRELADDR)
69endif 71endif
70 72
71ifeq ($(CONFIG_THUMB2_KERNEL),y) 73ifeq ($(CONFIG_THUMB2_KERNEL),y)
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 68775e33476c..b23f6bc46cfa 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -79,6 +79,10 @@ endif
79EXTRA_CFLAGS := -fpic -fno-builtin 79EXTRA_CFLAGS := -fpic -fno-builtin
80EXTRA_AFLAGS := -Wa,-march=all 80EXTRA_AFLAGS := -Wa,-march=all
81 81
82# Supply ZRELADDR to the decompressor via a linker symbol.
83ifneq ($(CONFIG_AUTO_ZRELADDR),y)
84LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
85endif
82ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) 86ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
83LDFLAGS_vmlinux += --be8 87LDFLAGS_vmlinux += --be8
84endif 88endif
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 6af9907c3b5c..6825c34646d4 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -177,7 +177,7 @@ not_angel:
177 and r4, pc, #0xf8000000 177 and r4, pc, #0xf8000000
178 add r4, r4, #TEXT_OFFSET 178 add r4, r4, #TEXT_OFFSET
179#else 179#else
180 ldr r4, =CONFIG_ZRELADDR 180 ldr r4, =zreladdr
181#endif 181#endif
182 subs r0, r0, r1 @ calculate the delta offset 182 subs r0, r0, r1 @ calculate the delta offset
183 183