X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/722e5aea4f6704ee7a3e7779c5326c157a98195b..66cd7e8220e0f7dbb0e43f44f6aab60194548ad0:/aseg-paging/firstrun.c?ds=sidebyside diff --git a/aseg-paging/firstrun.c b/aseg-paging/firstrun.c index ca611fa..0233a7c 100644 --- a/aseg-paging/firstrun.c +++ b/aseg-paging/firstrun.c @@ -5,6 +5,7 @@ #include #include "vga-overlay.h" #include +#include #include "../net/net.h" extern int _bss, _bssend; @@ -13,8 +14,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 +35,18 @@ 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"); + + /* Load in fonts. */ + text_init(); smi_register_handler(SMI_EVENT_FAST_TIMER, timer_handler); smi_enable_event(SMI_EVENT_FAST_TIMER);