1 /* mostly stolen from FreeBSD if_de.c, if_devar.h */ 2 3 #define TULIP_CSR_READ(csr) (membase[csr*2]) 4 #define CSR_READ(csr) (membase[csr*2]) 5 #define TULIP_CSR_WRITE(csr, val) (membase[csr*2] = val) 6 #define CSR_WRITE(csr, val) (membase[csr*2] = val) 7 8 #define csr_0 0 9 #define csr_1 1 10 #define csr_2 2 11 #define csr_3 3 12 #define csr_4 4 13 #define csr_5 5 14 #define csr_6 6 15 #define csr_7 7 16 #define csr_8 8 17 #define csr_9 9 18 #define csr_10 10 19 #define csr_11 11 20 #define csr_12 12 21 #define csr_13 13 22 #define csr_14 14 23 #define csr_15 15 24 25 #define csr_busmode csr_0 26 #define csr_txpoll csr_1 27 #define csr_rxpoll csr_2 28 #define csr_rxlist csr_3 29 #define csr_txlist csr_4 30 #define csr_status csr_5 31 #define csr_command csr_6 32 #define csr_intr csr_7 33 #define csr_missed_frames csr_8 34 #define csr_enetrom csr_9 /* 21040 */ 35 #define csr_reserved csr_10 /* 21040 */ 36 #define csr_full_duplex csr_11 /* 21040 */ 37 #define csr_bootrom csr_10 /* 21041/21140A/?? */ 38 #define csr_gp csr_12 /* 21140* */ 39 #define csr_watchdog csr_15 /* 21140* */ 40 #define csr_gp_timer csr_11 /* 21041/21140* */ 41 #define csr_srom_mii csr_9 /* 21041/21140* */ 42 #define csr_sia_status csr_12 /* 2104x */ 43 #define csr_sia_connectivity csr_13 /* 2104x */ 44 #define csr_sia_tx_rx csr_14 /* 2104x */ 45 #define csr_sia_general csr_15 /* 2104x */ 46 47 #define SROMSEL 0x0800 48 #define SROMCS 0x0001 49 #define SROMCLKON 0x0002 50 #define SROMCLKOFF 0x0002 51 #define SROMRD 0x4000 52 #define SROMWR 0x2000 53 #define SROM_BITWIDTH 6 54 #define SROMCMD_RD 6 55 #define SROMCSON 0x0001 56 #define SROMDOUT 0x0004 57 #define SROMDIN 0x0008 58 59 60 struct txdesc { 61 unsigned long status; /* owner, status */ 62 unsigned long buf1sz:11, /* size of buffer 1 */ 63 buf2sz:11, /* size of buffer 2 */ 64 control:10; /* control bits */ 65 const unsigned char *buf1addr; /* buffer 1 address */ 66 const unsigned char *buf2addr; /* buffer 2 address */ 67 }; 68 69 struct rxdesc { 70 unsigned long status; /* owner, status */ 71 unsigned long buf1sz:11, /* size of buffer 1 */ 72 buf2sz:11, /* size of buffer 2 */ 73 control:10; /* control bits */ 74 unsigned char *buf1addr; /* buffer 1 address */ 75 unsigned char *buf2addr; /* buffer 2 address */ 76 }; 77