summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/scripts
diff options
context:
space:
mode:
authorMichael Brown2008-08-18 02:01:45 +0200
committerMichael Brown2008-08-18 02:01:45 +0200
commit9737095d49ec21d5139b0f08d2f61005bfbf7c6c (patch)
tree2724cb549ce2f8ba8d8f1b532502abf140051471 /src/arch/i386/scripts
parent[util] Allow Option::ROM to understand and modify initialisation entry point (diff)
downloadipxe-9737095d49ec21d5139b0f08d2f61005bfbf7c6c.tar.gz
ipxe-9737095d49ec21d5139b0f08d2f61005bfbf7c6c.tar.xz
ipxe-9737095d49ec21d5139b0f08d2f61005bfbf7c6c.zip
[pcbios] Prepare for multiple splits of hidden e820 memory regions
Define a list of N allowed memory regions, and split each underlying e820 region into up to N subregions. Strip resulting empty regions out of the map, avoiding using the "return with CF set to strip last empty region" trick, because it seems that bootmgr.exe in Win2k8 gets upset if the memory map is terminated with CF set. This is an intermediate checkin that defines a single allowed memory region covering the entire 64-bit address space, and uses the existing map-mangling code on top of the new region-splitting code. This sanitises the memory map to the point that Win2k8 is able to boot even on a system that defines a final zero-length region at the 4GB mark. I'm checking this in because it may be useful for future debugging efforts to be able to run with the existing and known-working map mangling code together with the map sanitisation capabilities of the new map mangling code.
Diffstat (limited to 'src/arch/i386/scripts')
-rw-r--r--src/arch/i386/scripts/i386.lds1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/arch/i386/scripts/i386.lds b/src/arch/i386/scripts/i386.lds
index a5a01056d..0422344d1 100644
--- a/src/arch/i386/scripts/i386.lds
+++ b/src/arch/i386/scripts/i386.lds
@@ -82,6 +82,7 @@ SECTIONS {
__data16 = .;
*(.data16)
*(.data16.*)
+ *(SORT(.tbl.data16.*)) /* Various tables. See include/tables.h */
_edata16_progbits = .;
}
.bss16 : AT ( _data16_load_offset + __bss16 ) {