X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/5e93b6b390b19dcfe8dbd4bd8bfac37e50bab28f..34a7d0d2f76c71165cc643d5b48061786a83fc87:/aseg-paging/firstrun.c?ds=sidebyside diff --git a/aseg-paging/firstrun.c b/aseg-paging/firstrun.c index ca611fa..48a1ac0 100644 --- a/aseg-paging/firstrun.c +++ b/aseg-paging/firstrun.c @@ -13,8 +13,11 @@ 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); +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); @@ -31,6 +34,15 @@ void smi_init() { 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);