patch-2.1.23 linux/drivers/ap1000/am79c830.h
Next file: linux/drivers/ap1000/am79c864.h
Previous file: linux/drivers/ap1000/Makefile
Back to the patch index
Back to the overall index
- Lines: 277
- Date:
Sun Jan 26 12:07:10 1997
- Orig file:
v2.1.22/linux/drivers/ap1000/am79c830.h
- Orig date:
Thu Jan 1 02:00:00 1970
diff -u --recursive --new-file v2.1.22/linux/drivers/ap1000/am79c830.h linux/drivers/ap1000/am79c830.h
@@ -0,0 +1,276 @@
+ /*
+ * Copyright 1996 The Australian National University.
+ * Copyright 1996 Fujitsu Laboratories Limited
+ *
+ * This software may be distributed under the terms of the Gnu
+ * Public License version 2 or later
+ */
+/*
+ * Definitions for the AM79C830 FORMAC (Fiber Optic Ring MAC) chip.
+ */
+
+typedef int formac_reg;
+
+struct formac {
+ formac_reg cmdreg1; /* command register 1 */
+ formac_reg cmdreg2; /* command register 2 */
+#define st1u cmdreg1 /* status reg 1, upper */
+#define st1l cmdreg2 /* status reg 1, lower */
+ formac_reg st2u; /* status reg 2, upper */
+ formac_reg st2l; /* status reg 2, lower */
+ formac_reg imsk1u; /* interrupt mask 1, upper */
+ formac_reg imsk1l; /* interrupt mask 1, lower */
+ formac_reg imsk2u; /* interrupt mask 2, upper */
+ formac_reg imsk2l; /* interrupt mask 2, lower */
+ formac_reg said; /* short address, individual */
+ formac_reg laim; /* long adrs, indiv, MS word */
+ formac_reg laic; /* long adrs, indiv, middle word */
+ formac_reg lail; /* long adrs, indiv, LS word */
+ formac_reg sagp; /* short address, group */
+ formac_reg lagm; /* short adrs, group, MS word */
+ formac_reg lagc; /* short adrs, group, middle word */
+ formac_reg lagl; /* short adrs, group, LS word */
+ formac_reg mdreg1; /* mode reg 1 */
+ formac_reg stmchn; /* state machine reg */
+ formac_reg mir1; /* MAC information reg, upper */
+ formac_reg mir0; /* MAC information reg, lower */
+ formac_reg tmax; /* TMax value (2's-comp) */
+ formac_reg tvx; /* TVX value (2's-comp) */
+ formac_reg trt; /* TRT timer value */
+ formac_reg tht; /* THT timer value */
+ formac_reg tneg; /* current TNeg (2's-comp) */
+ formac_reg tmrs; /* extra bits of tneg, trt, tht; late count */
+ formac_reg treq0; /* our TReq (2's-comp), lower */
+ formac_reg treq1; /* our TReq (2's-comp), upper */
+ formac_reg pri0; /* priority reg for async queue 0 */
+ formac_reg pri1; /* priority reg for async queue 1 */
+ formac_reg pri2; /* priority reg for async queue 2 */
+ formac_reg tsync; /* TSync value (2's-comp) */
+ formac_reg mdreg2; /* mode reg 2 */
+ formac_reg frmthr; /* frame threshold reg */
+ formac_reg eacb; /* end address of claim/beacon area */
+ formac_reg earv; /* end address of receive area */
+ formac_reg eas; /* end address of sync queue */
+ formac_reg eaa0; /* end address of async queue 0 */
+ formac_reg eaa1; /* end address of async queue 1 */
+ formac_reg eaa2; /* end address of async queue 2 */
+ formac_reg sacl; /* start address of claim frame */
+ formac_reg sabc; /* start address of beacon frame */
+ formac_reg wpxsf; /* write pointer, special frames */
+ formac_reg rpxsf; /* read pointer, special frames */
+ formac_reg dummy1; /* not used */
+ formac_reg rpr; /* read pointer, receive */
+ formac_reg wpr; /* write pointer, receive */
+ formac_reg swpr; /* shadow write pointer, receive */
+ formac_reg wpxs; /* write pointer, sync queue */
+ formac_reg wpxa0; /* write pointer, async queue 0 */
+ formac_reg wpxa1; /* write pointer, async queue 1 */
+ formac_reg wpxa2; /* write pointer, async queue 2 */
+ formac_reg swpxs; /* shadow write pointer, sync queue */
+ formac_reg swpxa0; /* shadow write pointer, async queue 0 */
+ formac_reg swpxa1; /* shadow write pointer, async queue 1 */
+ formac_reg swpxa2; /* shadow write pointer, async queue 2 */
+ formac_reg rpxs; /* read pointer, sync queue */
+ formac_reg rpxa0; /* read pointer, async queue 0 */
+ formac_reg rpxa1; /* read pointer, async queue 1 */
+ formac_reg rpxa2; /* read pointer, async queue 2 */
+ formac_reg marr; /* memory address for random reads */
+ formac_reg marw; /* memory address for random writes */
+ formac_reg mdru; /* memory data register, upper */
+ formac_reg mdrl; /* memory data register, lower */
+ formac_reg tmsync; /* TSync timer value */
+ formac_reg fcntr; /* frame counter */
+ formac_reg lcntr; /* lost counter */
+ formac_reg ecntr; /* error counter */
+};
+
+/* Values for cmdreg1 */
+#define C1_SOFTWARE_RESET 1
+#define C1_IRMEMWI 2
+#define C1_IRMEMWO 3
+#define C1_IDLE_LISTEN 4
+#define C1_CLAIM_LISTEN 5
+#define C1_BEACON_LISTEN 6
+#define C1_LOAD_TVX 7
+#define C1_SEND_NR_TOKEN 0x0c
+#define C1_SEND_R_TOKEN 0x0d
+#define C1_ENTER_SI_MODE 0x0e
+#define C1_EXIT_SI_MODE 0x0f
+#define C1_CLR_SYNCQ_LOCK 0x11
+#define C1_CLR_ASYNCQ0_LOCK 0x12
+#define C1_CLR_ASYNCQ1_LOCK 0x14
+#define C1_CLR_ASYNCQ2_LOCK 0x18
+#define C1_CLR_RECVQ_LOCK 0x20
+#define C1_CLR_ALL_LOCKS 0x3f
+
+/* Values for cmdreg2 */
+#define C2_XMIT_SYNCQ 1
+#define C2_XMIT_ASYNCQ0 2
+#define C2_XMIT_ASYNCQ1 4
+#define C2_XMIT_ASYNCQ2 8
+#define C2_ABORT_XMIT 0x10
+#define C2_RESET_XMITQS 0x20
+#define C2_SET_TAG 0x30
+#define C2_EN_RECV_FRAME 0x40
+
+/* Bits in (st1u << 16) + st1l (and (imsk1u << 16) + imsk1l) */
+#define S1_XMIT_ABORT 0x80000000
+#define S1_XABORT_ASYNC2 0x40000000
+#define S1_XABORT_ASYNC1 0x20000000
+#define S1_XABORT_ASYNC0 0x10000000
+#define S1_XABORT_SYNC 0x08000000
+#define S1_XBUF_FULL_SYNC 0x04000000
+#define S1_XBUF_FULL_ASYNC 0x02000000
+#define S1_XDONE_SYNC 0x01000000
+#define S1_END_CHAIN_ASYNC2 0x00800000
+#define S1_END_CHAIN_ASYNC1 0x00400000
+#define S1_END_CHAIN_ASYNC0 0x00200000
+#define S1_END_CHAIN_SYNC 0x00100000
+#define S1_END_FRAME_ASYNC2 0x00080000
+#define S1_END_FRAME_ASYNC1 0x00040000
+#define S1_END_FRAME_ASYNC0 0x00020000
+#define S1_END_FRAME_SYNC 0x00010000
+#define S1_BUF_UNDERRUN_ASYNC2 0x00008000
+#define S1_BUF_UNDERRUN_ASYNC1 0x00004000
+#define S1_BUF_UNDERRUN_ASYNC0 0x00002000
+#define S1_BUF_UNDERRUN_SYNC 0x00001000
+#define S1_PAR_ERROR_ASYNC2 0x00000800
+#define S1_PAR_ERROR_ASYNC1 0x00000400
+#define S1_PAR_ERROR_ASYNC0 0x00000200
+#define S1_PAR_ERROR_SYNC 0x00000100
+#define S1_XINSTR_FULL_ASYNC2 0x00000080
+#define S1_XINSTR_FULL_ASYNC1 0x00000040
+#define S1_XINSTR_FULL_ASYNC0 0x00000020
+#define S1_XINSTR_FULL_SYNC 0x00000010
+#define S1_QUEUE_LOCK_ASYNC2 0x00000008
+#define S1_QUEUE_LOCK_ASYNC1 0x00000004
+#define S1_QUEUE_LOCK_ASYNC0 0x00000002
+#define S1_QUEUE_LOCK_SYNC 0x00000001
+
+/* Bits in (st2u << 16) + st2l (and (imsk2u << 16) + imsk2l) */
+#define S2_RECV_COMPLETE 0x80000000
+#define S2_RECV_BUF_EMPTY 0x40000000
+#define S2_RECV_ABORT 0x20000000
+#define S2_RECV_BUF_FULL 0x10000000
+#define S2_RECV_FIFO_OVF 0x08000000
+#define S2_RECV_FRAME 0x04000000
+#define S2_RECV_FRCT_OVF 0x02000000
+#define S2_NP_SIMULT_LOAD 0x01000000
+#define S2_ERR_SPECIAL_FR 0x00800000
+#define S2_CLAIM_STATE 0x00400000
+#define S2_MY_CLAIM 0x00200000
+#define S2_HIGHER_CLAIM 0x00100000
+#define S2_LOWER_CLAIM 0x00080000
+#define S2_BEACON_STATE 0x00040000
+#define S2_MY_BEACON 0x00020000
+#define S2_OTHER_BEACON 0x00010000
+#define S2_RING_OP 0x00008000
+#define S2_MULTIPLE_DA 0x00004000
+#define S2_TOKEN_ERR 0x00002000
+#define S2_TOKEN_ISSUED 0x00001000
+#define S2_TVX_EXP 0x00000800
+#define S2_TRT_EXP 0x00000400
+#define S2_MISSED_FRAME 0x00000200
+#define S2_ADDRESS_DET 0x00000100
+#define S2_PHY_INVALID 0x00000080
+#define S2_LOST_CTR_OVF 0x00000040
+#define S2_ERR_CTR_OVF 0x00000020
+#define S2_FRAME_CTR_OVF 0x00000010
+#define S2_SHORT_IFG 0x00000008
+#define S2_DUPL_CLAIM 0x00000004
+#define S2_TRT_EXP_RECOV 0x00000002
+
+/* Bits in mdreg1 */
+#define M1_SINGLE_FRAME 0x8000
+#define M1_MODE 0x7000
+#define M1_MODE_INITIALIZE 0x0000
+#define M1_MODE_MEMORY 0x1000
+#define M1_MODE_ONLINE_SP 0x2000
+#define M1_MODE_ONLINE 0x3000
+#define M1_MODE_INT_LOOP 0x4000
+#define M1_MODE_EXT_LOOP 0x7000
+#define M1_SHORT_ADRS 0x0800
+#define M1_ADDET 0x0700
+#define M1_ADDET_NORM 0x0000
+#define M1_ADDET_METOO 0x0100
+#define M1_ADDET_NSA_NOTME 0x0200
+#define M1_ADDET_NSA 0x0300
+#define M1_ADDET_DISABLE_RECV 0x0400
+#define M1_ADDET_LIM_PROMISC 0x0600
+#define M1_ADDET_PROMISC 0x0700
+#define M1_SELECT_RA 0x0080
+#define M1_DISABLE_CARRY 0x0040
+#define M1_EXT_GRP 0x0030
+#define M1_EXT_GRP_MYGRP 0x0000
+#define M1_EXT_GRP_SOFT 0x0010
+#define M1_EXT_GRP_UPPER24 0x0020
+#define M1_EXT_GRP_UPPER16 0x0030
+#define M1_LOCK_XMIT_QS 0x0008
+#define M1_FULL_DUPLEX 0x0004
+#define M1_XMTINH_PIN 0x0002
+
+/* Bits in mdreg2 */
+#define M2_TAGMODE 0x8000
+#define M2_STRIP_FCS 0x4000
+#define M2_CHECK_PARITY 0x2000
+#define M2_EVEN_PARITY 0x1000
+#define M2_LSB_FIRST 0x0800
+#define M2_RCV_BYTE_BDRY_MASK 0x0600
+#define M2_RCV_BYTE_BDRY 0x0200
+#define M2_ENABLE_HSREQ 0x0100
+#define M2_ENABLE_NPDMA 0x0080
+#define M2_SYNC_NPDMA 0x0040
+#define M2_SYMBOL_CTRL 0x0020
+#define M2_RECV_BAD_FRAMES 0x0010
+#define M2_AFULL_MASK 0x000f
+#define M2_AFULL 0x0001
+
+/* Bits in stmchn */
+#define SM_REV_MASK 0xe000
+#define SM_REV 0x2000
+#define SM_SEND_IMM_MODE 0x1000
+#define SM_TOKEN_MODE 0x0c00
+#define SM_TOKEN_MODE_NR 0x0000
+#define SM_TOKEN_MODE_ENTER_R 0x0400
+#define SM_TOKEN_MODE_ENTER_NR 0x0800
+#define SM_TOKEN_MODE_R 0x0c00
+#define SM_RCV_STATE 0x0380
+#define SM_XMIT_STATE 0x0070
+#define SM_MDR_PENDING 0x0008
+#define SM_MDR_TAG 0x0004
+
+/* Bits in transmit descriptor */
+#define TD_MORE 0x80000000
+#define TD_MAGIC 0x40000000
+#define TD_BYTE_BDRY_MASK 0x18000000
+#define TD_BYTE_BDRY_1 0x08000000
+#define TD_XMIT_DONE 0x04000000
+#define TD_NO_FCS 0x02000000
+#define TD_XMIT_ABORT 0x01000000
+#define TD_BYTE_BDRY_LG 27
+
+/* Bits in pointer in buffer memory (nontag mode) */
+#define PT_MAGIC 0xa0000000
+
+/* Bits in receive status word */
+#define RS_VALID 0x80000000
+#define RS_ABORTED 0x40000000
+#define RS_SRC_ROUTE 0x10000000
+#define RS_E_INDIC 0x08000000
+#define RS_A_INDIC 0x04000000
+#define RS_C_INDIC 0x02000000
+#define RS_ERROR 0x01000000
+#define RS_ADDR_MATCH 0x00800000
+#define RS_FRAME_TYPE 0x00700000
+#define RS_FT_SMT 0x00000000
+#define RS_FT_LLC 0x00100000
+#define RS_FT_IMPL 0x00200000
+#define RS_FT_MAC 0x00400000
+#define RS_FT_LLC_SYNC 0x00500000
+#define RS_FT_IMPL_SYNC 0x00600000
+#define RS_BYTE_BDRY_MASK 0x00030000
+#define RS_BYTE_BDRY 0x00010000
+#define RS_BYTE_BDRY_LG 16
+
+#define RS_LENGTH 0x0000ffff
+
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov