X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/ce91287c57fa75fe7f4e8613f969fa1c2234aa8f..ba90bd5c498eefa4098c47ecad358c93ef7d259e:/aseg/firstrun.c?ds=sidebyside diff --git a/aseg/firstrun.c b/aseg/firstrun.c index 2ca07e0..d3cd16f 100644 --- a/aseg/firstrun.c +++ b/aseg/firstrun.c @@ -5,6 +5,7 @@ #include #include "vga-overlay.h" #include +#include "../net/net.h" extern int _bss, _bssend; @@ -12,24 +13,6 @@ 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); -int bother_3c905(pci_dev_t *dev) -{ - if (dev->vid == 0x10B7 || dev->did == 0x9200) - { - int bar; - - outputf("Found a 3c905 to bother"); - pci_write16(dev->bus, dev->dev, dev->fn, 0x04, 0x00); - - for (bar = 0; bar < 6; bar++) - if (dev->bars[bar].type != PCI_BAR_NONE) - pci_write32(dev->bus, dev->dev, dev->fn, 0x10 + bar*4, 0); - - return 1; - } - return 0; -} - void __firstrun_start() { unsigned char *bp; smram_state_t smram; @@ -40,6 +23,8 @@ void __firstrun_start() { 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. */ @@ -51,7 +36,7 @@ void __firstrun_start() { /* Turn on the SMIs we want */ smi_disable(); - pci_probe(bother_3c905); + eth_init(); smi_register_handler(SMI_EVENT_FAST_TIMER, timer_handler); smi_enable_event(SMI_EVENT_FAST_TIMER); @@ -64,6 +49,8 @@ void __firstrun_start() { smi_enable(); + vga_flush_imm(1); + smram_restore_state(smram); }