X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/8a677ebb8955dbe1b09e755dbb8343a3b8fdddb1..d3411e0d51c282841fb0137fb3764860c9006002:/aseg/firstrun.c?ds=sidebyside diff --git a/aseg/firstrun.c b/aseg/firstrun.c index ec09a82..d3cd16f 100644 --- a/aseg/firstrun.c +++ b/aseg/firstrun.c @@ -2,13 +2,16 @@ #include #include #include +#include #include "vga-overlay.h" #include +#include "../net/net.h" extern int _bss, _bssend; extern void timer_handler(smi_event_t ev); extern void kbc_handler(smi_event_t ev); +extern void gbl_rls_handler(smi_event_t ev); void __firstrun_start() { unsigned char *bp; @@ -20,7 +23,9 @@ void __firstrun_start() { for (bp = (void *)&_bss; (void *)bp < (void *)&_bssend; bp++) *bp = 0; - dologf("NetWatch running"); + vga_flush_imm(0); + + outputf("NetWatch running"); /* Try really hard to shut up USB_LEGKEY. */ pci_write16(0, 31, 2, 0xC0, pci_read16(0, 31, 2, 0xC0)); @@ -31,14 +36,21 @@ void __firstrun_start() { /* Turn on the SMIs we want */ smi_disable(); + eth_init(); + smi_register_handler(SMI_EVENT_FAST_TIMER, timer_handler); smi_enable_event(SMI_EVENT_FAST_TIMER); smi_register_handler(SMI_EVENT_DEVTRAP_KBC, kbc_handler); smi_enable_event(SMI_EVENT_DEVTRAP_KBC); + + smi_register_handler(SMI_EVENT_GBL_RLS, gbl_rls_handler); + smi_enable_event(SMI_EVENT_GBL_RLS); smi_enable(); + vga_flush_imm(1); + smram_restore_state(smram); }