diff options
-rw-r--r-- | arch/arm/Kconfig | 91 | ||||
-rw-r--r-- | arch/arm/boot/Makefile | 8 | ||||
-rw-r--r-- | arch/arm/boot/compressed/Makefile | 4 | ||||
-rw-r--r-- | arch/arm/boot/compressed/head.S | 2 |
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 | ||
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 | endmenu | 1579 | endmenu |
1671 | 1580 | ||
1672 | menu "CPU Power Management" | 1581 | menu "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 @@ | |||
14 | MKIMAGE := $(srctree)/scripts/mkuboot.sh | 14 | MKIMAGE := $(srctree)/scripts/mkuboot.sh |
15 | 15 | ||
16 | ifneq ($(MACHINE),) | 16 | ifneq ($(MACHINE),) |
17 | -include $(srctree)/$(MACHINE)/Makefile.boot | 17 | include $(srctree)/$(MACHINE)/Makefile.boot |
18 | endif | 18 | endif |
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 |
24 | ZRELADDR := $(zreladdr-y) | ||
23 | PARAMS_PHYS := $(params_phys-y) | 25 | PARAMS_PHYS := $(params_phys-y) |
24 | INITRD_PHYS := $(initrd_phys-y) | 26 | INITRD_PHYS := $(initrd_phys-y) |
25 | 27 | ||
26 | export INITRD_PHYS PARAMS_PHYS | 28 | export ZRELADDR INITRD_PHYS PARAMS_PHYS |
27 | 29 | ||
28 | targets := Image zImage xipImage bootpImage uImage | 30 | targets := Image zImage xipImage bootpImage uImage |
29 | 31 | ||
@@ -65,7 +67,7 @@ quiet_cmd_uimage = UIMAGE $@ | |||
65 | ifeq ($(CONFIG_ZBOOT_ROM),y) | 67 | ifeq ($(CONFIG_ZBOOT_ROM),y) |
66 | $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT) | 68 | $(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT) |
67 | else | 69 | else |
68 | $(obj)/uImage: LOADADDR=$(CONFIG_ZRELADDR) | 70 | $(obj)/uImage: LOADADDR=$(ZRELADDR) |
69 | endif | 71 | endif |
70 | 72 | ||
71 | ifeq ($(CONFIG_THUMB2_KERNEL),y) | 73 | ifeq ($(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 | |||
79 | EXTRA_CFLAGS := -fpic -fno-builtin | 79 | EXTRA_CFLAGS := -fpic -fno-builtin |
80 | EXTRA_AFLAGS := -Wa,-march=all | 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 | ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) | 86 | ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) |
83 | LDFLAGS_vmlinux += --be8 | 87 | LDFLAGS_vmlinux += --be8 |
84 | endif | 88 | endif |
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 | ||