diff options
-rw-r--r-- | Documentation/i386/zero-page.txt | 1 | ||||
-rw-r--r-- | arch/i386/boot/compressed/head.S | 6 | ||||
-rw-r--r-- | arch/x86_64/boot/compressed/head.S | 6 |
3 files changed, 7 insertions, 6 deletions
diff --git a/Documentation/i386/zero-page.txt b/Documentation/i386/zero-page.txt index c04a421f4a7c..75b3680c41eb 100644 --- a/Documentation/i386/zero-page.txt +++ b/Documentation/i386/zero-page.txt | |||
@@ -37,6 +37,7 @@ Offset Type Description | |||
37 | 0x1d0 unsigned long EFI memory descriptor map pointer | 37 | 0x1d0 unsigned long EFI memory descriptor map pointer |
38 | 0x1d4 unsigned long EFI memory descriptor map size | 38 | 0x1d4 unsigned long EFI memory descriptor map size |
39 | 0x1e0 unsigned long ALT_MEM_K, alternative mem check, in Kb | 39 | 0x1e0 unsigned long ALT_MEM_K, alternative mem check, in Kb |
40 | 0x1e4 unsigned long Scratch field for the kernel setup code | ||
40 | 0x1e8 char number of entries in E820MAP (below) | 41 | 0x1e8 char number of entries in E820MAP (below) |
41 | 0x1e9 unsigned char number of entries in EDDBUF (below) | 42 | 0x1e9 unsigned char number of entries in EDDBUF (below) |
42 | 0x1ea unsigned char number of entries in EDD_MBR_SIG_BUFFER (below) | 43 | 0x1ea unsigned char number of entries in EDD_MBR_SIG_BUFFER (below) |
diff --git a/arch/i386/boot/compressed/head.S b/arch/i386/boot/compressed/head.S index 3517a32aaf41..f35ea2237522 100644 --- a/arch/i386/boot/compressed/head.S +++ b/arch/i386/boot/compressed/head.S | |||
@@ -45,10 +45,10 @@ startup_32: | |||
45 | * at and where we were actually loaded at. This can only be done | 45 | * at and where we were actually loaded at. This can only be done |
46 | * with a short local call on x86. Nothing else will tell us what | 46 | * with a short local call on x86. Nothing else will tell us what |
47 | * address we are running at. The reserved chunk of the real-mode | 47 | * address we are running at. The reserved chunk of the real-mode |
48 | * data at 0x34-0x3f are used as the stack for this calculation. | 48 | * data at 0x1e4 (defined as a scratch field) are used as the stack |
49 | * Only 4 bytes are needed. | 49 | * for this calculation. Only 4 bytes are needed. |
50 | */ | 50 | */ |
51 | leal 0x40(%esi), %esp | 51 | leal (0x1e4+4)(%esi), %esp |
52 | call 1f | 52 | call 1f |
53 | 1: popl %ebp | 53 | 1: popl %ebp |
54 | subl $1b, %ebp | 54 | subl $1b, %ebp |
diff --git a/arch/x86_64/boot/compressed/head.S b/arch/x86_64/boot/compressed/head.S index f9d5692a0106..1312bfaff306 100644 --- a/arch/x86_64/boot/compressed/head.S +++ b/arch/x86_64/boot/compressed/head.S | |||
@@ -46,10 +46,10 @@ startup_32: | |||
46 | * at and where we were actually loaded at. This can only be done | 46 | * at and where we were actually loaded at. This can only be done |
47 | * with a short local call on x86. Nothing else will tell us what | 47 | * with a short local call on x86. Nothing else will tell us what |
48 | * address we are running at. The reserved chunk of the real-mode | 48 | * address we are running at. The reserved chunk of the real-mode |
49 | * data at 0x34-0x3f are used as the stack for this calculation. | 49 | * data at 0x1e4 (defined as a scratch field) are used as the stack |
50 | * Only 4 bytes are needed. | 50 | * for this calculation. Only 4 bytes are needed. |
51 | */ | 51 | */ |
52 | leal 0x40(%esi), %esp | 52 | leal (0x1e4+4)(%esi), %esp |
53 | call 1f | 53 | call 1f |
54 | 1: popl %ebp | 54 | 1: popl %ebp |
55 | subl $1b, %ebp | 55 | subl $1b, %ebp |