get rid of last ulongs used in the ethernet drivers that are shared between pcpae and pc. also fix probing for etheryuk. Reference: /n/atom/patch/applied/noulong9eth Date: Sun Jan 12 00:01:47 CET 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/9/pc/ether2000.c Sun Jan 12 00:00:50 2014 +++ /sys/src/9/pc/ether2000.c Sun Jan 12 00:00:50 2014 @@ -132,11 +132,10 @@ static int ne2000reset(Ether* edev) { + uchar ea[Eaddrlen]; + int i, port; ushort buf[16]; - ulong port; Dp8390 *dp8390; - int i; - uchar ea[Eaddrlen]; if(edev->port == 0) ne2000pnp(edev); --- /sys/src/9/pc/ether2114x.c Sun Jan 12 00:00:50 2014 +++ /sys/src/9/pc/ether2114x.c Sun Jan 12 00:00:50 2014 @@ -119,7 +119,7 @@ typedef struct Des { int status; int control; - ulong addr; + u32int addr; Block* bp; } Des; @@ -268,7 +268,7 @@ static Ctlr* ctlrtail; #define csr32r(c, r) (inl((c)->port+((r)*8))) -#define csr32w(c, r, l) (outl((c)->port+((r)*8), (ulong)(l))) +#define csr32w(c, r, l) (outl((c)->port+((r)*8), (u32int)(l))) static void promiscuous(void* arg, int on) @@ -586,7 +586,7 @@ * create and post a setup packet to initialise * the physical ethernet address. */ - ctlr->rdr = xspanalloc(ctlr->nrdr*sizeof(Des), 8*sizeof(ulong), 0); + ctlr->rdr = xspanalloc(ctlr->nrdr*sizeof(Des), 8*sizeof(u32int), 0); for(des = ctlr->rdr; des < &ctlr->rdr[ctlr->nrdr]; des++){ des->bp = iallocb(Rbsz); if(des->bp == nil) @@ -599,7 +599,7 @@ ctlr->rdrx = 0; csr32w(ctlr, 3, PCIWADDR(ctlr->rdr)); - ctlr->tdr = xspanalloc(ctlr->ntdr*sizeof(Des), 8*sizeof(ulong), 0); + ctlr->tdr = xspanalloc(ctlr->ntdr*sizeof(Des), 8*sizeof(u32int), 0); ctlr->tdr[ctlr->ntdr-1].control |= Er; ctlr->tdrh = 0; ctlr->tdri = 0; --- /sys/src/9/pc/ether8139.c Sun Jan 12 00:00:50 2014 +++ /sys/src/9/pc/ether8139.c Sun Jan 12 00:00:51 2014 @@ -218,8 +218,8 @@ #define csr16r(c, r) (ins((c)->port+(r))) #define csr32r(c, r) (inl((c)->port+(r))) #define csr8w(c, r, b) (outb((c)->port+(r), (int)(b))) -#define csr16w(c, r, w) (outs((c)->port+(r), (ushort)(w))) -#define csr32w(c, r, l) (outl((c)->port+(r), (ulong)(l))) +#define csr16w(c, r, w) (outs((c)->port+(r), (u16int)(w))) +#define csr32w(c, r, l) (outl((c)->port+(r), (u32int)(l))) static void rtl8139promiscuous(void* arg, int on) @@ -245,11 +245,11 @@ Bytemask = (1<<8) - 1, }; -static ulong +static u32int ethercrcbe(uchar *addr, long len) { int i, j; - ulong c, crc, carry; + u32int c, crc, carry; crc = ~0UL; for (i = 0; i < len; i++) { @@ -265,8 +265,8 @@ return crc; } -static ulong -swabl(ulong l) +static u32int +swab32(u32int l) { return l>>24 | (l>>8) & (Bytemask<<8) | (l<<8) & (Bytemask<<16) | l<<24; @@ -292,8 +292,8 @@ /* pci-e variants reverse the order of the hash byte registers */ if (0 && ctlr->pcie) { - csr32w(ctlr, Mar0, swabl(ctlr->mchash>>32)); - csr32w(ctlr, Mar0+4, swabl(ctlr->mchash)); + csr32w(ctlr, Mar0, swab32(ctlr->mchash>>32)); + csr32w(ctlr, Mar0+4, swab32(ctlr->mchash)); } else { csr32w(ctlr, Mar0, ctlr->mchash); csr32w(ctlr, Mar0+4, ctlr->mchash>>32); @@ -395,7 +395,7 @@ rtl8139init(Ether* edev) { int i; - ulong r; + u32int r; Ctlr *ctlr; uchar *alloc; @@ -415,7 +415,7 @@ /* * Receiver */ - alloc = (uchar*)ROUNDUP((ulong)ctlr->alloc, 32); + alloc = (uchar*)ROUNDUP((uintptr)ctlr->alloc, 32); ctlr->rbstart = alloc; alloc += ctlr->rblen+16; memset(ctlr->rbstart, 0, ctlr->rblen+16); --- /sys/src/9/pc/ether8169.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pc/ether8169.c Sun Jan 12 00:00:51 2014 @@ -521,8 +521,8 @@ nexterror(); } - csr32w(ctlr, Dtccr+4, 0); - csr32w(ctlr, Dtccr, PCIWADDR(ctlr->dtcc)|Cmd); + csr32w(ctlr, Dtccr+4, Pciwaddrh(ctlr->dtcc)); + csr32w(ctlr, Dtccr, Pciwaddrl(ctlr->dtcc)|Cmd); for(timeo = 0; timeo < 1000; timeo++){ if(!(csr32r(ctlr, Dtccr) & Cmd)) break; @@ -651,8 +651,8 @@ break; } ctlr->rb[rdt] = bp; - d->addrlo = PCIWADDR(bp->rp); - d->addrhi = 0; + d->addrlo = Pciwaddrl(bp->rp); + d->addrhi = Pciwaddrh(bp->rp); }else iprint("i8169: rx overrun\n"); coherence(); @@ -801,10 +801,10 @@ */ csr32w(ctlr, Mpc, 0); csr8w(ctlr, Etx, 0x3f); - csr32w(ctlr, Tnpds+4, 0); - csr32w(ctlr, Tnpds, PCIWADDR(ctlr->td)); - csr32w(ctlr, Rdsar+4, 0); - csr32w(ctlr, Rdsar, PCIWADDR(ctlr->rd)); + csr32w(ctlr, Tnpds+4, Pciwaddrh(ctlr->td)); + csr32w(ctlr, Tnpds, Pciwaddrl(ctlr->td)); + csr32w(ctlr, Rdsar+4, Pciwaddrh(ctlr->rd)); + csr32w(ctlr, Rdsar, Pciwaddrl(ctlr->rd)); csr16w(ctlr, Rms, Mtu); /* was Mps; see above comment */ r = csr16r(ctlr, Mulint) & 0xF000; /* no early rx interrupts */ csr16w(ctlr, Mulint, r); @@ -964,8 +964,8 @@ break; d = &ctlr->td[x]; - d->addrlo = PCIWADDR(bp->rp); - d->addrhi = 0; + d->addrlo = Pciwaddrl(bp->rp); + d->addrhi = Pciwaddrh(bp->rp); ctlr->tb[x] = bp; coherence(); d->control |= Own | Fs | Ls | BLEN(bp); --- /sys/src/9/pc/ether82557.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pc/ether82557.c Sun Jan 12 00:00:51 2014 @@ -13,11 +13,12 @@ #include "mem.h" #include "dat.h" #include "fns.h" -#include "io.h" + #include "../port/error.h" #include "../port/netif.h" #include "etherif.h" +#include "io.h" enum { Nrfd = 64, /* receive frame area */ @@ -101,11 +102,11 @@ }; typedef struct Rfd { - int field; - ulong link; - ulong rbd; - ushort count; - ushort size; + u32int field; + u32int link; + u32int rbd; + u16int count; + u16int size; uchar data[1700]; } Rfd; @@ -138,20 +139,20 @@ typedef struct Cb Cb; typedef struct Cb { - ushort status; - ushort command; - ulong link; + u16int status; + u16int command; + u32int link; union { uchar data[24]; /* CbIAS + CbConfigure */ struct { - ulong tbd; - ushort count; + u32int tbd; + u16int count; uchar threshold; uchar number; - ulong tba; - ushort tbasz; - ushort pad; + u32int tba; + u16int tbasz; + u16int pad; }; }; @@ -222,7 +223,7 @@ int cbqmaxhw; Lock dlock; /* dump statistical counters */ - ulong dump[17]; + u32int dump[17]; } Ctlr; static Ctlr* ctlrhead; @@ -232,7 +233,7 @@ 0x16, /* byte count */ 0x08, /* Rx/Tx FIFO limit */ 0x00, /* adaptive IFS */ - 0x00, + 0x00, 0x00, /* Rx DMA maximum byte count */ // 0x80, /* Tx DMA maximum byte count */ 0x00, /* Tx DMA maximum byte count */ @@ -259,8 +260,8 @@ #define csr16r(c, r) (ins((c)->port+(r))) #define csr32r(c, r) (inl((c)->port+(r))) #define csr8w(c, r, b) (outb((c)->port+(r), (int)(b))) -#define csr16w(c, r, w) (outs((c)->port+(r), (ushort)(w))) -#define csr32w(c, r, l) (outl((c)->port+(r), (ulong)(l))) +#define csr16w(c, r, w) (outs((c)->port+(r), (u16int)(w))) +#define csr32w(c, r, l) (outl((c)->port+(r), (u32int)(l))) static void command(Ctlr* ctlr, int c, int v) @@ -323,7 +324,7 @@ } static Block* -rfdalloc(ulong link) +rfdalloc(u32int link) { Block *bp; Rfd *rfd; @@ -405,7 +406,7 @@ char *p; int i, len, phyaddr; Ctlr *ctlr; - ulong dump[17]; + u32int dump[17]; ctlr = ether->ctlr; lock(&ctlr->dlock); @@ -437,22 +438,22 @@ p = malloc(READSTR); if(p == nil) error(Enomem); - len = snprint(p, READSTR, "transmit good frames: %lud\n", dump[0]); - len += snprint(p+len, READSTR-len, "transmit maximum collisions errors: %lud\n", dump[1]); - len += snprint(p+len, READSTR-len, "transmit late collisions errors: %lud\n", dump[2]); - len += snprint(p+len, READSTR-len, "transmit underrun errors: %lud\n", dump[3]); - len += snprint(p+len, READSTR-len, "transmit lost carrier sense: %lud\n", dump[4]); - len += snprint(p+len, READSTR-len, "transmit deferred: %lud\n", dump[5]); - len += snprint(p+len, READSTR-len, "transmit single collisions: %lud\n", dump[6]); - len += snprint(p+len, READSTR-len, "transmit multiple collisions: %lud\n", dump[7]); - len += snprint(p+len, READSTR-len, "transmit total collisions: %lud\n", dump[8]); - len += snprint(p+len, READSTR-len, "receive good frames: %lud\n", dump[9]); - len += snprint(p+len, READSTR-len, "receive CRC errors: %lud\n", dump[10]); - len += snprint(p+len, READSTR-len, "receive alignment errors: %lud\n", dump[11]); - len += snprint(p+len, READSTR-len, "receive resource errors: %lud\n", dump[12]); - len += snprint(p+len, READSTR-len, "receive overrun errors: %lud\n", dump[13]); - len += snprint(p+len, READSTR-len, "receive collision detect errors: %lud\n", dump[14]); - len += snprint(p+len, READSTR-len, "receive short frame errors: %lud\n", dump[15]); + len = snprint(p, READSTR, "transmit good frames: %ud\n", dump[0]); + len += snprint(p+len, READSTR-len, "transmit maximum collisions errors: %ud\n", dump[1]); + len += snprint(p+len, READSTR-len, "transmit late collisions errors: %ud\n", dump[2]); + len += snprint(p+len, READSTR-len, "transmit underrun errors: %ud\n", dump[3]); + len += snprint(p+len, READSTR-len, "transmit lost carrier sense: %ud\n", dump[4]); + len += snprint(p+len, READSTR-len, "transmit deferred: %ud\n", dump[5]); + len += snprint(p+len, READSTR-len, "transmit single collisions: %ud\n", dump[6]); + len += snprint(p+len, READSTR-len, "transmit multiple collisions: %ud\n", dump[7]); + len += snprint(p+len, READSTR-len, "transmit total collisions: %ud\n", dump[8]); + len += snprint(p+len, READSTR-len, "receive good frames: %ud\n", dump[9]); + len += snprint(p+len, READSTR-len, "receive CRC errors: %ud\n", dump[10]); + len += snprint(p+len, READSTR-len, "receive alignment errors: %ud\n", dump[11]); + len += snprint(p+len, READSTR-len, "receive resource errors: %ud\n", dump[12]); + len += snprint(p+len, READSTR-len, "receive overrun errors: %ud\n", dump[13]); + len += snprint(p+len, READSTR-len, "receive collision detect errors: %ud\n", dump[14]); + len += snprint(p+len, READSTR-len, "receive short frame errors: %ud\n", dump[15]); len += snprint(p+len, READSTR-len, "nop: %d\n", ctlr->nop); if(ctlr->cbqmax > ctlr->cbqmaxhw) ctlr->cbqmaxhw = ctlr->cbqmax; @@ -766,7 +767,7 @@ int i; Block *bp; Rfd *rfd; - ulong link; + u32int link; /* * Create the Receive Frame Area (RFA) as a ring of allocated @@ -953,7 +954,7 @@ if(pcigetpms(p) > 0){ pcisetpms(p, 0); - + for(i = 0; i < 6; i++) pcicfgw32(p, PciBAR0+i*4, p->mem[i].bar); pcicfgw8(p, PciINTL, p->intl); @@ -1032,7 +1033,6 @@ { Ctlr *ctlr = ether->ctlr; -print("ether82557 shutting down\n"); csr32w(ctlr, Port, 0); delay(1); csr8w(ctlr, Interrupt, InterruptM); @@ -1043,7 +1043,7 @@ reset(Ether* ether) { int anar, anlpar, bmcr, bmsr, i, k, medium, phyaddr, x; - unsigned short sum; + ushort sum; uchar ea[Eaddrlen]; Ctlr *ctlr; --- /sys/src/9/pc/ether83815.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pc/ether83815.c Sun Jan 12 00:00:51 2014 @@ -38,9 +38,9 @@ #define Rbsz ROUNDUP(sizeof(Etherpkt)+4, 4) typedef struct Des { - ulong next; - int cmdsts; - ulong addr; + u32int next; + u32int cmdsts; + u32int addr; Block* bp; } Des; @@ -130,34 +130,34 @@ int ntq; /* descriptors active */ int ntqmax; - ulong rxa; /* receive statistics */ - ulong rxo; - ulong rlong; - ulong runt; - ulong ise; - ulong crce; - ulong fae; - ulong lbp; - ulong col; - ulong rxsovr; - ulong rxorn; - - ulong txa; /* transmit statistics */ - ulong tfu; - ulong crs; - ulong td; - ulong ed; - ulong owc; - ulong ec; - ulong txurn; - - ulong dperr; /* system errors */ - ulong rmabt; - ulong rtabt; - ulong sserr; - ulong rxsover; + uint rxa; /* receive statistics */ + uint rxo; + uint rlong; + uint runt; + uint ise; + uint crce; + uint fae; + uint lbp; + uint col; + uint rxsovr; + uint rxorn; + + uint txa; /* transmit statistics */ + uint tfu; + uint crs; + uint td; + uint ed; + uint owc; + uint ec; + uint txurn; + + uint dperr; /* system errors */ + uint rmabt; + uint rtabt; + uint sserr; + uint rxsover; - ulong version; /* silicon version; register 0x58h */ + u32int version; /* silicon version; register 0x58h */ } Ctlr; static Ctlr* ctlrhead; @@ -301,9 +301,9 @@ */ #define csr32r(c, r) (inl((c)->port+(r))) -#define csr32w(c, r, l) (outl((c)->port+(r), (ulong)(l))) +#define csr32w(c, r, l) (outl((c)->port+(r), (u32int)(l))) #define csr16r(c, r) (ins((c)->port+(r))) -#define csr16w(c, r, l) (outs((c)->port+(r), (ulong)(l))) +#define csr16w(c, r, l) (outs((c)->port+(r), (u16int)(l))) static void dumpcregs(Ctlr *ctlr) @@ -318,7 +318,7 @@ promiscuous(void* arg, int on) { Ctlr *ctlr; - ulong w; + u32int w; ctlr = ((Ether*)arg)->ctlr; ilock(&ctlr->lock); @@ -363,27 +363,27 @@ p = malloc(READSTR); if(p == nil) error(Enomem); - l = snprint(p, READSTR, "Rxa: %lud\n", ctlr->rxa); - l += snprint(p+l, READSTR-l, "Rxo: %lud\n", ctlr->rxo); - l += snprint(p+l, READSTR-l, "Rlong: %lud\n", ctlr->rlong); - l += snprint(p+l, READSTR-l, "Runt: %lud\n", ctlr->runt); - l += snprint(p+l, READSTR-l, "Ise: %lud\n", ctlr->ise); - l += snprint(p+l, READSTR-l, "Fae: %lud\n", ctlr->fae); - l += snprint(p+l, READSTR-l, "Lbp: %lud\n", ctlr->lbp); - l += snprint(p+l, READSTR-l, "Tfu: %lud\n", ctlr->tfu); - l += snprint(p+l, READSTR-l, "Txa: %lud\n", ctlr->txa); - l += snprint(p+l, READSTR-l, "CRC Error: %lud\n", ctlr->crce); - l += snprint(p+l, READSTR-l, "Collision Seen: %lud\n", ctlr->col); - l += snprint(p+l, READSTR-l, "Frame Too Long: %lud\n", ctlr->rlong); - l += snprint(p+l, READSTR-l, "Runt Frame: %lud\n", ctlr->runt); - l += snprint(p+l, READSTR-l, "Rx Underflow Error: %lud\n", ctlr->rxorn); - l += snprint(p+l, READSTR-l, "Tx Underrun: %lud\n", ctlr->txurn); - l += snprint(p+l, READSTR-l, "Excessive Collisions: %lud\n", ctlr->ec); - l += snprint(p+l, READSTR-l, "Late Collision: %lud\n", ctlr->owc); - l += snprint(p+l, READSTR-l, "Loss of Carrier: %lud\n", ctlr->crs); - l += snprint(p+l, READSTR-l, "Parity: %lud\n", ctlr->dperr); - l += snprint(p+l, READSTR-l, "Aborts: %lud\n", ctlr->rmabt+ctlr->rtabt); - l += snprint(p+l, READSTR-l, "RX Status overrun: %lud\n", ctlr->rxsover); + l = snprint(p, READSTR, "Rxa: %ud\n", ctlr->rxa); + l += snprint(p+l, READSTR-l, "Rxo: %ud\n", ctlr->rxo); + l += snprint(p+l, READSTR-l, "Rlong: %ud\n", ctlr->rlong); + l += snprint(p+l, READSTR-l, "Runt: %ud\n", ctlr->runt); + l += snprint(p+l, READSTR-l, "Ise: %ud\n", ctlr->ise); + l += snprint(p+l, READSTR-l, "Fae: %ud\n", ctlr->fae); + l += snprint(p+l, READSTR-l, "Lbp: %ud\n", ctlr->lbp); + l += snprint(p+l, READSTR-l, "Tfu: %ud\n", ctlr->tfu); + l += snprint(p+l, READSTR-l, "Txa: %ud\n", ctlr->txa); + l += snprint(p+l, READSTR-l, "CRC Error: %ud\n", ctlr->crce); + l += snprint(p+l, READSTR-l, "Collision Seen: %ud\n", ctlr->col); + l += snprint(p+l, READSTR-l, "Frame Too Long: %ud\n", ctlr->rlong); + l += snprint(p+l, READSTR-l, "Runt Frame: %ud\n", ctlr->runt); + l += snprint(p+l, READSTR-l, "Rx Underflow Error: %ud\n", ctlr->rxorn); + l += snprint(p+l, READSTR-l, "Tx Underrun: %ud\n", ctlr->txurn); + l += snprint(p+l, READSTR-l, "Excessive Collisions: %ud\n", ctlr->ec); + l += snprint(p+l, READSTR-l, "Late Collision: %ud\n", ctlr->owc); + l += snprint(p+l, READSTR-l, "Loss of Carrier: %ud\n", ctlr->crs); + l += snprint(p+l, READSTR-l, "Parity: %ud\n", ctlr->dperr); + l += snprint(p+l, READSTR-l, "Aborts: %ud\n", ctlr->rmabt+ctlr->rtabt); + l += snprint(p+l, READSTR-l, "RX Status overrun: %ud\n", ctlr->rxsover); snprint(p+l, READSTR-l, "ntqmax: %d\n", ctlr->ntqmax); ctlr->ntqmax = 0; buf = a; @@ -455,7 +455,7 @@ static void txrxcfg(Ctlr *ctlr, int txdrth) { - ulong rx, tx; + u32int rx, tx; rx = csr32r(ctlr, Rrxcfg); tx = csr32r(ctlr, Rtxcfg); @@ -837,7 +837,7 @@ media(Ether* ether) { Ctlr* ctlr; - ulong cfg; + u32int cfg; ctlr = ether->ctlr; cfg = csr32r(ctlr, Rcfg); @@ -859,7 +859,7 @@ }; static int -is630(ulong id, Pcidev *p) +is630(u32int id, Pcidev *p) { if(id == SiS900) switch (p->rid) { @@ -885,7 +885,7 @@ { int i; unsigned reg; - ulong port; + int port; Pcidev *p; debug("ns83815: SiS 630 rev. %ux reading mac address from cmos\n", ctlr->pcidev->rid); @@ -896,7 +896,7 @@ return 0; } port = p->mem[0].bar & ~0x01; - debug("ns83815: SiS 630 rev. %ux reading mac addr from cmos via bridge at port 0x%lux\n", ctlr->pcidev->rid, port); + debug("ns83815: SiS 630 rev. %ux reading mac addr from cmos via bridge at port %#ux\n", ctlr->pcidev->rid, port); reg = pcicfgr8(p, MagicReg); pcicfgw8(p, MagicReg, reg|Magicrden); @@ -1005,14 +1005,14 @@ nssrom(Ctlr* ctlr) { int i, ns403; - ulong vers; + u32int vers; ushort (*ee)(Ctlr*, int); vers = ctlr->version; ns403 = vers == Nat83815avng || vers == Nat83816avng; if(ns403){ ee = søkrisee; - print("soekris %lx\n", vers); + print("soekris %x\n", vers); }else ee = eegetw; @@ -1048,7 +1048,7 @@ { Ctlr *ctlr; Pcidev *p; - ulong id; + u32int id; p = nil; while(p = pcimatch(p, 0, 0)){ @@ -1105,7 +1105,7 @@ { Ctlr *ctlr; int i, x; - ulong ctladdr; + u32int ctladdr; uchar ea[Eaddrlen]; static int scandone; --- /sys/src/9/pc/ether8390.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pc/ether8390.c Sun Jan 12 00:00:51 2014 @@ -195,7 +195,7 @@ } static void* -_dp8390read(Dp8390* ctlr, void* to, ulong from, ulong len) +_dp8390read(Dp8390* ctlr, void* to, uint from, uint len) { uchar cr; int timo; @@ -242,7 +242,7 @@ } void* -dp8390read(Dp8390* ctlr, void* to, ulong from, ulong len) +dp8390read(Dp8390* ctlr, void* to, uint from, uint len) { void *v; @@ -254,9 +254,9 @@ } static void* -dp8390write(Dp8390* ctlr, ulong to, void* from, ulong len) +dp8390write(Dp8390* ctlr, uint to, void* from, uint len) { - ulong crda; + uint crda; uchar cr; int timo, width; @@ -309,7 +309,7 @@ crda = regr(ctlr, Crda0); crda |= regr(ctlr, Crda1)<<8; if(crda != to) - panic("crda write %lud to %lud", crda, to); + panic("crda write %ud to %ud", crda, to); break; } @@ -370,14 +370,14 @@ Dp8390 *ctlr; uchar curr, *p; Hdr hdr; - ulong count, data, len; + uint count, data, len; Block *bp; ctlr = ether->ctlr; for(curr = getcurr(ctlr); ctlr->nxtpkt != curr; curr = getcurr(ctlr)){ data = ctlr->nxtpkt*Dp8390BufSz; if(ctlr->ram) - memmove(&hdr, (void*)(ether->mem+data), sizeof(Hdr)); + memmove(&hdr, UINT2PTR(ether->mem+data), sizeof(Hdr)); else _dp8390read(ctlr, &hdr, data, sizeof(Hdr)); @@ -400,7 +400,7 @@ */ if(hdr.next < ctlr->pstart || hdr.next >= ctlr->pstop || len < 60 || len > sizeof(Etherpkt)){ - print("dp8390: H%2.2ux+%2.2ux+%2.2ux+%2.2ux,%lud\n", + print("dp8390: H%2.2ux+%2.2ux+%2.2ux+%2.2ux,%ud\n", hdr.status, hdr.next, hdr.len0, hdr.len1, len); regw(ctlr, Cr, Page0|RdABORT|Stp); ringinit(ctlr); @@ -422,7 +422,7 @@ if((data+len) >= ctlr->pstop*Dp8390BufSz){ count = ctlr->pstop*Dp8390BufSz - data; if(ctlr->ram) - memmove(p, (void*)(ether->mem+data), count); + memmove(p, UINT2PTR(ether->mem+data), count); else _dp8390read(ctlr, p, data, count); p += count; @@ -431,7 +431,7 @@ } if(len){ if(ctlr->ram) - memmove(p, (void*)(ether->mem+data), len); + memmove(p, UINT2PTR(ether->mem+data), len); else _dp8390read(ctlr, p, data, len); } @@ -679,7 +679,7 @@ Ether *ether; Dp8390 *ctlr; int i; - ulong h; + u32int h; ether = arg; ctlr = ether->ctlr; --- /sys/src/9/pc/ether8390.h Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pc/ether8390.h Sun Jan 12 00:00:51 2014 @@ -27,7 +27,7 @@ #define Dp8390BufSz 256 extern int dp8390reset(Ether*); -extern void *dp8390read(Dp8390*, void*, ulong, ulong); +extern void *dp8390read(Dp8390*, void*, uint, uint); extern void dp8390getea(Ether*, uchar*); extern void dp8390setea(Ether*); --- /sys/src/9/pc/etherelnk3.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pc/etherelnk3.c Sun Jan 12 00:00:51 2014 @@ -364,10 +364,10 @@ */ typedef struct Pd Pd; typedef struct Pd { - ulong np; /* next pointer */ - ulong control; /* FSH or UpPktStatus */ - ulong addr; - ulong len; + u32int np; /* next pointer */ + u32int control; /* FSH or UpPktStatus */ + u32int addr; + u32int len; Pd* next; Block* bp; @@ -411,13 +411,13 @@ int upqmax; int upqmaxhw; - ulong upinterrupts; - ulong upqueued; - ulong upstalls; + uint upinterrupts; + uint upqueued; + uint upstalls; int dnqmax; int dnqmaxhw; - ulong dninterrupts; - ulong dnqueued; + uint dninterrupts; + uint dnqueued; int xcvr; /* transceiver type */ int eepromcmd; /* EEPROM read command */ @@ -446,7 +446,7 @@ * make sure each entry is 8-byte aligned. */ ctlr->upbase = malloc((ctlr->nup+1)*sizeof(Pd)); - ctlr->upr = (Pd*)ROUNDUP((ulong)ctlr->upbase, 8); + ctlr->upr = (Pd*)ROUNDUP((uintptr)ctlr->upbase, 8); prev = ctlr->upr; for(pd = &ctlr->upr[ctlr->nup-1]; pd >= ctlr->upr; pd--){ @@ -465,7 +465,7 @@ ctlr->uphead = ctlr->upr; ctlr->dnbase = malloc((ctlr->ndn+1)*sizeof(Pd)); - ctlr->dnr = (Pd*)ROUNDUP((ulong)ctlr->dnbase, 8); + ctlr->dnr = (Pd*)ROUNDUP((uintptr)ctlr->dnbase, 8); prev = ctlr->dnr; for(pd = &ctlr->dnr[ctlr->ndn-1]; pd >= ctlr->dnr; pd--){ @@ -481,14 +481,14 @@ rbpalloc(Block* (*f)(int)) { Block *bp; - ulong addr; + uintptr addr; /* * The receive buffers must be on a 32-byte * boundary for EISA busmastering. */ if(bp = f(ROUNDUP(sizeof(Etherpkt), 4) + 31)){ - addr = (ulong)bp->base; + addr = (uintptr)bp->base; addr = ROUNDUP(addr, 32); bp->rp = (uchar*)addr; } @@ -497,7 +497,7 @@ } static uchar* -startdma(Ether* ether, ulong address) +startdma(Ether* ether, uintmem address) { int port, status, w; uchar *wp; @@ -510,7 +510,7 @@ wp = KADDR(inl(port+MasterAddress)); status = ins(port+MasterStatus); if(status & (masterInProgress|targetAbort|masterAbort)) - print("#l%d: BM status 0x%uX\n", ether->ctlrno, status); + print("#l%d: BM status %#ux\n", ether->ctlrno, status); outs(port+MasterStatus, masterMask); outl(port+MasterAddress, address); outs(port+MasterLen, sizeof(Etherpkt)); @@ -1002,7 +1002,7 @@ return; } - print("#l%d: status 0x%uX, diag 0x%uX\n", + print("#l%d: status %#ux, diag %#ux\n", ether->ctlrno, status, x); if(x & txOverrun){ @@ -1102,7 +1102,7 @@ } if(s & ~(txStatusComplete|maxCollisions)) - print("#l%d: txstatus 0x%uX, threshold %d\n", + print("#l%d: txstatus %#ux, threshold %d\n", ether->ctlrno, s, ctlr->txthreshold); COMMAND(port, TxEnable, 0); ether->oerrs++; @@ -1205,7 +1205,7 @@ if(ctlr->upenabled){ if(ctlr->upqmax > ctlr->upqmaxhw) ctlr->upqmaxhw = ctlr->upqmax; - len += snprint(p+len, READSTR-len, "up: q %lud i %lud m %d h %d s %lud\n", + len += snprint(p+len, READSTR-len, "up: q %ud i %ud m %d h %d s %ud\n", ctlr->upqueued, ctlr->upinterrupts, ctlr->upqmax, ctlr->upqmaxhw, ctlr->upstalls); ctlr->upqmax = 0; @@ -1213,7 +1213,7 @@ if(ctlr->dnenabled){ if(ctlr->dnqmax > ctlr->dnqmaxhw) ctlr->dnqmaxhw = ctlr->dnqmax; - len += snprint(p+len, READSTR-len, "dn: q %lud i %lud m %d h %d\n", + len += snprint(p+len, READSTR-len, "dn: q %ud i %ud m %d h %d\n", ctlr->dnqueued, ctlr->dninterrupts, ctlr->dnqmax, ctlr->dnqmaxhw); ctlr->dnqmax = 0; } @@ -1306,7 +1306,7 @@ } } -static ulong +static int activate(void) { int i; @@ -1365,7 +1365,7 @@ */ while(port = activate()){ if(ioalloc(port, 0x10, 0, "tcm509isa") < 0){ - print("tcm509isa: port 0x%uX in use\n", port); + print("tcm509isa: port %#ux in use\n", port); continue; } @@ -1427,7 +1427,7 @@ for(slot = 1; slot < MaxEISA; slot++){ port = slot*0x1000; if(ioalloc(port, 0x1000, 0, "tcm5XXeisa") < 0){ - print("tcm5XXeisa: port 0x%uX in use\n", port); + print("tcm5XXeisa: port %#ux in use\n", port); continue; } if(ins(port+0xC80+ManufacturerID) != 0x6D50){ @@ -1471,7 +1471,7 @@ port = p->mem[0].bar & ~0x01; if((port = ioalloc((port == 0)? -1: port, p->mem[0].size, 0, "tcm59Xpci")) < 0){ - print("tcm59Xpci: port 0x%uX in use\n", port); + print("tcm59Xpci: port %#ux in use\n", port); continue; } irq = p->intl; @@ -1640,7 +1640,7 @@ continue; x <<= 6; x |= miir(port, i, 3)>>10; - XCVRDEBUG("phy%d: oui %uX reg1 %uX\n", i, x, miir(port, i, 1)); + XCVRDEBUG("phy%d: oui %ux reg1 %ux\n", i, x, miir(port, i, 1)); USED(x); return i; @@ -1688,13 +1688,13 @@ COMMAND(port, SelectRegisterWindow, Wfifo); media = ins(port+ResetOptions); } - XCVRDEBUG("autoselect: media %uX\n", media); + XCVRDEBUG("autoselect: media %ux\n", media); if(media & miiConnector) return xcvrMii; COMMAND(port, SelectRegisterWindow, Wdiagnostic); - XCVRDEBUG("autoselect: media status %uX\n", ins(port+MediaStatus)); + XCVRDEBUG("autoselect: media status %ux\n", ins(port+MediaStatus)); if(media & baseTXAvailable){ /* @@ -1720,7 +1720,7 @@ outs(port+MediaStatus, linkBeatEnable|jabberGuardEnable|x); delay(100); - XCVRDEBUG("autoselect: 10BaseT media status %uX\n", ins(port+MediaStatus)); + XCVRDEBUG("autoselect: 10BaseT media status %ux\n", ins(port+MediaStatus)); if(ins(port+MediaStatus) & linkBeatDetect) return xcvr10BaseT; outs(port+MediaStatus, x); @@ -1755,7 +1755,7 @@ txrxreset(port); x = ins(port+ResetOp905B); - XCVRDEBUG("905[BC] reset ops 0x%uX\n", x); + XCVRDEBUG("905[BC] reset ops %#ux\n", x); x &= ~0x4010; if(ctlr->did == 0x5157){ x |= 0x0010; /* Invert LED */ @@ -1899,7 +1899,7 @@ * busmastering can be used. Due to bugs in the first revision * of the 3C59[05], don't use busmastering at 10Mbps. */ - XCVRDEBUG("reset: xcvr %uX\n", ctlr->xcvr); + XCVRDEBUG("reset: xcvr %ux\n", ctlr->xcvr); /* * Allow user to specify desired media in plan9.ini @@ -1933,7 +1933,7 @@ resetctlr(ctlr); break; } - XCVRDEBUG("xcvr selected: %uX, did 0x%uX\n", ctlr->xcvr, ctlr->did); + XCVRDEBUG("xcvr selected: %ux, did %#ux\n", ctlr->xcvr, ctlr->did); switch(ctlr->xcvr){ case xcvrMii: @@ -1947,24 +1947,24 @@ else phyaddr = 24; for(i = 0; i < 7; i++) - XCVRDEBUG(" %2.2uX", miir(port, phyaddr, i)); + XCVRDEBUG(" %.2ux", miir(port, phyaddr, i)); XCVRDEBUG("\n"); for(timeo = 0; timeo < 30; timeo++){ phystat = miir(port, phyaddr, 0x01); if(phystat & 0x20) break; - XCVRDEBUG(" %2.2uX", phystat); + XCVRDEBUG(" %.2ux", phystat); delay(100); } - XCVRDEBUG(" %2.2uX", miir(port, phyaddr, 0x01)); + XCVRDEBUG(" %.2ux", miir(port, phyaddr, 0x01)); XCVRDEBUG("\n"); anar = miir(port, phyaddr, 0x04); anlpar = miir(port, phyaddr, 0x05) & 0x03E0; anar &= anlpar; miir(port, phyaddr, 0x00); - XCVRDEBUG("mii an: %uX anlp: %uX r0:%uX r1:%uX\n", + XCVRDEBUG("mii an: %ux anlp: %ux r0:%ux r1:%ux\n", anar, anlpar, miir(port, phyaddr, 0x00), miir(port, phyaddr, 0x01)); for(i = 0; i < ether->nopt; i++){ @@ -1975,7 +1975,7 @@ else if(cistrcmp(ether->opt[i], "force100") == 0) anar |= 0x0080; } - XCVRDEBUG("mii anar: %uX\n", anar); + XCVRDEBUG("mii anar: %ux\n", anar); if(anar & 0x0100){ /* 100BASE-TXFD */ ether->mbps = 100; setfullduplex(port); --- /sys/src/9/pc/etheryuk.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pc/etheryuk.c Sun Jan 12 00:00:51 2014 @@ -677,8 +677,8 @@ uchar portno; uintmem io; uchar *reg8; - ushort *reg16; - uint *reg; + u16int *reg16; + u32int *reg; uint rbsz; uchar ra[Eaddrlen]; uint mca; @@ -2195,7 +2195,6 @@ Pcidev *p; p = c->p; - c->io = p->mem[0].bar & ~(uintmem)0xf; mem = vmap(c->io, p->mem[0].size); if(mem == nil){ print("yuk: cant map %#P\n", c->io); @@ -2271,6 +2270,7 @@ } c = malloc(sizeof *c); c->p = p; + c->io = p->mem[0].bar & ~(uintmem)0xf; c->qno = nctlr; rbtab[c->qno].k = &c->rxmit; c->rbsz = vtab[i].mtu; @@ -2292,7 +2292,7 @@ c = ctlrtab[i]; if(c == nil || c->flag&Fprobe) continue; - if(e->port != 0 && e->port != (ulong)c->reg) + if(ethercfgmatch(e, c->p, c->io) != 0) continue; c->flag |= Fprobe; if(setup(c) != 0) --- /sys/src/9/pcpae/ether2000.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pcpae/ether2000.c Sun Jan 12 00:00:51 2014 @@ -132,11 +132,10 @@ static int ne2000reset(Ether* edev) { + uchar ea[Eaddrlen]; + int i, port; ushort buf[16]; - ulong port; Dp8390 *dp8390; - int i; - uchar ea[Eaddrlen]; if(edev->port == 0) ne2000pnp(edev); --- /sys/src/9/pcpae/ether2114x.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pcpae/ether2114x.c Sun Jan 12 00:00:51 2014 @@ -119,7 +119,7 @@ typedef struct Des { int status; int control; - ulong addr; + u32int addr; Block* bp; } Des; @@ -268,7 +268,7 @@ static Ctlr* ctlrtail; #define csr32r(c, r) (inl((c)->port+((r)*8))) -#define csr32w(c, r, l) (outl((c)->port+((r)*8), (ulong)(l))) +#define csr32w(c, r, l) (outl((c)->port+((r)*8), (u32int)(l))) static void promiscuous(void* arg, int on) @@ -586,7 +586,7 @@ * create and post a setup packet to initialise * the physical ethernet address. */ - ctlr->rdr = xspanalloc(ctlr->nrdr*sizeof(Des), 8*sizeof(ulong), 0); + ctlr->rdr = xspanalloc(ctlr->nrdr*sizeof(Des), 8*sizeof(u32int), 0); for(des = ctlr->rdr; des < &ctlr->rdr[ctlr->nrdr]; des++){ des->bp = iallocb(Rbsz); if(des->bp == nil) @@ -599,7 +599,7 @@ ctlr->rdrx = 0; csr32w(ctlr, 3, PCIWADDR(ctlr->rdr)); - ctlr->tdr = xspanalloc(ctlr->ntdr*sizeof(Des), 8*sizeof(ulong), 0); + ctlr->tdr = xspanalloc(ctlr->ntdr*sizeof(Des), 8*sizeof(u32int), 0); ctlr->tdr[ctlr->ntdr-1].control |= Er; ctlr->tdrh = 0; ctlr->tdri = 0; --- /sys/src/9/pcpae/ether8139.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pcpae/ether8139.c Sun Jan 12 00:00:51 2014 @@ -218,8 +218,8 @@ #define csr16r(c, r) (ins((c)->port+(r))) #define csr32r(c, r) (inl((c)->port+(r))) #define csr8w(c, r, b) (outb((c)->port+(r), (int)(b))) -#define csr16w(c, r, w) (outs((c)->port+(r), (ushort)(w))) -#define csr32w(c, r, l) (outl((c)->port+(r), (ulong)(l))) +#define csr16w(c, r, w) (outs((c)->port+(r), (u16int)(w))) +#define csr32w(c, r, l) (outl((c)->port+(r), (u32int)(l))) static void rtl8139promiscuous(void* arg, int on) @@ -245,11 +245,11 @@ Bytemask = (1<<8) - 1, }; -static ulong +static u32int ethercrcbe(uchar *addr, long len) { int i, j; - ulong c, crc, carry; + u32int c, crc, carry; crc = ~0UL; for (i = 0; i < len; i++) { @@ -265,8 +265,8 @@ return crc; } -static ulong -swabl(ulong l) +static u32int +swab32(u32int l) { return l>>24 | (l>>8) & (Bytemask<<8) | (l<<8) & (Bytemask<<16) | l<<24; @@ -292,8 +292,8 @@ /* pci-e variants reverse the order of the hash byte registers */ if (0 && ctlr->pcie) { - csr32w(ctlr, Mar0, swabl(ctlr->mchash>>32)); - csr32w(ctlr, Mar0+4, swabl(ctlr->mchash)); + csr32w(ctlr, Mar0, swab32(ctlr->mchash>>32)); + csr32w(ctlr, Mar0+4, swab32(ctlr->mchash)); } else { csr32w(ctlr, Mar0, ctlr->mchash); csr32w(ctlr, Mar0+4, ctlr->mchash>>32); @@ -395,7 +395,7 @@ rtl8139init(Ether* edev) { int i; - ulong r; + u32int r; Ctlr *ctlr; uchar *alloc; @@ -415,7 +415,7 @@ /* * Receiver */ - alloc = (uchar*)ROUNDUP((ulong)ctlr->alloc, 32); + alloc = (uchar*)ROUNDUP((uintptr)ctlr->alloc, 32); ctlr->rbstart = alloc; alloc += ctlr->rblen+16; memset(ctlr->rbstart, 0, ctlr->rblen+16); --- /sys/src/9/pcpae/ether8169.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pcpae/ether8169.c Sun Jan 12 00:00:51 2014 @@ -521,8 +521,8 @@ nexterror(); } - csr32w(ctlr, Dtccr+4, 0); - csr32w(ctlr, Dtccr, PCIWADDR(ctlr->dtcc)|Cmd); + csr32w(ctlr, Dtccr+4, Pciwaddrh(ctlr->dtcc)); + csr32w(ctlr, Dtccr, Pciwaddrl(ctlr->dtcc)|Cmd); for(timeo = 0; timeo < 1000; timeo++){ if(!(csr32r(ctlr, Dtccr) & Cmd)) break; @@ -651,8 +651,8 @@ break; } ctlr->rb[rdt] = bp; - d->addrlo = PCIWADDR(bp->rp); - d->addrhi = 0; + d->addrlo = Pciwaddrl(bp->rp); + d->addrhi = Pciwaddrh(bp->rp); }else iprint("i8169: rx overrun\n"); coherence(); @@ -801,10 +801,10 @@ */ csr32w(ctlr, Mpc, 0); csr8w(ctlr, Etx, 0x3f); - csr32w(ctlr, Tnpds+4, 0); - csr32w(ctlr, Tnpds, PCIWADDR(ctlr->td)); - csr32w(ctlr, Rdsar+4, 0); - csr32w(ctlr, Rdsar, PCIWADDR(ctlr->rd)); + csr32w(ctlr, Tnpds+4, Pciwaddrh(ctlr->td)); + csr32w(ctlr, Tnpds, Pciwaddrl(ctlr->td)); + csr32w(ctlr, Rdsar+4, Pciwaddrh(ctlr->rd)); + csr32w(ctlr, Rdsar, Pciwaddrl(ctlr->rd)); csr16w(ctlr, Rms, Mtu); /* was Mps; see above comment */ r = csr16r(ctlr, Mulint) & 0xF000; /* no early rx interrupts */ csr16w(ctlr, Mulint, r); @@ -964,8 +964,8 @@ break; d = &ctlr->td[x]; - d->addrlo = PCIWADDR(bp->rp); - d->addrhi = 0; + d->addrlo = Pciwaddrl(bp->rp); + d->addrhi = Pciwaddrh(bp->rp); ctlr->tb[x] = bp; coherence(); d->control |= Own | Fs | Ls | BLEN(bp); --- /sys/src/9/pcpae/ether82557.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pcpae/ether82557.c Sun Jan 12 00:00:51 2014 @@ -13,11 +13,12 @@ #include "mem.h" #include "dat.h" #include "fns.h" -#include "io.h" + #include "../port/error.h" #include "../port/netif.h" #include "etherif.h" +#include "io.h" enum { Nrfd = 64, /* receive frame area */ @@ -101,11 +102,11 @@ }; typedef struct Rfd { - int field; - ulong link; - ulong rbd; - ushort count; - ushort size; + u32int field; + u32int link; + u32int rbd; + u16int count; + u16int size; uchar data[1700]; } Rfd; @@ -138,20 +139,20 @@ typedef struct Cb Cb; typedef struct Cb { - ushort status; - ushort command; - ulong link; + u16int status; + u16int command; + u32int link; union { uchar data[24]; /* CbIAS + CbConfigure */ struct { - ulong tbd; - ushort count; + u32int tbd; + u16int count; uchar threshold; uchar number; - ulong tba; - ushort tbasz; - ushort pad; + u32int tba; + u16int tbasz; + u16int pad; }; }; @@ -222,7 +223,7 @@ int cbqmaxhw; Lock dlock; /* dump statistical counters */ - ulong dump[17]; + u32int dump[17]; } Ctlr; static Ctlr* ctlrhead; @@ -232,7 +233,7 @@ 0x16, /* byte count */ 0x08, /* Rx/Tx FIFO limit */ 0x00, /* adaptive IFS */ - 0x00, + 0x00, 0x00, /* Rx DMA maximum byte count */ // 0x80, /* Tx DMA maximum byte count */ 0x00, /* Tx DMA maximum byte count */ @@ -259,8 +260,8 @@ #define csr16r(c, r) (ins((c)->port+(r))) #define csr32r(c, r) (inl((c)->port+(r))) #define csr8w(c, r, b) (outb((c)->port+(r), (int)(b))) -#define csr16w(c, r, w) (outs((c)->port+(r), (ushort)(w))) -#define csr32w(c, r, l) (outl((c)->port+(r), (ulong)(l))) +#define csr16w(c, r, w) (outs((c)->port+(r), (u16int)(w))) +#define csr32w(c, r, l) (outl((c)->port+(r), (u32int)(l))) static void command(Ctlr* ctlr, int c, int v) @@ -323,7 +324,7 @@ } static Block* -rfdalloc(ulong link) +rfdalloc(u32int link) { Block *bp; Rfd *rfd; @@ -405,7 +406,7 @@ char *p; int i, len, phyaddr; Ctlr *ctlr; - ulong dump[17]; + u32int dump[17]; ctlr = ether->ctlr; lock(&ctlr->dlock); @@ -437,22 +438,22 @@ p = malloc(READSTR); if(p == nil) error(Enomem); - len = snprint(p, READSTR, "transmit good frames: %lud\n", dump[0]); - len += snprint(p+len, READSTR-len, "transmit maximum collisions errors: %lud\n", dump[1]); - len += snprint(p+len, READSTR-len, "transmit late collisions errors: %lud\n", dump[2]); - len += snprint(p+len, READSTR-len, "transmit underrun errors: %lud\n", dump[3]); - len += snprint(p+len, READSTR-len, "transmit lost carrier sense: %lud\n", dump[4]); - len += snprint(p+len, READSTR-len, "transmit deferred: %lud\n", dump[5]); - len += snprint(p+len, READSTR-len, "transmit single collisions: %lud\n", dump[6]); - len += snprint(p+len, READSTR-len, "transmit multiple collisions: %lud\n", dump[7]); - len += snprint(p+len, READSTR-len, "transmit total collisions: %lud\n", dump[8]); - len += snprint(p+len, READSTR-len, "receive good frames: %lud\n", dump[9]); - len += snprint(p+len, READSTR-len, "receive CRC errors: %lud\n", dump[10]); - len += snprint(p+len, READSTR-len, "receive alignment errors: %lud\n", dump[11]); - len += snprint(p+len, READSTR-len, "receive resource errors: %lud\n", dump[12]); - len += snprint(p+len, READSTR-len, "receive overrun errors: %lud\n", dump[13]); - len += snprint(p+len, READSTR-len, "receive collision detect errors: %lud\n", dump[14]); - len += snprint(p+len, READSTR-len, "receive short frame errors: %lud\n", dump[15]); + len = snprint(p, READSTR, "transmit good frames: %ud\n", dump[0]); + len += snprint(p+len, READSTR-len, "transmit maximum collisions errors: %ud\n", dump[1]); + len += snprint(p+len, READSTR-len, "transmit late collisions errors: %ud\n", dump[2]); + len += snprint(p+len, READSTR-len, "transmit underrun errors: %ud\n", dump[3]); + len += snprint(p+len, READSTR-len, "transmit lost carrier sense: %ud\n", dump[4]); + len += snprint(p+len, READSTR-len, "transmit deferred: %ud\n", dump[5]); + len += snprint(p+len, READSTR-len, "transmit single collisions: %ud\n", dump[6]); + len += snprint(p+len, READSTR-len, "transmit multiple collisions: %ud\n", dump[7]); + len += snprint(p+len, READSTR-len, "transmit total collisions: %ud\n", dump[8]); + len += snprint(p+len, READSTR-len, "receive good frames: %ud\n", dump[9]); + len += snprint(p+len, READSTR-len, "receive CRC errors: %ud\n", dump[10]); + len += snprint(p+len, READSTR-len, "receive alignment errors: %ud\n", dump[11]); + len += snprint(p+len, READSTR-len, "receive resource errors: %ud\n", dump[12]); + len += snprint(p+len, READSTR-len, "receive overrun errors: %ud\n", dump[13]); + len += snprint(p+len, READSTR-len, "receive collision detect errors: %ud\n", dump[14]); + len += snprint(p+len, READSTR-len, "receive short frame errors: %ud\n", dump[15]); len += snprint(p+len, READSTR-len, "nop: %d\n", ctlr->nop); if(ctlr->cbqmax > ctlr->cbqmaxhw) ctlr->cbqmaxhw = ctlr->cbqmax; @@ -766,7 +767,7 @@ int i; Block *bp; Rfd *rfd; - ulong link; + u32int link; /* * Create the Receive Frame Area (RFA) as a ring of allocated @@ -953,7 +954,7 @@ if(pcigetpms(p) > 0){ pcisetpms(p, 0); - + for(i = 0; i < 6; i++) pcicfgw32(p, PciBAR0+i*4, p->mem[i].bar); pcicfgw8(p, PciINTL, p->intl); @@ -1032,7 +1033,6 @@ { Ctlr *ctlr = ether->ctlr; -print("ether82557 shutting down\n"); csr32w(ctlr, Port, 0); delay(1); csr8w(ctlr, Interrupt, InterruptM); @@ -1043,7 +1043,7 @@ reset(Ether* ether) { int anar, anlpar, bmcr, bmsr, i, k, medium, phyaddr, x; - unsigned short sum; + ushort sum; uchar ea[Eaddrlen]; Ctlr *ctlr; --- /sys/src/9/pcpae/ether83815.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pcpae/ether83815.c Sun Jan 12 00:00:51 2014 @@ -38,9 +38,9 @@ #define Rbsz ROUNDUP(sizeof(Etherpkt)+4, 4) typedef struct Des { - ulong next; - int cmdsts; - ulong addr; + u32int next; + u32int cmdsts; + u32int addr; Block* bp; } Des; @@ -130,34 +130,34 @@ int ntq; /* descriptors active */ int ntqmax; - ulong rxa; /* receive statistics */ - ulong rxo; - ulong rlong; - ulong runt; - ulong ise; - ulong crce; - ulong fae; - ulong lbp; - ulong col; - ulong rxsovr; - ulong rxorn; - - ulong txa; /* transmit statistics */ - ulong tfu; - ulong crs; - ulong td; - ulong ed; - ulong owc; - ulong ec; - ulong txurn; - - ulong dperr; /* system errors */ - ulong rmabt; - ulong rtabt; - ulong sserr; - ulong rxsover; + uint rxa; /* receive statistics */ + uint rxo; + uint rlong; + uint runt; + uint ise; + uint crce; + uint fae; + uint lbp; + uint col; + uint rxsovr; + uint rxorn; + + uint txa; /* transmit statistics */ + uint tfu; + uint crs; + uint td; + uint ed; + uint owc; + uint ec; + uint txurn; + + uint dperr; /* system errors */ + uint rmabt; + uint rtabt; + uint sserr; + uint rxsover; - ulong version; /* silicon version; register 0x58h */ + u32int version; /* silicon version; register 0x58h */ } Ctlr; static Ctlr* ctlrhead; @@ -301,9 +301,9 @@ */ #define csr32r(c, r) (inl((c)->port+(r))) -#define csr32w(c, r, l) (outl((c)->port+(r), (ulong)(l))) +#define csr32w(c, r, l) (outl((c)->port+(r), (u32int)(l))) #define csr16r(c, r) (ins((c)->port+(r))) -#define csr16w(c, r, l) (outs((c)->port+(r), (ulong)(l))) +#define csr16w(c, r, l) (outs((c)->port+(r), (u16int)(l))) static void dumpcregs(Ctlr *ctlr) @@ -311,14 +311,14 @@ int i; for(i=0; i<=0x5C; i+=4) - print("%2.2ux %8.8lux\n", i, csr32r(ctlr, i)); + print("%2.2ux %.8ux\n", i, csr32r(ctlr, i)); } static void promiscuous(void* arg, int on) { Ctlr *ctlr; - ulong w; + u32int w; ctlr = ((Ether*)arg)->ctlr; ilock(&ctlr->lock); @@ -363,27 +363,27 @@ p = malloc(READSTR); if(p == nil) error(Enomem); - l = snprint(p, READSTR, "Rxa: %lud\n", ctlr->rxa); - l += snprint(p+l, READSTR-l, "Rxo: %lud\n", ctlr->rxo); - l += snprint(p+l, READSTR-l, "Rlong: %lud\n", ctlr->rlong); - l += snprint(p+l, READSTR-l, "Runt: %lud\n", ctlr->runt); - l += snprint(p+l, READSTR-l, "Ise: %lud\n", ctlr->ise); - l += snprint(p+l, READSTR-l, "Fae: %lud\n", ctlr->fae); - l += snprint(p+l, READSTR-l, "Lbp: %lud\n", ctlr->lbp); - l += snprint(p+l, READSTR-l, "Tfu: %lud\n", ctlr->tfu); - l += snprint(p+l, READSTR-l, "Txa: %lud\n", ctlr->txa); - l += snprint(p+l, READSTR-l, "CRC Error: %lud\n", ctlr->crce); - l += snprint(p+l, READSTR-l, "Collision Seen: %lud\n", ctlr->col); - l += snprint(p+l, READSTR-l, "Frame Too Long: %lud\n", ctlr->rlong); - l += snprint(p+l, READSTR-l, "Runt Frame: %lud\n", ctlr->runt); - l += snprint(p+l, READSTR-l, "Rx Underflow Error: %lud\n", ctlr->rxorn); - l += snprint(p+l, READSTR-l, "Tx Underrun: %lud\n", ctlr->txurn); - l += snprint(p+l, READSTR-l, "Excessive Collisions: %lud\n", ctlr->ec); - l += snprint(p+l, READSTR-l, "Late Collision: %lud\n", ctlr->owc); - l += snprint(p+l, READSTR-l, "Loss of Carrier: %lud\n", ctlr->crs); - l += snprint(p+l, READSTR-l, "Parity: %lud\n", ctlr->dperr); - l += snprint(p+l, READSTR-l, "Aborts: %lud\n", ctlr->rmabt+ctlr->rtabt); - l += snprint(p+l, READSTR-l, "RX Status overrun: %lud\n", ctlr->rxsover); + l = snprint(p, READSTR, "Rxa: %ud\n", ctlr->rxa); + l += snprint(p+l, READSTR-l, "Rxo: %ud\n", ctlr->rxo); + l += snprint(p+l, READSTR-l, "Rlong: %ud\n", ctlr->rlong); + l += snprint(p+l, READSTR-l, "Runt: %ud\n", ctlr->runt); + l += snprint(p+l, READSTR-l, "Ise: %ud\n", ctlr->ise); + l += snprint(p+l, READSTR-l, "Fae: %ud\n", ctlr->fae); + l += snprint(p+l, READSTR-l, "Lbp: %ud\n", ctlr->lbp); + l += snprint(p+l, READSTR-l, "Tfu: %ud\n", ctlr->tfu); + l += snprint(p+l, READSTR-l, "Txa: %ud\n", ctlr->txa); + l += snprint(p+l, READSTR-l, "CRC Error: %ud\n", ctlr->crce); + l += snprint(p+l, READSTR-l, "Collision Seen: %ud\n", ctlr->col); + l += snprint(p+l, READSTR-l, "Frame Too Long: %ud\n", ctlr->rlong); + l += snprint(p+l, READSTR-l, "Runt Frame: %ud\n", ctlr->runt); + l += snprint(p+l, READSTR-l, "Rx Underflow Error: %ud\n", ctlr->rxorn); + l += snprint(p+l, READSTR-l, "Tx Underrun: %ud\n", ctlr->txurn); + l += snprint(p+l, READSTR-l, "Excessive Collisions: %ud\n", ctlr->ec); + l += snprint(p+l, READSTR-l, "Late Collision: %ud\n", ctlr->owc); + l += snprint(p+l, READSTR-l, "Loss of Carrier: %ud\n", ctlr->crs); + l += snprint(p+l, READSTR-l, "Parity: %ud\n", ctlr->dperr); + l += snprint(p+l, READSTR-l, "Aborts: %ud\n", ctlr->rmabt+ctlr->rtabt); + l += snprint(p+l, READSTR-l, "RX Status overrun: %ud\n", ctlr->rxsover); snprint(p+l, READSTR-l, "ntqmax: %d\n", ctlr->ntqmax); ctlr->ntqmax = 0; buf = a; @@ -455,7 +455,7 @@ static void txrxcfg(Ctlr *ctlr, int txdrth) { - ulong rx, tx; + u32int rx, tx; rx = csr32r(ctlr, Rrxcfg); tx = csr32r(ctlr, Rtxcfg); @@ -837,7 +837,7 @@ media(Ether* ether) { Ctlr* ctlr; - ulong cfg; + u32int cfg; ctlr = ether->ctlr; cfg = csr32r(ctlr, Rcfg); @@ -859,7 +859,7 @@ }; static int -is630(ulong id, Pcidev *p) +is630(u32int id, Pcidev *p) { if(id == SiS900) switch (p->rid) { @@ -885,7 +885,7 @@ { int i; unsigned reg; - ulong port; + int port; Pcidev *p; debug("ns83815: SiS 630 rev. %ux reading mac address from cmos\n", ctlr->pcidev->rid); @@ -896,7 +896,7 @@ return 0; } port = p->mem[0].bar & ~0x01; - debug("ns83815: SiS 630 rev. %ux reading mac addr from cmos via bridge at port 0x%lux\n", ctlr->pcidev->rid, port); + debug("ns83815: SiS 630 rev. %ux reading mac addr from cmos via bridge at port %#ux\n", ctlr->pcidev->rid, port); reg = pcicfgr8(p, MagicReg); pcicfgw8(p, MagicReg, reg|Magicrden); @@ -1005,14 +1005,14 @@ nssrom(Ctlr* ctlr) { int i, ns403; - ulong vers; + u32int vers; ushort (*ee)(Ctlr*, int); vers = ctlr->version; ns403 = vers == Nat83815avng || vers == Nat83816avng; if(ns403){ ee = søkrisee; - print("soekris %lx\n", vers); + print("soekris %x\n", vers); }else ee = eegetw; @@ -1048,7 +1048,7 @@ { Ctlr *ctlr; Pcidev *p; - ulong id; + u32int id; p = nil; while(p = pcimatch(p, 0, 0)){ @@ -1105,7 +1105,7 @@ { Ctlr *ctlr; int i, x; - ulong ctladdr; + u32int ctladdr; uchar ea[Eaddrlen]; static int scandone; --- /sys/src/9/pcpae/ether8390.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pcpae/ether8390.c Sun Jan 12 00:00:51 2014 @@ -195,7 +195,7 @@ } static void* -_dp8390read(Dp8390* ctlr, void* to, ulong from, ulong len) +_dp8390read(Dp8390* ctlr, void* to, uint from, uint len) { uchar cr; int timo; @@ -242,7 +242,7 @@ } void* -dp8390read(Dp8390* ctlr, void* to, ulong from, ulong len) +dp8390read(Dp8390* ctlr, void* to, uint from, uint len) { void *v; @@ -254,9 +254,9 @@ } static void* -dp8390write(Dp8390* ctlr, ulong to, void* from, ulong len) +dp8390write(Dp8390* ctlr, uint to, void* from, uint len) { - ulong crda; + uint crda; uchar cr; int timo, width; @@ -309,7 +309,7 @@ crda = regr(ctlr, Crda0); crda |= regr(ctlr, Crda1)<<8; if(crda != to) - panic("crda write %lud to %lud", crda, to); + panic("crda write %ud to %ud", crda, to); break; } @@ -370,14 +370,14 @@ Dp8390 *ctlr; uchar curr, *p; Hdr hdr; - ulong count, data, len; + uint count, data, len; Block *bp; ctlr = ether->ctlr; for(curr = getcurr(ctlr); ctlr->nxtpkt != curr; curr = getcurr(ctlr)){ data = ctlr->nxtpkt*Dp8390BufSz; if(ctlr->ram) - memmove(&hdr, (void*)(ether->mem+data), sizeof(Hdr)); + memmove(&hdr, UINT2PTR(ether->mem+data), sizeof(Hdr)); else _dp8390read(ctlr, &hdr, data, sizeof(Hdr)); @@ -400,7 +400,7 @@ */ if(hdr.next < ctlr->pstart || hdr.next >= ctlr->pstop || len < 60 || len > sizeof(Etherpkt)){ - print("dp8390: H%2.2ux+%2.2ux+%2.2ux+%2.2ux,%lud\n", + print("dp8390: H%2.2ux+%2.2ux+%2.2ux+%2.2ux,%ud\n", hdr.status, hdr.next, hdr.len0, hdr.len1, len); regw(ctlr, Cr, Page0|RdABORT|Stp); ringinit(ctlr); @@ -422,7 +422,7 @@ if((data+len) >= ctlr->pstop*Dp8390BufSz){ count = ctlr->pstop*Dp8390BufSz - data; if(ctlr->ram) - memmove(p, (void*)(ether->mem+data), count); + memmove(p, UINT2PTR(ether->mem+data), count); else _dp8390read(ctlr, p, data, count); p += count; @@ -431,7 +431,7 @@ } if(len){ if(ctlr->ram) - memmove(p, (void*)(ether->mem+data), len); + memmove(p, UINT2PTR(ether->mem+data), len); else _dp8390read(ctlr, p, data, len); } @@ -679,7 +679,7 @@ Ether *ether; Dp8390 *ctlr; int i; - ulong h; + u32int h; ether = arg; ctlr = ether->ctlr; --- /sys/src/9/pcpae/ether8390.h Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pcpae/ether8390.h Sun Jan 12 00:00:51 2014 @@ -27,7 +27,7 @@ #define Dp8390BufSz 256 extern int dp8390reset(Ether*); -extern void *dp8390read(Dp8390*, void*, ulong, ulong); +extern void *dp8390read(Dp8390*, void*, uint, uint); extern void dp8390getea(Ether*, uchar*); extern void dp8390setea(Ether*); --- /sys/src/9/pcpae/etherelnk3.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pcpae/etherelnk3.c Sun Jan 12 00:00:51 2014 @@ -364,10 +364,10 @@ */ typedef struct Pd Pd; typedef struct Pd { - ulong np; /* next pointer */ - ulong control; /* FSH or UpPktStatus */ - ulong addr; - ulong len; + u32int np; /* next pointer */ + u32int control; /* FSH or UpPktStatus */ + u32int addr; + u32int len; Pd* next; Block* bp; @@ -411,13 +411,13 @@ int upqmax; int upqmaxhw; - ulong upinterrupts; - ulong upqueued; - ulong upstalls; + uint upinterrupts; + uint upqueued; + uint upstalls; int dnqmax; int dnqmaxhw; - ulong dninterrupts; - ulong dnqueued; + uint dninterrupts; + uint dnqueued; int xcvr; /* transceiver type */ int eepromcmd; /* EEPROM read command */ @@ -446,7 +446,7 @@ * make sure each entry is 8-byte aligned. */ ctlr->upbase = malloc((ctlr->nup+1)*sizeof(Pd)); - ctlr->upr = (Pd*)ROUNDUP((ulong)ctlr->upbase, 8); + ctlr->upr = (Pd*)ROUNDUP((uintptr)ctlr->upbase, 8); prev = ctlr->upr; for(pd = &ctlr->upr[ctlr->nup-1]; pd >= ctlr->upr; pd--){ @@ -465,7 +465,7 @@ ctlr->uphead = ctlr->upr; ctlr->dnbase = malloc((ctlr->ndn+1)*sizeof(Pd)); - ctlr->dnr = (Pd*)ROUNDUP((ulong)ctlr->dnbase, 8); + ctlr->dnr = (Pd*)ROUNDUP((uintptr)ctlr->dnbase, 8); prev = ctlr->dnr; for(pd = &ctlr->dnr[ctlr->ndn-1]; pd >= ctlr->dnr; pd--){ @@ -481,14 +481,14 @@ rbpalloc(Block* (*f)(int)) { Block *bp; - ulong addr; + uintptr addr; /* * The receive buffers must be on a 32-byte * boundary for EISA busmastering. */ if(bp = f(ROUNDUP(sizeof(Etherpkt), 4) + 31)){ - addr = (ulong)bp->base; + addr = (uintptr)bp->base; addr = ROUNDUP(addr, 32); bp->rp = (uchar*)addr; } @@ -497,7 +497,7 @@ } static uchar* -startdma(Ether* ether, ulong address) +startdma(Ether* ether, uintmem address) { int port, status, w; uchar *wp; @@ -510,7 +510,7 @@ wp = KADDR(inl(port+MasterAddress)); status = ins(port+MasterStatus); if(status & (masterInProgress|targetAbort|masterAbort)) - print("#l%d: BM status 0x%uX\n", ether->ctlrno, status); + print("#l%d: BM status %#ux\n", ether->ctlrno, status); outs(port+MasterStatus, masterMask); outl(port+MasterAddress, address); outs(port+MasterLen, sizeof(Etherpkt)); @@ -1002,7 +1002,7 @@ return; } - print("#l%d: status 0x%uX, diag 0x%uX\n", + print("#l%d: status %#ux, diag %#ux\n", ether->ctlrno, status, x); if(x & txOverrun){ @@ -1102,7 +1102,7 @@ } if(s & ~(txStatusComplete|maxCollisions)) - print("#l%d: txstatus 0x%uX, threshold %d\n", + print("#l%d: txstatus %#ux, threshold %d\n", ether->ctlrno, s, ctlr->txthreshold); COMMAND(port, TxEnable, 0); ether->oerrs++; @@ -1205,7 +1205,7 @@ if(ctlr->upenabled){ if(ctlr->upqmax > ctlr->upqmaxhw) ctlr->upqmaxhw = ctlr->upqmax; - len += snprint(p+len, READSTR-len, "up: q %lud i %lud m %d h %d s %lud\n", + len += snprint(p+len, READSTR-len, "up: q %ud i %ud m %d h %d s %ud\n", ctlr->upqueued, ctlr->upinterrupts, ctlr->upqmax, ctlr->upqmaxhw, ctlr->upstalls); ctlr->upqmax = 0; @@ -1213,7 +1213,7 @@ if(ctlr->dnenabled){ if(ctlr->dnqmax > ctlr->dnqmaxhw) ctlr->dnqmaxhw = ctlr->dnqmax; - len += snprint(p+len, READSTR-len, "dn: q %lud i %lud m %d h %d\n", + len += snprint(p+len, READSTR-len, "dn: q %ud i %ud m %d h %d\n", ctlr->dnqueued, ctlr->dninterrupts, ctlr->dnqmax, ctlr->dnqmaxhw); ctlr->dnqmax = 0; } @@ -1306,7 +1306,7 @@ } } -static ulong +static int activate(void) { int i; @@ -1365,7 +1365,7 @@ */ while(port = activate()){ if(ioalloc(port, 0x10, 0, "tcm509isa") < 0){ - print("tcm509isa: port 0x%uX in use\n", port); + print("tcm509isa: port %#ux in use\n", port); continue; } @@ -1427,7 +1427,7 @@ for(slot = 1; slot < MaxEISA; slot++){ port = slot*0x1000; if(ioalloc(port, 0x1000, 0, "tcm5XXeisa") < 0){ - print("tcm5XXeisa: port 0x%uX in use\n", port); + print("tcm5XXeisa: port %#ux in use\n", port); continue; } if(ins(port+0xC80+ManufacturerID) != 0x6D50){ @@ -1471,7 +1471,7 @@ port = p->mem[0].bar & ~0x01; if((port = ioalloc((port == 0)? -1: port, p->mem[0].size, 0, "tcm59Xpci")) < 0){ - print("tcm59Xpci: port 0x%uX in use\n", port); + print("tcm59Xpci: port %#ux in use\n", port); continue; } irq = p->intl; @@ -1640,7 +1640,7 @@ continue; x <<= 6; x |= miir(port, i, 3)>>10; - XCVRDEBUG("phy%d: oui %uX reg1 %uX\n", i, x, miir(port, i, 1)); + XCVRDEBUG("phy%d: oui %ux reg1 %ux\n", i, x, miir(port, i, 1)); USED(x); return i; @@ -1688,13 +1688,13 @@ COMMAND(port, SelectRegisterWindow, Wfifo); media = ins(port+ResetOptions); } - XCVRDEBUG("autoselect: media %uX\n", media); + XCVRDEBUG("autoselect: media %ux\n", media); if(media & miiConnector) return xcvrMii; COMMAND(port, SelectRegisterWindow, Wdiagnostic); - XCVRDEBUG("autoselect: media status %uX\n", ins(port+MediaStatus)); + XCVRDEBUG("autoselect: media status %ux\n", ins(port+MediaStatus)); if(media & baseTXAvailable){ /* @@ -1720,7 +1720,7 @@ outs(port+MediaStatus, linkBeatEnable|jabberGuardEnable|x); delay(100); - XCVRDEBUG("autoselect: 10BaseT media status %uX\n", ins(port+MediaStatus)); + XCVRDEBUG("autoselect: 10BaseT media status %ux\n", ins(port+MediaStatus)); if(ins(port+MediaStatus) & linkBeatDetect) return xcvr10BaseT; outs(port+MediaStatus, x); @@ -1755,7 +1755,7 @@ txrxreset(port); x = ins(port+ResetOp905B); - XCVRDEBUG("905[BC] reset ops 0x%uX\n", x); + XCVRDEBUG("905[BC] reset ops %#ux\n", x); x &= ~0x4010; if(ctlr->did == 0x5157){ x |= 0x0010; /* Invert LED */ @@ -1899,7 +1899,7 @@ * busmastering can be used. Due to bugs in the first revision * of the 3C59[05], don't use busmastering at 10Mbps. */ - XCVRDEBUG("reset: xcvr %uX\n", ctlr->xcvr); + XCVRDEBUG("reset: xcvr %ux\n", ctlr->xcvr); /* * Allow user to specify desired media in plan9.ini @@ -1933,7 +1933,7 @@ resetctlr(ctlr); break; } - XCVRDEBUG("xcvr selected: %uX, did 0x%uX\n", ctlr->xcvr, ctlr->did); + XCVRDEBUG("xcvr selected: %ux, did %#ux\n", ctlr->xcvr, ctlr->did); switch(ctlr->xcvr){ case xcvrMii: @@ -1947,24 +1947,24 @@ else phyaddr = 24; for(i = 0; i < 7; i++) - XCVRDEBUG(" %2.2uX", miir(port, phyaddr, i)); + XCVRDEBUG(" %.2ux", miir(port, phyaddr, i)); XCVRDEBUG("\n"); for(timeo = 0; timeo < 30; timeo++){ phystat = miir(port, phyaddr, 0x01); if(phystat & 0x20) break; - XCVRDEBUG(" %2.2uX", phystat); + XCVRDEBUG(" %.2ux", phystat); delay(100); } - XCVRDEBUG(" %2.2uX", miir(port, phyaddr, 0x01)); + XCVRDEBUG(" %.2ux", miir(port, phyaddr, 0x01)); XCVRDEBUG("\n"); anar = miir(port, phyaddr, 0x04); anlpar = miir(port, phyaddr, 0x05) & 0x03E0; anar &= anlpar; miir(port, phyaddr, 0x00); - XCVRDEBUG("mii an: %uX anlp: %uX r0:%uX r1:%uX\n", + XCVRDEBUG("mii an: %ux anlp: %ux r0:%ux r1:%ux\n", anar, anlpar, miir(port, phyaddr, 0x00), miir(port, phyaddr, 0x01)); for(i = 0; i < ether->nopt; i++){ @@ -1975,7 +1975,7 @@ else if(cistrcmp(ether->opt[i], "force100") == 0) anar |= 0x0080; } - XCVRDEBUG("mii anar: %uX\n", anar); + XCVRDEBUG("mii anar: %ux\n", anar); if(anar & 0x0100){ /* 100BASE-TXFD */ ether->mbps = 100; setfullduplex(port); --- /sys/src/9/pcpae/etheryuk.c Sun Jan 12 00:00:51 2014 +++ /sys/src/9/pcpae/etheryuk.c Sun Jan 12 00:00:51 2014 @@ -677,8 +677,8 @@ uchar portno; uintmem io; uchar *reg8; - ushort *reg16; - uint *reg; + u16int *reg16; + u32int *reg; uint rbsz; uchar ra[Eaddrlen]; uint mca; @@ -2195,7 +2195,6 @@ Pcidev *p; p = c->p; - c->io = p->mem[0].bar & ~(uintmem)0xf; mem = vmap(c->io, p->mem[0].size); if(mem == nil){ print("yuk: cant map %#P\n", c->io); @@ -2271,6 +2270,7 @@ } c = malloc(sizeof *c); c->p = p; + c->io = p->mem[0].bar & ~(uintmem)0xf; c->qno = nctlr; rbtab[c->qno].k = &c->rxmit; c->rbsz = vtab[i].mtu; @@ -2292,7 +2292,7 @@ c = ctlrtab[i]; if(c == nil || c->flag&Fprobe) continue; - if(e->port != 0 && e->port != (ulong)c->reg) + if(ethercfgmatch(e, c->p, c->io) != 0) continue; c->flag |= Fprobe; if(setup(c) != 0)