Module Name:    src
Committed By:   msaitoh
Date:           Fri Jul 25 01:05:00 UTC 2014

Modified Files:
        src/sys/dev/pci: if_wmreg.h

Log Message:
No functional change:
- move NVM related values to the bottom.
- sort in register's address.


To generate a diff of this commit:
cvs rdiff -u -r1.57 -r1.58 src/sys/dev/pci/if_wmreg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/pci/if_wmreg.h
diff -u src/sys/dev/pci/if_wmreg.h:1.57 src/sys/dev/pci/if_wmreg.h:1.58
--- src/sys/dev/pci/if_wmreg.h:1.57	Fri Jul 11 02:23:44 2014
+++ src/sys/dev/pci/if_wmreg.h	Fri Jul 25 01:05:00 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_wmreg.h,v 1.57 2014/07/11 02:23:44 msaitoh Exp $	*/
+/*	$NetBSD: if_wmreg.h,v 1.58 2014/07/25 01:05:00 msaitoh Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -291,93 +291,6 @@ struct livengood_tcpip_ctxdesc {
 #define EECD_SEC1VAL	(1U << 22)	/* Sector One Valid */
 #define EECD_SEC1VAL_VALMASK (EECD_EE_AUTORD | EECD_EE_PRES) /* Valid Mask */
 
-#define	UWIRE_OPC_ERASE	0x04		/* MicroWire "erase" opcode */
-#define	UWIRE_OPC_WRITE	0x05		/* MicroWire "write" opcode */
-#define	UWIRE_OPC_READ	0x06		/* MicroWire "read" opcode */
-
-#define	SPI_OPC_WRITE	0x02		/* SPI "write" opcode */
-#define	SPI_OPC_READ	0x03		/* SPI "read" opcode */
-#define	SPI_OPC_A8	0x08		/* opcode bit 3 == address bit 8 */
-#define	SPI_OPC_WREN	0x06		/* SPI "set write enable" opcode */
-#define	SPI_OPC_WRDI	0x04		/* SPI "clear write enable" opcode */
-#define	SPI_OPC_RDSR	0x05		/* SPI "read status" opcode */
-#define	SPI_OPC_WRSR	0x01		/* SPI "write status" opcode */
-#define	SPI_MAX_RETRIES	5000		/* max wait of 5ms for RDY signal */
-
-#define	SPI_SR_RDY	0x01
-#define	SPI_SR_WEN	0x02
-#define	SPI_SR_BP0	0x04
-#define	SPI_SR_BP1	0x08
-#define	SPI_SR_WPEN	0x80
-
-#define	EEPROM_OFF_MACADDR	0x00	/* MAC address offset */
-#define	EEPROM_OFF_CFG1		0x0a	/* config word 1 */
-#define	EEPROM_OFF_CFG2		0x0f	/* config word 2 */
-#define	EEPROM_OFF_CFG3_PORTB	0x14	/* config word 3 */
-#define	EEPROM_INIT_3GIO_3	0x1a	/* PCIe Initial Configuration Word 3 */
-#define	EEPROM_OFF_K1_CONFIG	0x1b	/* NVM K1 Config */
-#define	EEPROM_OFF_SWDPIN	0x20	/* SWD Pins (Cordova) */
-#define	EEPROM_OFF_CFG3_PORTA	0x24	/* config word 3 */
-#define EEPROM_ALT_MAC_ADDR_PTR	0x37	/* to the alternative MAC addresses */
-
-#define	EEPROM_CFG1_LVDID	(1U << 0)
-#define	EEPROM_CFG1_LSSID	(1U << 1)
-#define	EEPROM_CFG1_PME_CLOCK	(1U << 2)
-#define	EEPROM_CFG1_PM		(1U << 3)
-#define	EEPROM_CFG1_ILOS	(1U << 4)
-#define	EEPROM_CFG1_SWDPIO_SHIFT 5
-#define	EEPROM_CFG1_SWDPIO_MASK	(0xf << EEPROM_CFG1_SWDPIO_SHIFT)
-#define	EEPROM_CFG1_IPS1	(1U << 8)
-#define	EEPROM_CFG1_LRST	(1U << 9)
-#define	EEPROM_CFG1_FD		(1U << 10)
-#define	EEPROM_CFG1_FRCSPD	(1U << 11)
-#define	EEPROM_CFG1_IPS0	(1U << 12)
-#define	EEPROM_CFG1_64_32_BAR	(1U << 13)
-
-#define	EEPROM_CFG2_CSR_RD_SPLIT (1U << 1)
-#define	EEPROM_CFG2_82544_APM_EN (1U << 2)
-#define	EEPROM_CFG2_64_BIT	(1U << 3)
-#define	EEPROM_CFG2_MAX_READ	(1U << 4)
-#define	EEPROM_CFG2_DMCR_MAP	(1U << 5)
-#define	EEPROM_CFG2_133_CAP	(1U << 6)
-#define	EEPROM_CFG2_MSI_DIS	(1U << 7)
-#define	EEPROM_CFG2_FLASH_DIS	(1U << 8)
-#define	EEPROM_CFG2_FLASH_SIZE(x) (((x) & 3) >> 9)
-#define	EEPROM_CFG2_APM_EN (1U << 10)
-#define	EEPROM_CFG2_ANE		(1U << 11)
-#define	EEPROM_CFG2_PAUSE(x)	(((x) & 3) >> 12)
-#define	EEPROM_CFG2_ASDE	(1U << 14)
-#define	EEPROM_CFG2_APM_PME	(1U << 15)
-#define	EEPROM_CFG2_SWDPIO_SHIFT 4
-#define	EEPROM_CFG2_SWDPIO_MASK	(0xf << EEPROM_CFG2_SWDPIO_SHIFT)
-#define	EEPROM_CFG2_MNGM_SHIFT	13	/* Manageability Operation mode */
-#define	EEPROM_CFG2_MNGM_MASK	(3U << EEPROM_CFG2_MNGM_SHIFT)
-#define	EEPROM_CFG2_MNGM_DIS	0
-#define	EEPROM_CFG2_MNGM_NCSI	1
-#define	EEPROM_CFG2_MNGM_PT	2
-
-#define	EEPROM_K1_CONFIG_ENABLE	0x01
-
-#define	EEPROM_SWDPIN_MASK	0xdf
-#define	EEPROM_SWDPIN_SWDPIN_SHIFT 0
-#define	EEPROM_SWDPIN_SWDPIO_SHIFT 8
-
-#define EEPROM_3GIO_3_ASPM_MASK	(0x3 << 2)	/* Active State PM Support */
-
-#define EEPROM_CFG3_APME	(1U << 10)	
-
-#define	EEPROM_OFF_MACADDR_LAN1	3	/* macaddr offset from PTR (port 1) */
-#define	EEPROM_OFF_MACADDR_LAN2	6	/* macaddr offset from PTR (port 2) */
-#define	EEPROM_OFF_MACADDR_LAN3	9	/* macaddr offset from PTR (port 3) */
-
-/*
- * EEPROM Partitioning. See Table 6-1, "EEPROM Top Level Partitioning"
- * in 82580's datasheet.
- */
-#define EEPROM_OFF_LAN1	0x0080	/* Offset for LAN1 (82580)*/
-#define EEPROM_OFF_LAN2	0x00c0	/* Offset for LAN2 (82580)*/
-#define EEPROM_OFF_LAN3	0x0100	/* Offset for LAN3 (82580)*/
-
 #define	WMREG_EERD	0x0014	/* EEPROM read */
 #define	EERD_DONE	0x02    /* done bit */
 #define	EERD_START	0x01	/* First bit for telling part to start operation */
@@ -413,7 +326,6 @@ struct livengood_tcpip_ctxdesc {
 #define CTRL_EXT_I2C_ENA	0x02000000  /* I2C enable */
 #define	CTRL_EXT_DRV_LOAD	0x10000000
 
-
 #define	WMREG_MDIC	0x0020	/* MDI Control Register */
 #define	MDIC_DATA(x)	((x) & 0xffff)
 #define	MDIC_REGADD(x)	((x) << 16)
@@ -445,8 +357,43 @@ struct livengood_tcpip_ctxdesc {
 
 #define	WMREG_FCT	0x0030	/* Flow Control Type */
 
-#define	WMREG_VET	0x0038	/* VLAN Ethertype */
+#define	WMREG_KUMCTRLSTA 0x0034	/* MAC-PHY interface - RW */
+#define	KUMCTRLSTA_MASK			0x0000FFFF
+#define	KUMCTRLSTA_OFFSET		0x001F0000
+#define	KUMCTRLSTA_OFFSET_SHIFT		16
+#define	KUMCTRLSTA_REN			0x00200000
 
+#define	KUMCTRLSTA_OFFSET_FIFO_CTRL	0x00000000
+#define	KUMCTRLSTA_OFFSET_CTRL		0x00000001
+#define	KUMCTRLSTA_OFFSET_INB_CTRL	0x00000002
+#define	KUMCTRLSTA_OFFSET_DIAG		0x00000003
+#define	KUMCTRLSTA_OFFSET_TIMEOUTS	0x00000004
+#define	KUMCTRLSTA_OFFSET_K1_CONFIG	0x00000007
+#define	KUMCTRLSTA_OFFSET_INB_PARAM	0x00000009
+#define	KUMCTRLSTA_OFFSET_HD_CTRL	0x00000010
+#define	KUMCTRLSTA_OFFSET_M2P_SERDES	0x0000001E
+#define	KUMCTRLSTA_OFFSET_M2P_MODES	0x0000001F
+
+/* FIFO Control */
+#define	KUMCTRLSTA_FIFO_CTRL_RX_BYPASS	0x00000008
+#define	KUMCTRLSTA_FIFO_CTRL_TX_BYPASS	0x00000800
+
+/* In-Band Control */
+#define	KUMCTRLSTA_INB_CTRL_LINK_TMOUT_DFLT 0x00000500
+#define	KUMCTRLSTA_INB_CTRL_DIS_PADDING	0x00000010
+
+/* Diag */
+#define	KUMCTRLSTA_DIAG_NELPBK	0x1000
+
+/* K1 Config */
+#define	KUMCTRLSTA_K1_ENABLE	0x0002
+
+/* Half-Duplex Control */
+#define	KUMCTRLSTA_HD_CTRL_10_100_DEFAULT 0x00000004
+#define	KUMCTRLSTA_HD_CTRL_1000_DEFAULT	0x00000000
+
+#define	WMREG_VET	0x0038	/* VLAN Ethertype */
+#define	WMREG_MDPHYA	0x003C	/* PHY address - RW */
 #define	WMREG_RAL_BASE	0x0040	/* Receive Address List */
 #define	WMREG_CORDOVA_RAL_BASE 0x5400
 #define	WMREG_RAL_LO(b, x) ((b) + ((x) << 3))
@@ -526,7 +473,7 @@ struct livengood_tcpip_ctxdesc {
 #define	WMREG_RDTR	0x2820
 #define	RDTR_FPD	(1U << 31)	/* flush partial descriptor */
 
-#define	WMREG_RADV	0x282c	/* Receive Interrupt Absolute Delay Timer */
+#define WMREG_LTRC	0x01a0	/* Latency Tolerance Reportiong Control */
 
 #define	WMREG_OLD_RDBAL0 0x0110	/* Receive Descriptor Base Low (ring 0) */
 #define	WMREG_RDBAL	0x2800
@@ -540,20 +487,20 @@ struct livengood_tcpip_ctxdesc {
 #define	WMREG_RDLEN	0x2808
 #define	WMREG_RDLEN_2	0x0c08	/* for 82576 ... */
 
-#define WMREG_SRRCTL	0x280c	/* additional recieve control used in 82575 ... */
+#define WMREG_SRRCTL	0x280c	/* additional recv control used in 82575 ... */
 #define WMREG_SRRCTL_2	0x0c0c	/* for 82576 ... */
-#define SRRCTL_BSIZEPKT_MASK				0x0000007f
+#define SRRCTL_BSIZEPKT_MASK		0x0000007f
 #define SRRCTL_BSIZEPKT_SHIFT		10	/* Shift _right_ */
-#define SRRCTL_BSIZEHDRSIZE_MASK			0x00000f00
+#define SRRCTL_BSIZEHDRSIZE_MASK	0x00000f00
 #define SRRCTL_BSIZEHDRSIZE_SHIFT	2	/* Shift _left_ */
-#define SRRCTL_DESCTYPE_LEGACY				0x00000000
-#define SRRCTL_DESCTYPE_ADV_ONEBUF			(1U << 25)
-#define SRRCTL_DESCTYPE_HDR_SPLIT			(2U << 25)
-#define SRRCTL_DESCTYPE_HDR_REPLICATION			(3U << 25)
-#define SRRCTL_DESCTYPE_HDR_REPLICATION_LARGE_PKT	(4U << 25)
-#define SRRCTL_DESCTYPE_HDR_SPLIT_ALWAYS		(5U << 25) /* 82575 only */
-#define SRRCTL_DESCTYPE_MASK				(7U << 25)
-#define SRRCTL_DROP_EN					0x80000000
+#define SRRCTL_DESCTYPE_LEGACY		0x00000000
+#define SRRCTL_DESCTYPE_ADV_ONEBUF	(1U << 25)
+#define SRRCTL_DESCTYPE_HDR_SPLIT	(2U << 25)
+#define SRRCTL_DESCTYPE_HDR_REPLICATION	(3U << 25)
+#define SRRCTL_DESCTYPE_HDR_REPLICATION_LARGE_PKT (4U << 25)
+#define SRRCTL_DESCTYPE_HDR_SPLIT_ALWAYS (5U << 25) /* 82575 only */
+#define SRRCTL_DESCTYPE_MASK		(7U << 25)
+#define SRRCTL_DROP_EN			0x80000000
 
 #define	WMREG_OLD_RDH0	0x0120	/* Receive Descriptor Head (ring 0) */
 #define	WMREG_RDH	0x2810
@@ -574,17 +521,11 @@ struct livengood_tcpip_ctxdesc {
 #define RXDCTL_SWFLSH        0x04000000 /* Rx Desc. write-back flushing */
 
 #define	WMREG_OLD_RDTR1	0x0130	/* Receive Delay Timer (ring 1) */
-
 #define	WMREG_OLD_RDBA1_LO 0x0138 /* Receive Descriptor Base Low (ring 1) */
-
 #define	WMREG_OLD_RDBA1_HI 0x013c /* Receive Descriptor Base High (ring 1) */
-
 #define	WMREG_OLD_RDLEN1 0x0140	/* Receive Drscriptor Length (ring 1) */
-
 #define	WMREG_OLD_RDH1	0x0148
-
 #define	WMREG_OLD_RDT1	0x0150
-
 #define	WMREG_OLD_FCRTH 0x0160	/* Flow Control Rx Threshold Hi (OLD) */
 #define	WMREG_FCRTL	0x2160	/* Flow Control Rx Threshold Lo */
 #define	FCRTH_DFLT	0x00008000
@@ -637,14 +578,12 @@ struct livengood_tcpip_ctxdesc {
 #define	DEFAULT_80003ES2LAN_TCTL_EXT_GCEX 0x00010000
 
 #define	WMREG_TQSA_LO	0x0408
-
 #define	WMREG_TQSA_HI	0x040c
 
 #define	WMREG_TIPG	0x0410	/* Transmit IPG Register */
 #define	TIPG_IPGT(x)	(x)		/* IPG transmit time */
 #define	TIPG_IPGR1(x)	((x) << 10)	/* IPG receive time 1 */
 #define	TIPG_IPGR2(x)	((x) << 20)	/* IPG receive time 2 */
-
 #define	TIPG_WM_DFLT	(TIPG_IPGT(0x0a) | TIPG_IPGR1(0x02) | TIPG_IPGR2(0x0a))
 #define	TIPG_LG_DFLT	(TIPG_IPGT(0x06) | TIPG_IPGR1(0x08) | TIPG_IPGR2(0x06))
 #define	TIPG_1000T_DFLT	(TIPG_IPGT(0x08) | TIPG_IPGR1(0x08) | TIPG_IPGR2(0x06))
@@ -655,26 +594,6 @@ struct livengood_tcpip_ctxdesc {
 
 #define	WMREG_TQC	0x0418
 
-#define	WMREG_EEWR	0x102c	/* EEPROM write */
-
-#define	WMREG_RDFH	0x2410	/* Receive Data FIFO Head */
-
-#define	WMREG_RDFT	0x2418	/* Receive Data FIFO Tail */
-
-#define	WMREG_RDFHS	0x2420	/* Receive Data FIFO Head Saved */
-
-#define	WMREG_RDFTS	0x2428	/* Receive Data FIFO Tail Saved */
-
-#define	WMREG_TDFH	0x3410	/* Transmit Data FIFO Head */
-
-#define	WMREG_TDFT	0x3418	/* Transmit Data FIFO Tail */
-
-#define	WMREG_TDFHS	0x3420	/* Transmit Data FIFO Head Saved */
-
-#define	WMREG_TDFTS	0x3428	/* Transmit Data FIFO Tail Saved */
-
-#define	WMREG_TDFPC	0x3430	/* Transmit Data FIFO Packet Count */
-
 #define	WMREG_OLD_TDBAL	0x0420	/* Transmit Descriptor Base Lo */
 #define	WMREG_TDBAL	0x3800
 
@@ -693,19 +612,7 @@ struct livengood_tcpip_ctxdesc {
 #define	WMREG_OLD_TIDV	0x0440	/* Transmit Delay Interrupt Value */
 #define	WMREG_TIDV	0x3820
 
-#define	WMREG_TXDCTL	0x3828	/* Trandmit Descriptor Control */
-#define	TXDCTL_PTHRESH(x) ((x) << 0)	/* prefetch threshold */
-#define	TXDCTL_HTHRESH(x) ((x) << 8)	/* host threshold */
-#define	TXDCTL_WTHRESH(x) ((x) << 16)	/* write back threshold */
-/* flags used starting with 82575 ... */
-#define TXDCTL_QUEUE_ENABLE  0x02000000 /* Enable specific Tx Queue */
-#define TXDCTL_SWFLSH        0x04000000 /* Tx Desc. write-back flushing */
-#define TXDCTL_PRIORITY      0x08000000
-
-#define	WMREG_TADV	0x382c	/* Transmit Absolute Interrupt Delay Timer */
-
 #define	WMREG_AIT	0x0458	/* Adaptive IFS Throttle */
-
 #define	WMREG_VFTA	0x0600
 
 #define	WMREG_MDICNFG	0x0e04	/* MDC/MDIO Configuration Register */
@@ -718,6 +625,37 @@ struct livengood_tcpip_ctxdesc {
 #define	WM_ICH8_MC_TABSIZE 32
 #define	WM_VLAN_TABSIZE	128
 
+#define WMREG_EEER	0x0e30	/* Energy Efficiency Ethernet "EEE" */
+#define EEER_TX_LPI_EN		0x00010000 /* EEER Tx LPI Enable */
+#define EEER_RX_LPI_EN		0x00020000 /* EEER Rx LPI Enable */
+#define EEER_LPI_FC		0x00040000 /* EEER Ena on Flow Cntrl */
+#define EEER_EEER_NEG		0x20000000 /* EEER capability nego */
+#define EEER_EEER_RX_LPI_STATUS	0x40000000 /* EEER Rx in LPI state */
+#define EEER_EEER_TX_LPI_STATUS	0x80000000 /* EEER Tx in LPI state */
+#define WMREG_EEE_SU	0x0e34	/* EEE Setup */
+#define WMREG_IPCNFG	0x0e38	/* Internal PHY Configuration */
+#define IPCNFG_EEE_100M_AN	0x00000004 /* IPCNFG EEE Ena 100M AN */
+#define IPCNFG_EEE_1G_AN	0x00000008 /* IPCNFG EEE Ena 1G AN */
+
+#define WMREG_EXTCNFCTR	0x0f00  /* Extended Configuration Control */
+#define EXTCNFCTR_PCIE_WRITE_ENABLE	0x00000001
+#define EXTCNFCTR_PHY_WRITE_ENABLE	0x00000002
+#define EXTCNFCTR_D_UD_ENABLE		0x00000004
+#define EXTCNFCTR_D_UD_LATENCY		0x00000008
+#define EXTCNFCTR_D_UD_OWNER		0x00000010
+#define EXTCNFCTR_MDIO_SW_OWNERSHIP	0x00000020
+#define EXTCNFCTR_MDIO_HW_OWNERSHIP	0x00000040
+#define EXTCNFCTR_GATE_PHY_CFG		0x00000080
+#define EXTCNFCTR_EXT_CNF_POINTER	0x0FFF0000
+#define E1000_EXTCNF_CTRL_SWFLAG	EXTCNFCTR_MDIO_SW_OWNERSHIP
+
+#define	WMREG_PHY_CTRL	0x0f10	/* PHY control */
+#define	PHY_CTRL_SPD_EN		(1 << 0)
+#define	PHY_CTRL_D0A_LPLU	(1 << 1)
+#define	PHY_CTRL_NOND0A_LPLU	(1 << 2)
+#define	PHY_CTRL_NOND0A_GBE_DIS	(1 << 3)
+#define	PHY_CTRL_GBE_DIS	(1 << 4)
+
 #define	WMREG_PBA	0x1000	/* Packet Buffer Allocation */
 #define	PBA_BYTE_SHIFT	10		/* KB -> bytes */
 #define	PBA_ADDR_SHIFT	7		/* KB -> quadwords */
@@ -762,6 +700,8 @@ struct livengood_tcpip_ctxdesc {
 #define MAX_SGMII_PHY_REG_ADDR	255
 #define I2CCMD_PHY_TIMEOUT	200
 
+#define	WMREG_EEWR	0x102c	/* EEPROM write */
+
 #define WMREG_PBA_ECC	0x01100	/* PBA ECC */
 #define PBA_ECC_COUNTER_MASK	0xfff00000 /* ECC counter mask */
 #define PBA_ECC_COUNTER_SHIFT	20	   /* ECC counter shift value */
@@ -791,15 +731,36 @@ struct livengood_tcpip_ctxdesc {
 #define WMREG_EITR(x)	(0x01680 + (0x4 * (x)))
 #define EITR_ITR_INT_MASK	0x0000ffff
 
+#define	WMREG_RDFH	0x2410	/* Receive Data FIFO Head */
+#define	WMREG_RDFT	0x2418	/* Receive Data FIFO Tail */
+#define	WMREG_RDFHS	0x2420	/* Receive Data FIFO Head Saved */
+#define	WMREG_RDFTS	0x2428	/* Receive Data FIFO Tail Saved */
+#define	WMREG_RADV	0x282c	/* Receive Interrupt Absolute Delay Timer */
+
 #define	WMREG_TXDMAC	0x3000	/* Transfer DMA Control */
 #define	TXDMAC_DPP	(1U << 0)	/* disable packet prefetch */
 
 #define WMREG_KABGTXD	0x3004	/* AFE and Gap Transmit Ref Data */
 #define	KABGTXD_BGSQLBIAS 0x00050000
 
+#define	WMREG_TDFH	0x3410	/* Transmit Data FIFO Head */
+#define	WMREG_TDFT	0x3418	/* Transmit Data FIFO Tail */
+#define	WMREG_TDFHS	0x3420	/* Transmit Data FIFO Head Saved */
+#define	WMREG_TDFTS	0x3428	/* Transmit Data FIFO Tail Saved */
+#define	WMREG_TDFPC	0x3430	/* Transmit Data FIFO Packet Count */
+
+#define	WMREG_TXDCTL	0x3828	/* Trandmit Descriptor Control */
+#define	TXDCTL_PTHRESH(x) ((x) << 0)	/* prefetch threshold */
+#define	TXDCTL_HTHRESH(x) ((x) << 8)	/* host threshold */
+#define	TXDCTL_WTHRESH(x) ((x) << 16)	/* write back threshold */
+/* flags used starting with 82575 ... */
+#define TXDCTL_QUEUE_ENABLE  0x02000000 /* Enable specific Tx Queue */
+#define TXDCTL_SWFLSH        0x04000000 /* Tx Desc. write-back flushing */
+#define TXDCTL_PRIORITY      0x08000000
+
+#define	WMREG_TADV	0x382c	/* Transmit Absolute Interrupt Delay Timer */
 #define	WMREG_TSPMT	0x3830	/* TCP Segmentation Pad and Minimum
 				   Threshold (Cordova) */
-
 #define	WMREG_TARC0	0x3840	/* Tx arbitration count */
 
 #define	TSPMT_TSMT(x)	(x)		/* TCP seg min transfer */
@@ -820,43 +781,8 @@ struct livengood_tcpip_ctxdesc {
 #define	WMREG_XOFFTXC	0x4054	/* XOFF Tx Count - R/clr */
 #define	WMREG_FCRUC	0x4058	/* Flow Control Rx Unsupported Count - R/clr */
 #define WMREG_RNBC	0x40a0	/* Receive No Buffers Count */
-
-#define	WMREG_KUMCTRLSTA 0x0034	/* MAC-PHY interface - RW */
-#define	KUMCTRLSTA_MASK			0x0000FFFF
-#define	KUMCTRLSTA_OFFSET		0x001F0000
-#define	KUMCTRLSTA_OFFSET_SHIFT		16
-#define	KUMCTRLSTA_REN			0x00200000
-
-#define	KUMCTRLSTA_OFFSET_FIFO_CTRL	0x00000000
-#define	KUMCTRLSTA_OFFSET_CTRL		0x00000001
-#define	KUMCTRLSTA_OFFSET_INB_CTRL	0x00000002
-#define	KUMCTRLSTA_OFFSET_DIAG		0x00000003
-#define	KUMCTRLSTA_OFFSET_TIMEOUTS	0x00000004
-#define	KUMCTRLSTA_OFFSET_K1_CONFIG	0x00000007
-#define	KUMCTRLSTA_OFFSET_INB_PARAM	0x00000009
-#define	KUMCTRLSTA_OFFSET_HD_CTRL	0x00000010
-#define	KUMCTRLSTA_OFFSET_M2P_SERDES	0x0000001E
-#define	KUMCTRLSTA_OFFSET_M2P_MODES	0x0000001F
-
-/* FIFO Control */
-#define	KUMCTRLSTA_FIFO_CTRL_RX_BYPASS	0x00000008
-#define	KUMCTRLSTA_FIFO_CTRL_TX_BYPASS	0x00000800
-
-/* In-Band Control */
-#define	KUMCTRLSTA_INB_CTRL_LINK_TMOUT_DFLT 0x00000500
-#define	KUMCTRLSTA_INB_CTRL_DIS_PADDING	0x00000010
-
-/* Diag */
-#define	KUMCTRLSTA_DIAG_NELPBK	0x1000
-
-/* K1 Config */
-#define	KUMCTRLSTA_K1_ENABLE	0x0002
-
-/* Half-Duplex Control */
-#define	KUMCTRLSTA_HD_CTRL_10_100_DEFAULT 0x00000004
-#define	KUMCTRLSTA_HD_CTRL_1000_DEFAULT	0x00000000
-
-#define	WMREG_MDPHYA	0x003C	/* PHY address - RW */
+#define WMREG_TLPIC	0x4148	/* EEE Tx LPI Count */
+#define WMREG_RLPIC	0x414c	/* EEE Rx LPI Count */
 
 #define	WMREG_RXCSUM	0x5000	/* Receive Checksum register */
 #define	RXCSUM_PCSS	0x000000ff	/* Packet Checksum Start */
@@ -941,42 +867,98 @@ struct livengood_tcpip_ctxdesc {
 #define	SWFW_SOFT_SHIFT		0	/* software semaphores */
 #define	SWFW_FIRM_SHIFT		16	/* firmware semaphores */
 
-#define WMREG_CRC_OFFSET	0x5f50
+#define WMREG_CRC_OFFSET 0x5f50
 
-#define WMREG_EXTCNFCTR		0x0f00  /* Extended Configuration Control */
-#define EXTCNFCTR_PCIE_WRITE_ENABLE	0x00000001
-#define EXTCNFCTR_PHY_WRITE_ENABLE	0x00000002
-#define EXTCNFCTR_D_UD_ENABLE		0x00000004
-#define EXTCNFCTR_D_UD_LATENCY		0x00000008
-#define EXTCNFCTR_D_UD_OWNER		0x00000010
-#define EXTCNFCTR_MDIO_SW_OWNERSHIP	0x00000020
-#define EXTCNFCTR_MDIO_HW_OWNERSHIP	0x00000040
-#define EXTCNFCTR_GATE_PHY_CFG		0x00000080
-#define EXTCNFCTR_EXT_CNF_POINTER	0x0FFF0000
-#define E1000_EXTCNF_CTRL_SWFLAG	EXTCNFCTR_MDIO_SW_OWNERSHIP
+/*
+ * NVM related values.
+ *  Microwire, SPI, and flash
+ */
+#define	UWIRE_OPC_ERASE	0x04		/* MicroWire "erase" opcode */
+#define	UWIRE_OPC_WRITE	0x05		/* MicroWire "write" opcode */
+#define	UWIRE_OPC_READ	0x06		/* MicroWire "read" opcode */
 
-#define	WMREG_PHY_CTRL	0x0f10	/* PHY control */
-#define	PHY_CTRL_SPD_EN		(1 << 0)
-#define	PHY_CTRL_D0A_LPLU	(1 << 1)
-#define	PHY_CTRL_NOND0A_LPLU	(1 << 2)
-#define	PHY_CTRL_NOND0A_GBE_DIS	(1 << 3)
-#define	PHY_CTRL_GBE_DIS	(1 << 4)
+#define	SPI_OPC_WRITE	0x02		/* SPI "write" opcode */
+#define	SPI_OPC_READ	0x03		/* SPI "read" opcode */
+#define	SPI_OPC_A8	0x08		/* opcode bit 3 == address bit 8 */
+#define	SPI_OPC_WREN	0x06		/* SPI "set write enable" opcode */
+#define	SPI_OPC_WRDI	0x04		/* SPI "clear write enable" opcode */
+#define	SPI_OPC_RDSR	0x05		/* SPI "read status" opcode */
+#define	SPI_OPC_WRSR	0x01		/* SPI "write status" opcode */
+#define	SPI_MAX_RETRIES	5000		/* max wait of 5ms for RDY signal */
 
-/* Energy Efficient Ethernet "EEE" registers */
-#define WMREG_LTRC	0x01a0	/* Latency Tolerance Reportiong Control */
-#define WMREG_EEER	0x0e30	/* Energy Efficiency Ethernet "EEE" */
-#define EEER_TX_LPI_EN		0x00010000 /* EEER Tx LPI Enable */
-#define EEER_RX_LPI_EN		0x00020000 /* EEER Rx LPI Enable */
-#define EEER_LPI_FC		0x00040000 /* EEER Ena on Flow Cntrl */
-#define EEER_EEER_NEG		0x20000000 /* EEER capability nego */
-#define EEER_EEER_RX_LPI_STATUS	0x40000000 /* EEER Rx in LPI state */
-#define EEER_EEER_TX_LPI_STATUS	0x80000000 /* EEER Tx in LPI state */
-#define WMREG_EEE_SU	0x0e34	/* EEE Setup */
-#define WMREG_IPCNFG	0x0e38	/* Internal PHY Configuration */
-#define IPCNFG_EEE_100M_AN	0x00000004 /* IPCNFG EEE Ena 100M AN */
-#define IPCNFG_EEE_1G_AN	0x00000008 /* IPCNFG EEE Ena 1G AN */
-#define WMREG_TLPIC	0x4148	/* EEE Tx LPI Count */
-#define WMREG_RLPIC	0x414c	/* EEE Rx LPI Count */
+#define	SPI_SR_RDY	0x01
+#define	SPI_SR_WEN	0x02
+#define	SPI_SR_BP0	0x04
+#define	SPI_SR_BP1	0x08
+#define	SPI_SR_WPEN	0x80
+
+#define	EEPROM_OFF_MACADDR	0x00	/* MAC address offset */
+#define	EEPROM_OFF_CFG1		0x0a	/* config word 1 */
+#define	EEPROM_OFF_CFG2		0x0f	/* config word 2 */
+#define	EEPROM_OFF_CFG3_PORTB	0x14	/* config word 3 */
+#define	EEPROM_INIT_3GIO_3	0x1a	/* PCIe Initial Configuration Word 3 */
+#define	EEPROM_OFF_K1_CONFIG	0x1b	/* NVM K1 Config */
+#define	EEPROM_OFF_SWDPIN	0x20	/* SWD Pins (Cordova) */
+#define	EEPROM_OFF_CFG3_PORTA	0x24	/* config word 3 */
+#define EEPROM_ALT_MAC_ADDR_PTR	0x37	/* to the alternative MAC addresses */
+
+#define	EEPROM_CFG1_LVDID	(1U << 0)
+#define	EEPROM_CFG1_LSSID	(1U << 1)
+#define	EEPROM_CFG1_PME_CLOCK	(1U << 2)
+#define	EEPROM_CFG1_PM		(1U << 3)
+#define	EEPROM_CFG1_ILOS	(1U << 4)
+#define	EEPROM_CFG1_SWDPIO_SHIFT 5
+#define	EEPROM_CFG1_SWDPIO_MASK	(0xf << EEPROM_CFG1_SWDPIO_SHIFT)
+#define	EEPROM_CFG1_IPS1	(1U << 8)
+#define	EEPROM_CFG1_LRST	(1U << 9)
+#define	EEPROM_CFG1_FD		(1U << 10)
+#define	EEPROM_CFG1_FRCSPD	(1U << 11)
+#define	EEPROM_CFG1_IPS0	(1U << 12)
+#define	EEPROM_CFG1_64_32_BAR	(1U << 13)
+
+#define	EEPROM_CFG2_CSR_RD_SPLIT (1U << 1)
+#define	EEPROM_CFG2_82544_APM_EN (1U << 2)
+#define	EEPROM_CFG2_64_BIT	(1U << 3)
+#define	EEPROM_CFG2_MAX_READ	(1U << 4)
+#define	EEPROM_CFG2_DMCR_MAP	(1U << 5)
+#define	EEPROM_CFG2_133_CAP	(1U << 6)
+#define	EEPROM_CFG2_MSI_DIS	(1U << 7)
+#define	EEPROM_CFG2_FLASH_DIS	(1U << 8)
+#define	EEPROM_CFG2_FLASH_SIZE(x) (((x) & 3) >> 9)
+#define	EEPROM_CFG2_APM_EN (1U << 10)
+#define	EEPROM_CFG2_ANE		(1U << 11)
+#define	EEPROM_CFG2_PAUSE(x)	(((x) & 3) >> 12)
+#define	EEPROM_CFG2_ASDE	(1U << 14)
+#define	EEPROM_CFG2_APM_PME	(1U << 15)
+#define	EEPROM_CFG2_SWDPIO_SHIFT 4
+#define	EEPROM_CFG2_SWDPIO_MASK	(0xf << EEPROM_CFG2_SWDPIO_SHIFT)
+#define	EEPROM_CFG2_MNGM_SHIFT	13	/* Manageability Operation mode */
+#define	EEPROM_CFG2_MNGM_MASK	(3U << EEPROM_CFG2_MNGM_SHIFT)
+#define	EEPROM_CFG2_MNGM_DIS	0
+#define	EEPROM_CFG2_MNGM_NCSI	1
+#define	EEPROM_CFG2_MNGM_PT	2
+
+#define	EEPROM_K1_CONFIG_ENABLE	0x01
+
+#define	EEPROM_SWDPIN_MASK	0xdf
+#define	EEPROM_SWDPIN_SWDPIN_SHIFT 0
+#define	EEPROM_SWDPIN_SWDPIO_SHIFT 8
+
+#define EEPROM_3GIO_3_ASPM_MASK	(0x3 << 2)	/* Active State PM Support */
+
+#define EEPROM_CFG3_APME	(1U << 10)	
+
+#define	EEPROM_OFF_MACADDR_LAN1	3	/* macaddr offset from PTR (port 1) */
+#define	EEPROM_OFF_MACADDR_LAN2	6	/* macaddr offset from PTR (port 2) */
+#define	EEPROM_OFF_MACADDR_LAN3	9	/* macaddr offset from PTR (port 3) */
+
+/*
+ * EEPROM Partitioning. See Table 6-1, "EEPROM Top Level Partitioning"
+ * in 82580's datasheet.
+ */
+#define EEPROM_OFF_LAN1	0x0080	/* Offset for LAN1 (82580)*/
+#define EEPROM_OFF_LAN2	0x00c0	/* Offset for LAN2 (82580)*/
+#define EEPROM_OFF_LAN3	0x0100	/* Offset for LAN3 (82580)*/
 
 /* ich8 flash control */
 #define ICH_FLASH_COMMAND_TIMEOUT            5000    /* 5000 uSecs - adjusted */

Reply via email to