|
@@ -359,3 +359,100 @@ typedef struct scc_param {
|
|
|
ushort scc_ibc; /* Internal */
|
|
|
uint scc_rxtmp; /* Internal */
|
|
|
uint scc_tstate; /* Internal */
|
|
|
+ uint scc_tdp; /* Internal */
|
|
|
+ ushort scc_tbptr; /* Internal */
|
|
|
+ ushort scc_tbc; /* Internal */
|
|
|
+ uint scc_txtmp; /* Internal */
|
|
|
+ uint scc_rcrc; /* Internal */
|
|
|
+ uint scc_tcrc; /* Internal */
|
|
|
+} sccp_t;
|
|
|
+
|
|
|
+
|
|
|
+/* Function code bits.
|
|
|
+ */
|
|
|
+#define SCC_EB ((u_char)0x10) /* Set big endian byte order */
|
|
|
+#define SCC_FC_DMA ((u_char)0x08) /* Set SDMA */
|
|
|
+
|
|
|
+/* CPM Ethernet through SCC1.
|
|
|
+ */
|
|
|
+typedef struct scc_enet {
|
|
|
+ sccp_t sen_genscc;
|
|
|
+ uint sen_cpres; /* Preset CRC */
|
|
|
+ uint sen_cmask; /* Constant mask for CRC */
|
|
|
+ uint sen_crcec; /* CRC Error counter */
|
|
|
+ uint sen_alec; /* alignment error counter */
|
|
|
+ uint sen_disfc; /* discard frame counter */
|
|
|
+ ushort sen_pads; /* Tx short frame pad character */
|
|
|
+ ushort sen_retlim; /* Retry limit threshold */
|
|
|
+ ushort sen_retcnt; /* Retry limit counter */
|
|
|
+ ushort sen_maxflr; /* maximum frame length register */
|
|
|
+ ushort sen_minflr; /* minimum frame length register */
|
|
|
+ ushort sen_maxd1; /* maximum DMA1 length */
|
|
|
+ ushort sen_maxd2; /* maximum DMA2 length */
|
|
|
+ ushort sen_maxd; /* Rx max DMA */
|
|
|
+ ushort sen_dmacnt; /* Rx DMA counter */
|
|
|
+ ushort sen_maxb; /* Max BD byte count */
|
|
|
+ ushort sen_gaddr1; /* Group address filter */
|
|
|
+ ushort sen_gaddr2;
|
|
|
+ ushort sen_gaddr3;
|
|
|
+ ushort sen_gaddr4;
|
|
|
+ uint sen_tbuf0data0; /* Save area 0 - current frame */
|
|
|
+ uint sen_tbuf0data1; /* Save area 1 - current frame */
|
|
|
+ uint sen_tbuf0rba; /* Internal */
|
|
|
+ uint sen_tbuf0crc; /* Internal */
|
|
|
+ ushort sen_tbuf0bcnt; /* Internal */
|
|
|
+ ushort sen_paddrh; /* physical address (MSB) */
|
|
|
+ ushort sen_paddrm;
|
|
|
+ ushort sen_paddrl; /* physical address (LSB) */
|
|
|
+ ushort sen_pper; /* persistence */
|
|
|
+ ushort sen_rfbdptr; /* Rx first BD pointer */
|
|
|
+ ushort sen_tfbdptr; /* Tx first BD pointer */
|
|
|
+ ushort sen_tlbdptr; /* Tx last BD pointer */
|
|
|
+ uint sen_tbuf1data0; /* Save area 0 - current frame */
|
|
|
+ uint sen_tbuf1data1; /* Save area 1 - current frame */
|
|
|
+ uint sen_tbuf1rba; /* Internal */
|
|
|
+ uint sen_tbuf1crc; /* Internal */
|
|
|
+ ushort sen_tbuf1bcnt; /* Internal */
|
|
|
+ ushort sen_txlen; /* Tx Frame length counter */
|
|
|
+ ushort sen_iaddr1; /* Individual address filter */
|
|
|
+ ushort sen_iaddr2;
|
|
|
+ ushort sen_iaddr3;
|
|
|
+ ushort sen_iaddr4;
|
|
|
+ ushort sen_boffcnt; /* Backoff counter */
|
|
|
+
|
|
|
+ /* NOTE: Some versions of the manual have the following items
|
|
|
+ * incorrectly documented. Below is the proper order.
|
|
|
+ */
|
|
|
+ ushort sen_taddrh; /* temp address (MSB) */
|
|
|
+ ushort sen_taddrm;
|
|
|
+ ushort sen_taddrl; /* temp address (LSB) */
|
|
|
+} scc_enet_t;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#if defined (CONFIG_UCQUICC)
|
|
|
+/* uCquicc has the following signals connected to Ethernet:
|
|
|
+ * 68360 - lxt905
|
|
|
+ * PA0/RXD1 - rxd
|
|
|
+ * PA1/TXD1 - txd
|
|
|
+ * PA8/CLK1 - tclk
|
|
|
+ * PA9/CLK2 - rclk
|
|
|
+ * PC0/!RTS1 - t_en
|
|
|
+ * PC1/!CTS1 - col
|
|
|
+ * PC5/!CD1 - cd
|
|
|
+ */
|
|
|
+#define PA_ENET_RXD PA_RXD1
|
|
|
+#define PA_ENET_TXD PA_TXD1
|
|
|
+#define PA_ENET_TCLK PA_CLK1
|
|
|
+#define PA_ENET_RCLK PA_CLK2
|
|
|
+#define PC_ENET_TENA PC_RTS1
|
|
|
+#define PC_ENET_CLSN PC_CTS1
|
|
|
+#define PC_ENET_RENA PC_CD1
|
|
|
+
|
|
|
+/* Control bits in the SICR to route TCLK (CLK1) and RCLK (CLK2) to
|
|
|
+ * SCC1.
|
|
|
+ */
|
|
|
+#define SICR_ENET_MASK ((uint)0x000000ff)
|
|
|
+#define SICR_ENET_CLKRT ((uint)0x0000002c)
|
|
|
+
|
|
|
+#endif /* config_ucquicc */
|