summaryrefslogtreecommitdiff
path: root/arch/arm/kernel/vmlinux-xip.lds.S
diff options
context:
space:
mode:
authorChris Brandt <chris.brandt@renesas.com>2016-02-09 19:34:43 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2016-02-11 15:43:14 +0000
commit02afa9a87b232bca15bc30808b9310c6388ca1a8 (patch)
treecdcc43e97ee4ed762ffd9087d3a92cb258aaab15 /arch/arm/kernel/vmlinux-xip.lds.S
parent31b96cae5ca2e751ce3dcf4839c2398a1e8b8fc3 (diff)
ARM: 8518/1: Use correct symbols for XIP_KERNEL
For an XIP build, _etext does not represent the end of the binary image that needs to stay mapped into the MODULES_VADDR area. Years ago, data came before text in the memory map. However, now that the order is text/init/data, an XIP_KERNEL needs to map up to the data location in order to keep from cutting off parts of the kernel that are needed. We only map up to the beginning of data because data has already been copied, so there's no reason to keep it around anymore. A new symbol is created to make it clear what it is we are referring to. This fixes the bug where you might lose the end of your kernel area after page table setup is complete. Signed-off-by: Chris Brandt <chris.brandt@renesas.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/vmlinux-xip.lds.S')
-rw-r--r--arch/arm/kernel/vmlinux-xip.lds.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/kernel/vmlinux-xip.lds.S b/arch/arm/kernel/vmlinux-xip.lds.S
index 7b1ded6fb628..40bc4cadb959 100644
--- a/arch/arm/kernel/vmlinux-xip.lds.S
+++ b/arch/arm/kernel/vmlinux-xip.lds.S
@@ -85,6 +85,7 @@ SECTIONS
}
. = XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR);
+ _xiprom = .; /* XIP ROM area to be mapped */
.head.text : {
_text = .;
@@ -210,6 +211,7 @@ SECTIONS
PERCPU_SECTION(L1_CACHE_BYTES)
#endif
+ _exiprom = .; /* End of XIP ROM area */
__data_loc = ALIGN(4); /* location in binary */
. = PAGE_OFFSET + TEXT_OFFSET;