Go to the documentation of this file.
17 #define DE600_IO 0x378
20 #define DATA_PORT (DE600_IO)
21 #define STATUS_PORT (DE600_IO + 1)
22 #define COMMAND_PORT (DE600_IO + 2)
39 #define SELECT_NIC 0x04
40 #define SELECT_PRN 0x1c
49 #define TX_FAILED16 0x10
58 #define WRITE_DATA 0x00
59 #define READ_DATA 0x01
62 #define NULL_COMMAND 0x04
66 #define HI_NIBBLE 0x08
76 #define TX_ENABLE 0x04
77 #define RX_ENABLE 0x08
80 #define STOP_RESET 0x00
86 #define RX_PAGE2_SELECT 0x10
87 #define RX_BASE_PAGE 0x20
101 #define MEM_2K 0x0800
102 #define MEM_4K 0x1000
103 #define MEM_6K 0x1800
104 #define NODE_ADDRESS 0x2000
128 static int de600_tx_intr(
struct net_device *
dev,
int irq_status);
139 #define select_prn() outb_p(SELECT_PRN, COMMAND_PORT); DE600_SLOW_DOWN
140 #define select_nic() outb_p(SELECT_NIC, COMMAND_PORT); DE600_SLOW_DOWN
143 #define de600_put_byte(data) ( \
144 outb_p(((data) << 4) | WRITE_DATA , DATA_PORT), \
145 outb_p(((data) & 0xf0) | WRITE_DATA | HI_NIBBLE, DATA_PORT))
151 #define de600_put_command(cmd) ( \
152 outb_p(( rx_page << 4) | COMMAND , DATA_PORT), \
153 outb_p(( rx_page & 0xf0) | COMMAND | HI_NIBBLE, DATA_PORT), \
154 outb_p(((rx_page | cmd) << 4) | COMMAND , DATA_PORT), \
155 outb_p(((rx_page | cmd) & 0xf0) | COMMAND | HI_NIBBLE, DATA_PORT))
157 #define de600_setup_address(addr,type) ( \
158 outb_p((((addr) << 4) & 0xf0) | type , DATA_PORT), \
159 outb_p(( (addr) & 0xf0) | type | HI_NIBBLE, DATA_PORT), \
160 outb_p((((addr) >> 4) & 0xf0) | type , DATA_PORT), \
161 outb_p((((addr) >> 8) & 0xf0) | type | HI_NIBBLE, DATA_PORT))
163 #define rx_page_adr() ((rx_page & RX_PAGE2_SELECT)?(MEM_6K):(MEM_4K))
166 #define next_rx_page() (rx_page ^= RX_PAGE2_SELECT)
168 #define tx_page_adr(a) (((a) + 1) * MEM_2K)