patch-2.1.23 linux/drivers/ap1000/apfddi.h
Next file: linux/drivers/ap1000/bif.c
Previous file: linux/drivers/ap1000/apfddi.c
Back to the patch index
Back to the overall index
- Lines: 143
- Date:
Sun Jan 26 12:07:10 1997
- Orig file:
v2.1.22/linux/drivers/ap1000/apfddi.h
- Orig date:
Thu Jan 1 02:00:00 1970
diff -u --recursive --new-file v2.1.22/linux/drivers/ap1000/apfddi.h linux/drivers/ap1000/apfddi.h
@@ -0,0 +1,142 @@
+ /*
+ * 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
+ */
+#define BUFFER_MEM 0x40000
+#define CSR0 0x60000
+#define CSR1 0x60004
+#define PLC 0x60080
+#define FORMAC 0x60200
+#define FIFO 0x68000
+
+/* Size of buffer memory */
+#define BUFFER_SIZE 32768 /* words; 128kB */
+
+/* Bits in CSR0 */
+#define CS0_INT_REQ 0x8000 /* board interrupt request asserted */
+#define CS0_MAC_IRQ 0x4000 /* FORMAC is requesting interrupt */
+#define CS0_PHY_IRQ 0x2000 /* PLC is requesting interrupt */
+#define CS0_LED2 0x1000 /* turn on led 2 */
+#define CS0_DO_IRQ 0x0200 /* request interrupt */
+#define CS0_INT_ENABLE 0x0100 /* enable interrupt requests */
+#define CS0_DMA_ENABLE 0x0080 /* enable DMA requests */
+#define CS0_DMA_RECV 0x0040 /* DMA requests are in receive dirn. */
+#define CS0_LED1 0x0010 /* turn on led 1 */
+#define CS0_LED0 0x0008 /* turn on led 0 (red) */
+#define CS0_HREQ 0x0007 /* host request to FORMAC */
+#define CS0_HREQ_WSPEC 0x0002 /* write special frames */
+#define CS0_HREQ_RECV 0x0003 /* read receive queue */
+#define CS0_HREQ_WS 0x0004 /* write synchronous queue */
+#define CS0_HREQ_WA0 0x0005 /* write async queue 0 */
+#define CS0_HREQ_WA1 0x0006 /* write async queue 1 */
+#define CS0_HREQ_WA2 0x0007 /* write async queue 2 */
+
+/* Bits in CSR1 */
+#define CS1_THIS_QAF 0x0800 /* this queue almost full */
+#define CS1_FIFO_TAG 0x0400 /* tag of word at head of fifo */
+#define CS1_BUF_RD_TAG 0x0200 /* tag of last word read from buffer */
+#define CS1_BUF_WR_TAG 0x0100 /* tag to write to buffer */
+#define CS1_TAGMODE 0x0080 /* enable tag mode */
+#define CS1_RESET_MAC 0x0040 /* reset FORMAC and PLC */
+#define CS1_RESET_FIFO 0x0020 /* reset FIFO */
+#define CS1_CLEAR_QAF 0x0010 /* clear queue-almost-full bits */
+#define CS1_FIFO_LEVEL 0x0007 /* # words in FIFO (0 - 4) */
+
+/*
+ * FDDI Frame Control values.
+ */
+#define FDDI_SMT 0x41
+#define FDDI_SMT_NSA 0x4f
+#define FDDI_FC_LLC 0x50
+#define FDDI_FC_LLC_MASK 0xf0
+
+/*
+ * Unnumbered LLC format commands
+ */
+#define LLC_UI 0x3
+#define LLC_UI_P 0x13
+#define LLC_DISC 0x43
+#define LLC_DISC_P 0x53
+#define LLC_UA 0x63
+#define LLC_UA_P 0x73
+#define LLC_TEST 0xe3
+#define LLC_TEST_P 0xf3
+#define LLC_FRMR 0x87
+#define LLC_FRMR_P 0x97
+#define LLC_DM 0x0f
+#define LLC_DM_P 0x1f
+#define LLC_XID 0xaf
+#define LLC_XID_P 0xbf
+#define LLC_SABME 0x6f
+#define LLC_SABME_P 0x7f
+
+/*
+ * Supervisory LLC commands
+ */
+#define LLC_RR 0x01
+#define LLC_RNR 0x05
+#define LLC_REJ 0x09
+
+/*
+ * Info format - dummy only
+ */
+#define LLC_INFO 0x00
+
+/*
+ * ISO PDTR 10178 contains among others
+ */
+#define LLC_X25_LSAP 0x7e
+#define LLC_SNAP_LSAP 0xaa
+#define LLC_ISO_LSAP 0xfe
+
+/*
+ * Structure of the FDDI MAC header.
+ */
+struct fddi_header {
+ u_char fddi_fc; /* frame control field */
+ u_char fddi_dhost[6]; /* destination address */
+ u_char fddi_shost[6]; /* source address */
+};
+
+/*
+ * Structure of LLC/SNAP header.
+ */
+struct llc_header {
+ u_char llc_dsap;
+ u_char llc_ssap;
+ u_char snap_control;
+ u_char snap_org_code[3];
+ u_short snap_ether_type;
+};
+
+#define FDDI_HDRLEN 13 /* sizeof(struct fddi_header) */
+#define LLC_SNAPLEN 8 /* bytes for LLC/SNAP header */
+#define FDDI_HARDHDR_LEN 28 /* Hard header size */
+
+#define FDDIMTU 4352
+
+
+/* Types of loopback we can do. */
+typedef enum {
+ loop_none,
+ loop_formac,
+ loop_plc_lm,
+ loop_plc_eb,
+ loop_pdx
+} LoopbackType;
+
+/* Offset from fifo for writing word with tag. */
+#define FIFO_TAG 0x80
+
+#define MAX_FRAME_LEN 4500
+
+void set_ring_op(int up);
+void rmt_event(int st);
+void set_cf_join(int on);
+
+extern struct device *apfddi_device;
+extern struct enet_statistics *apfddi_stats;
+
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov