diff options
-rw-r--r-- | src/post.c | 20 | ||||
-rw-r--r-- | src/resume.c | 4 | ||||
-rw-r--r-- | src/util.h | 2 |
3 files changed, 13 insertions, 13 deletions
@@ -37,6 +37,10 @@ ivt_init(void) { dprintf(3, "init ivt\n"); + // Setup reset-vector entry point (controls legacy reboots). + HaveRunPost = 1; + outb_cmos(0, CMOS_RESET_CODE); + // Initialize all vectors to the default handler. int i; for (i=0; i<256; i++) @@ -145,6 +149,12 @@ device_hardware_setup(void) static void platform_hardware_setup(void) { + // Enable CPU caching + setcr0(getcr0() & ~(CR0_CD|CR0_NW)); + + // Make sure legacy DMA isn't running. + dma_setup(); + // Init base pc hardware. pic_setup(); timer_setup(); @@ -305,16 +315,6 @@ reloc_preinit(void *f, void *arg) void VISIBLE32INIT dopost(void) { - // Set reboot flags. - HaveRunPost = 1; - outb_cmos(0, CMOS_RESET_CODE); - - // Enable CPU caching - setcr0(getcr0() & ~(CR0_CD|CR0_NW)); - - // Make sure legacy DMA isn't running. - dma_preinit(); - // Check if we are running under Xen. xen_preinit(); diff --git a/src/resume.c b/src/resume.c index 99265cda..ffc84fca 100644 --- a/src/resume.c +++ b/src/resume.c @@ -19,7 +19,7 @@ int HaveRunPost VAR16VISIBLE; // Reset DMA controller void -dma_preinit(void) +dma_setup(void) { // first reset the DMA controllers outb(0, PORT_DMA1_MASTER_CLEAR); @@ -40,7 +40,7 @@ handle_resume(void) outb_cmos(0, CMOS_RESET_CODE); dprintf(1, "In resume (status=%d)\n", status); - dma_preinit(); + dma_setup(); switch (status) { case 0x01 ... 0x04: @@ -355,7 +355,7 @@ void disable_bootsplash(void); // resume.c extern int HaveRunPost; -void dma_preinit(void); +void dma_setup(void); // pnpbios.c #define PNP_SIGNATURE 0x506e5024 // $PnP |