diff options
33 files changed, 427 insertions, 175 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) | ||
