aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-10-23 16:37:25 -0400
committerThomas Gleixner <tglx@linutronix.de>2007-10-23 16:37:25 -0400
commitfa76dab935b856871024530ec818bc0a8f88a016 (patch)
tree8d8a83d01d35a7b8d3559e75931e50c3f0f7723c
parent0de80bcc2baed116a569c38cbc38c5dcb945d14d (diff)
x86: clean up setup.h and the boot code
Make <asm/setup.h> usable by the boot code. Clean up vestiges of the old command-line protocol from setup.h and head_32.S (it is still supported from the boot loader point of view, since it is converted to the new command-line protocol by the boot code.) Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--arch/x86/boot/boot.h2
-rw-r--r--arch/x86/boot/main.c2
-rw-r--r--arch/x86/kernel/head_32.S7
-rw-r--r--include/asm-x86/setup.h13
4 files changed, 9 insertions, 15 deletions
diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
index 20bab9431acb..5f9a2e72a731 100644
--- a/arch/x86/boot/boot.h
+++ b/arch/x86/boot/boot.h
@@ -23,7 +23,7 @@
23#include <linux/types.h> 23#include <linux/types.h>
24#include <linux/edd.h> 24#include <linux/edd.h>
25#include <asm/boot.h> 25#include <asm/boot.h>
26#include <asm/bootparam.h> 26#include <asm/setup.h>
27 27
28/* Useful macros */ 28/* Useful macros */
29#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) 29#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
diff --git a/arch/x86/boot/main.c b/arch/x86/boot/main.c
index 0eeef3989a17..1f95750ede28 100644
--- a/arch/x86/boot/main.c
+++ b/arch/x86/boot/main.c
@@ -26,8 +26,6 @@ char *heap_end = _end; /* Default end of heap = no heap */
26 * screws up the old-style command line protocol, adjust by 26 * screws up the old-style command line protocol, adjust by
27 * filling in the new-style command line pointer instead. 27 * filling in the new-style command line pointer instead.
28 */ 28 */
29#define OLD_CL_MAGIC 0xA33F
30#define OLD_CL_ADDRESS 0x20
31 29
32static void copy_boot_params(void) 30static void copy_boot_params(void)
33{ 31{
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index 00b1c2c56454..374b7ece8961 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -124,12 +124,7 @@ ENTRY(startup_32)
124 movsl 124 movsl
125 movl boot_params - __PAGE_OFFSET + NEW_CL_POINTER,%esi 125 movl boot_params - __PAGE_OFFSET + NEW_CL_POINTER,%esi
126 andl %esi,%esi 126 andl %esi,%esi
127 jnz 2f # New command line protocol 127 jz 1f # No comand line
128 cmpw $(OLD_CL_MAGIC),OLD_CL_MAGIC_ADDR
129 jne 1f
130 movzwl OLD_CL_OFFSET,%esi
131 addl $(OLD_CL_BASE_ADDR),%esi
1322:
133 movl $(boot_command_line - __PAGE_OFFSET),%edi 128 movl $(boot_command_line - __PAGE_OFFSET),%edi
134 movl $(COMMAND_LINE_SIZE/4),%ecx 129 movl $(COMMAND_LINE_SIZE/4),%ecx
135 rep 130 rep
diff --git a/include/asm-x86/setup.h b/include/asm-x86/setup.h
index 7e5698f7d242..24d786e07b49 100644
--- a/include/asm-x86/setup.h
+++ b/include/asm-x86/setup.h
@@ -14,19 +14,19 @@
14#define MAXMEM_PFN PFN_DOWN(MAXMEM) 14#define MAXMEM_PFN PFN_DOWN(MAXMEM)
15#define MAX_NONPAE_PFN (1 << 20) 15#define MAX_NONPAE_PFN (1 << 20)
16 16
17#define PARAM_SIZE 4096 17#endif /* __i386__ */
18
19#define PARAM_SIZE 4096 /* sizeof(struct boot_params) */
18 20
19#define OLD_CL_MAGIC_ADDR 0x90020
20#define OLD_CL_MAGIC 0xA33F 21#define OLD_CL_MAGIC 0xA33F
21#define OLD_CL_BASE_ADDR 0x90000 22#define OLD_CL_ADDRESS 0x020 /* Relative to real mode data */
22#define OLD_CL_OFFSET 0x90022
23#define NEW_CL_POINTER 0x228 /* Relative to real mode data */ 23#define NEW_CL_POINTER 0x228 /* Relative to real mode data */
24 24
25#endif /* __i386__ */
26
27#ifndef __ASSEMBLY__ 25#ifndef __ASSEMBLY__
28#include <asm/bootparam.h> 26#include <asm/bootparam.h>
29 27
28#ifndef _SETUP
29
30/* 30/*
31 * This is set up by the setup-routine at boot-time 31 * This is set up by the setup-routine at boot-time
32 */ 32 */
@@ -56,6 +56,7 @@ extern unsigned long init_pg_tables_end;
56#endif 56#endif
57 57
58#endif /* __i386__ */ 58#endif /* __i386__ */
59#endif /* _SETUP */
59#endif /* __ASSEMBLY__ */ 60#endif /* __ASSEMBLY__ */
60#endif /* __KERNEL__ */ 61#endif /* __KERNEL__ */
61 62