Commit | Line | Data |
---|---|---|
ac5a9f24 BF |
1 | /* if_ilreg.h 4.1 82/05/21 */ |
2 | ||
3 | /* | |
4 | * Interlan Ethernet Communications Controller interface | |
5 | */ | |
6 | struct ildevice { | |
7 | short il_csr; /* Command and Status Register */ | |
8 | short il_bar; /* Buffer Address Register */ | |
9 | short il_bcr; /* Byte Count Register */ | |
10 | }; | |
11 | ||
12 | /* | |
13 | * Command and status bits | |
14 | */ | |
15 | #define IL_EUA 0xC000 /* Extended Unibus Address */ | |
16 | #define IL_CMD 0x3f00 /* Command Function Code */ | |
17 | #define IL_CDONE 0x0080 /* Command Done */ | |
18 | #define IL_CIE 0x0040 /* Command Interrupt Enable */ | |
19 | #define IL_RDONE 0x0020 /* Receive DMA Done */ | |
20 | #define IL_RIE 0x0010 /* Receive Interrupt Enable */ | |
21 | #define IL_STATUS 0x000f /* Command Status Code */ | |
22 | ||
23 | #define IL_BITS "\10\10CDONE\7CIE\6RDONE\5RIE" | |
24 | ||
25 | /* Command definitions */ | |
26 | ||
27 | #define ILC_MLPBAK 0x0100 /* Set Module Interface Loopback Mode */ | |
28 | #define ILC_ILPBAK 0x0200 /* Set Internal Loopback Mode */ | |
29 | #define ILC_CLPBAK 0x0300 /* Clear Loopback Mode */ | |
30 | #define ILC_PRMSC 0x0400 /* Set Promiscuous Receive Mode */ | |
31 | #define ILC_CLPRMSC 0x0500 /* Clear Promiscuous Receive Mode */ | |
32 | #define ILC_RCVERR 0x0600 /* Set Receive-On-Error Bit */ | |
33 | #define ILC_CRCVERR 0x0700 /* Clear Receive-On-Error Bit */ | |
34 | #define ILC_OFFLINE 0x0800 /* Go Offline */ | |
35 | #define ILC_ONLINE 0x0900 /* Go Online */ | |
36 | #define ILC_DIAG 0x0a00 /* Run On-board Diagnostics */ | |
37 | #define ILC_STAT 0x1800 /* Report and Reset Statistics */ | |
38 | #define ILC_DELAYS 0x1900 /* Report Collision Delay Times */ | |
39 | #define ILC_RCV 0x2000 /* Supply Receive Buffer */ | |
40 | #define ILC_LDXMIT 0x2800 /* Load Transmit Data */ | |
41 | #define ILC_XMIT 0x2900 /* Load Transmit Data and Send */ | |
42 | #define ILC_LDGRPS 0x2a00 /* Load Group Addresses */ | |
43 | #define ILC_RMGRPS 0x2b00 /* Delete Group Addresses */ | |
44 | #define ILC_FLUSH 0x3000 /* Flush Receive BAR/BCR Queue */ | |
45 | #define ILC_RESET 0x3f00 /* Reset */ | |
46 | ||
47 | /* | |
48 | * Error codes | |
49 | */ | |
50 | char *ilerrs[] = { | |
51 | "success", /* 0 */ | |
52 | "success with retries", /* 01 */ | |
53 | "illegal command", /* 02 */ | |
54 | "inappropriate command", /* 03 */ | |
55 | "failure", /* 04 */ | |
56 | "buffer size exceeded", /* 05 */ | |
57 | "frame too small", /* 06 */ | |
58 | 0, /* 07 */ | |
59 | "excessive collisions", /* 010 */ | |
60 | 0, /* 011 */ | |
61 | "buffer alignment error", /* 012 */ | |
62 | 0, /* 013 */ | |
63 | 0, /* 014 */ | |
64 | 0, /* 015 */ | |
65 | 0, /* 016 */ | |
66 | "non-existent memory" /* 017 */ | |
67 | }; | |
68 | ||
69 | char *ildiag[] = { | |
70 | "success", /* 0 */ | |
71 | "checksum error", /* 1 */ | |
72 | "NM10 dma error", /* 2 */ | |
73 | "transmitter error", /* 3 */ | |
74 | "receiver error", /* 4 */ | |
75 | "loopback failure", /* 5 */ | |
76 | }; |