Преглед изворни кода

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>
H. Peter Anvin пре 17 година
родитељ
комит
fa76dab935
4 измењених фајлова са 9 додато и 15 уклоњено
  1. 1 1
      arch/x86/boot/boot.h
  2. 0 2
      arch/x86/boot/main.c
  3. 1 6
      arch/x86/kernel/head_32.S
  4. 7 6
      include/asm-x86/setup.h

+ 1 - 1
arch/x86/boot/boot.h

@@ -23,7 +23,7 @@
 #include <linux/types.h>
 #include <linux/edd.h>
 #include <asm/boot.h>
-#include <asm/bootparam.h>
+#include <asm/setup.h>
 
 /* Useful macros */
 #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))

+ 0 - 2
arch/x86/boot/main.c

@@ -26,8 +26,6 @@ char *heap_end = _end;		/* Default end of heap = no heap */
  * screws up the old-style command line protocol, adjust by
  * filling in the new-style command line pointer instead.
  */
-#define OLD_CL_MAGIC	0xA33F
-#define OLD_CL_ADDRESS	0x20
 
 static void copy_boot_params(void)
 {

+ 1 - 6
arch/x86/kernel/head_32.S

@@ -124,12 +124,7 @@ ENTRY(startup_32)
 	movsl
 	movl boot_params - __PAGE_OFFSET + NEW_CL_POINTER,%esi
 	andl %esi,%esi
-	jnz 2f			# New command line protocol
-	cmpw $(OLD_CL_MAGIC),OLD_CL_MAGIC_ADDR
-	jne 1f
-	movzwl OLD_CL_OFFSET,%esi
-	addl $(OLD_CL_BASE_ADDR),%esi
-2:
+	jz 1f			# No comand line
 	movl $(boot_command_line - __PAGE_OFFSET),%edi
 	movl $(COMMAND_LINE_SIZE/4),%ecx
 	rep

+ 7 - 6
include/asm-x86/setup.h

@@ -14,19 +14,19 @@
 #define MAXMEM_PFN	PFN_DOWN(MAXMEM)
 #define MAX_NONPAE_PFN	(1 << 20)
 
-#define PARAM_SIZE 4096
+#endif /* __i386__ */
+
+#define PARAM_SIZE 4096		/* sizeof(struct boot_params) */
 
-#define OLD_CL_MAGIC_ADDR	0x90020
 #define OLD_CL_MAGIC		0xA33F
-#define OLD_CL_BASE_ADDR	0x90000
-#define OLD_CL_OFFSET		0x90022
+#define OLD_CL_ADDRESS		0x020	/* Relative to real mode data */
 #define NEW_CL_POINTER		0x228	/* Relative to real mode data */
 
-#endif /* __i386__ */
-
 #ifndef __ASSEMBLY__
 #include <asm/bootparam.h>
 
+#ifndef _SETUP
+
 /*
  * This is set up by the setup-routine at boot-time
  */
@@ -56,6 +56,7 @@ extern unsigned long init_pg_tables_end;
 #endif
 
 #endif /* __i386__ */
+#endif /* _SETUP */
 #endif /* __ASSEMBLY__ */
 #endif  /*  __KERNEL__  */