[pcbios] Support arbitrary splits of the e820 memory map
authorMichael Brown <mcb30@etherboot.org>
Mon, 18 Aug 2008 06:14:27 +0000 (07:14 +0100)
committerMichael Brown <mcb30@etherboot.org>
Mon, 18 Aug 2008 06:17:41 +0000 (07:17 +0100)
commit320b072c7a599fe1dab2774f030dd0bedef6f047
tree92ce3d8140cc092230cc0e7a4079500528556159
parent9737095d49ec21d5139b0f08d2f61005bfbf7c6c
[pcbios] Support arbitrary splits of the e820 memory map

Allow for an arbitrary number of splits of the system memory map via
INT 15,e820.

Features of the new map-mangling algorithm include:

  Supports random access to e820 map entries.

  Requires only sequential access support from the underlying e820
  map, even if our caller uses random access.

  Empty regions will always be stripped.

  Always terminates with %ebx=0, even if the underlying map terminates
  with CF=1.

  Allows for an arbitrary number of hidden regions, with underlying
  regions split into as many subregions as necessary.

Total size increase to achieve this is 193 bytes.
src/arch/i386/core/umalloc.c
src/arch/i386/firmware/pcbios/e820mangler.S
src/arch/i386/firmware/pcbios/hidemem.c
src/arch/i386/scripts/i386.lds
src/include/gpxe/hidemem.h