Commit 9e84ed63dc71e13b62cea5ec6b0049260cca0b7a

Authored by Russell King
1 parent de9ea203d1

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>

Showing 4 changed files with 10 additions and 95 deletions Side-by-side Diff

... ... @@ -1576,97 +1576,6 @@
1576 1576 0xf8000000. This assumes the zImage being placed in the first 128MB
1577 1577 from start of memory.
1578 1578  
1579   -config 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   -
1670 1579 endmenu
1671 1580  
1672 1581 menu "CPU Power Management"
arch/arm/boot/Makefile
... ... @@ -14,16 +14,18 @@
14 14 MKIMAGE := $(srctree)/scripts/mkuboot.sh
15 15  
16 16 ifneq ($(MACHINE),)
17   --include $(srctree)/$(MACHINE)/Makefile.boot
  17 +include $(srctree)/$(MACHINE)/Makefile.boot
18 18 endif
19 19  
20 20 # Note: the following conditions must always be true:
  21 +# ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
21 22 # PARAMS_PHYS must be within 4MB of ZRELADDR
22 23 # INITRD_PHYS must be in RAM
  24 +ZRELADDR := $(zreladdr-y)
23 25 PARAMS_PHYS := $(params_phys-y)
24 26 INITRD_PHYS := $(initrd_phys-y)
25 27  
26   -export INITRD_PHYS PARAMS_PHYS
  28 +export ZRELADDR INITRD_PHYS PARAMS_PHYS
27 29  
28 30 targets := Image zImage xipImage bootpImage uImage
29 31  
... ... @@ -65,7 +67,7 @@
65 67 ifeq ($(CONFIG_ZBOOT_ROM),y)
66 68 $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
67 69 else
68   -$(obj)/uImage: LOADADDR=$(CONFIG_ZRELADDR)
  70 +$(obj)/uImage: LOADADDR=$(ZRELADDR)
69 71 endif
70 72  
71 73 ifeq ($(CONFIG_THUMB2_KERNEL),y)
arch/arm/boot/compressed/Makefile
... ... @@ -79,6 +79,10 @@
79 79 EXTRA_CFLAGS := -fpic -fno-builtin
80 80 EXTRA_AFLAGS := -Wa,-march=all
81 81  
  82 +# Supply ZRELADDR to the decompressor via a linker symbol.
  83 +ifneq ($(CONFIG_AUTO_ZRELADDR),y)
  84 +LDFLAGS_vmlinux := --defsym zreladdr=$(ZRELADDR)
  85 +endif
82 86 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
83 87 LDFLAGS_vmlinux += --be8
84 88 endif
arch/arm/boot/compressed/head.S
... ... @@ -177,7 +177,7 @@
177 177 and r4, pc, #0xf8000000
178 178 add r4, r4, #TEXT_OFFSET
179 179 #else
180   - ldr r4, =CONFIG_ZRELADDR
  180 + ldr r4, =zreladdr
181 181 #endif
182 182 subs r0, r0, r1 @ calculate the delta offset
183 183