Commit b78f63f4 authored by Linus Walleij's avatar Linus Walleij Committed by Russell King (Oracle)

ARM: 9088/1: Split KERNEL_OFFSET from PAGE_OFFSET

We want to be able to compile the kernel into an address different
from PAGE_OFFSET (start of lowmem) + TEXT_OFFSET, so start to pry
apart the address of where the kernel is located from the address
where the lowmem is located by defining and using KERNEL_OFFSET in
a few key places.
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
parent 8b95a7d9
...@@ -20,8 +20,14 @@ ...@@ -20,8 +20,14 @@
#endif #endif
#include <asm/kasan_def.h> #include <asm/kasan_def.h>
/* PAGE_OFFSET - the virtual address of the start of the kernel image */ /*
* PAGE_OFFSET: the virtual address of the start of lowmem, memory above
* the virtual address range for userspace.
* KERNEL_OFFSET: the virtual address of the start of the kernel image.
* we may further offset this with TEXT_OFFSET in practice.
*/
#define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET) #define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET)
#define KERNEL_OFFSET (PAGE_OFFSET)
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
#if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_SEMIHOSTING) #if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_SEMIHOSTING)
#include CONFIG_DEBUG_LL_INCLUDE #include CONFIG_DEBUG_LL_INCLUDE
#endif #endif
/* /*
* swapper_pg_dir is the virtual address of the initial page table. * swapper_pg_dir is the virtual address of the initial page table.
* We place the page tables 16K below KERNEL_RAM_VADDR. Therefore, we must * We place the page tables 16K below KERNEL_RAM_VADDR. Therefore, we must
...@@ -31,7 +30,7 @@ ...@@ -31,7 +30,7 @@
* the least significant 16 bits to be 0x8000, but we could probably * the least significant 16 bits to be 0x8000, but we could probably
* relax this restriction to KERNEL_RAM_VADDR >= PAGE_OFFSET + 0x4000. * relax this restriction to KERNEL_RAM_VADDR >= PAGE_OFFSET + 0x4000.
*/ */
#define KERNEL_RAM_VADDR (PAGE_OFFSET + TEXT_OFFSET) #define KERNEL_RAM_VADDR (KERNEL_OFFSET + TEXT_OFFSET)
#if (KERNEL_RAM_VADDR & 0xffff) != 0x8000 #if (KERNEL_RAM_VADDR & 0xffff) != 0x8000
#error KERNEL_RAM_VADDR must start at 0xXXXX8000 #error KERNEL_RAM_VADDR must start at 0xXXXX8000
#endif #endif
......
...@@ -47,7 +47,7 @@ SECTIONS ...@@ -47,7 +47,7 @@ SECTIONS
#endif #endif
} }
. = PAGE_OFFSET + TEXT_OFFSET; . = KERNEL_OFFSET + TEXT_OFFSET;
.head.text : { .head.text : {
_text = .; _text = .;
HEAD_TEXT HEAD_TEXT
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment