diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/arch/i386/firmware/pcbios/hidemem.c | 9 |
1 files 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 ); |
