X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/8e6328ba94e7dadaef31a6186ba6d4437e1f06b3..2d34b5d2cb94b7976fa40e954bcf060bdb5856c2:/aseg-paging/firstrun.c?ds=sidebyside diff --git a/aseg-paging/firstrun.c b/aseg-paging/firstrun.c index 649583b..48a1ac0 100644 --- a/aseg-paging/firstrun.c +++ b/aseg-paging/firstrun.c @@ -13,19 +13,15 @@ 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; +extern pci_driver_t *drivers[]; + +void smi_init() { smram_state_t smram; + pci_driver_t **driver; smram = smram_save_state(); smram_tseg_set_state(SMRAM_TSEG_OPEN); -/* - for (bp = (void *)&_bss; (void *)bp < (void *)&_bssend; bp++) - *bp = 0; - - vga_flush_imm(0); -*/ - + outputf("NetWatch running"); /* Try really hard to shut up USB_LEGKEY. */ @@ -36,19 +32,27 @@ void __firstrun_start() { /* Turn on the SMIs we want */ smi_disable(); - /* eth_init(); + /* After everything is initialized, load drivers. */ + for (driver = drivers; *driver; driver++) + { + outputf("Probing driver: %s", (*driver)->name); + if (pci_probe_driver(*driver)) + output("Found a card"); + } + outputf("Driver probe complete"); + 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);