summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2008-09-07 22:38:19 +0200
committerMichael Brown2008-09-07 22:38:41 +0200
commit18aa0e79d233862f5cbd39853ac062af59c9d47b (patch)
tree90f8703bf94c94e6bcf094a1a9f7819c6058010c
parent[contrib] Bring bochs/qemu READMEs up to date with latest upstream code (diff)
downloadipxe-18aa0e79d233862f5cbd39853ac062af59c9d47b.tar.gz
ipxe-18aa0e79d233862f5cbd39853ac062af59c9d47b.tar.xz
ipxe-18aa0e79d233862f5cbd39853ac062af59c9d47b.zip
[pcbios] Add extra debugging messages relating to the system memory map
-rw-r--r--src/arch/i386/firmware/pcbios/hidemem.c10
-rw-r--r--src/arch/i386/firmware/pcbios/memmap.c11
-rw-r--r--src/image/segment.c2
3 files changed, 19 insertions, 4 deletions
diff --git a/src/arch/i386/firmware/pcbios/hidemem.c b/src/arch/i386/firmware/pcbios/hidemem.c
index fb60fa8b..2e74d3b0 100644
--- a/src/arch/i386/firmware/pcbios/hidemem.c
+++ b/src/arch/i386/firmware/pcbios/hidemem.c
@@ -20,6 +20,7 @@
#include <biosint.h>
#include <basemem.h>
#include <gpxe/init.h>
+#include <gpxe/memmap.h>
#include <gpxe/hidemem.h>
/** Alignment for hidden memory regions */
@@ -121,6 +122,11 @@ void hide_text ( void ) {
* returned by the BIOS.
*/
static void hide_etherboot ( void ) {
+ struct memory_map memmap;
+
+ /* Dump memory map before mangling */
+ DBG ( "Hiding gPXE from system memory map\n" );
+ get_memmap ( &memmap );
/* Initialise the hidden regions */
hide_basemem();
@@ -130,6 +136,10 @@ static void hide_etherboot ( void ) {
/* Hook INT 15 */
hook_bios_interrupt ( 0x15, ( unsigned int ) int15,
&int15_vector );
+
+ /* Dump memory map after mangling */
+ DBG ( "Hidden gPXE from system memory map\n" );
+ get_memmap ( &memmap );
}
/**
diff --git a/src/arch/i386/firmware/pcbios/memmap.c b/src/arch/i386/firmware/pcbios/memmap.c
index 97d4861d..fc0d36ac 100644
--- a/src/arch/i386/firmware/pcbios/memmap.c
+++ b/src/arch/i386/firmware/pcbios/memmap.c
@@ -86,8 +86,9 @@ static unsigned int extmemsize_e801 ( void ) {
}
extmem = ( extmem_1m_to_16m_k + ( extmem_16m_plus_64k * 64 ) );
- DBG ( "INT 15,e801 extended memory size %d+64*%d=%d kB\n",
- extmem_1m_to_16m_k, extmem_16m_plus_64k, extmem );
+ DBG ( "INT 15,e801 extended memory size %d+64*%d=%d kB [100000,%x)\n",
+ extmem_1m_to_16m_k, extmem_16m_plus_64k, extmem,
+ ( 0x100000 + ( extmem * 1024 ) ) );
return extmem;
}
@@ -103,7 +104,8 @@ static unsigned int extmemsize_88 ( void ) {
__asm__ __volatile__ ( REAL_CODE ( "int $0x15" )
: "=a" ( extmem ) : "a" ( 0x8800 ) );
- DBG ( "INT 15,88 extended memory size %d kB\n", extmem );
+ DBG ( "INT 15,88 extended memory size %d kB [100000, %x)\n",
+ extmem, ( 0x100000 + ( extmem * 1024 ) ) );
return extmem;
}
@@ -203,7 +205,8 @@ void get_memmap ( struct memory_map *memmap ) {
/* Get base and extended memory sizes */
basemem = basememsize();
- DBG ( "FBMS base memory size %d kB\n", basemem );
+ DBG ( "FBMS base memory size %d kB [0,%x)\n",
+ basemem, ( basemem * 1024 ) );
extmem = extmemsize();
/* Try INT 15,e820 first */
diff --git a/src/image/segment.c b/src/image/segment.c
index 8deaef79..9bd60f9c 100644
--- a/src/image/segment.c
+++ b/src/image/segment.c
@@ -43,6 +43,8 @@ int prep_segment ( userptr_t segment, size_t filesz, size_t memsz ) {
physaddr_t end = user_to_phys ( segment, memsz );
unsigned int i;
+ DBG ( "Preparing segment [%lx,%lx,%lx)\n", start, mid, end );
+
/* Sanity check */
if ( filesz > memsz ) {
DBG ( "Insane segment [%lx,%lx,%lx)\n", start, mid, end );