[PATCH] x86 boot enhancements, cleanups 4/11

Eric W. Biederman (ebiederm@xmission.com)
17 Apr 2002 10:52:49 -0600


Linus please apply,

All changes are syntactic the generated code is not affected.

- e820.h Add define E820ENTRY_SIZE

- boot.h Add defines for address space divisions.

- Add define KERNEL_START in setup.S so if I need this
value more than once it is easy to get at.

Eric

diff -uNr linux-2.5.8.boot.spring-cleaning/arch/i386/boot/setup.S linux-2.5.8.boot.syntax/arch/i386/boot/setup.S
--- linux-2.5.8.boot.spring-cleaning/arch/i386/boot/setup.S Tue Apr 16 20:13:05 2002
+++ linux-2.5.8.boot.syntax/arch/i386/boot/setup.S Tue Apr 16 20:32:53 2002
@@ -56,6 +56,12 @@
#define SIG1 0xAA55
#define SIG2 0x5A5A

+#ifndef __BIG_KERNEL__
+#define KERNEL_START LOW_BASE /* zImage */
+#else
+#define KERNEL_START HIGH_BASE /* bzImage */
+#endif
+
INITSEG = DEF_INITSEG # 0x9000, we move boot here, out of the way
SYSSEG = DEF_SYSSEG # 0x1000, system loaded at 0x10000 (65536).
SETUPSEG = DEF_SETUPSEG # 0x9020, this is the current segment
@@ -115,13 +121,8 @@
# loader knows how much data behind
# us also needs to be loaded.

-code32_start: # here loaders can put a different
+code32_start: .long KERNEL_START # here loaders can put a different
# start address for 32-bit code.
-#ifndef __BIG_KERNEL__
- .long 0x1000 # 0x1000 = default for zImage
-#else
- .long 0x100000 # 0x100000 = default for big kernel
-#endif

ramdisk_image: .long 0 # address of loaded ramdisk image
# Here the loader puts the 32-bit
@@ -340,7 +341,7 @@

incb (E820NR)
movw %di, %ax
- addw $20, %ax
+ addw $E820ENTRY_SIZE, %ax
movw %ax, %di
again820:
cmpl $0, %ebx # check to see if
diff -uNr linux-2.5.8.boot.spring-cleaning/include/asm-i386/boot.h linux-2.5.8.boot.syntax/include/asm-i386/boot.h
--- linux-2.5.8.boot.spring-cleaning/include/asm-i386/boot.h Wed Apr 16 15:15:00 1997
+++ linux-2.5.8.boot.syntax/include/asm-i386/boot.h Wed Apr 17 00:13:56 2002
@@ -1,6 +1,19 @@
#ifndef _LINUX_BOOT_H
#define _LINUX_BOOT_H

+/* Address space division during load */
+ /* Memory below 640 we can use for loading */
+#define LOW_BASE 0x001000
+#define LOW_MAX 0x0a0000 /* Maximum low memory address to use */
+ /* Memory above 640 we can use for loading */
+#define HIGH_BASE 0x100000
+#define HIGH_MAX __MAXMEM
+ /* Subset of the low segment that is generally safe to
+ * use for loading.
+ */
+#define REAL_BASE 0x010000
+#define REAL_MAX 0x090000
+
/* Don't touch these, unless you really know what you're doing. */
#define DEF_INITSEG 0x9000
#define DEF_SYSSEG 0x1000
diff -uNr linux-2.5.8.boot.spring-cleaning/include/asm-i386/e820.h linux-2.5.8.boot.syntax/include/asm-i386/e820.h
--- linux-2.5.8.boot.spring-cleaning/include/asm-i386/e820.h Fri Aug 18 10:30:51 2000
+++ linux-2.5.8.boot.syntax/include/asm-i386/e820.h Tue Apr 16 20:32:53 2002
@@ -15,6 +15,7 @@
#define E820MAP 0x2d0 /* our map */
#define E820MAX 32 /* number of entries in E820MAP */
#define E820NR 0x1e8 /* # entries in E820MAP */
+#define E820ENTRY_SIZE 20 /* size of an E820MAP entry */

#define E820_RAM 1
#define E820_RESERVED 2
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/