aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2011-08-03 20:15:26 -0400
committerKevin O'Connor <kevin@koconnor.net>2011-08-03 20:15:26 -0400
commit8b9137d29561e958ba557ba31e73da71d3b03249 (patch)
tree2cac91b6355e812cff0c94c95b07dc6a018610a1
parente0f87ce6610a0f341ff79c2c40ddc29f26932353 (diff)
downloadseabios-8b9137d29561e958ba557ba31e73da71d3b03249.tar.gz
Allow free space in f-segment to be used by malloc_fseg().
-rw-r--r--src/optionroms.c2
-rw-r--r--src/pmm.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/optionroms.c b/src/optionroms.c
index be02f2a..2832eab 100644
--- a/src/optionroms.c
+++ b/src/optionroms.c
@@ -483,7 +483,7 @@ vga_setup(void)
init_optionrom((void*)BUILD_ROM_START, 0, 1);
} else {
// Clear option rom memory
- memset((void*)RomEnd, 0, _max_rom() - RomEnd);
+ memset((void*)RomEnd, 0, max_rom() - RomEnd);
// Find and deploy PCI VGA rom.
struct pci_device *pci;
diff --git a/src/pmm.c b/src/pmm.c
index b812515..82a0b1d 100644
--- a/src/pmm.c
+++ b/src/pmm.c
@@ -216,6 +216,13 @@ malloc_fixupreloc(void)
struct zone_s *zone = Zones[i];
zone->info->pprev = &zone->info;
}
+
+ // Add space free'd during relocation in f-segment to ZoneFSeg
+ extern u8 code32init_end[];
+ if ((u32)code32init_end > BUILD_BIOS_ADDR) {
+ memset((void*)BUILD_BIOS_ADDR, 0, (u32)code32init_end - BUILD_BIOS_ADDR);
+ addSpace(&ZoneFSeg, (void*)BUILD_BIOS_ADDR, code32init_end);
+ }
}
void