Commit Graph

81 Commits (9b01a9fd9cb149a1cee0d16e59e050131aefdabf)

Author SHA1 Message Date
Michael Brown 78dd963c1f Check to see if we've reached the end of the map before attempting to
skip past an empty region, otherwise we end up generating an infinitely
long e820 map.  (Yes, there *are* real systems that provide e820 maps
with a zero-length region at the end...)
2006-08-31 13:25:45 +00:00
Michael Brown 2138db36ca Add "addr32" required explicitly by older gas. 2006-06-12 01:07:43 +00:00
Michael Brown 476d02051f Windows Server 2003 sulks if we feed it an empty region in base memory
as a result of our memory map editing, so strip out any empty regions.
2006-06-09 12:20:03 +00:00
Michael Brown d82f71efd0 Also hide base memory region from E820 map. 2006-05-25 00:10:58 +00:00
Michael Brown f939ff7cb5 Fix printf format warning error 2006-05-25 00:02:27 +00:00
Michael Brown 3bd3c13c7b Why should pushal/popal put the registers on the stack in a logical
order?
2006-05-25 00:01:46 +00:00
Michael Brown dd75965057 Typo. 2006-05-25 00:00:53 +00:00
Michael Brown e4f8d6eed7 Add a "count" field to struct memory_map. 2006-05-25 00:00:30 +00:00
Michael Brown 986f6ffff1 Define a struct memory_map with a fixed number of entries, rather than
requiring each caller to decide how many entries it wants to permit.
2006-05-24 14:41:27 +00:00
Michael Brown 8110f9b082 Updated to REAL_CODE() 2006-05-24 13:50:40 +00:00
Michael Brown e8550035af Updated to REAL_CODE() 2006-05-24 13:28:39 +00:00
Michael Brown c4d688c005 Updated to REAL_CODE(). 2006-05-24 13:24:22 +00:00
Michael Brown 04d6005d77 Update to REAL_CODE() 2006-05-24 12:45:50 +00:00
Michael Brown 53935e9dc6 Set carry flag before calling INT 15,e801 and INT 15,e820.
Ignore carry flag for INT 15,88; the Ralf Brown interrupt list says
that CF is unreliable for this call.
2006-05-24 12:19:16 +00:00
Michael Brown 77a65075a6 Replaced memsizes.c with smaller memmap.c, taking advantage of __data16,
and creating a memory map that's easier to work with than the E820 map.
2006-05-24 01:37:46 +00:00
Michael Brown 5e80847827 Code to install the new E820 mangler (which doesn't require copying
down to base memory, since it is now in the base-memory-resident
.text16 section).
2006-05-23 23:47:05 +00:00
Michael Brown 5ec2b2c251 Cope with regions bigger than 4GB.
We now split e820 regions around ourselves, rather than just
truncating the e820 region.  This avoids the worst-case scenario of
losing all memory over 4GB.

It's more important to get the memory map right now that we're
expecting to still be loaded when the OS starts in several situations
(e.g. Linux with UNDI driver, any OS with iSCSI/AoE boot, etc.).
2006-05-23 23:33:37 +00:00
Michael Brown d822b3d4cd Define BIOS data segment in bios.h 2006-05-13 11:43:07 +00:00
Michael Brown 352bf1bda2 Move init.h to gpxe/init.h. 2006-04-30 01:08:52 +00:00
Michael Brown 832e86246b gcc is rather over-aggressive about optimising out static data structures
even when __atribute__ (( unused )) is correctly set...
2006-04-24 18:31:37 +00:00
Michael Brown 7b423c0988 Fixes for gcc >= 3.2 from Georg Baum 2005-05-23 23:47:54 +00:00
Michael Brown c245ab75ad Moved disk functions to drivers/bus/bios_disks.c 2005-04-18 15:35:39 +00:00
Michael Brown 2c36f5e6c7 Save a few bytes by using naturally-sized ints. 2005-04-18 09:17:27 +00:00
Michael Brown 44c7cc8c12 Standardised debug mechanism in place now. 2005-04-14 11:55:57 +00:00
Michael Brown e44e5c7247 compiler.h is now always included on the command line. 2005-04-14 11:50:26 +00:00
Michael Brown 070f6c0b6b Fixed debug messages 2005-04-10 16:58:19 +00:00
Michael Brown e29e6456b0 Don't zero freed base memory; one block will contain librm. 2005-04-09 16:14:37 +00:00
Michael Brown 48feb91a40 Rewritten in a much saner way, now that we don't have to worry about
continually reallocating the real-mode stack.
2005-04-09 15:01:38 +00:00
Michael Brown fd95189c4d basememsize() updates the BIOS FBMS counter at 40:13. 2005-04-09 14:16:25 +00:00
Michael Brown 0ff80b477d Merged mcb30-realmode-redesign back to HEAD 2005-04-08 15:01:17 +00:00
Michael Brown 3d6123e69a Initial revision 2005-03-08 18:53:11 +00:00