]> Joshua Wise's Git repositories - netwatch.git/commitdiff
Move 3c905 out to its own file.
authorJoshua Wise <joshua@rebirth.joshuawise.com>
Tue, 30 Sep 2008 22:00:35 +0000 (18:00 -0400)
committerJoshua Wise <joshua@rebirth.joshuawise.com>
Tue, 30 Sep 2008 22:00:35 +0000 (18:00 -0400)
aseg/3c905.c [new file with mode: 0644]
aseg/3c905.h [new file with mode: 0644]
aseg/Makefile
aseg/counter.c
aseg/firstrun.c

diff --git a/aseg/3c905.c b/aseg/3c905.c
new file mode 100644 (file)
index 0000000..82ad695
--- /dev/null
@@ -0,0 +1,36 @@
+#include <pci.h>
+#include <output.h>
+#include "3c905.h"
+
+static int found = 0, _bus, _dev, _fn;
+
+static int bother_3c905(pci_dev_t *dev)
+{
+       if (dev->vid == 0x10B7 || dev->did == 0x9200)
+       {
+               outputf("Found a 3c905 to bother");
+               
+               _bus = dev->bus;
+               _dev = dev->dev;
+               _fn = dev->fn;
+               found = 1;
+               
+               return 1;
+       }
+       return 0;
+}
+
+void eth_poll()
+{
+       if (!found)
+               return;
+               
+       pci_write16(_bus, _dev, _fn, 0x04, 0xFF);
+       
+       pci_write16(_bus, _dev, _fn, 0x04, 0x00);
+}
+
+void eth_init()
+{
+       pci_probe(bother_3c905);
+}
diff --git a/aseg/3c905.h b/aseg/3c905.h
new file mode 100644 (file)
index 0000000..708069b
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef _3C905_H
+#define _3C905_H
+
+extern void eth_init();
+extern void eth_poll();
+
+#endif
index c5f33f4d62a7fdec956cf85f25b1d86146530f53..82836482654c44a016cbc9db8c877ae181632c10 100644 (file)
@@ -1,6 +1,6 @@
 CC=gcc
 CFLAGS=-I../include -I../include/raw -nostdlib -nostdinc -fno-builtin -D__RAW__ -Wall -Werror -pedantic -ansi -std=gnu99
-OBJS=counter.o firstrun.o ../pci/pci-raw.o ../lib/minilib.o ../lib/console.o ../ich2/smram-ich2.o ../ich2/smi.o vga-overlay.o packet.o ../lib/sprintf.o ../lib/doprnt.o ../pci/pci.o
+OBJS=counter.o firstrun.o ../pci/pci-raw.o ../lib/minilib.o ../lib/console.o ../ich2/smram-ich2.o ../ich2/smi.o vga-overlay.o packet.o ../lib/sprintf.o ../lib/doprnt.o ../pci/pci.o 3c905.o
 
 all: aseg.elf
 
index 5c888505b73177cf5362800013b0af86c5f87bd1..eaeec525e7ab11b006ba18c826d0726279791f8c 100644 (file)
@@ -3,6 +3,7 @@
 #include <video_defines.h>
 #include <minilib.h>
 #include <smi.h>
+#include "3c905.h"
 #include "vga-overlay.h"
 #include "packet.h"
 
@@ -100,8 +101,7 @@ void smi_entry(void)
        sprintf(statstr, "15-412! %08x %08x", smi_status(), counter);
        strblit(statstr, 0, 0);
        
-       extern void do_bother();
-       do_bother();
+       eth_poll();
        
        if (inl(0x840) & 0x1000)
        {
index 75bcccc9f85e9966030b19857c558fd9f36c1253..d45bc813336b88bdf28a153c90e1a6b3569fee65 100644 (file)
@@ -5,6 +5,7 @@
 #include <output.h>
 #include "vga-overlay.h"
 #include <smram.h>
+#include "3c905.h"
 
 extern int _bss, _bssend;
 
@@ -12,38 +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);
 
-static int found = 0, _bus, _dev, _fn;
-
-void do_bother()
-{
-       int bar;
-
-       if (!found)
-               return;
-               
-       pci_write16(_bus, _dev, _fn, 0x04, 0x00);
-       for (bar = 0; bar < 6; bar++)
-               pci_write32(_bus, _dev, _fn, 0x10 + bar*4, 0x1FFFFFFF);
-}
-
-int bother_3c905(pci_dev_t *dev)
-{
-       if (dev->vid == 0x10B7 || dev->did == 0x9200)
-       {
-               outputf("Found a 3c905 to bother");
-               
-               _bus = dev->bus;
-               _dev = dev->dev;
-               _fn = dev->fn;
-               found = 1;
-               
-               do_bother();
-               
-               return 1;
-       }
-       return 0;
-}
-
 void __firstrun_start() {
        unsigned char *bp;
        smram_state_t smram;
@@ -65,7 +34,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);
This page took 0.033606 seconds and 4 git commands to generate.