aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86_64/kernel/head64.c7
-rw-r--r--include/asm-x86_64/page.h9
2 files changed, 9 insertions, 7 deletions
diff --git a/arch/x86_64/kernel/head64.c b/arch/x86_64/kernel/head64.c
index 213d90e04755..6c34bdd22e26 100644
--- a/arch/x86_64/kernel/head64.c
+++ b/arch/x86_64/kernel/head64.c
@@ -62,13 +62,6 @@ void __init x86_64_start_kernel(char * real_mode_data)
62{ 62{
63 int i; 63 int i;
64 64
65 /*
66 * Make sure kernel is aligned to 2MB address. Catching it at compile
67 * time is better. Change your config file and compile the kernel
68 * for a 2MB aligned address (CONFIG_PHYSICAL_START)
69 */
70 BUILD_BUG_ON(CONFIG_PHYSICAL_START & (__KERNEL_ALIGN - 1));
71
72 /* clear bss before set_intr_gate with early_idt_handler */ 65 /* clear bss before set_intr_gate with early_idt_handler */
73 clear_bss(); 66 clear_bss();
74 67
diff --git a/include/asm-x86_64/page.h b/include/asm-x86_64/page.h
index dee632fa457d..e327c830da0c 100644
--- a/include/asm-x86_64/page.h
+++ b/include/asm-x86_64/page.h
@@ -80,6 +80,15 @@ extern unsigned long phys_base;
80#define __PHYSICAL_START CONFIG_PHYSICAL_START 80#define __PHYSICAL_START CONFIG_PHYSICAL_START
81#define __KERNEL_ALIGN 0x200000 81#define __KERNEL_ALIGN 0x200000
82 82
83/*
84 * Make sure kernel is aligned to 2MB address. Catching it at compile
85 * time is better. Change your config file and compile the kernel
86 * for a 2MB aligned address (CONFIG_PHYSICAL_START)
87 */
88#if (CONFIG_PHYSICAL_START % __KERNEL_ALIGN) != 0
89#error "CONFIG_PHYSICAL_START must be a multiple of 2MB"
90#endif
91
83#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START) 92#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
84#define __START_KERNEL_map _AC(0xffffffff80000000, UL) 93#define __START_KERNEL_map _AC(0xffffffff80000000, UL)
85#define __PAGE_OFFSET _AC(0xffff810000000000, UL) 94#define __PAGE_OFFSET _AC(0xffff810000000000, UL)