mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 02:09:42 +00:00
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: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
8b95a7d90c
commit
b78f63f443
3 changed files with 9 additions and 4 deletions
|
@ -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 @@
|
||||||
#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 @@
|
||||||
* 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
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
. = PAGE_OFFSET + TEXT_OFFSET;
|
. = KERNEL_OFFSET + TEXT_OFFSET;
|
||||||
.head.text : {
|
.head.text : {
|
||||||
_text = .;
|
_text = .;
|
||||||
HEAD_TEXT
|
HEAD_TEXT
|
||||||
|
|
Loading…
Reference in a new issue