| /* mostly stolen from FreeBSD if_de.c, if_devar.h */ |
| |
| #define TULIP_CSR_READ(csr) (membase[csr*2]) |
| #define CSR_READ(csr) (membase[csr*2]) |
| #define TULIP_CSR_WRITE(csr, val) (membase[csr*2] = val) |
| #define CSR_WRITE(csr, val) (membase[csr*2] = val) |
| |
| #define csr_0 0 |
| #define csr_1 1 |
| #define csr_2 2 |
| #define csr_3 3 |
| #define csr_4 4 |
| #define csr_5 5 |
| #define csr_6 6 |
| #define csr_7 7 |
| #define csr_8 8 |
| #define csr_9 9 |
| #define csr_10 10 |
| #define csr_11 11 |
| #define csr_12 12 |
| #define csr_13 13 |
| #define csr_14 14 |
| #define csr_15 15 |
| |
| #define csr_busmode csr_0 |
| #define csr_txpoll csr_1 |
| #define csr_rxpoll csr_2 |
| #define csr_rxlist csr_3 |
| #define csr_txlist csr_4 |
| #define csr_status csr_5 |
| #define csr_command csr_6 |
| #define csr_intr csr_7 |
| #define csr_missed_frames csr_8 |
| #define csr_enetrom csr_9 /* 21040 */ |
| #define csr_reserved csr_10 /* 21040 */ |
| #define csr_full_duplex csr_11 /* 21040 */ |
| #define csr_bootrom csr_10 /* 21041/21140A/?? */ |
| #define csr_gp csr_12 /* 21140* */ |
| #define csr_watchdog csr_15 /* 21140* */ |
| #define csr_gp_timer csr_11 /* 21041/21140* */ |
| #define csr_srom_mii csr_9 /* 21041/21140* */ |
| #define csr_sia_status csr_12 /* 2104x */ |
| #define csr_sia_connectivity csr_13 /* 2104x */ |
| #define csr_sia_tx_rx csr_14 /* 2104x */ |
| #define csr_sia_general csr_15 /* 2104x */ |
| |
| #define SROMSEL 0x0800 |
| #define SROMCS 0x0001 |
| #define SROMCLKON 0x0002 |
| #define SROMCLKOFF 0x0002 |
| #define SROMRD 0x4000 |
| #define SROMWR 0x2000 |
| #define SROM_BITWIDTH 6 |
| #define SROMCMD_RD 6 |
| #define SROMCSON 0x0001 |
| #define SROMDOUT 0x0004 |
| #define SROMDIN 0x0008 |
| |
| |
| struct txdesc { |
| unsigned long status; /* owner, status */ |
| unsigned long buf1sz:11, /* size of buffer 1 */ |
| buf2sz:11, /* size of buffer 2 */ |
| control:10; /* control bits */ |
| const unsigned char *buf1addr; /* buffer 1 address */ |
| const unsigned char *buf2addr; /* buffer 2 address */ |
| }; |
| |
| struct rxdesc { |
| unsigned long status; /* owner, status */ |
| unsigned long buf1sz:11, /* size of buffer 1 */ |
| buf2sz:11, /* size of buffer 2 */ |
| control:10; /* control bits */ |
| unsigned char *buf1addr; /* buffer 1 address */ |
| unsigned char *buf2addr; /* buffer 2 address */ |
| }; |