X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/722e5aea4f6704ee7a3e7779c5326c157a98195b..2a44d50497d0bf670265bd8a2eb5d75cc92ebb08:/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);