summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/interface/pcbios/int13.c
diff options
context:
space:
mode:
authorMichael Brown2007-09-21 19:27:51 +0200
committerMichael Brown2007-09-21 19:33:17 +0200
commita7eee64506673a872a820fed4c9fdc8081b46627 (patch)
tree2b8ae048388f08a1f3e402523d4e26ae02031129 /src/arch/i386/interface/pcbios/int13.c
parentMerge branch 'master' of rom.etherboot.org:/pub/scm/gpxe (diff)
downloadipxe-a7eee64506673a872a820fed4c9fdc8081b46627.tar.gz
ipxe-a7eee64506673a872a820fed4c9fdc8081b46627.tar.xz
ipxe-a7eee64506673a872a820fed4c9fdc8081b46627.zip
Added more verbose memory-map debugging.
Added redundant call to get_memmap() in int13_boot() immediately before jumping to boot sector, to assist in debugging.
Diffstat (limited to 'src/arch/i386/interface/pcbios/int13.c')
-rw-r--r--src/arch/i386/interface/pcbios/int13.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/arch/i386/interface/pcbios/int13.c b/src/arch/i386/interface/pcbios/int13.c
index a26dcff4..7e09fb5f 100644
--- a/src/arch/i386/interface/pcbios/int13.c
+++ b/src/arch/i386/interface/pcbios/int13.c
@@ -23,6 +23,7 @@
#include <assert.h>
#include <gpxe/list.h>
#include <gpxe/blockdev.h>
+#include <gpxe/memmap.h>
#include <realmode.h>
#include <bios.h>
#include <biosint.h>
@@ -601,6 +602,7 @@ void unregister_int13_drive ( struct int13_drive *drive ) {
* Note that this function can never return success, by definition.
*/
int int13_boot ( unsigned int drive ) {
+ struct memory_map memmap;
int status, signature;
int discard_c, discard_d;
int rc;
@@ -634,6 +636,13 @@ int int13_boot ( unsigned int drive ) {
return -ENOEXEC;
}
+ /* Dump out memory map prior to boot, if memmap debugging is
+ * enabled. Not required for program flow, but we have so
+ * many problems that turn out to be memory-map related that
+ * it's worth doing.
+ */
+ get_memmap ( &memmap );
+
/* Jump to boot sector */
if ( ( rc = call_bootsector ( 0x0, 0x7c00, drive ) ) != 0 ) {
DBG ( "INT 13 drive %02x boot returned\n", drive );