[ARM] Make kernel link address depend on PAGE_OFFSET
We are coding the kernel link address into the makefiles, which is invisibly dependent on PAGE_OFFSET. If PAGE_OFFSET is changed, the makefiles also need to be changed. Make adjustments such that the makefiles encode just the offset from PAGE_OFFSET for the kernel link address, and use PAGE_OFFSET in the linker scripts directly. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
88026842b0
commit
9d4f13e531
@@ -2,7 +2,7 @@
|
||||
# Makefile for the linux kernel.
|
||||
#
|
||||
|
||||
AFLAGS_head.o := -DKERNEL_RAM_ADDR=$(TEXTADDR)
|
||||
AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
|
||||
|
||||
# Object file lists.
|
||||
|
||||
|
@@ -33,6 +33,8 @@
|
||||
#define MACHINFO_PGOFFIO 12
|
||||
#define MACHINFO_NAME 16
|
||||
|
||||
#define KERNEL_RAM_ADDR (PAGE_OFFSET + TEXT_OFFSET)
|
||||
|
||||
/*
|
||||
* swapper_pg_dir is the virtual address of the initial page table.
|
||||
* We place the page tables 16K below KERNEL_RAM_ADDR. Therefore, we must
|
||||
|
@@ -17,15 +17,13 @@ jiffies = jiffies_64;
|
||||
jiffies = jiffies_64 + 4;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_XIP_KERNEL
|
||||
#define TEXTADDR XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR)
|
||||
#else
|
||||
#define TEXTADDR KERNEL_RAM_ADDR
|
||||
#endif
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = TEXTADDR;
|
||||
#ifdef CONFIG_XIP_KERNEL
|
||||
. = XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR);
|
||||
#else
|
||||
. = PAGE_OFFSET + TEXT_OFFSET;
|
||||
#endif
|
||||
.init : { /* Init code and data */
|
||||
_stext = .;
|
||||
_sinittext = .;
|
||||
@@ -104,7 +102,7 @@ SECTIONS
|
||||
|
||||
#ifdef CONFIG_XIP_KERNEL
|
||||
__data_loc = ALIGN(4); /* location in binary */
|
||||
. = KERNEL_RAM_ADDR;
|
||||
. = PAGE_OFFSET + TEXT_OFFSET;
|
||||
#else
|
||||
. = ALIGN(THREAD_SIZE);
|
||||
__data_loc = .;
|
||||
|
Reference in New Issue
Block a user