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

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