summaryrefslogtreecommitdiff
path: root/os/boot/pc/ether.c
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2008-06-11 14:21:44 +0000
committerCharles.Forsyth <devnull@localhost>2008-06-11 14:21:44 +0000
commit8a8c2d742b51525f66c2210e3c8a251de10022ff (patch)
tree8282ce595e5fbe2e487dc20f54891d9e9e7cbf37 /os/boot/pc/ether.c
parent31a18a6996a6b5927e39cc553696c167e6c88e3d (diff)
20080611-1520
Diffstat (limited to 'os/boot/pc/ether.c')
-rw-r--r--os/boot/pc/ether.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/os/boot/pc/ether.c b/os/boot/pc/ether.c
index c8a4b7de..90bdcb5f 100644
--- a/os/boot/pc/ether.c
+++ b/os/boot/pc/ether.c
@@ -14,6 +14,7 @@ extern int ether2114xreset(Ether*);
extern int elnk3reset(Ether*);
extern int i82557reset(Ether*);
extern int igbepnp(Ether *);
+extern int i82563pnp(Ether *);
extern int elnk3reset(Ether*);
extern int ether589reset(Ether*);
extern int ne2000reset(Ether*);
@@ -24,6 +25,8 @@ extern int rtl8139pnp(Ether*);
extern int rtl8169pnp(Ether*);
extern int ether83815reset(Ether*);
extern int rhinepnp(Ether*);
+extern int ga620pnp(Ether*);
+extern int dp83820pnp(Ether*);
struct {
char *type;
@@ -34,6 +37,8 @@ struct {
{ "2114x", ether2114xreset, 0, },
{ "i82557", i82557reset, 0, },
{ "igbe", igbepnp, 0, },
+ { "i82563",i82563pnp, 0, },
+ { "igbepcie",i82563pnp, 0, },
{ "elnk3", elnk3reset, 0, },
{ "3C509", elnk3reset, 0, },
{ "3C575", elnk3reset, 0, },
@@ -48,6 +53,10 @@ struct {
{ "RTL8169", rtl8169pnp, 0, },
{ "83815", ether83815reset, 0, },
{ "rhine", rhinepnp, 0, },
+ { "vt6102", rhinepnp, 0, },
+ { "GA620", ga620pnp, 0, },
+ { "83820", dp83820pnp, 0, },
+ { "dp83820", dp83820pnp, 0, },
{ 0, }
};
@@ -90,7 +99,7 @@ etherinit(void)
continue;
}
- ctlr->state = 1;
+ ctlr->state = 1; /* card found */
mask |= 1<<ctlrno;
if(ctlr->irq == 2)
ctlr->irq = 9;
@@ -150,8 +159,8 @@ attach(int ctlrno)
return 0;
ctlr = &ether[ctlrno];
- if(ctlr->state == 1){
- ctlr->state = 2;
+ if(ctlr->state == 1){ /* card found? */
+ ctlr->state = 2; /* attaching */
(*ctlr->attach)(ctlr);
}
@@ -167,7 +176,7 @@ xetherdetach(void)
x = splhi();
for(ctlrno = 0; ctlrno < MaxEther; ctlrno++){
ctlr = &ether[ctlrno];
- if(ctlr->detach && ctlr->state != 0)
+ if(ctlr->detach && ctlr->state != 0) /* found | attaching? */
ctlr->detach(ctlr);
}
splx(x);