Use only first page and last page of low memory. OSes assumes that first
page is used by bios and last page is reserved in e820 map.
Signed-off-by: Gleb Natapov <address@hidden>
---
bios/rombios.c | 6 +++---
bios/rombios.h | 2 +-
bios/rombios32.c | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/bios/rombios.c b/bios/rombios.c
index c4c1e35..19f0e93 100644
--- a/bios/rombios.c
+++ b/bios/rombios.c
@@ -4541,7 +4541,7 @@ ASM_END
{
case 0:
set_e820_range(ES, regs.u.r16.di,
- 0x0000000L, 0x0009fc00L, 1);
+ 0x0000000L, 0x0009f000L, 1);
regs.u.r32.ebx = 1;
regs.u.r32.eax = 0x534D4150;
regs.u.r32.ecx = 0x14;
@@ -4550,7 +4550,7 @@ ASM_END
break;
case 1:
set_e820_range(ES, regs.u.r16.di,
- 0x0009fc00L, 0x000a0000L, 2);
+ 0x0009f000L, 0x000a0000L, 2);
regs.u.r32.ebx = 2;
regs.u.r32.eax = 0x534D4150;
regs.u.r32.ecx = 0x14;
@@ -10021,7 +10021,7 @@ rombios32_05:
cld
;; init the stack pointer
- mov esp, #0x00080000
+ mov esp, #0x9fbf0
;; pass pointer to s3_resume_flag and s3_resume_vector to rombios32
push #0x04b0
diff --git a/bios/rombios.h b/bios/rombios.h
index f0ed88e..57b0f46 100644
--- a/bios/rombios.h
+++ b/bios/rombios.h
@@ -56,7 +56,7 @@
#define ACPI_DATA_SIZE 0x00010000L
#define PM_IO_BASE 0xb000
#define SMB_IO_BASE 0xb100
-#define CPU_COUNT_ADDR 0xf000
+#define CPU_COUNT_ADDR 0x0500
// Define the application NAME
#if defined(BX_QEMU)
diff --git a/bios/rombios32.c b/bios/rombios32.c
index e887d71..c192cf3 100755
--- a/bios/rombios32.c
+++ b/bios/rombios32.c
@@ -57,7 +57,7 @@ typedef unsigned long long uint64_t;
#define APIC_ENABLED 0x0100
-#define AP_BOOT_ADDR 0x10000
+#define AP_BOOT_ADDR 0x9f000
#define MPTABLE_MAX_SIZE 0x00002000
#define SMI_CMD_IO_ADDR 0xb2