From d82f71efd0f4098c8fb5ab1b1c0036e249a22990 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 25 May 2006 00:10:58 +0000 Subject: [PATCH] Also hide base memory region from E820 map. --- src/arch/i386/firmware/pcbios/hidemem.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/arch/i386/firmware/pcbios/hidemem.c b/src/arch/i386/firmware/pcbios/hidemem.c index 6ea5c5bd9..276f9c926 100644 --- a/src/arch/i386/firmware/pcbios/hidemem.c +++ b/src/arch/i386/firmware/pcbios/hidemem.c @@ -50,6 +50,7 @@ extern struct segoff __text16 ( int15_vector ); */ enum { TEXT = 0, + BASEMEM, }; /** @@ -59,6 +60,7 @@ enum { */ struct hidden_region __data16_array ( hidden_regions, [] ) = { [TEXT] = { 0, 0 }, + [BASEMEM] = { 0, ( 640 * 1024 ) }, { 0, 0, } /* Terminator */ }; #define hidden_regions __use_data16 ( hidden_regions ) @@ -72,10 +74,13 @@ struct hidden_region __data16_array ( hidden_regions, [] ) = { void hide_etherboot ( void ) { hidden_regions[TEXT].start = virt_to_phys ( _text ); hidden_regions[TEXT].end = virt_to_phys ( _end ); + hidden_regions[BASEMEM].start = ( rm_cs << 4 ); - DBG ( "Hiding [%lx,%lx)\n", + DBG ( "Hiding [%lx,%lx) and [%lx,%lx)\n", ( unsigned long ) hidden_regions[TEXT].start, - ( unsigned long ) hidden_regions[TEXT].end ); + ( unsigned long ) hidden_regions[TEXT].end, + ( unsigned long ) hidden_regions[BASEMEM].start, + ( unsigned long ) hidden_regions[BASEMEM].end ); hook_bios_interrupt ( 0x15, ( unsigned int ) int15, &int15_vector );