aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2x/bnx2x_reg.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/bnx2x/bnx2x_reg.h')
-rw-r--r--drivers/net/bnx2x/bnx2x_reg.h906
1 files changed, 804 insertions, 102 deletions
diff --git a/drivers/net/bnx2x/bnx2x_reg.h b/drivers/net/bnx2x/bnx2x_reg.h
index 86bba25d2d3f..53da4ef19928 100644
--- a/drivers/net/bnx2x/bnx2x_reg.h
+++ b/drivers/net/bnx2x/bnx2x_reg.h
@@ -54,16 +54,20 @@
54/* [RW 10] The number of free blocks below which the full signal to class 0 54/* [RW 10] The number of free blocks below which the full signal to class 0
55 * is asserted */ 55 * is asserted */
56#define BRB1_REG_FULL_0_XOFF_THRESHOLD_0 0x601d0 56#define BRB1_REG_FULL_0_XOFF_THRESHOLD_0 0x601d0
57/* [RW 10] The number of free blocks above which the full signal to class 0 57#define BRB1_REG_FULL_0_XOFF_THRESHOLD_1 0x60230
58/* [RW 11] The number of free blocks above which the full signal to class 0
58 * is de-asserted */ 59 * is de-asserted */
59#define BRB1_REG_FULL_0_XON_THRESHOLD_0 0x601d4 60#define BRB1_REG_FULL_0_XON_THRESHOLD_0 0x601d4
60/* [RW 10] The number of free blocks below which the full signal to class 1 61#define BRB1_REG_FULL_0_XON_THRESHOLD_1 0x60234
62/* [RW 11] The number of free blocks below which the full signal to class 1
61 * is asserted */ 63 * is asserted */
62#define BRB1_REG_FULL_1_XOFF_THRESHOLD_0 0x601d8 64#define BRB1_REG_FULL_1_XOFF_THRESHOLD_0 0x601d8
63/* [RW 10] The number of free blocks above which the full signal to class 1 65#define BRB1_REG_FULL_1_XOFF_THRESHOLD_1 0x60238
66/* [RW 11] The number of free blocks above which the full signal to class 1
64 * is de-asserted */ 67 * is de-asserted */
65#define BRB1_REG_FULL_1_XON_THRESHOLD_0 0x601dc 68#define BRB1_REG_FULL_1_XON_THRESHOLD_0 0x601dc
66/* [RW 10] The number of free blocks below which the full signal to the LB 69#define BRB1_REG_FULL_1_XON_THRESHOLD_1 0x6023c
70/* [RW 11] The number of free blocks below which the full signal to the LB
67 * port is asserted */ 71 * port is asserted */
68#define BRB1_REG_FULL_LB_XOFF_THRESHOLD 0x601e0 72#define BRB1_REG_FULL_LB_XOFF_THRESHOLD 0x601e0
69/* [RW 10] The number of free blocks above which the full signal to the LB 73/* [RW 10] The number of free blocks above which the full signal to the LB
@@ -75,15 +79,49 @@
75/* [RW 10] The number of free blocks below which the High_llfc signal to 79/* [RW 10] The number of free blocks below which the High_llfc signal to
76 interface #n is asserted. */ 80 interface #n is asserted. */
77#define BRB1_REG_HIGH_LLFC_LOW_THRESHOLD_0 0x6013c 81#define BRB1_REG_HIGH_LLFC_LOW_THRESHOLD_0 0x6013c
78/* [RW 23] LL RAM data. */ 82/* [RW 11] The number of blocks guarantied for the LB port */
79#define BRB1_REG_LL_RAM 0x61000 83#define BRB1_REG_LB_GUARANTIED 0x601ec
84/* [RW 11] The hysteresis on the guarantied buffer space for the Lb port
85 * before signaling XON. */
86#define BRB1_REG_LB_GUARANTIED_HYST 0x60264
87/* [RW 24] LL RAM data. */
88#define BRB1_REG_LL_RAM 0x61000
80/* [RW 10] The number of free blocks above which the Low_llfc signal to 89/* [RW 10] The number of free blocks above which the Low_llfc signal to
81 interface #n is de-asserted. */ 90 interface #n is de-asserted. */
82#define BRB1_REG_LOW_LLFC_HIGH_THRESHOLD_0 0x6016c 91#define BRB1_REG_LOW_LLFC_HIGH_THRESHOLD_0 0x6016c
83/* [RW 10] The number of free blocks below which the Low_llfc signal to 92/* [RW 10] The number of free blocks below which the Low_llfc signal to
84 interface #n is asserted. */ 93 interface #n is asserted. */
85#define BRB1_REG_LOW_LLFC_LOW_THRESHOLD_0 0x6015c 94#define BRB1_REG_LOW_LLFC_LOW_THRESHOLD_0 0x6015c
86/* [RW 10] The number of blocks guarantied for the MAC port */ 95/* [RW 11] The number of blocks guarantied for class 0 in MAC 0. The
96 * register is applicable only when per_class_guaranty_mode is set. */
97#define BRB1_REG_MAC_0_CLASS_0_GUARANTIED 0x60244
98/* [RW 11] The hysteresis on the guarantied buffer space for class 0 in MAC
99 * 1 before signaling XON. The register is applicable only when
100 * per_class_guaranty_mode is set. */
101#define BRB1_REG_MAC_0_CLASS_0_GUARANTIED_HYST 0x60254
102/* [RW 11] The number of blocks guarantied for class 1 in MAC 0. The
103 * register is applicable only when per_class_guaranty_mode is set. */
104#define BRB1_REG_MAC_0_CLASS_1_GUARANTIED 0x60248
105/* [RW 11] The hysteresis on the guarantied buffer space for class 1in MAC 0
106 * before signaling XON. The register is applicable only when
107 * per_class_guaranty_mode is set. */
108#define BRB1_REG_MAC_0_CLASS_1_GUARANTIED_HYST 0x60258
109/* [RW 11] The number of blocks guarantied for class 0in MAC1.The register
110 * is applicable only when per_class_guaranty_mode is set. */
111#define BRB1_REG_MAC_1_CLASS_0_GUARANTIED 0x6024c
112/* [RW 11] The hysteresis on the guarantied buffer space for class 0 in MAC
113 * 1 before signaling XON. The register is applicable only when
114 * per_class_guaranty_mode is set. */
115#define BRB1_REG_MAC_1_CLASS_0_GUARANTIED_HYST 0x6025c
116/* [RW 11] The number of blocks guarantied for class 1 in MAC 1. The
117 * register is applicable only when per_class_guaranty_mode is set. */
118#define BRB1_REG_MAC_1_CLASS_1_GUARANTIED 0x60250
119/* [RW 11] The hysteresis on the guarantied buffer space for class 1 in MAC
120 * 1 before signaling XON. The register is applicable only when
121 * per_class_guaranty_mode is set. */
122#define BRB1_REG_MAC_1_CLASS_1_GUARANTIED_HYST 0x60260
123/* [RW 11] The number of blocks guarantied for the MAC port. The register is
124 * applicable only when per_class_guaranty_mode is reset. */
87#define BRB1_REG_MAC_GUARANTIED_0 0x601e8 125#define BRB1_REG_MAC_GUARANTIED_0 0x601e8
88#define BRB1_REG_MAC_GUARANTIED_1 0x60240 126#define BRB1_REG_MAC_GUARANTIED_1 0x60240
89/* [R 24] The number of full blocks. */ 127/* [R 24] The number of full blocks. */
@@ -100,15 +138,19 @@
100/* [RW 10] The number of free blocks below which the pause signal to class 0 138/* [RW 10] The number of free blocks below which the pause signal to class 0
101 * is asserted */ 139 * is asserted */
102#define BRB1_REG_PAUSE_0_XOFF_THRESHOLD_0 0x601c0 140#define BRB1_REG_PAUSE_0_XOFF_THRESHOLD_0 0x601c0
103/* [RW 10] The number of free blocks above which the pause signal to class 0 141#define BRB1_REG_PAUSE_0_XOFF_THRESHOLD_1 0x60220
142/* [RW 11] The number of free blocks above which the pause signal to class 0
104 * is de-asserted */ 143 * is de-asserted */
105#define BRB1_REG_PAUSE_0_XON_THRESHOLD_0 0x601c4 144#define BRB1_REG_PAUSE_0_XON_THRESHOLD_0 0x601c4
106/* [RW 10] The number of free blocks below which the pause signal to class 1 145#define BRB1_REG_PAUSE_0_XON_THRESHOLD_1 0x60224
146/* [RW 11] The number of free blocks below which the pause signal to class 1
107 * is asserted */ 147 * is asserted */
108#define BRB1_REG_PAUSE_1_XOFF_THRESHOLD_0 0x601c8 148#define BRB1_REG_PAUSE_1_XOFF_THRESHOLD_0 0x601c8
109/* [RW 10] The number of free blocks above which the pause signal to class 1 149#define BRB1_REG_PAUSE_1_XOFF_THRESHOLD_1 0x60228
150/* [RW 11] The number of free blocks above which the pause signal to class 1
110 * is de-asserted */ 151 * is de-asserted */
111#define BRB1_REG_PAUSE_1_XON_THRESHOLD_0 0x601cc 152#define BRB1_REG_PAUSE_1_XON_THRESHOLD_0 0x601cc
153#define BRB1_REG_PAUSE_1_XON_THRESHOLD_1 0x6022c
112/* [RW 10] Write client 0: De-assert pause threshold. Not Functional */ 154/* [RW 10] Write client 0: De-assert pause threshold. Not Functional */
113#define BRB1_REG_PAUSE_HIGH_THRESHOLD_0 0x60078 155#define BRB1_REG_PAUSE_HIGH_THRESHOLD_0 0x60078
114#define BRB1_REG_PAUSE_HIGH_THRESHOLD_1 0x6007c 156#define BRB1_REG_PAUSE_HIGH_THRESHOLD_1 0x6007c
@@ -422,6 +464,7 @@
422#define CFC_REG_NUM_LCIDS_ALLOC 0x104020 464#define CFC_REG_NUM_LCIDS_ALLOC 0x104020
423/* [R 9] Number of Arriving LCIDs in Link List Block */ 465/* [R 9] Number of Arriving LCIDs in Link List Block */
424#define CFC_REG_NUM_LCIDS_ARRIVING 0x104004 466#define CFC_REG_NUM_LCIDS_ARRIVING 0x104004
467#define CFC_REG_NUM_LCIDS_INSIDE_PF 0x104120
425/* [R 9] Number of Leaving LCIDs in Link List Block */ 468/* [R 9] Number of Leaving LCIDs in Link List Block */
426#define CFC_REG_NUM_LCIDS_LEAVING 0x104018 469#define CFC_REG_NUM_LCIDS_LEAVING 0x104018
427#define CFC_REG_WEAK_ENABLE_PF 0x104124 470#define CFC_REG_WEAK_ENABLE_PF 0x104124
@@ -783,6 +826,7 @@
783/* [RW 3] The number of simultaneous outstanding requests to Context Fetch 826/* [RW 3] The number of simultaneous outstanding requests to Context Fetch
784 Interface. */ 827 Interface. */
785#define DORQ_REG_OUTST_REQ 0x17003c 828#define DORQ_REG_OUTST_REQ 0x17003c
829#define DORQ_REG_PF_USAGE_CNT 0x1701d0
786#define DORQ_REG_REGN 0x170038 830#define DORQ_REG_REGN 0x170038
787/* [R 4] Current value of response A counter credit. Initial credit is 831/* [R 4] Current value of response A counter credit. Initial credit is
788 configured through write to ~dorq_registers_rsp_init_crd.rsp_init_crd 832 configured through write to ~dorq_registers_rsp_init_crd.rsp_init_crd
@@ -802,10 +846,12 @@
802/* [RW 28] TCM Header when both ULP and TCP context is loaded. */ 846/* [RW 28] TCM Header when both ULP and TCP context is loaded. */
803#define DORQ_REG_SHRT_CMHEAD 0x170054 847#define DORQ_REG_SHRT_CMHEAD 0x170054
804#define HC_CONFIG_0_REG_ATTN_BIT_EN_0 (0x1<<4) 848#define HC_CONFIG_0_REG_ATTN_BIT_EN_0 (0x1<<4)
849#define HC_CONFIG_0_REG_BLOCK_DISABLE_0 (0x1<<0)
805#define HC_CONFIG_0_REG_INT_LINE_EN_0 (0x1<<3) 850#define HC_CONFIG_0_REG_INT_LINE_EN_0 (0x1<<3)
806#define HC_CONFIG_0_REG_MSI_ATTN_EN_0 (0x1<<7) 851#define HC_CONFIG_0_REG_MSI_ATTN_EN_0 (0x1<<7)
807#define HC_CONFIG_0_REG_MSI_MSIX_INT_EN_0 (0x1<<2) 852#define HC_CONFIG_0_REG_MSI_MSIX_INT_EN_0 (0x1<<2)
808#define HC_CONFIG_0_REG_SINGLE_ISR_EN_0 (0x1<<1) 853#define HC_CONFIG_0_REG_SINGLE_ISR_EN_0 (0x1<<1)
854#define HC_CONFIG_1_REG_BLOCK_DISABLE_1 (0x1<<0)
809#define HC_REG_AGG_INT_0 0x108050 855#define HC_REG_AGG_INT_0 0x108050
810#define HC_REG_AGG_INT_1 0x108054 856#define HC_REG_AGG_INT_1 0x108054
811#define HC_REG_ATTN_BIT 0x108120 857#define HC_REG_ATTN_BIT 0x108120
@@ -844,6 +890,7 @@
844#define HC_REG_VQID_0 0x108008 890#define HC_REG_VQID_0 0x108008
845#define HC_REG_VQID_1 0x10800c 891#define HC_REG_VQID_1 0x10800c
846#define IGU_BLOCK_CONFIGURATION_REG_BACKWARD_COMP_EN (0x1<<1) 892#define IGU_BLOCK_CONFIGURATION_REG_BACKWARD_COMP_EN (0x1<<1)
893#define IGU_BLOCK_CONFIGURATION_REG_BLOCK_ENABLE (0x1<<0)
847#define IGU_REG_ATTENTION_ACK_BITS 0x130108 894#define IGU_REG_ATTENTION_ACK_BITS 0x130108
848/* [R 4] Debug: attn_fsm */ 895/* [R 4] Debug: attn_fsm */
849#define IGU_REG_ATTN_FSM 0x130054 896#define IGU_REG_ATTN_FSM 0x130054
@@ -933,6 +980,14 @@
933 * clear; 1 = set. Data valid only in addresses 0-4. all the rest are zero. */ 980 * clear; 1 = set. Data valid only in addresses 0-4. all the rest are zero. */
934#define IGU_REG_WRITE_DONE_PENDING 0x130480 981#define IGU_REG_WRITE_DONE_PENDING 0x130480
935#define MCP_A_REG_MCPR_SCRATCH 0x3a0000 982#define MCP_A_REG_MCPR_SCRATCH 0x3a0000
983#define MCP_REG_MCPR_CPU_PROGRAM_COUNTER 0x8501c
984#define MCP_REG_MCPR_GP_INPUTS 0x800c0
985#define MCP_REG_MCPR_GP_OENABLE 0x800c8
986#define MCP_REG_MCPR_GP_OUTPUTS 0x800c4
987#define MCP_REG_MCPR_IMC_COMMAND 0x85900
988#define MCP_REG_MCPR_IMC_DATAREG0 0x85920
989#define MCP_REG_MCPR_IMC_SLAVE_CONTROL 0x85904
990#define MCP_REG_MCPR_CPU_PROGRAM_COUNTER 0x8501c
936#define MCP_REG_MCPR_NVM_ACCESS_ENABLE 0x86424 991#define MCP_REG_MCPR_NVM_ACCESS_ENABLE 0x86424
937#define MCP_REG_MCPR_NVM_ADDR 0x8640c 992#define MCP_REG_MCPR_NVM_ADDR 0x8640c
938#define MCP_REG_MCPR_NVM_CFG4 0x8642c 993#define MCP_REG_MCPR_NVM_CFG4 0x8642c
@@ -1429,11 +1484,37 @@
1429/* [RW 1] e1hmf for WOL. If clr WOL signal o the PXP will be send on bit 0 1484/* [RW 1] e1hmf for WOL. If clr WOL signal o the PXP will be send on bit 0
1430 only. */ 1485 only. */
1431#define MISC_REG_E1HMF_MODE 0xa5f8 1486#define MISC_REG_E1HMF_MODE 0xa5f8
1487/* [R 1] Status of four port mode path swap input pin. */
1488#define MISC_REG_FOUR_PORT_PATH_SWAP 0xa75c
1489/* [RW 2] 4 port path swap overwrite.[0] - Overwrite control; if it is 0 -
1490 the path_swap output is equal to 4 port mode path swap input pin; if it
1491 is 1 - the path_swap output is equal to bit[1] of this register; [1] -
1492 Overwrite value. If bit[0] of this register is 1 this is the value that
1493 receives the path_swap output. Reset on Hard reset. */
1494#define MISC_REG_FOUR_PORT_PATH_SWAP_OVWR 0xa738
1495/* [R 1] Status of 4 port mode port swap input pin. */
1496#define MISC_REG_FOUR_PORT_PORT_SWAP 0xa754
1497/* [RW 2] 4 port port swap overwrite.[0] - Overwrite control; if it is 0 -
1498 the port_swap output is equal to 4 port mode port swap input pin; if it
1499 is 1 - the port_swap output is equal to bit[1] of this register; [1] -
1500 Overwrite value. If bit[0] of this register is 1 this is the value that
1501 receives the port_swap output. Reset on Hard reset. */
1502#define MISC_REG_FOUR_PORT_PORT_SWAP_OVWR 0xa734
1432/* [RW 32] Debug only: spare RW register reset by core reset */ 1503/* [RW 32] Debug only: spare RW register reset by core reset */
1433#define MISC_REG_GENERIC_CR_0 0xa460 1504#define MISC_REG_GENERIC_CR_0 0xa460
1434#define MISC_REG_GENERIC_CR_1 0xa464 1505#define MISC_REG_GENERIC_CR_1 0xa464
1435/* [RW 32] Debug only: spare RW register reset by por reset */ 1506/* [RW 32] Debug only: spare RW register reset by por reset */
1436#define MISC_REG_GENERIC_POR_1 0xa474 1507#define MISC_REG_GENERIC_POR_1 0xa474
1508/* [RW 32] Bit[0]: EPIO MODE SEL: Setting this bit to 1 will allow SW/FW to
1509 use all of the 32 Extended GPIO pins. Without setting this bit; an EPIO
1510 can not be configured as an output. Each output has its output enable in
1511 the MCP register space; but this bit needs to be set to make use of that.
1512 Bit[3:1] spare. Bit[4]: WCVTMON_PWRDN: Powerdown for Warpcore VTMON. When
1513 set to 1 - Powerdown. Bit[5]: WCVTMON_RESETB: Reset for Warpcore VTMON.
1514 When set to 0 - vTMON is in reset. Bit[6]: setting this bit will change
1515 the i/o to an output and will drive the TimeSync output. Bit[31:7]:
1516 spare. Global register. Reset by hard reset. */
1517#define MISC_REG_GEN_PURP_HWG 0xa9a0
1437/* [RW 32] GPIO. [31-28] FLOAT port 0; [27-24] FLOAT port 0; When any of 1518/* [RW 32] GPIO. [31-28] FLOAT port 0; [27-24] FLOAT port 0; When any of
1438 these bits is written as a '1'; the corresponding SPIO bit will turn off 1519 these bits is written as a '1'; the corresponding SPIO bit will turn off
1439 it's drivers and become an input. This is the reset state of all GPIO 1520 it's drivers and become an input. This is the reset state of all GPIO
@@ -1636,6 +1717,14 @@
1636 in this register. address 0 - timer 1; address 1 - timer 2, ... address 7 - 1717 in this register. address 0 - timer 1; address 1 - timer 2, ... address 7 -
1637 timer 8 */ 1718 timer 8 */
1638#define MISC_REG_SW_TIMER_VAL 0xa5c0 1719#define MISC_REG_SW_TIMER_VAL 0xa5c0
1720/* [R 1] Status of two port mode path swap input pin. */
1721#define MISC_REG_TWO_PORT_PATH_SWAP 0xa758
1722/* [RW 2] 2 port swap overwrite.[0] - Overwrite control; if it is 0 - the
1723 path_swap output is equal to 2 port mode path swap input pin; if it is 1
1724 - the path_swap output is equal to bit[1] of this register; [1] -
1725 Overwrite value. If bit[0] of this register is 1 this is the value that
1726 receives the path_swap output. Reset on Hard reset. */
1727#define MISC_REG_TWO_PORT_PATH_SWAP_OVWR 0xa72c
1639/* [RW 1] Set by the MCP to remember if one or more of the drivers is/are 1728/* [RW 1] Set by the MCP to remember if one or more of the drivers is/are
1640 loaded; 0-prepare; -unprepare */ 1729 loaded; 0-prepare; -unprepare */
1641#define MISC_REG_UNPREPARED 0xa424 1730#define MISC_REG_UNPREPARED 0xa424
@@ -1644,6 +1733,36 @@
1644#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_NO_VLAN (0x1<<4) 1733#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_NO_VLAN (0x1<<4)
1645#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_UNCST (0x1<<2) 1734#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_UNCST (0x1<<2)
1646#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_VLAN (0x1<<3) 1735#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_VLAN (0x1<<3)
1736/* [RW 5] MDIO PHY Address. The WC uses this address to determine whether or
1737 * not it is the recipient of the message on the MDIO interface. The value
1738 * is compared to the value on ctrl_md_devad. Drives output
1739 * misc_xgxs0_phy_addr. Global register. */
1740#define MISC_REG_WC0_CTRL_PHY_ADDR 0xa9cc
1741/* [RW 2] XMAC Core port mode. Indicates the number of ports on the system
1742 side. This should be less than or equal to phy_port_mode; if some of the
1743 ports are not used. This enables reduction of frequency on the core side.
1744 This is a strap input for the XMAC_MP core. 00 - Single Port Mode; 01 -
1745 Dual Port Mode; 10 - Tri Port Mode; 11 - Quad Port Mode. This is a strap
1746 input for the XMAC_MP core; and should be changed only while reset is
1747 held low. Reset on Hard reset. */
1748#define MISC_REG_XMAC_CORE_PORT_MODE 0xa964
1749/* [RW 2] XMAC PHY port mode. Indicates the number of ports on the Warp
1750 Core. This is a strap input for the XMAC_MP core. 00 - Single Port Mode;
1751 01 - Dual Port Mode; 1x - Quad Port Mode; This is a strap input for the
1752 XMAC_MP core; and should be changed only while reset is held low. Reset
1753 on Hard reset. */
1754#define MISC_REG_XMAC_PHY_PORT_MODE 0xa960
1755/* [RW 32] 1 [47] Packet Size = 64 Write to this register write bits 31:0.
1756 * Reads from this register will clear bits 31:0. */
1757#define MSTAT_REG_RX_STAT_GR64_LO 0x200
1758/* [RW 32] 1 [00] Tx Good Packet Count Write to this register write bits
1759 * 31:0. Reads from this register will clear bits 31:0. */
1760#define MSTAT_REG_TX_STAT_GTXPOK_LO 0
1761#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_BRCST (0x1<<0)
1762#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_MLCST (0x1<<1)
1763#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_NO_VLAN (0x1<<4)
1764#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_UNCST (0x1<<2)
1765#define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_VLAN (0x1<<3)
1647#define NIG_LLH0_XCM_MASK_REG_LLH0_XCM_MASK_BCN (0x1<<0) 1766#define NIG_LLH0_XCM_MASK_REG_LLH0_XCM_MASK_BCN (0x1<<0)
1648#define NIG_LLH1_XCM_MASK_REG_LLH1_XCM_MASK_BCN (0x1<<0) 1767#define NIG_LLH1_XCM_MASK_REG_LLH1_XCM_MASK_BCN (0x1<<0)
1649#define NIG_MASK_INTERRUPT_PORT0_REG_MASK_EMAC0_MISC_MI_INT (0x1<<0) 1768#define NIG_MASK_INTERRUPT_PORT0_REG_MASK_EMAC0_MISC_MI_INT (0x1<<0)
@@ -1837,6 +1956,10 @@
1837#define NIG_REG_LLH1_FUNC_MEM 0x161c0 1956#define NIG_REG_LLH1_FUNC_MEM 0x161c0
1838#define NIG_REG_LLH1_FUNC_MEM_ENABLE 0x16160 1957#define NIG_REG_LLH1_FUNC_MEM_ENABLE 0x16160
1839#define NIG_REG_LLH1_FUNC_MEM_SIZE 16 1958#define NIG_REG_LLH1_FUNC_MEM_SIZE 16
1959/* [RW 1] When this bit is set; the LLH will classify the packet before
1960 * sending it to the BRB or calculating WoL on it. This bit controls port 1
1961 * only. The legacy llh_multi_function_mode bit controls port 0. */
1962#define NIG_REG_LLH1_MF_MODE 0x18614
1840/* [RW 8] init credit counter for port1 in LLH */ 1963/* [RW 8] init credit counter for port1 in LLH */
1841#define NIG_REG_LLH1_XCM_INIT_CREDIT 0x10564 1964#define NIG_REG_LLH1_XCM_INIT_CREDIT 0x10564
1842#define NIG_REG_LLH1_XCM_MASK 0x10134 1965#define NIG_REG_LLH1_XCM_MASK 0x10134
@@ -1858,11 +1981,25 @@
1858/* [R 32] Interrupt register #0 read */ 1981/* [R 32] Interrupt register #0 read */
1859#define NIG_REG_NIG_INT_STS_0 0x103b0 1982#define NIG_REG_NIG_INT_STS_0 0x103b0
1860#define NIG_REG_NIG_INT_STS_1 0x103c0 1983#define NIG_REG_NIG_INT_STS_1 0x103c0
1984/* [R 32] Legacy E1 and E1H location for parity error mask register. */
1985#define NIG_REG_NIG_PRTY_MASK 0x103dc
1986/* [RW 32] Parity mask register #0 read/write */
1987#define NIG_REG_NIG_PRTY_MASK_0 0x183c8
1988#define NIG_REG_NIG_PRTY_MASK_1 0x183d8
1861/* [R 32] Legacy E1 and E1H location for parity error status register. */ 1989/* [R 32] Legacy E1 and E1H location for parity error status register. */
1862#define NIG_REG_NIG_PRTY_STS 0x103d0 1990#define NIG_REG_NIG_PRTY_STS 0x103d0
1863/* [R 32] Parity register #0 read */ 1991/* [R 32] Parity register #0 read */
1864#define NIG_REG_NIG_PRTY_STS_0 0x183bc 1992#define NIG_REG_NIG_PRTY_STS_0 0x183bc
1865#define NIG_REG_NIG_PRTY_STS_1 0x183cc 1993#define NIG_REG_NIG_PRTY_STS_1 0x183cc
1994/* [R 32] Legacy E1 and E1H location for parity error status clear register. */
1995#define NIG_REG_NIG_PRTY_STS_CLR 0x103d4
1996/* [RC 32] Parity register #0 read clear */
1997#define NIG_REG_NIG_PRTY_STS_CLR_0 0x183c0
1998#define NIG_REG_NIG_PRTY_STS_CLR_1 0x183d0
1999#define MCPR_IMC_COMMAND_ENABLE (1L<<31)
2000#define MCPR_IMC_COMMAND_IMC_STATUS_BITSHIFT 16
2001#define MCPR_IMC_COMMAND_OPERATION_BITSHIFT 28
2002#define MCPR_IMC_COMMAND_TRANSFER_ADDRESS_BITSHIFT 8
1866/* [RW 6] Bit-map indicating which L2 hdrs may appear after the basic 2003/* [RW 6] Bit-map indicating which L2 hdrs may appear after the basic
1867 * Ethernet header. */ 2004 * Ethernet header. */
1868#define NIG_REG_P0_HDRS_AFTER_BASIC 0x18038 2005#define NIG_REG_P0_HDRS_AFTER_BASIC 0x18038
@@ -1872,6 +2009,12 @@
1872#define NIG_REG_P0_HWPFC_ENABLE 0x18078 2009#define NIG_REG_P0_HWPFC_ENABLE 0x18078
1873#define NIG_REG_P0_LLH_FUNC_MEM2 0x18480 2010#define NIG_REG_P0_LLH_FUNC_MEM2 0x18480
1874#define NIG_REG_P0_LLH_FUNC_MEM2_ENABLE 0x18440 2011#define NIG_REG_P0_LLH_FUNC_MEM2_ENABLE 0x18440
2012/* [RW 1] Input enable for RX MAC interface. */
2013#define NIG_REG_P0_MAC_IN_EN 0x185ac
2014/* [RW 1] Output enable for TX MAC interface */
2015#define NIG_REG_P0_MAC_OUT_EN 0x185b0
2016/* [RW 1] Output enable for TX PAUSE signal to the MAC. */
2017#define NIG_REG_P0_MAC_PAUSE_OUT_EN 0x185b4
1875/* [RW 32] Eight 4-bit configurations for specifying which COS (0-15 for 2018/* [RW 32] Eight 4-bit configurations for specifying which COS (0-15 for
1876 * future expansion) each priorty is to be mapped to. Bits 3:0 specify the 2019 * future expansion) each priorty is to be mapped to. Bits 3:0 specify the
1877 * COS for priority 0. Bits 31:28 specify the COS for priority 7. The 3-bit 2020 * COS for priority 0. Bits 31:28 specify the COS for priority 7. The 3-bit
@@ -1888,11 +2031,52 @@
1888 * than one bit may be set; allowing multiple priorities to be mapped to one 2031 * than one bit may be set; allowing multiple priorities to be mapped to one
1889 * COS. */ 2032 * COS. */
1890#define NIG_REG_P0_RX_COS1_PRIORITY_MASK 0x1805c 2033#define NIG_REG_P0_RX_COS1_PRIORITY_MASK 0x1805c
2034/* [RW 16] Bit-map indicating which SAFC/PFC priorities to map to COS 2. A
2035 * priority is mapped to COS 2 when the corresponding mask bit is 1. More
2036 * than one bit may be set; allowing multiple priorities to be mapped to one
2037 * COS. */
2038#define NIG_REG_P0_RX_COS2_PRIORITY_MASK 0x186b0
2039/* [RW 16] Bit-map indicating which SAFC/PFC priorities to map to COS 3. A
2040 * priority is mapped to COS 3 when the corresponding mask bit is 1. More
2041 * than one bit may be set; allowing multiple priorities to be mapped to one
2042 * COS. */
2043#define NIG_REG_P0_RX_COS3_PRIORITY_MASK 0x186b4
2044/* [RW 16] Bit-map indicating which SAFC/PFC priorities to map to COS 4. A
2045 * priority is mapped to COS 4 when the corresponding mask bit is 1. More
2046 * than one bit may be set; allowing multiple priorities to be mapped to one
2047 * COS. */
2048#define NIG_REG_P0_RX_COS4_PRIORITY_MASK 0x186b8
2049/* [RW 16] Bit-map indicating which SAFC/PFC priorities to map to COS 5. A
2050 * priority is mapped to COS 5 when the corresponding mask bit is 1. More
2051 * than one bit may be set; allowing multiple priorities to be mapped to one
2052 * COS. */
2053#define NIG_REG_P0_RX_COS5_PRIORITY_MASK 0x186bc
2054/* [R 1] RX FIFO for receiving data from MAC is empty. */
1891/* [RW 15] Specify which of the credit registers the client is to be mapped 2055/* [RW 15] Specify which of the credit registers the client is to be mapped
1892 * to. Bits[2:0] are for client 0; bits [14:12] are for client 4. For 2056 * to. Bits[2:0] are for client 0; bits [14:12] are for client 4. For
1893 * clients that are not subject to WFQ credit blocking - their 2057 * clients that are not subject to WFQ credit blocking - their
1894 * specifications here are not used. */ 2058 * specifications here are not used. */
1895#define NIG_REG_P0_TX_ARB_CLIENT_CREDIT_MAP 0x180f0 2059#define NIG_REG_P0_TX_ARB_CLIENT_CREDIT_MAP 0x180f0
2060/* [RW 32] Specify which of the credit registers the client is to be mapped
2061 * to. This register specifies bits 31:0 of the 36-bit value. Bits[3:0] are
2062 * for client 0; bits [35:32] are for client 8. For clients that are not
2063 * subject to WFQ credit blocking - their specifications here are not used.
2064 * This is a new register (with 2_) added in E3 B0 to accommodate the 9
2065 * input clients to ETS arbiter. The reset default is set for management and
2066 * debug to use credit registers 6, 7, and 8, respectively, and COSes 0-5 to
2067 * use credit registers 0-5 respectively (0x543210876). Note that credit
2068 * registers can not be shared between clients. */
2069#define NIG_REG_P0_TX_ARB_CLIENT_CREDIT_MAP2_LSB 0x18688
2070/* [RW 4] Specify which of the credit registers the client is to be mapped
2071 * to. This register specifies bits 35:32 of the 36-bit value. Bits[3:0] are
2072 * for client 0; bits [35:32] are for client 8. For clients that are not
2073 * subject to WFQ credit blocking - their specifications here are not used.
2074 * This is a new register (with 2_) added in E3 B0 to accommodate the 9
2075 * input clients to ETS arbiter. The reset default is set for management and
2076 * debug to use credit registers 6, 7, and 8, respectively, and COSes 0-5 to
2077 * use credit registers 0-5 respectively (0x543210876). Note that credit
2078 * registers can not be shared between clients. */
2079#define NIG_REG_P0_TX_ARB_CLIENT_CREDIT_MAP2_MSB 0x1868c
1896/* [RW 5] Specify whether the client competes directly in the strict 2080/* [RW 5] Specify whether the client competes directly in the strict
1897 * priority arbiter. The bits are mapped according to client ID (client IDs 2081 * priority arbiter. The bits are mapped according to client ID (client IDs
1898 * are defined in tx_arb_priority_client). Default value is set to enable 2082 * are defined in tx_arb_priority_client). Default value is set to enable
@@ -1907,10 +2091,24 @@
1907 * reach. */ 2091 * reach. */
1908#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_0 0x1810c 2092#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_0 0x1810c
1909#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_1 0x18110 2093#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_1 0x18110
2094#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_2 0x18114
2095#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_3 0x18118
2096#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_4 0x1811c
2097#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_5 0x186a0
2098#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_6 0x186a4
2099#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_7 0x186a8
2100#define NIG_REG_P0_TX_ARB_CREDIT_UPPER_BOUND_8 0x186ac
1910/* [RW 32] Specify the weight (in bytes) to be added to credit register 0 2101/* [RW 32] Specify the weight (in bytes) to be added to credit register 0
1911 * when it is time to increment. */ 2102 * when it is time to increment. */
1912#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_0 0x180f8 2103#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_0 0x180f8
1913#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_1 0x180fc 2104#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_1 0x180fc
2105#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_2 0x18100
2106#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_3 0x18104
2107#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_4 0x18108
2108#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_5 0x18690
2109#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_6 0x18694
2110#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_7 0x18698
2111#define NIG_REG_P0_TX_ARB_CREDIT_WEIGHT_8 0x1869c
1914/* [RW 12] Specify the number of strict priority arbitration slots between 2112/* [RW 12] Specify the number of strict priority arbitration slots between
1915 * two round-robin arbitration slots to avoid starvation. A value of 0 means 2113 * two round-robin arbitration slots to avoid starvation. A value of 0 means
1916 * no strict priority cycles - the strict priority with anti-starvation 2114 * no strict priority cycles - the strict priority with anti-starvation
@@ -1925,8 +2123,36 @@
1925 * for management at priority 0; debug traffic at priorities 1 and 2; COS0 2123 * for management at priority 0; debug traffic at priorities 1 and 2; COS0
1926 * traffic at priority 3; and COS1 traffic at priority 4. */ 2124 * traffic at priority 3; and COS1 traffic at priority 4. */
1927#define NIG_REG_P0_TX_ARB_PRIORITY_CLIENT 0x180e4 2125#define NIG_REG_P0_TX_ARB_PRIORITY_CLIENT 0x180e4
2126/* [RW 6] Bit-map indicating which L2 hdrs may appear after the basic
2127 * Ethernet header. */
2128#define NIG_REG_P1_HDRS_AFTER_BASIC 0x1818c
1928#define NIG_REG_P1_LLH_FUNC_MEM2 0x184c0 2129#define NIG_REG_P1_LLH_FUNC_MEM2 0x184c0
1929#define NIG_REG_P1_LLH_FUNC_MEM2_ENABLE 0x18460 2130#define NIG_REG_P1_LLH_FUNC_MEM2_ENABLE 0x18460
2131/* [RW 32] Specify the client number to be assigned to each priority of the
2132 * strict priority arbiter. This register specifies bits 31:0 of the 36-bit
2133 * value. Priority 0 is the highest priority. Bits [3:0] are for priority 0
2134 * client; bits [35-32] are for priority 8 client. The clients are assigned
2135 * the following IDs: 0-management; 1-debug traffic from this port; 2-debug
2136 * traffic from other port; 3-COS0 traffic; 4-COS1 traffic; 5-COS2 traffic;
2137 * 6-COS3 traffic; 7-COS4 traffic; 8-COS5 traffic. The reset value[35:0] is
2138 * set to 0x345678021. This is a new register (with 2_) added in E3 B0 to
2139 * accommodate the 9 input clients to ETS arbiter. */
2140#define NIG_REG_P0_TX_ARB_PRIORITY_CLIENT2_LSB 0x18680
2141/* [RW 4] Specify the client number to be assigned to each priority of the
2142 * strict priority arbiter. This register specifies bits 35:32 of the 36-bit
2143 * value. Priority 0 is the highest priority. Bits [3:0] are for priority 0
2144 * client; bits [35-32] are for priority 8 client. The clients are assigned
2145 * the following IDs: 0-management; 1-debug traffic from this port; 2-debug
2146 * traffic from other port; 3-COS0 traffic; 4-COS1 traffic; 5-COS2 traffic;
2147 * 6-COS3 traffic; 7-COS4 traffic; 8-COS5 traffic. The reset value[35:0] is
2148 * set to 0x345678021. This is a new register (with 2_) added in E3 B0 to
2149 * accommodate the 9 input clients to ETS arbiter. */
2150#define NIG_REG_P0_TX_ARB_PRIORITY_CLIENT2_MSB 0x18684
2151#define NIG_REG_P1_MAC_IN_EN 0x185c0
2152/* [RW 1] Output enable for TX MAC interface */
2153#define NIG_REG_P1_MAC_OUT_EN 0x185c4
2154/* [RW 1] Output enable for TX PAUSE signal to the MAC. */
2155#define NIG_REG_P1_MAC_PAUSE_OUT_EN 0x185c8
1930/* [RW 32] Eight 4-bit configurations for specifying which COS (0-15 for 2156/* [RW 32] Eight 4-bit configurations for specifying which COS (0-15 for
1931 * future expansion) each priorty is to be mapped to. Bits 3:0 specify the 2157 * future expansion) each priorty is to be mapped to. Bits 3:0 specify the
1932 * COS for priority 0. Bits 31:28 specify the COS for priority 7. The 3-bit 2158 * COS for priority 0. Bits 31:28 specify the COS for priority 7. The 3-bit
@@ -1943,6 +2169,105 @@
1943 * than one bit may be set; allowing multiple priorities to be mapped to one 2169 * than one bit may be set; allowing multiple priorities to be mapped to one
1944 * COS. */ 2170 * COS. */
1945#define NIG_REG_P1_RX_COS1_PRIORITY_MASK 0x181b0 2171#define NIG_REG_P1_RX_COS1_PRIORITY_MASK 0x181b0
2172/* [RW 16] Bit-map indicating which SAFC/PFC priorities to map to COS 2. A
2173 * priority is mapped to COS 2 when the corresponding mask bit is 1. More
2174 * than one bit may be set; allowing multiple priorities to be mapped to one
2175 * COS. */
2176#define NIG_REG_P1_RX_COS2_PRIORITY_MASK 0x186f8
2177/* [R 1] RX FIFO for receiving data from MAC is empty. */
2178#define NIG_REG_P1_RX_MACFIFO_EMPTY 0x1858c
2179/* [R 1] TLLH FIFO is empty. */
2180#define NIG_REG_P1_TLLH_FIFO_EMPTY 0x18338
2181/* [RW 32] Specify which of the credit registers the client is to be mapped
2182 * to. This register specifies bits 31:0 of the 36-bit value. Bits[3:0] are
2183 * for client 0; bits [35:32] are for client 8. For clients that are not
2184 * subject to WFQ credit blocking - their specifications here are not used.
2185 * This is a new register (with 2_) added in E3 B0 to accommodate the 9
2186 * input clients to ETS arbiter. The reset default is set for management and
2187 * debug to use credit registers 6, 7, and 8, respectively, and COSes 0-5 to
2188 * use credit registers 0-5 respectively (0x543210876). Note that credit
2189 * registers can not be shared between clients. Note also that there are
2190 * only COS0-2 in port 1- there is a total of 6 clients in port 1. Only
2191 * credit registers 0-5 are valid. This register should be configured
2192 * appropriately before enabling WFQ. */
2193#define NIG_REG_P1_TX_ARB_CLIENT_CREDIT_MAP2_LSB 0x186e8
2194/* [RW 4] Specify which of the credit registers the client is to be mapped
2195 * to. This register specifies bits 35:32 of the 36-bit value. Bits[3:0] are
2196 * for client 0; bits [35:32] are for client 8. For clients that are not
2197 * subject to WFQ credit blocking - their specifications here are not used.
2198 * This is a new register (with 2_) added in E3 B0 to accommodate the 9
2199 * input clients to ETS arbiter. The reset default is set for management and
2200 * debug to use credit registers 6, 7, and 8, respectively, and COSes 0-5 to
2201 * use credit registers 0-5 respectively (0x543210876). Note that credit
2202 * registers can not be shared between clients. Note also that there are
2203 * only COS0-2 in port 1- there is a total of 6 clients in port 1. Only
2204 * credit registers 0-5 are valid. This register should be configured
2205 * appropriately before enabling WFQ. */
2206#define NIG_REG_P1_TX_ARB_CLIENT_CREDIT_MAP2_MSB 0x186ec
2207/* [RW 9] Specify whether the client competes directly in the strict
2208 * priority arbiter. The bits are mapped according to client ID (client IDs
2209 * are defined in tx_arb_priority_client2): 0-management; 1-debug traffic
2210 * from this port; 2-debug traffic from other port; 3-COS0 traffic; 4-COS1
2211 * traffic; 5-COS2 traffic; 6-COS3 traffic; 7-COS4 traffic; 8-COS5 traffic.
2212 * Default value is set to enable strict priorities for all clients. */
2213#define NIG_REG_P1_TX_ARB_CLIENT_IS_STRICT 0x18234
2214/* [RW 9] Specify whether the client is subject to WFQ credit blocking. The
2215 * bits are mapped according to client ID (client IDs are defined in
2216 * tx_arb_priority_client2): 0-management; 1-debug traffic from this port;
2217 * 2-debug traffic from other port; 3-COS0 traffic; 4-COS1 traffic; 5-COS2
2218 * traffic; 6-COS3 traffic; 7-COS4 traffic; 8-COS5 traffic. Default value is
2219 * 0 for not using WFQ credit blocking. */
2220#define NIG_REG_P1_TX_ARB_CLIENT_IS_SUBJECT2WFQ 0x18238
2221#define NIG_REG_P1_TX_ARB_CREDIT_UPPER_BOUND_0 0x18258
2222#define NIG_REG_P1_TX_ARB_CREDIT_UPPER_BOUND_1 0x1825c
2223#define NIG_REG_P1_TX_ARB_CREDIT_UPPER_BOUND_2 0x18260
2224#define NIG_REG_P1_TX_ARB_CREDIT_UPPER_BOUND_3 0x18264
2225#define NIG_REG_P1_TX_ARB_CREDIT_UPPER_BOUND_4 0x18268
2226#define NIG_REG_P1_TX_ARB_CREDIT_UPPER_BOUND_5 0x186f4
2227/* [RW 32] Specify the weight (in bytes) to be added to credit register 0
2228 * when it is time to increment. */
2229#define NIG_REG_P1_TX_ARB_CREDIT_WEIGHT_0 0x18244
2230#define NIG_REG_P1_TX_ARB_CREDIT_WEIGHT_1 0x18248
2231#define NIG_REG_P1_TX_ARB_CREDIT_WEIGHT_2 0x1824c
2232#define NIG_REG_P1_TX_ARB_CREDIT_WEIGHT_3 0x18250
2233#define NIG_REG_P1_TX_ARB_CREDIT_WEIGHT_4 0x18254
2234#define NIG_REG_P1_TX_ARB_CREDIT_WEIGHT_5 0x186f0
2235/* [RW 12] Specify the number of strict priority arbitration slots between
2236 two round-robin arbitration slots to avoid starvation. A value of 0 means
2237 no strict priority cycles - the strict priority with anti-starvation
2238 arbiter becomes a round-robin arbiter. */
2239#define NIG_REG_P1_TX_ARB_NUM_STRICT_ARB_SLOTS 0x18240
2240/* [RW 32] Specify the client number to be assigned to each priority of the
2241 strict priority arbiter. This register specifies bits 31:0 of the 36-bit
2242 value. Priority 0 is the highest priority. Bits [3:0] are for priority 0
2243 client; bits [35-32] are for priority 8 client. The clients are assigned
2244 the following IDs: 0-management; 1-debug traffic from this port; 2-debug
2245 traffic from other port; 3-COS0 traffic; 4-COS1 traffic; 5-COS2 traffic;
2246 6-COS3 traffic; 7-COS4 traffic; 8-COS5 traffic. The reset value[35:0] is
2247 set to 0x345678021. This is a new register (with 2_) added in E3 B0 to
2248 accommodate the 9 input clients to ETS arbiter. Note that this register
2249 is the same as the one for port 0, except that port 1 only has COS 0-2
2250 traffic. There is no traffic for COS 3-5 of port 1. */
2251#define NIG_REG_P1_TX_ARB_PRIORITY_CLIENT2_LSB 0x186e0
2252/* [RW 4] Specify the client number to be assigned to each priority of the
2253 strict priority arbiter. This register specifies bits 35:32 of the 36-bit
2254 value. Priority 0 is the highest priority. Bits [3:0] are for priority 0
2255 client; bits [35-32] are for priority 8 client. The clients are assigned
2256 the following IDs: 0-management; 1-debug traffic from this port; 2-debug
2257 traffic from other port; 3-COS0 traffic; 4-COS1 traffic; 5-COS2 traffic;
2258 6-COS3 traffic; 7-COS4 traffic; 8-COS5 traffic. The reset value[35:0] is
2259 set to 0x345678021. This is a new register (with 2_) added in E3 B0 to
2260 accommodate the 9 input clients to ETS arbiter. Note that this register
2261 is the same as the one for port 0, except that port 1 only has COS 0-2
2262 traffic. There is no traffic for COS 3-5 of port 1. */
2263#define NIG_REG_P1_TX_ARB_PRIORITY_CLIENT2_MSB 0x186e4
2264/* [R 1] TX FIFO for transmitting data to MAC is empty. */
2265#define NIG_REG_P1_TX_MACFIFO_EMPTY 0x18594
2266/* [R 1] FIFO empty status of the MCP TX FIFO used for storing MCP packets
2267 forwarded to the host. */
2268#define NIG_REG_P1_TX_MNG_HOST_FIFO_EMPTY 0x182b8
2269/* [RW 32] Specify the upper bound that credit register 0 is allowed to
2270 * reach. */
1946/* [RW 1] Pause enable for port0. This register may get 1 only when 2271/* [RW 1] Pause enable for port0. This register may get 1 only when
1947 ~safc_enable.safc_enable = 0 and ppp_enable.ppp_enable =0 for the same 2272 ~safc_enable.safc_enable = 0 and ppp_enable.ppp_enable =0 for the same
1948 port */ 2273 port */
@@ -2026,12 +2351,45 @@
2026#define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS_SIZE 18 2351#define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS_SIZE 18
2027/* [RW 31] The upper bound of the weight of COS0 in the ETS command arbiter. */ 2352/* [RW 31] The upper bound of the weight of COS0 in the ETS command arbiter. */
2028#define PBF_REG_COS0_UPPER_BOUND 0x15c05c 2353#define PBF_REG_COS0_UPPER_BOUND 0x15c05c
2354/* [RW 31] The upper bound of the weight of COS0 in the ETS command arbiter
2355 * of port 0. */
2356#define PBF_REG_COS0_UPPER_BOUND_P0 0x15c2cc
2357/* [RW 31] The upper bound of the weight of COS0 in the ETS command arbiter
2358 * of port 1. */
2359#define PBF_REG_COS0_UPPER_BOUND_P1 0x15c2e4
2029/* [RW 31] The weight of COS0 in the ETS command arbiter. */ 2360/* [RW 31] The weight of COS0 in the ETS command arbiter. */
2030#define PBF_REG_COS0_WEIGHT 0x15c054 2361#define PBF_REG_COS0_WEIGHT 0x15c054
2362/* [RW 31] The weight of COS0 in port 0 ETS command arbiter. */
2363#define PBF_REG_COS0_WEIGHT_P0 0x15c2a8
2364/* [RW 31] The weight of COS0 in port 1 ETS command arbiter. */
2365#define PBF_REG_COS0_WEIGHT_P1 0x15c2c0
2031/* [RW 31] The upper bound of the weight of COS1 in the ETS command arbiter. */ 2366/* [RW 31] The upper bound of the weight of COS1 in the ETS command arbiter. */
2032#define PBF_REG_COS1_UPPER_BOUND 0x15c060 2367#define PBF_REG_COS1_UPPER_BOUND 0x15c060
2033/* [RW 31] The weight of COS1 in the ETS command arbiter. */ 2368/* [RW 31] The weight of COS1 in the ETS command arbiter. */
2034#define PBF_REG_COS1_WEIGHT 0x15c058 2369#define PBF_REG_COS1_WEIGHT 0x15c058
2370/* [RW 31] The weight of COS1 in port 0 ETS command arbiter. */
2371#define PBF_REG_COS1_WEIGHT_P0 0x15c2ac
2372/* [RW 31] The weight of COS1 in port 1 ETS command arbiter. */
2373#define PBF_REG_COS1_WEIGHT_P1 0x15c2c4
2374/* [RW 31] The weight of COS2 in port 0 ETS command arbiter. */
2375#define PBF_REG_COS2_WEIGHT_P0 0x15c2b0
2376/* [RW 31] The weight of COS2 in port 1 ETS command arbiter. */
2377#define PBF_REG_COS2_WEIGHT_P1 0x15c2c8
2378/* [RW 31] The weight of COS3 in port 0 ETS command arbiter. */
2379#define PBF_REG_COS3_WEIGHT_P0 0x15c2b4
2380/* [RW 31] The weight of COS4 in port 0 ETS command arbiter. */
2381#define PBF_REG_COS4_WEIGHT_P0 0x15c2b8
2382/* [RW 31] The weight of COS5 in port 0 ETS command arbiter. */
2383#define PBF_REG_COS5_WEIGHT_P0 0x15c2bc
2384/* [R 11] Current credit for the LB queue in the tx port buffers in 16 byte
2385 * lines. */
2386#define PBF_REG_CREDIT_LB_Q 0x140338
2387/* [R 11] Current credit for queue 0 in the tx port buffers in 16 byte
2388 * lines. */
2389#define PBF_REG_CREDIT_Q0 0x14033c
2390/* [R 11] Current credit for queue 1 in the tx port buffers in 16 byte
2391 * lines. */
2392#define PBF_REG_CREDIT_Q1 0x140340
2035/* [RW 1] Disable processing further tasks from port 0 (after ending the 2393/* [RW 1] Disable processing further tasks from port 0 (after ending the
2036 current task in process). */ 2394 current task in process). */
2037#define PBF_REG_DISABLE_NEW_TASK_PROC_P0 0x14005c 2395#define PBF_REG_DISABLE_NEW_TASK_PROC_P0 0x14005c
@@ -2042,6 +2400,52 @@
2042 current task in process). */ 2400 current task in process). */
2043#define PBF_REG_DISABLE_NEW_TASK_PROC_P4 0x14006c 2401#define PBF_REG_DISABLE_NEW_TASK_PROC_P4 0x14006c
2044#define PBF_REG_DISABLE_PF 0x1402e8 2402#define PBF_REG_DISABLE_PF 0x1402e8
2403/* [RW 18] For port 0: For each client that is subject to WFQ (the
2404 * corresponding bit is 1); indicates to which of the credit registers this
2405 * client is mapped. For clients which are not credit blocked; their mapping
2406 * is dont care. */
2407#define PBF_REG_ETS_ARB_CLIENT_CREDIT_MAP_P0 0x15c288
2408/* [RW 9] For port 1: For each client that is subject to WFQ (the
2409 * corresponding bit is 1); indicates to which of the credit registers this
2410 * client is mapped. For clients which are not credit blocked; their mapping
2411 * is dont care. */
2412#define PBF_REG_ETS_ARB_CLIENT_CREDIT_MAP_P1 0x15c28c
2413/* [RW 6] For port 0: Bit per client to indicate if the client competes in
2414 * the strict priority arbiter directly (corresponding bit = 1); or first
2415 * goes to the RR arbiter (corresponding bit = 0); and then competes in the
2416 * lowest priority in the strict-priority arbiter. */
2417#define PBF_REG_ETS_ARB_CLIENT_IS_STRICT_P0 0x15c278
2418/* [RW 3] For port 1: Bit per client to indicate if the client competes in
2419 * the strict priority arbiter directly (corresponding bit = 1); or first
2420 * goes to the RR arbiter (corresponding bit = 0); and then competes in the
2421 * lowest priority in the strict-priority arbiter. */
2422#define PBF_REG_ETS_ARB_CLIENT_IS_STRICT_P1 0x15c27c
2423/* [RW 6] For port 0: Bit per client to indicate if the client is subject to
2424 * WFQ credit blocking (corresponding bit = 1). */
2425#define PBF_REG_ETS_ARB_CLIENT_IS_SUBJECT2WFQ_P0 0x15c280
2426/* [RW 3] For port 0: Bit per client to indicate if the client is subject to
2427 * WFQ credit blocking (corresponding bit = 1). */
2428#define PBF_REG_ETS_ARB_CLIENT_IS_SUBJECT2WFQ_P1 0x15c284
2429/* [RW 16] For port 0: The number of strict priority arbitration slots
2430 * between 2 RR arbitration slots. A value of 0 means no strict priority
2431 * cycles; i.e. the strict-priority w/ anti-starvation arbiter is a RR
2432 * arbiter. */
2433#define PBF_REG_ETS_ARB_NUM_STRICT_ARB_SLOTS_P0 0x15c2a0
2434/* [RW 16] For port 1: The number of strict priority arbitration slots
2435 * between 2 RR arbitration slots. A value of 0 means no strict priority
2436 * cycles; i.e. the strict-priority w/ anti-starvation arbiter is a RR
2437 * arbiter. */
2438#define PBF_REG_ETS_ARB_NUM_STRICT_ARB_SLOTS_P1 0x15c2a4
2439/* [RW 18] For port 0: Indicates which client is connected to each priority
2440 * in the strict-priority arbiter. Priority 0 is the highest priority, and
2441 * priority 5 is the lowest; to which the RR output is connected to (this is
2442 * not configurable). */
2443#define PBF_REG_ETS_ARB_PRIORITY_CLIENT_P0 0x15c270
2444/* [RW 9] For port 1: Indicates which client is connected to each priority
2445 * in the strict-priority arbiter. Priority 0 is the highest priority, and
2446 * priority 5 is the lowest; to which the RR output is connected to (this is
2447 * not configurable). */
2448#define PBF_REG_ETS_ARB_PRIORITY_CLIENT_P1 0x15c274
2045/* [RW 1] Indicates that ETS is performed between the COSes in the command 2449/* [RW 1] Indicates that ETS is performed between the COSes in the command
2046 * arbiter. If reset strict priority w/ anti-starvation will be performed 2450 * arbiter. If reset strict priority w/ anti-starvation will be performed
2047 * w/o WFQ. */ 2451 * w/o WFQ. */
@@ -2049,14 +2453,25 @@
2049/* [RW 6] Bit-map indicating which L2 hdrs may appear after the basic 2453/* [RW 6] Bit-map indicating which L2 hdrs may appear after the basic
2050 * Ethernet header. */ 2454 * Ethernet header. */
2051#define PBF_REG_HDRS_AFTER_BASIC 0x15c0a8 2455#define PBF_REG_HDRS_AFTER_BASIC 0x15c0a8
2052/* [RW 1] Indicates which COS is conncted to the highest priority in the 2456/* [RW 6] Bit-map indicating which L2 hdrs may appear after L2 tag 0 */
2053 * command arbiter. */ 2457#define PBF_REG_HDRS_AFTER_TAG_0 0x15c0b8
2458/* [R 1] Removed for E3 B0 - Indicates which COS is conncted to the highest
2459 * priority in the command arbiter. */
2054#define PBF_REG_HIGH_PRIORITY_COS_NUM 0x15c04c 2460#define PBF_REG_HIGH_PRIORITY_COS_NUM 0x15c04c
2055#define PBF_REG_IF_ENABLE_REG 0x140044 2461#define PBF_REG_IF_ENABLE_REG 0x140044
2056/* [RW 1] Init bit. When set the initial credits are copied to the credit 2462/* [RW 1] Init bit. When set the initial credits are copied to the credit
2057 registers (except the port credits). Should be set and then reset after 2463 registers (except the port credits). Should be set and then reset after
2058 the configuration of the block has ended. */ 2464 the configuration of the block has ended. */
2059#define PBF_REG_INIT 0x140000 2465#define PBF_REG_INIT 0x140000
2466/* [RW 11] Initial credit for the LB queue in the tx port buffers in 16 byte
2467 * lines. */
2468#define PBF_REG_INIT_CRD_LB_Q 0x15c248
2469/* [RW 11] Initial credit for queue 0 in the tx port buffers in 16 byte
2470 * lines. */
2471#define PBF_REG_INIT_CRD_Q0 0x15c230
2472/* [RW 11] Initial credit for queue 1 in the tx port buffers in 16 byte
2473 * lines. */
2474#define PBF_REG_INIT_CRD_Q1 0x15c234
2060/* [RW 1] Init bit for port 0. When set the initial credit of port 0 is 2475/* [RW 1] Init bit for port 0. When set the initial credit of port 0 is
2061 copied to the credit register. Should be set and then reset after the 2476 copied to the credit register. Should be set and then reset after the
2062 configuration of the port has ended. */ 2477 configuration of the port has ended. */
@@ -2069,6 +2484,15 @@
2069 copied to the credit register. Should be set and then reset after the 2484 copied to the credit register. Should be set and then reset after the
2070 configuration of the port has ended. */ 2485 configuration of the port has ended. */
2071#define PBF_REG_INIT_P4 0x14000c 2486#define PBF_REG_INIT_P4 0x14000c
2487/* [R 32] Cyclic counter for the amount credits in 16 bytes lines added for
2488 * the LB queue. Reset upon init. */
2489#define PBF_REG_INTERNAL_CRD_FREED_CNT_LB_Q 0x140354
2490/* [R 32] Cyclic counter for the amount credits in 16 bytes lines added for
2491 * queue 0. Reset upon init. */
2492#define PBF_REG_INTERNAL_CRD_FREED_CNT_Q0 0x140358
2493/* [R 32] Cyclic counter for the amount credits in 16 bytes lines added for
2494 * queue 1. Reset upon init. */
2495#define PBF_REG_INTERNAL_CRD_FREED_CNT_Q1 0x14035c
2072/* [RW 1] Enable for mac interface 0. */ 2496/* [RW 1] Enable for mac interface 0. */
2073#define PBF_REG_MAC_IF0_ENABLE 0x140030 2497#define PBF_REG_MAC_IF0_ENABLE 0x140030
2074/* [RW 1] Enable for mac interface 1. */ 2498/* [RW 1] Enable for mac interface 1. */
@@ -2089,24 +2513,49 @@
2089/* [RW 11] Initial credit for port 0 in the tx port buffers in 16 byte 2513/* [RW 11] Initial credit for port 0 in the tx port buffers in 16 byte
2090 lines. */ 2514 lines. */
2091#define PBF_REG_P0_INIT_CRD 0x1400d0 2515#define PBF_REG_P0_INIT_CRD 0x1400d0
2092/* [RW 1] Indication that pause is enabled for port 0. */ 2516/* [R 32] Cyclic counter for the amount credits in 16 bytes lines added for
2093#define PBF_REG_P0_PAUSE_ENABLE 0x140014 2517 * port 0. Reset upon init. */
2094/* [R 8] Number of tasks in port 0 task queue. */ 2518#define PBF_REG_P0_INTERNAL_CRD_FREED_CNT 0x140308
2519/* [R 1] Removed for E3 B0 - Indication that pause is enabled for port 0. */
2520#define PBF_REG_P0_PAUSE_ENABLE 0x140014
2521/* [R 8] Removed for E3 B0 - Number of tasks in port 0 task queue. */
2095#define PBF_REG_P0_TASK_CNT 0x140204 2522#define PBF_REG_P0_TASK_CNT 0x140204
2096/* [R 11] Current credit for port 1 in the tx port buffers in 16 byte lines. */ 2523/* [R 32] Removed for E3 B0 - Cyclic counter for number of 8 byte lines
2524 * freed from the task queue of port 0. Reset upon init. */
2525#define PBF_REG_P0_TQ_LINES_FREED_CNT 0x1402f0
2526/* [R 12] Number of 8 bytes lines occupied in the task queue of port 0. */
2527#define PBF_REG_P0_TQ_OCCUPANCY 0x1402fc
2528/* [R 11] Removed for E3 B0 - Current credit for port 1 in the tx port
2529 * buffers in 16 byte lines. */
2097#define PBF_REG_P1_CREDIT 0x140208 2530#define PBF_REG_P1_CREDIT 0x140208
2098/* [RW 11] Initial credit for port 1 in the tx port buffers in 16 byte 2531/* [R 11] Removed for E3 B0 - Initial credit for port 0 in the tx port
2099 lines. */ 2532 * buffers in 16 byte lines. */
2100#define PBF_REG_P1_INIT_CRD 0x1400d4 2533#define PBF_REG_P1_INIT_CRD 0x1400d4
2101/* [R 8] Number of tasks in port 1 task queue. */ 2534/* [R 32] Cyclic counter for the amount credits in 16 bytes lines added for
2535 * port 1. Reset upon init. */
2536#define PBF_REG_P1_INTERNAL_CRD_FREED_CNT 0x14030c
2537/* [R 8] Removed for E3 B0 - Number of tasks in port 1 task queue. */
2102#define PBF_REG_P1_TASK_CNT 0x14020c 2538#define PBF_REG_P1_TASK_CNT 0x14020c
2539/* [R 32] Removed for E3 B0 - Cyclic counter for number of 8 byte lines
2540 * freed from the task queue of port 1. Reset upon init. */
2541#define PBF_REG_P1_TQ_LINES_FREED_CNT 0x1402f4
2542/* [R 12] Number of 8 bytes lines occupied in the task queue of port 1. */
2543#define PBF_REG_P1_TQ_OCCUPANCY 0x140300
2103/* [R 11] Current credit for port 4 in the tx port buffers in 16 byte lines. */ 2544/* [R 11] Current credit for port 4 in the tx port buffers in 16 byte lines. */
2104#define PBF_REG_P4_CREDIT 0x140210 2545#define PBF_REG_P4_CREDIT 0x140210
2105/* [RW 11] Initial credit for port 4 in the tx port buffers in 16 byte 2546/* [RW 11] Initial credit for port 4 in the tx port buffers in 16 byte
2106 lines. */ 2547 lines. */
2107#define PBF_REG_P4_INIT_CRD 0x1400e0 2548#define PBF_REG_P4_INIT_CRD 0x1400e0
2108/* [R 8] Number of tasks in port 4 task queue. */ 2549/* [R 32] Cyclic counter for the amount credits in 16 bytes lines added for
2550 * port 4. Reset upon init. */
2551#define PBF_REG_P4_INTERNAL_CRD_FREED_CNT 0x140310
2552/* [R 8] Removed for E3 B0 - Number of tasks in port 4 task queue. */
2109#define PBF_REG_P4_TASK_CNT 0x140214 2553#define PBF_REG_P4_TASK_CNT 0x140214
2554/* [R 32] Removed for E3 B0 - Cyclic counter for number of 8 byte lines
2555 * freed from the task queue of port 4. Reset upon init. */
2556#define PBF_REG_P4_TQ_LINES_FREED_CNT 0x1402f8
2557/* [R 12] Number of 8 bytes lines occupied in the task queue of port 4. */
2558#define PBF_REG_P4_TQ_OCCUPANCY 0x140304
2110/* [RW 5] Interrupt mask register #0 read/write */ 2559/* [RW 5] Interrupt mask register #0 read/write */
2111#define PBF_REG_PBF_INT_MASK 0x1401d4 2560#define PBF_REG_PBF_INT_MASK 0x1401d4
2112/* [R 5] Interrupt register #0 read */ 2561/* [R 5] Interrupt register #0 read */
@@ -2115,6 +2564,27 @@
2115#define PBF_REG_PBF_PRTY_MASK 0x1401e4 2564#define PBF_REG_PBF_PRTY_MASK 0x1401e4
2116/* [RC 20] Parity register #0 read clear */ 2565/* [RC 20] Parity register #0 read clear */
2117#define PBF_REG_PBF_PRTY_STS_CLR 0x1401dc 2566#define PBF_REG_PBF_PRTY_STS_CLR 0x1401dc
2567/* [RW 16] The Ethernet type value for L2 tag 0 */
2568#define PBF_REG_TAG_ETHERTYPE_0 0x15c090
2569/* [RW 4] The length of the info field for L2 tag 0. The length is between
2570 * 2B and 14B; in 2B granularity */
2571#define PBF_REG_TAG_LEN_0 0x15c09c
2572/* [R 32] Cyclic counter for number of 8 byte lines freed from the LB task
2573 * queue. Reset upon init. */
2574#define PBF_REG_TQ_LINES_FREED_CNT_LB_Q 0x14038c
2575/* [R 32] Cyclic counter for number of 8 byte lines freed from the task
2576 * queue 0. Reset upon init. */
2577#define PBF_REG_TQ_LINES_FREED_CNT_Q0 0x140390
2578/* [R 32] Cyclic counter for number of 8 byte lines freed from task queue 1.
2579 * Reset upon init. */
2580#define PBF_REG_TQ_LINES_FREED_CNT_Q1 0x140394
2581/* [R 13] Number of 8 bytes lines occupied in the task queue of the LB
2582 * queue. */
2583#define PBF_REG_TQ_OCCUPANCY_LB_Q 0x1403a8
2584/* [R 13] Number of 8 bytes lines occupied in the task queue of queue 0. */
2585#define PBF_REG_TQ_OCCUPANCY_Q0 0x1403ac
2586/* [R 13] Number of 8 bytes lines occupied in the task queue of queue 1. */
2587#define PBF_REG_TQ_OCCUPANCY_Q1 0x1403b0
2118#define PB_REG_CONTROL 0 2588#define PB_REG_CONTROL 0
2119/* [RW 2] Interrupt mask register #0 read/write */ 2589/* [RW 2] Interrupt mask register #0 read/write */
2120#define PB_REG_PB_INT_MASK 0x28 2590#define PB_REG_PB_INT_MASK 0x28
@@ -2444,10 +2914,24 @@
2444/* [RW 6] Bit-map indicating which L2 hdrs may appear after the basic 2914/* [RW 6] Bit-map indicating which L2 hdrs may appear after the basic
2445 * Ethernet header. */ 2915 * Ethernet header. */
2446#define PRS_REG_HDRS_AFTER_BASIC 0x40238 2916#define PRS_REG_HDRS_AFTER_BASIC 0x40238
2917/* [RW 6] Bit-map indicating which L2 hdrs may appear after the basic
2918 * Ethernet header for port 0 packets. */
2919#define PRS_REG_HDRS_AFTER_BASIC_PORT_0 0x40270
2920#define PRS_REG_HDRS_AFTER_BASIC_PORT_1 0x40290
2921/* [R 6] Bit-map indicating which L2 hdrs may appear after L2 tag 0 */
2922#define PRS_REG_HDRS_AFTER_TAG_0 0x40248
2923/* [RW 6] Bit-map indicating which L2 hdrs may appear after L2 tag 0 for
2924 * port 0 packets */
2925#define PRS_REG_HDRS_AFTER_TAG_0_PORT_0 0x40280
2926#define PRS_REG_HDRS_AFTER_TAG_0_PORT_1 0x402a0
2447/* [RW 4] The increment value to send in the CFC load request message */ 2927/* [RW 4] The increment value to send in the CFC load request message */
2448#define PRS_REG_INC_VALUE 0x40048 2928#define PRS_REG_INC_VALUE 0x40048
2449/* [RW 6] Bit-map indicating which headers must appear in the packet */ 2929/* [RW 6] Bit-map indicating which headers must appear in the packet */
2450#define PRS_REG_MUST_HAVE_HDRS 0x40254 2930#define PRS_REG_MUST_HAVE_HDRS 0x40254
2931/* [RW 6] Bit-map indicating which headers must appear in the packet for
2932 * port 0 packets */
2933#define PRS_REG_MUST_HAVE_HDRS_PORT_0 0x4028c
2934#define PRS_REG_MUST_HAVE_HDRS_PORT_1 0x402ac
2451#define PRS_REG_NIC_MODE 0x40138 2935#define PRS_REG_NIC_MODE 0x40138
2452/* [RW 8] The 8-bit event ID for cases where there is no match on the 2936/* [RW 8] The 8-bit event ID for cases where there is no match on the
2453 connection. Used in packet start message to TCM. */ 2937 connection. Used in packet start message to TCM. */
@@ -2496,6 +2980,11 @@
2496#define PRS_REG_SERIAL_NUM_STATUS_MSB 0x40158 2980#define PRS_REG_SERIAL_NUM_STATUS_MSB 0x40158
2497/* [R 4] debug only: SRC current credit. Transaction based. */ 2981/* [R 4] debug only: SRC current credit. Transaction based. */
2498#define PRS_REG_SRC_CURRENT_CREDIT 0x4016c 2982#define PRS_REG_SRC_CURRENT_CREDIT 0x4016c
2983/* [RW 16] The Ethernet type value for L2 tag 0 */
2984#define PRS_REG_TAG_ETHERTYPE_0 0x401d4
2985/* [RW 4] The length of the info field for L2 tag 0. The length is between
2986 * 2B and 14B; in 2B granularity */
2987#define PRS_REG_TAG_LEN_0 0x4022c
2499/* [R 8] debug only: TCM current credit. Cycle based. */ 2988/* [R 8] debug only: TCM current credit. Cycle based. */
2500#define PRS_REG_TCM_CURRENT_CREDIT 0x40160 2989#define PRS_REG_TCM_CURRENT_CREDIT 0x40160
2501/* [R 8] debug only: TSDM current credit. Transaction based. */ 2990/* [R 8] debug only: TSDM current credit. Transaction based. */
@@ -3080,6 +3569,7 @@
3080#define QM_REG_BYTECREDITAFULLTHR 0x168094 3569#define QM_REG_BYTECREDITAFULLTHR 0x168094
3081/* [RW 4] The initial credit for interface */ 3570/* [RW 4] The initial credit for interface */
3082#define QM_REG_CMINITCRD_0 0x1680cc 3571#define QM_REG_CMINITCRD_0 0x1680cc
3572#define QM_REG_BYTECRDCMDQ_0 0x16e6e8
3083#define QM_REG_CMINITCRD_1 0x1680d0 3573#define QM_REG_CMINITCRD_1 0x1680d0
3084#define QM_REG_CMINITCRD_2 0x1680d4 3574#define QM_REG_CMINITCRD_2 0x1680d4
3085#define QM_REG_CMINITCRD_3 0x1680d8 3575#define QM_REG_CMINITCRD_3 0x1680d8
@@ -3170,7 +3660,10 @@
3170/* [RW 2] The PCI attributes field used in the PCI request. */ 3660/* [RW 2] The PCI attributes field used in the PCI request. */
3171#define QM_REG_PCIREQAT 0x168054 3661#define QM_REG_PCIREQAT 0x168054
3172#define QM_REG_PF_EN 0x16e70c 3662#define QM_REG_PF_EN 0x16e70c
3173/* [R 16] The byte credit of port 0 */ 3663/* [R 24] The number of tasks stored in the QM for the PF. only even
3664 * functions are valid in E2 (odd I registers will be hard wired to 0) */
3665#define QM_REG_PF_USG_CNT_0 0x16e040
3666/* [R 16] NOT USED */
3174#define QM_REG_PORT0BYTECRD 0x168300 3667#define QM_REG_PORT0BYTECRD 0x168300
3175/* [R 16] The byte credit of port 1 */ 3668/* [R 16] The byte credit of port 1 */
3176#define QM_REG_PORT1BYTECRD 0x168304 3669#define QM_REG_PORT1BYTECRD 0x168304
@@ -3782,6 +4275,8 @@
3782#define TM_REG_LIN0_LOGIC_ADDR 0x164240 4275#define TM_REG_LIN0_LOGIC_ADDR 0x164240
3783/* [RW 18] Linear0 Max active cid (in banks of 32 entries). */ 4276/* [RW 18] Linear0 Max active cid (in banks of 32 entries). */
3784#define TM_REG_LIN0_MAX_ACTIVE_CID 0x164048 4277#define TM_REG_LIN0_MAX_ACTIVE_CID 0x164048
4278/* [ST 16] Linear0 Number of scans counter. */
4279#define TM_REG_LIN0_NUM_SCANS 0x1640a0
3785/* [WB 64] Linear0 phy address. */ 4280/* [WB 64] Linear0 phy address. */
3786#define TM_REG_LIN0_PHY_ADDR 0x164270 4281#define TM_REG_LIN0_PHY_ADDR 0x164270
3787/* [RW 1] Linear0 physical address valid. */ 4282/* [RW 1] Linear0 physical address valid. */
@@ -3789,6 +4284,7 @@
3789#define TM_REG_LIN0_SCAN_ON 0x1640d0 4284#define TM_REG_LIN0_SCAN_ON 0x1640d0
3790/* [RW 24] Linear0 array scan timeout. */ 4285/* [RW 24] Linear0 array scan timeout. */
3791#define TM_REG_LIN0_SCAN_TIME 0x16403c 4286#define TM_REG_LIN0_SCAN_TIME 0x16403c
4287#define TM_REG_LIN0_VNIC_UC 0x164128
3792/* [RW 32] Linear1 logic address. */ 4288/* [RW 32] Linear1 logic address. */
3793#define TM_REG_LIN1_LOGIC_ADDR 0x164250 4289#define TM_REG_LIN1_LOGIC_ADDR 0x164250
3794/* [WB 64] Linear1 phy address. */ 4290/* [WB 64] Linear1 phy address. */
@@ -4175,6 +4671,8 @@
4175#define UCM_REG_UCM_INT_MASK 0xe01d4 4671#define UCM_REG_UCM_INT_MASK 0xe01d4
4176/* [R 11] Interrupt register #0 read */ 4672/* [R 11] Interrupt register #0 read */
4177#define UCM_REG_UCM_INT_STS 0xe01c8 4673#define UCM_REG_UCM_INT_STS 0xe01c8
4674/* [RW 27] Parity mask register #0 read/write */
4675#define UCM_REG_UCM_PRTY_MASK 0xe01e4
4178/* [R 27] Parity register #0 read */ 4676/* [R 27] Parity register #0 read */
4179#define UCM_REG_UCM_PRTY_STS 0xe01d8 4677#define UCM_REG_UCM_PRTY_STS 0xe01d8
4180/* [RC 27] Parity register #0 read clear */ 4678/* [RC 27] Parity register #0 read clear */
@@ -4265,6 +4763,17 @@
4265 The fields are: [4:0] - tail pointer; 10:5] - Link List size; 15:11] - 4763 The fields are: [4:0] - tail pointer; 10:5] - Link List size; 15:11] -
4266 header pointer. */ 4764 header pointer. */
4267#define UCM_REG_XX_TABLE 0xe0300 4765#define UCM_REG_XX_TABLE 0xe0300
4766#define UMAC_COMMAND_CONFIG_REG_LOOP_ENA (0x1<<15)
4767#define UMAC_COMMAND_CONFIG_REG_NO_LGTH_CHECK (0x1<<24)
4768#define UMAC_COMMAND_CONFIG_REG_PAD_EN (0x1<<5)
4769#define UMAC_COMMAND_CONFIG_REG_PROMIS_EN (0x1<<4)
4770#define UMAC_COMMAND_CONFIG_REG_RX_ENA (0x1<<1)
4771#define UMAC_COMMAND_CONFIG_REG_SW_RESET (0x1<<13)
4772#define UMAC_COMMAND_CONFIG_REG_TX_ENA (0x1<<0)
4773#define UMAC_REG_COMMAND_CONFIG 0x8
4774/* [RW 14] Defines a 14-Bit maximum frame length used by the MAC receive
4775 * logic to check frames. */
4776#define UMAC_REG_MAXFR 0x14
4268/* [RW 8] The event id for aggregated interrupt 0 */ 4777/* [RW 8] The event id for aggregated interrupt 0 */
4269#define USDM_REG_AGG_INT_EVENT_0 0xc4038 4778#define USDM_REG_AGG_INT_EVENT_0 0xc4038
4270#define USDM_REG_AGG_INT_EVENT_1 0xc403c 4779#define USDM_REG_AGG_INT_EVENT_1 0xc403c
@@ -4696,8 +5205,13 @@
4696#define XCM_REG_XCM_INT_MASK 0x202b4 5205#define XCM_REG_XCM_INT_MASK 0x202b4
4697/* [R 14] Interrupt register #0 read */ 5206/* [R 14] Interrupt register #0 read */
4698#define XCM_REG_XCM_INT_STS 0x202a8 5207#define XCM_REG_XCM_INT_STS 0x202a8
5208/* [RW 30] Parity mask register #0 read/write */
5209#define XCM_REG_XCM_PRTY_MASK 0x202c4
4699/* [R 30] Parity register #0 read */ 5210/* [R 30] Parity register #0 read */
4700#define XCM_REG_XCM_PRTY_STS 0x202b8 5211#define XCM_REG_XCM_PRTY_STS 0x202b8
5212/* [RC 30] Parity register #0 read clear */
5213#define XCM_REG_XCM_PRTY_STS_CLR 0x202bc
5214
4701/* [RW 4] The size of AG context region 0 in REG-pairs. Designates the MS 5215/* [RW 4] The size of AG context region 0 in REG-pairs. Designates the MS
4702 REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5). 5216 REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5).
4703 Is used to determine the number of the AG context REG-pairs written back; 5217 Is used to determine the number of the AG context REG-pairs written back;
@@ -4772,6 +5286,28 @@
4772#define XCM_REG_XX_MSG_NUM 0x20428 5286#define XCM_REG_XX_MSG_NUM 0x20428
4773/* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */ 5287/* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */
4774#define XCM_REG_XX_OVFL_EVNT_ID 0x20058 5288#define XCM_REG_XX_OVFL_EVNT_ID 0x20058
5289#define XMAC_CLEAR_RX_LSS_STATUS_REG_CLEAR_LOCAL_FAULT_STATUS (0x1<<0)
5290#define XMAC_CLEAR_RX_LSS_STATUS_REG_CLEAR_REMOTE_FAULT_STATUS (0x1<<1)
5291#define XMAC_CTRL_REG_CORE_LOCAL_LPBK (0x1<<3)
5292#define XMAC_CTRL_REG_RX_EN (0x1<<1)
5293#define XMAC_CTRL_REG_SOFT_RESET (0x1<<6)
5294#define XMAC_CTRL_REG_TX_EN (0x1<<0)
5295#define XMAC_PAUSE_CTRL_REG_RX_PAUSE_EN (0x1<<18)
5296#define XMAC_PAUSE_CTRL_REG_TX_PAUSE_EN (0x1<<17)
5297#define XMAC_PFC_CTRL_HI_REG_PFC_REFRESH_EN (0x1<<0)
5298#define XMAC_PFC_CTRL_HI_REG_PFC_STATS_EN (0x1<<3)
5299#define XMAC_PFC_CTRL_HI_REG_RX_PFC_EN (0x1<<4)
5300#define XMAC_PFC_CTRL_HI_REG_TX_PFC_EN (0x1<<5)
5301#define XMAC_REG_CLEAR_RX_LSS_STATUS 0x60
5302#define XMAC_REG_CTRL 0
5303#define XMAC_REG_PAUSE_CTRL 0x68
5304#define XMAC_REG_PFC_CTRL 0x70
5305#define XMAC_REG_PFC_CTRL_HI 0x74
5306#define XMAC_REG_RX_LSS_STATUS 0x58
5307/* [RW 14] Maximum packet size in receive direction; exclusive of preamble &
5308 * CRC in strip mode */
5309#define XMAC_REG_RX_MAX_SIZE 0x40
5310#define XMAC_REG_TX_CTRL 0x20
4775/* [RW 16] Indirect access to the XX table of the XX protection mechanism. 5311/* [RW 16] Indirect access to the XX table of the XX protection mechanism.
4776 The fields are:[4:0] - tail pointer; 9:5] - Link List size; 14:10] - 5312 The fields are:[4:0] - tail pointer; 9:5] - Link List size; 14:10] -
4777 header pointer. */ 5313 header pointer. */
@@ -4846,6 +5382,10 @@
4846#define XSDM_REG_NUM_OF_Q9_CMD 0x166268 5382#define XSDM_REG_NUM_OF_Q9_CMD 0x166268
4847/* [RW 13] The start address in the internal RAM for queue counters */ 5383/* [RW 13] The start address in the internal RAM for queue counters */
4848#define XSDM_REG_Q_COUNTER_START_ADDR 0x166010 5384#define XSDM_REG_Q_COUNTER_START_ADDR 0x166010
5385/* [W 17] Generate an operation after completion; bit-16 is
5386 * AggVectIdx_valid; bits 15:8 are AggVectIdx; bits 7:5 are the TRIG and
5387 * bits 4:0 are the T124Param[4:0] */
5388#define XSDM_REG_OPERATION_GEN 0x1664c4
4849/* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */ 5389/* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */
4850#define XSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY 0x166548 5390#define XSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY 0x166548
4851/* [R 1] parser fifo empty in sdm_sync block */ 5391/* [R 1] parser fifo empty in sdm_sync block */
@@ -5019,6 +5559,7 @@
5019#define BIGMAC_REGISTER_CNT_MAX_SIZE (0x05<<3) 5559#define BIGMAC_REGISTER_CNT_MAX_SIZE (0x05<<3)
5020#define BIGMAC_REGISTER_RX_CONTROL (0x21<<3) 5560#define BIGMAC_REGISTER_RX_CONTROL (0x21<<3)
5021#define BIGMAC_REGISTER_RX_LLFC_MSG_FLDS (0x46<<3) 5561#define BIGMAC_REGISTER_RX_LLFC_MSG_FLDS (0x46<<3)
5562#define BIGMAC_REGISTER_RX_LSS_STATUS (0x43<<3)
5022#define BIGMAC_REGISTER_RX_MAX_SIZE (0x23<<3) 5563#define BIGMAC_REGISTER_RX_MAX_SIZE (0x23<<3)
5023#define BIGMAC_REGISTER_RX_STAT_GR64 (0x26<<3) 5564#define BIGMAC_REGISTER_RX_STAT_GR64 (0x26<<3)
5024#define BIGMAC_REGISTER_RX_STAT_GRIPJ (0x42<<3) 5565#define BIGMAC_REGISTER_RX_STAT_GRIPJ (0x42<<3)
@@ -5034,6 +5575,7 @@
5034#define BIGMAC2_REGISTER_PFC_CONTROL (0x06<<3) 5575#define BIGMAC2_REGISTER_PFC_CONTROL (0x06<<3)
5035#define BIGMAC2_REGISTER_RX_CONTROL (0x3A<<3) 5576#define BIGMAC2_REGISTER_RX_CONTROL (0x3A<<3)
5036#define BIGMAC2_REGISTER_RX_LLFC_MSG_FLDS (0x62<<3) 5577#define BIGMAC2_REGISTER_RX_LLFC_MSG_FLDS (0x62<<3)
5578#define BIGMAC2_REGISTER_RX_LSS_STAT (0x3E<<3)
5037#define BIGMAC2_REGISTER_RX_MAX_SIZE (0x3C<<3) 5579#define BIGMAC2_REGISTER_RX_MAX_SIZE (0x3C<<3)
5038#define BIGMAC2_REGISTER_RX_STAT_GR64 (0x40<<3) 5580#define BIGMAC2_REGISTER_RX_STAT_GR64 (0x40<<3)
5039#define BIGMAC2_REGISTER_RX_STAT_GRIPJ (0x5f<<3) 5581#define BIGMAC2_REGISTER_RX_STAT_GRIPJ (0x5f<<3)
@@ -5052,7 +5594,9 @@
5052#define EMAC_LED_OVERRIDE (1L<<0) 5594#define EMAC_LED_OVERRIDE (1L<<0)
5053#define EMAC_LED_TRAFFIC (1L<<6) 5595#define EMAC_LED_TRAFFIC (1L<<6)
5054#define EMAC_MDIO_COMM_COMMAND_ADDRESS (0L<<26) 5596#define EMAC_MDIO_COMM_COMMAND_ADDRESS (0L<<26)
5597#define EMAC_MDIO_COMM_COMMAND_READ_22 (2L<<26)
5055#define EMAC_MDIO_COMM_COMMAND_READ_45 (3L<<26) 5598#define EMAC_MDIO_COMM_COMMAND_READ_45 (3L<<26)
5599#define EMAC_MDIO_COMM_COMMAND_WRITE_22 (1L<<26)
5056#define EMAC_MDIO_COMM_COMMAND_WRITE_45 (1L<<26) 5600#define EMAC_MDIO_COMM_COMMAND_WRITE_45 (1L<<26)
5057#define EMAC_MDIO_COMM_DATA (0xffffL<<0) 5601#define EMAC_MDIO_COMM_DATA (0xffffL<<0)
5058#define EMAC_MDIO_COMM_START_BUSY (1L<<29) 5602#define EMAC_MDIO_COMM_START_BUSY (1L<<29)
@@ -5128,16 +5672,24 @@
5128#define MISC_REGISTERS_RESET_REG_1_RST_PXPV (0x1<<27) 5672#define MISC_REGISTERS_RESET_REG_1_RST_PXPV (0x1<<27)
5129#define MISC_REGISTERS_RESET_REG_1_SET 0x584 5673#define MISC_REGISTERS_RESET_REG_1_SET 0x584
5130#define MISC_REGISTERS_RESET_REG_2_CLEAR 0x598 5674#define MISC_REGISTERS_RESET_REG_2_CLEAR 0x598
5675#define MISC_REGISTERS_RESET_REG_2_MSTAT0 (0x1<<24)
5676#define MISC_REGISTERS_RESET_REG_2_MSTAT1 (0x1<<25)
5131#define MISC_REGISTERS_RESET_REG_2_RST_BMAC0 (0x1<<0) 5677#define MISC_REGISTERS_RESET_REG_2_RST_BMAC0 (0x1<<0)
5132#define MISC_REGISTERS_RESET_REG_2_RST_EMAC0_HARD_CORE (0x1<<14) 5678#define MISC_REGISTERS_RESET_REG_2_RST_EMAC0_HARD_CORE (0x1<<14)
5133#define MISC_REGISTERS_RESET_REG_2_RST_EMAC1_HARD_CORE (0x1<<15) 5679#define MISC_REGISTERS_RESET_REG_2_RST_EMAC1_HARD_CORE (0x1<<15)
5134#define MISC_REGISTERS_RESET_REG_2_RST_GRC (0x1<<4) 5680#define MISC_REGISTERS_RESET_REG_2_RST_GRC (0x1<<4)
5135#define MISC_REGISTERS_RESET_REG_2_RST_MCP_N_HARD_CORE_RST_B (0x1<<6) 5681#define MISC_REGISTERS_RESET_REG_2_RST_MCP_N_HARD_CORE_RST_B (0x1<<6)
5682#define MISC_REGISTERS_RESET_REG_2_RST_MCP_N_RESET_CMN_CORE (0x1<<8)
5683#define MISC_REGISTERS_RESET_REG_2_RST_MCP_N_RESET_CMN_CPU (0x1<<7)
5136#define MISC_REGISTERS_RESET_REG_2_RST_MCP_N_RESET_REG_HARD_CORE (0x1<<5) 5684#define MISC_REGISTERS_RESET_REG_2_RST_MCP_N_RESET_REG_HARD_CORE (0x1<<5)
5137#define MISC_REGISTERS_RESET_REG_2_RST_MDIO (0x1<<13) 5685#define MISC_REGISTERS_RESET_REG_2_RST_MDIO (0x1<<13)
5138#define MISC_REGISTERS_RESET_REG_2_RST_MISC_CORE (0x1<<11) 5686#define MISC_REGISTERS_RESET_REG_2_RST_MISC_CORE (0x1<<11)
5687#define MISC_REGISTERS_RESET_REG_2_RST_PCI_MDIO (0x1<<13)
5139#define MISC_REGISTERS_RESET_REG_2_RST_RBCN (0x1<<9) 5688#define MISC_REGISTERS_RESET_REG_2_RST_RBCN (0x1<<9)
5140#define MISC_REGISTERS_RESET_REG_2_SET 0x594 5689#define MISC_REGISTERS_RESET_REG_2_SET 0x594
5690#define MISC_REGISTERS_RESET_REG_2_UMAC0 (0x1<<20)
5691#define MISC_REGISTERS_RESET_REG_2_XMAC (0x1<<22)
5692#define MISC_REGISTERS_RESET_REG_2_XMAC_SOFT (0x1<<23)
5141#define MISC_REGISTERS_RESET_REG_3_CLEAR 0x5a8 5693#define MISC_REGISTERS_RESET_REG_3_CLEAR 0x5a8
5142#define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_IDDQ (0x1<<1) 5694#define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_IDDQ (0x1<<1)
5143#define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_PWRDWN (0x1<<2) 5695#define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_PWRDWN (0x1<<2)
@@ -5160,74 +5712,86 @@
5160#define MISC_REGISTERS_SPIO_OUTPUT_HIGH 1 5712#define MISC_REGISTERS_SPIO_OUTPUT_HIGH 1
5161#define MISC_REGISTERS_SPIO_OUTPUT_LOW 0 5713#define MISC_REGISTERS_SPIO_OUTPUT_LOW 0
5162#define MISC_REGISTERS_SPIO_SET_POS 8 5714#define MISC_REGISTERS_SPIO_SET_POS 8
5715#define HW_LOCK_DRV_FLAGS 10
5163#define HW_LOCK_MAX_RESOURCE_VALUE 31 5716#define HW_LOCK_MAX_RESOURCE_VALUE 31
5164#define HW_LOCK_RESOURCE_GPIO 1 5717#define HW_LOCK_RESOURCE_GPIO 1
5165#define HW_LOCK_RESOURCE_MDIO 0 5718#define HW_LOCK_RESOURCE_MDIO 0
5166#define HW_LOCK_RESOURCE_PORT0_ATT_MASK 3 5719#define HW_LOCK_RESOURCE_PORT0_ATT_MASK 3
5167#define HW_LOCK_RESOURCE_RESERVED_08 8 5720#define HW_LOCK_RESOURCE_RECOVERY_LEADER_0 8
5721#define HW_LOCK_RESOURCE_RECOVERY_LEADER_1 9
5168#define HW_LOCK_RESOURCE_SPIO 2 5722#define HW_LOCK_RESOURCE_SPIO 2
5169#define HW_LOCK_RESOURCE_UNDI 5 5723#define HW_LOCK_RESOURCE_UNDI 5
5170#define PRS_FLAG_OVERETH_IPV4 1 5724#define AEU_INPUTS_ATTN_BITS_ATC_HW_INTERRUPT (0x1<<4)
5171#define AEU_INPUTS_ATTN_BITS_ATC_HW_INTERRUPT (0x1<<4) 5725#define AEU_INPUTS_ATTN_BITS_ATC_PARITY_ERROR (0x1<<5)
5172#define AEU_INPUTS_ATTN_BITS_ATC_PARITY_ERROR (0x1<<5) 5726#define AEU_INPUTS_ATTN_BITS_BRB_PARITY_ERROR (0x1<<18)
5173#define AEU_INPUTS_ATTN_BITS_BRB_PARITY_ERROR (1<<18) 5727#define AEU_INPUTS_ATTN_BITS_CCM_HW_INTERRUPT (0x1<<31)
5174#define AEU_INPUTS_ATTN_BITS_CCM_HW_INTERRUPT (1<<31) 5728#define AEU_INPUTS_ATTN_BITS_CCM_PARITY_ERROR (0x1<<30)
5175#define AEU_INPUTS_ATTN_BITS_CDU_HW_INTERRUPT (1<<9) 5729#define AEU_INPUTS_ATTN_BITS_CDU_HW_INTERRUPT (0x1<<9)
5176#define AEU_INPUTS_ATTN_BITS_CDU_PARITY_ERROR (1<<8) 5730#define AEU_INPUTS_ATTN_BITS_CDU_PARITY_ERROR (0x1<<8)
5177#define AEU_INPUTS_ATTN_BITS_CFC_HW_INTERRUPT (1<<7) 5731#define AEU_INPUTS_ATTN_BITS_CFC_HW_INTERRUPT (0x1<<7)
5178#define AEU_INPUTS_ATTN_BITS_CFC_PARITY_ERROR (1<<6) 5732#define AEU_INPUTS_ATTN_BITS_CFC_PARITY_ERROR (0x1<<6)
5179#define AEU_INPUTS_ATTN_BITS_CSDM_HW_INTERRUPT (1<<29) 5733#define AEU_INPUTS_ATTN_BITS_CSDM_HW_INTERRUPT (0x1<<29)
5180#define AEU_INPUTS_ATTN_BITS_CSDM_PARITY_ERROR (1<<28) 5734#define AEU_INPUTS_ATTN_BITS_CSDM_PARITY_ERROR (0x1<<28)
5181#define AEU_INPUTS_ATTN_BITS_CSEMI_HW_INTERRUPT (1<<1) 5735#define AEU_INPUTS_ATTN_BITS_CSEMI_HW_INTERRUPT (0x1<<1)
5182#define AEU_INPUTS_ATTN_BITS_CSEMI_PARITY_ERROR (1<<0) 5736#define AEU_INPUTS_ATTN_BITS_CSEMI_PARITY_ERROR (0x1<<0)
5183#define AEU_INPUTS_ATTN_BITS_DEBUG_PARITY_ERROR (1<<18) 5737#define AEU_INPUTS_ATTN_BITS_DEBUG_PARITY_ERROR (0x1<<18)
5184#define AEU_INPUTS_ATTN_BITS_DMAE_HW_INTERRUPT (1<<11) 5738#define AEU_INPUTS_ATTN_BITS_DMAE_HW_INTERRUPT (0x1<<11)
5185#define AEU_INPUTS_ATTN_BITS_DOORBELLQ_HW_INTERRUPT (1<<13) 5739#define AEU_INPUTS_ATTN_BITS_DMAE_PARITY_ERROR (0x1<<10)
5186#define AEU_INPUTS_ATTN_BITS_DOORBELLQ_PARITY_ERROR (1<<12) 5740#define AEU_INPUTS_ATTN_BITS_DOORBELLQ_HW_INTERRUPT (0x1<<13)
5187#define AEU_INPUTS_ATTN_BITS_GPIO3_FUNCTION_0 (1<<5) 5741#define AEU_INPUTS_ATTN_BITS_DOORBELLQ_PARITY_ERROR (0x1<<12)
5188#define AEU_INPUTS_ATTN_BITS_GPIO3_FUNCTION_1 (1<<9) 5742#define AEU_INPUTS_ATTN_BITS_GPIO0_FUNCTION_0 (0x1<<2)
5189#define AEU_INPUTS_ATTN_BITS_IGU_PARITY_ERROR (1<<12) 5743#define AEU_INPUTS_ATTN_BITS_IGU_PARITY_ERROR (0x1<<12)
5190#define AEU_INPUTS_ATTN_BITS_MCP_LATCHED_ROM_PARITY (1<<28) 5744#define AEU_INPUTS_ATTN_BITS_MCP_LATCHED_ROM_PARITY (0x1<<28)
5191#define AEU_INPUTS_ATTN_BITS_MCP_LATCHED_SCPAD_PARITY (1<<31) 5745#define AEU_INPUTS_ATTN_BITS_MCP_LATCHED_SCPAD_PARITY (0x1<<31)
5192#define AEU_INPUTS_ATTN_BITS_MCP_LATCHED_UMP_RX_PARITY (1<<29) 5746#define AEU_INPUTS_ATTN_BITS_MCP_LATCHED_UMP_RX_PARITY (0x1<<29)
5193#define AEU_INPUTS_ATTN_BITS_MCP_LATCHED_UMP_TX_PARITY (1<<30) 5747#define AEU_INPUTS_ATTN_BITS_MCP_LATCHED_UMP_TX_PARITY (0x1<<30)
5194#define AEU_INPUTS_ATTN_BITS_MISC_HW_INTERRUPT (1<<15) 5748#define AEU_INPUTS_ATTN_BITS_MISC_HW_INTERRUPT (0x1<<15)
5195#define AEU_INPUTS_ATTN_BITS_MISC_PARITY_ERROR (1<<14) 5749#define AEU_INPUTS_ATTN_BITS_MISC_PARITY_ERROR (0x1<<14)
5196#define AEU_INPUTS_ATTN_BITS_PARSER_PARITY_ERROR (1<<20) 5750#define AEU_INPUTS_ATTN_BITS_NIG_PARITY_ERROR (0x1<<14)
5197#define AEU_INPUTS_ATTN_BITS_PBCLIENT_PARITY_ERROR (1<<0) 5751#define AEU_INPUTS_ATTN_BITS_PARSER_PARITY_ERROR (0x1<<20)
5198#define AEU_INPUTS_ATTN_BITS_PBF_HW_INTERRUPT (1<<31) 5752#define AEU_INPUTS_ATTN_BITS_PBCLIENT_HW_INTERRUPT (0x1<<31)
5199#define AEU_INPUTS_ATTN_BITS_PGLUE_HW_INTERRUPT (0x1<<2) 5753#define AEU_INPUTS_ATTN_BITS_PBCLIENT_PARITY_ERROR (0x1<<30)
5200#define AEU_INPUTS_ATTN_BITS_PGLUE_PARITY_ERROR (0x1<<3) 5754#define AEU_INPUTS_ATTN_BITS_PBF_PARITY_ERROR (0x1<<0)
5201#define AEU_INPUTS_ATTN_BITS_PXP_HW_INTERRUPT (1<<3) 5755#define AEU_INPUTS_ATTN_BITS_PGLUE_HW_INTERRUPT (0x1<<2)
5202#define AEU_INPUTS_ATTN_BITS_PXP_PARITY_ERROR (1<<2) 5756#define AEU_INPUTS_ATTN_BITS_PGLUE_PARITY_ERROR (0x1<<3)
5203#define AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_HW_INTERRUPT (1<<5) 5757#define AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_HW_INTERRUPT (0x1<<5)
5204#define AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_PARITY_ERROR (1<<4) 5758#define AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_PARITY_ERROR (0x1<<4)
5205#define AEU_INPUTS_ATTN_BITS_QM_HW_INTERRUPT (1<<3) 5759#define AEU_INPUTS_ATTN_BITS_PXP_HW_INTERRUPT (0x1<<3)
5206#define AEU_INPUTS_ATTN_BITS_QM_PARITY_ERROR (1<<2) 5760#define AEU_INPUTS_ATTN_BITS_PXP_PARITY_ERROR (0x1<<2)
5207#define AEU_INPUTS_ATTN_BITS_SEARCHER_PARITY_ERROR (1<<22) 5761#define AEU_INPUTS_ATTN_BITS_QM_HW_INTERRUPT (0x1<<3)
5208#define AEU_INPUTS_ATTN_BITS_SPIO5 (1<<15) 5762#define AEU_INPUTS_ATTN_BITS_QM_PARITY_ERROR (0x1<<2)
5209#define AEU_INPUTS_ATTN_BITS_TCM_HW_INTERRUPT (1<<27) 5763#define AEU_INPUTS_ATTN_BITS_SEARCHER_PARITY_ERROR (0x1<<22)
5210#define AEU_INPUTS_ATTN_BITS_TIMERS_HW_INTERRUPT (1<<5) 5764#define AEU_INPUTS_ATTN_BITS_SPIO5 (0x1<<15)
5211#define AEU_INPUTS_ATTN_BITS_TSDM_HW_INTERRUPT (1<<25) 5765#define AEU_INPUTS_ATTN_BITS_TCM_HW_INTERRUPT (0x1<<27)
5212#define AEU_INPUTS_ATTN_BITS_TSDM_PARITY_ERROR (1<<24) 5766#define AEU_INPUTS_ATTN_BITS_TCM_PARITY_ERROR (0x1<<26)
5213#define AEU_INPUTS_ATTN_BITS_TSEMI_HW_INTERRUPT (1<<29) 5767#define AEU_INPUTS_ATTN_BITS_TIMERS_HW_INTERRUPT (0x1<<5)
5214#define AEU_INPUTS_ATTN_BITS_TSEMI_PARITY_ERROR (1<<28) 5768#define AEU_INPUTS_ATTN_BITS_TIMERS_PARITY_ERROR (0x1<<4)
5215#define AEU_INPUTS_ATTN_BITS_UCM_HW_INTERRUPT (1<<23) 5769#define AEU_INPUTS_ATTN_BITS_TSDM_HW_INTERRUPT (0x1<<25)
5216#define AEU_INPUTS_ATTN_BITS_UPB_HW_INTERRUPT (1<<27) 5770#define AEU_INPUTS_ATTN_BITS_TSDM_PARITY_ERROR (0x1<<24)
5217#define AEU_INPUTS_ATTN_BITS_UPB_PARITY_ERROR (1<<26) 5771#define AEU_INPUTS_ATTN_BITS_TSEMI_HW_INTERRUPT (0x1<<29)
5218#define AEU_INPUTS_ATTN_BITS_USDM_HW_INTERRUPT (1<<21) 5772#define AEU_INPUTS_ATTN_BITS_TSEMI_PARITY_ERROR (0x1<<28)
5219#define AEU_INPUTS_ATTN_BITS_USDM_PARITY_ERROR (1<<20) 5773#define AEU_INPUTS_ATTN_BITS_UCM_HW_INTERRUPT (0x1<<23)
5220#define AEU_INPUTS_ATTN_BITS_USEMI_HW_INTERRUPT (1<<25) 5774#define AEU_INPUTS_ATTN_BITS_UCM_PARITY_ERROR (0x1<<22)
5221#define AEU_INPUTS_ATTN_BITS_USEMI_PARITY_ERROR (1<<24) 5775#define AEU_INPUTS_ATTN_BITS_UPB_HW_INTERRUPT (0x1<<27)
5222#define AEU_INPUTS_ATTN_BITS_VAUX_PCI_CORE_PARITY_ERROR (1<<16) 5776#define AEU_INPUTS_ATTN_BITS_UPB_PARITY_ERROR (0x1<<26)
5223#define AEU_INPUTS_ATTN_BITS_XCM_HW_INTERRUPT (1<<9) 5777#define AEU_INPUTS_ATTN_BITS_USDM_HW_INTERRUPT (0x1<<21)
5224#define AEU_INPUTS_ATTN_BITS_XSDM_HW_INTERRUPT (1<<7) 5778#define AEU_INPUTS_ATTN_BITS_USDM_PARITY_ERROR (0x1<<20)
5225#define AEU_INPUTS_ATTN_BITS_XSDM_PARITY_ERROR (1<<6) 5779#define AEU_INPUTS_ATTN_BITS_USEMI_HW_INTERRUPT (0x1<<25)
5226#define AEU_INPUTS_ATTN_BITS_XSEMI_HW_INTERRUPT (1<<11) 5780#define AEU_INPUTS_ATTN_BITS_USEMI_PARITY_ERROR (0x1<<24)
5227#define AEU_INPUTS_ATTN_BITS_XSEMI_PARITY_ERROR (1<<10) 5781#define AEU_INPUTS_ATTN_BITS_VAUX_PCI_CORE_PARITY_ERROR (0x1<<16)
5782#define AEU_INPUTS_ATTN_BITS_XCM_HW_INTERRUPT (0x1<<9)
5783#define AEU_INPUTS_ATTN_BITS_XCM_PARITY_ERROR (0x1<<8)
5784#define AEU_INPUTS_ATTN_BITS_XSDM_HW_INTERRUPT (0x1<<7)
5785#define AEU_INPUTS_ATTN_BITS_XSDM_PARITY_ERROR (0x1<<6)
5786#define AEU_INPUTS_ATTN_BITS_XSEMI_HW_INTERRUPT (0x1<<11)
5787#define AEU_INPUTS_ATTN_BITS_XSEMI_PARITY_ERROR (0x1<<10)
5788
5789#define AEU_INPUTS_ATTN_BITS_GPIO3_FUNCTION_0 (0x1<<5)
5790#define AEU_INPUTS_ATTN_BITS_GPIO3_FUNCTION_1 (0x1<<9)
5791
5228#define RESERVED_GENERAL_ATTENTION_BIT_0 0 5792#define RESERVED_GENERAL_ATTENTION_BIT_0 0
5229 5793
5230#define EVEREST_GEN_ATTN_IN_USE_MASK 0x3ffe0 5794#define EVEREST_GEN_ATTN_IN_USE_MASK 0x7ffe0
5231#define EVEREST_LATCHED_ATTN_IN_USE_MASK 0xffe00000 5795#define EVEREST_LATCHED_ATTN_IN_USE_MASK 0xffe00000
5232 5796
5233#define RESERVED_GENERAL_ATTENTION_BIT_6 6 5797#define RESERVED_GENERAL_ATTENTION_BIT_6 6
@@ -5317,7 +5881,13 @@
5317#define GRCBASE_HC 0x108000 5881#define GRCBASE_HC 0x108000
5318#define GRCBASE_PXP2 0x120000 5882#define GRCBASE_PXP2 0x120000
5319#define GRCBASE_PBF 0x140000 5883#define GRCBASE_PBF 0x140000
5884#define GRCBASE_UMAC0 0x160000
5885#define GRCBASE_UMAC1 0x160400
5320#define GRCBASE_XPB 0x161000 5886#define GRCBASE_XPB 0x161000
5887#define GRCBASE_MSTAT0 0x162000
5888#define GRCBASE_MSTAT1 0x162800
5889#define GRCBASE_XMAC0 0x163000
5890#define GRCBASE_XMAC1 0x163800
5321#define GRCBASE_TIMERS 0x164000 5891#define GRCBASE_TIMERS 0x164000
5322#define GRCBASE_XSDM 0x166000 5892#define GRCBASE_XSDM 0x166000
5323#define GRCBASE_QM 0x168000 5893#define GRCBASE_QM 0x168000
@@ -5883,6 +6453,10 @@
5883#define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_16G 0x0C00 6453#define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_16G 0x0C00
5884#define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_1G_KX 0x0D00 6454#define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_1G_KX 0x0D00
5885#define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_KX4 0x0E00 6455#define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_KX4 0x0E00
6456#define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_KR 0x0F00
6457#define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_XFI 0x1B00
6458#define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_20G_DXGXS 0x1E00
6459#define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_SFI 0x1F00
5886 6460
5887 6461
5888#define MDIO_REG_BANK_10G_PARALLEL_DETECT 0x8130 6462#define MDIO_REG_BANK_10G_PARALLEL_DETECT 0x8130
@@ -6036,11 +6610,6 @@ Theotherbitsarereservedandshouldbezero*/
6036/*bcm*/ 6610/*bcm*/
6037#define MDIO_PMA_REG_BCM_CTRL 0x0096 6611#define MDIO_PMA_REG_BCM_CTRL 0x0096
6038#define MDIO_PMA_REG_FEC_CTRL 0x00ab 6612#define MDIO_PMA_REG_FEC_CTRL 0x00ab
6039#define MDIO_PMA_REG_RX_ALARM_CTRL 0x9000
6040#define MDIO_PMA_REG_LASI_CTRL 0x9002
6041#define MDIO_PMA_REG_RX_ALARM 0x9003
6042#define MDIO_PMA_REG_TX_ALARM 0x9004
6043#define MDIO_PMA_REG_LASI_STATUS 0x9005
6044#define MDIO_PMA_REG_PHY_IDENTIFIER 0xc800 6613#define MDIO_PMA_REG_PHY_IDENTIFIER 0xc800
6045#define MDIO_PMA_REG_DIGITAL_CTRL 0xc808 6614#define MDIO_PMA_REG_DIGITAL_CTRL 0xc808
6046#define MDIO_PMA_REG_DIGITAL_STATUS 0xc809 6615#define MDIO_PMA_REG_DIGITAL_STATUS 0xc809
@@ -6201,6 +6770,153 @@ Theotherbitsarereservedandshouldbezero*/
6201#define MDIO_PMA_REG_84823_CTL_LED_CTL_1 0xa8e3 6770#define MDIO_PMA_REG_84823_CTL_LED_CTL_1 0xa8e3
6202#define MDIO_PMA_REG_84823_LED3_STRETCH_EN 0x0080 6771#define MDIO_PMA_REG_84823_LED3_STRETCH_EN 0x0080
6203 6772
6773/* BCM84833 only */
6774#define MDIO_84833_TOP_CFG_XGPHY_STRAP1 0x401a
6775#define MDIO_84833_SUPER_ISOLATE 0x8000
6776/* These are mailbox register set used by 84833. */
6777#define MDIO_84833_TOP_CFG_SCRATCH_REG0 0x4005
6778#define MDIO_84833_TOP_CFG_SCRATCH_REG1 0x4006
6779#define MDIO_84833_TOP_CFG_SCRATCH_REG2 0x4007
6780#define MDIO_84833_TOP_CFG_SCRATCH_REG3 0x4008
6781#define MDIO_84833_TOP_CFG_SCRATCH_REG4 0x4009
6782
6783/* Mailbox command set used by 84833. */
6784#define PHY84833_DIAG_CMD_PAIR_SWAP_CHANGE 0x2
6785/* Mailbox status set used by 84833. */
6786#define PHY84833_CMD_RECEIVED 0x0001
6787#define PHY84833_CMD_IN_PROGRESS 0x0002
6788#define PHY84833_CMD_COMPLETE_PASS 0x0004
6789#define PHY84833_CMD_COMPLETE_ERROR 0x0008
6790#define PHY84833_CMD_OPEN_FOR_CMDS 0x0010
6791#define PHY84833_CMD_SYSTEM_BOOT 0x0020
6792#define PHY84833_CMD_NOT_OPEN_FOR_CMDS 0x0040
6793#define PHY84833_CMD_CLEAR_COMPLETE 0x0080
6794#define PHY84833_CMD_OPEN_OVERRIDE 0xa5a5
6795
6796/* Warpcore clause 45 addressing */
6797#define MDIO_WC_DEVAD 0x3
6798#define MDIO_WC_REG_IEEE0BLK_MIICNTL 0x0
6799#define MDIO_WC_REG_IEEE0BLK_AUTONEGNP 0x7
6800#define MDIO_WC_REG_AN_IEEE1BLK_AN_ADVERTISEMENT0 0x10
6801#define MDIO_WC_REG_AN_IEEE1BLK_AN_ADVERTISEMENT1 0x11
6802#define MDIO_WC_REG_PMD_IEEE9BLK_TENGBASE_KR_PMD_CONTROL_REGISTER_150 0x96
6803#define MDIO_WC_REG_XGXSBLK0_XGXSCONTROL 0x8000
6804#define MDIO_WC_REG_XGXSBLK0_MISCCONTROL1 0x800e
6805#define MDIO_WC_REG_XGXSBLK1_DESKEW 0x8010
6806#define MDIO_WC_REG_XGXSBLK1_LANECTRL0 0x8015
6807#define MDIO_WC_REG_XGXSBLK1_LANECTRL1 0x8016
6808#define MDIO_WC_REG_XGXSBLK1_LANECTRL2 0x8017
6809#define MDIO_WC_REG_TX0_ANA_CTRL0 0x8061
6810#define MDIO_WC_REG_TX1_ANA_CTRL0 0x8071
6811#define MDIO_WC_REG_TX2_ANA_CTRL0 0x8081
6812#define MDIO_WC_REG_TX3_ANA_CTRL0 0x8091
6813#define MDIO_WC_REG_TX0_TX_DRIVER 0x8067
6814#define MDIO_WC_REG_TX0_TX_DRIVER_IPRE_DRIVER_OFFSET 0x04
6815#define MDIO_WC_REG_TX0_TX_DRIVER_IPRE_DRIVER_MASK 0x00f0
6816#define MDIO_WC_REG_TX0_TX_DRIVER_IDRIVER_OFFSET 0x08
6817#define MDIO_WC_REG_TX0_TX_DRIVER_IDRIVER_MASK 0x0f00
6818#define MDIO_WC_REG_TX0_TX_DRIVER_POST2_COEFF_OFFSET 0x0c
6819#define MDIO_WC_REG_TX0_TX_DRIVER_POST2_COEFF_MASK 0x7000
6820#define MDIO_WC_REG_TX1_TX_DRIVER 0x8077
6821#define MDIO_WC_REG_TX2_TX_DRIVER 0x8087
6822#define MDIO_WC_REG_TX3_TX_DRIVER 0x8097
6823#define MDIO_WC_REG_RX0_ANARXCONTROL1G 0x80b9
6824#define MDIO_WC_REG_RX2_ANARXCONTROL1G 0x80d9
6825#define MDIO_WC_REG_RX0_PCI_CTRL 0x80ba
6826#define MDIO_WC_REG_RX1_PCI_CTRL 0x80ca
6827#define MDIO_WC_REG_RX2_PCI_CTRL 0x80da
6828#define MDIO_WC_REG_RX3_PCI_CTRL 0x80ea
6829#define MDIO_WC_REG_XGXSBLK2_UNICORE_MODE_10G 0x8104
6830#define MDIO_WC_REG_XGXS_STATUS3 0x8129
6831#define MDIO_WC_REG_PAR_DET_10G_STATUS 0x8130
6832#define MDIO_WC_REG_PAR_DET_10G_CTRL 0x8131
6833#define MDIO_WC_REG_XGXS_X2_CONTROL2 0x8141
6834#define MDIO_WC_REG_XGXS_RX_LN_SWAP1 0x816B
6835#define MDIO_WC_REG_XGXS_TX_LN_SWAP1 0x8169
6836#define MDIO_WC_REG_GP2_STATUS_GP_2_0 0x81d0
6837#define MDIO_WC_REG_GP2_STATUS_GP_2_1 0x81d1
6838#define MDIO_WC_REG_GP2_STATUS_GP_2_2 0x81d2
6839#define MDIO_WC_REG_GP2_STATUS_GP_2_3 0x81d3
6840#define MDIO_WC_REG_GP2_STATUS_GP_2_4 0x81d4
6841#define MDIO_WC_REG_UC_INFO_B0_DEAD_TRAP 0x81EE
6842#define MDIO_WC_REG_UC_INFO_B1_VERSION 0x81F0
6843#define MDIO_WC_REG_UC_INFO_B1_FIRMWARE_MODE 0x81F2
6844#define MDIO_WC_REG_UC_INFO_B1_FIRMWARE_LANE0_OFFSET 0x0
6845#define MDIO_WC_REG_UC_INFO_B1_FIRMWARE_MODE_DEFAULT 0x0
6846#define MDIO_WC_REG_UC_INFO_B1_FIRMWARE_MODE_SFP_OPT_LR 0x1
6847#define MDIO_WC_REG_UC_INFO_B1_FIRMWARE_MODE_SFP_DAC 0x2
6848#define MDIO_WC_REG_UC_INFO_B1_FIRMWARE_MODE_SFP_XLAUI 0x3
6849#define MDIO_WC_REG_UC_INFO_B1_FIRMWARE_MODE_LONG_CH_6G 0x4
6850#define MDIO_WC_REG_UC_INFO_B1_FIRMWARE_LANE1_OFFSET 0x4
6851#define MDIO_WC_REG_UC_INFO_B1_FIRMWARE_LANE2_OFFSET 0x8
6852#define MDIO_WC_REG_UC_INFO_B1_FIRMWARE_LANE3_OFFSET 0xc
6853#define MDIO_WC_REG_UC_INFO_B1_CRC 0x81FE
6854#define MDIO_WC_REG_DSC_SMC 0x8213
6855#define MDIO_WC_REG_DSC2B0_DSC_MISC_CTRL0 0x821e
6856#define MDIO_WC_REG_TX_FIR_TAP 0x82e2
6857#define MDIO_WC_REG_TX_FIR_TAP_PRE_TAP_OFFSET 0x00
6858#define MDIO_WC_REG_TX_FIR_TAP_PRE_TAP_MASK 0x000f
6859#define MDIO_WC_REG_TX_FIR_TAP_MAIN_TAP_OFFSET 0x04
6860#define MDIO_WC_REG_TX_FIR_TAP_MAIN_TAP_MASK 0x03f0
6861#define MDIO_WC_REG_TX_FIR_TAP_POST_TAP_OFFSET 0x0a
6862#define MDIO_WC_REG_TX_FIR_TAP_POST_TAP_MASK 0x7c00
6863#define MDIO_WC_REG_TX_FIR_TAP_ENABLE 0x8000
6864#define MDIO_WC_REG_CL72_USERB0_CL72_MISC1_CONTROL 0x82e3
6865#define MDIO_WC_REG_CL72_USERB0_CL72_OS_DEF_CTRL 0x82e6
6866#define MDIO_WC_REG_CL72_USERB0_CL72_BR_DEF_CTRL 0x82e7
6867#define MDIO_WC_REG_CL72_USERB0_CL72_2P5_DEF_CTRL 0x82e8
6868#define MDIO_WC_REG_CL72_USERB0_CL72_MISC4_CONTROL 0x82ec
6869#define MDIO_WC_REG_SERDESDIGITAL_CONTROL1000X1 0x8300
6870#define MDIO_WC_REG_SERDESDIGITAL_CONTROL1000X2 0x8301
6871#define MDIO_WC_REG_SERDESDIGITAL_CONTROL1000X3 0x8302
6872#define MDIO_WC_REG_SERDESDIGITAL_STATUS1000X1 0x8304
6873#define MDIO_WC_REG_SERDESDIGITAL_MISC1 0x8308
6874#define MDIO_WC_REG_SERDESDIGITAL_MISC2 0x8309
6875#define MDIO_WC_REG_DIGITAL3_UP1 0x8329
6876#define MDIO_WC_REG_DIGITAL4_MISC3 0x833c
6877#define MDIO_WC_REG_DIGITAL5_MISC6 0x8345
6878#define MDIO_WC_REG_DIGITAL5_MISC7 0x8349
6879#define MDIO_WC_REG_DIGITAL5_ACTUAL_SPEED 0x834e
6880#define MDIO_WC_REG_CL49_USERB0_CTRL 0x8368
6881#define MDIO_WC_REG_TX66_CONTROL 0x83b0
6882#define MDIO_WC_REG_RX66_CONTROL 0x83c0
6883#define MDIO_WC_REG_RX66_SCW0 0x83c2
6884#define MDIO_WC_REG_RX66_SCW1 0x83c3
6885#define MDIO_WC_REG_RX66_SCW2 0x83c4
6886#define MDIO_WC_REG_RX66_SCW3 0x83c5
6887#define MDIO_WC_REG_RX66_SCW0_MASK 0x83c6
6888#define MDIO_WC_REG_RX66_SCW1_MASK 0x83c7
6889#define MDIO_WC_REG_RX66_SCW2_MASK 0x83c8
6890#define MDIO_WC_REG_RX66_SCW3_MASK 0x83c9
6891#define MDIO_WC_REG_FX100_CTRL1 0x8400
6892#define MDIO_WC_REG_FX100_CTRL3 0x8402
6893
6894#define MDIO_WC_REG_MICROBLK_CMD 0xffc2
6895#define MDIO_WC_REG_MICROBLK_DL_STATUS 0xffc5
6896#define MDIO_WC_REG_MICROBLK_CMD3 0xffcc
6897
6898#define MDIO_WC_REG_AERBLK_AER 0xffde
6899#define MDIO_WC_REG_COMBO_IEEE0_MIICTRL 0xffe0
6900#define MDIO_WC_REG_COMBO_IEEE0_MIIISTAT 0xffe1
6901
6902#define MDIO_WC0_XGXS_BLK2_LANE_RESET 0x810A
6903#define MDIO_WC0_XGXS_BLK2_LANE_RESET_RX_BITSHIFT 0
6904#define MDIO_WC0_XGXS_BLK2_LANE_RESET_TX_BITSHIFT 4
6905
6906#define MDIO_WC0_XGXS_BLK6_XGXS_X2_CONTROL2 0x8141
6907
6908#define DIGITAL5_ACTUAL_SPEED_TX_MASK 0x003f
6909
6910/* 54616s */
6911#define MDIO_REG_INTR_STATUS 0x1a
6912#define MDIO_REG_INTR_MASK 0x1b
6913#define MDIO_REG_INTR_MASK_LINK_STATUS (0x1 << 1)
6914#define MDIO_REG_GPHY_SHADOW 0x1c
6915#define MDIO_REG_GPHY_SHADOW_LED_SEL2 (0x0e << 10)
6916#define MDIO_REG_GPHY_SHADOW_WR_ENA (0x1 << 15)
6917#define MDIO_REG_GPHY_SHADOW_AUTO_DET_MED (0x1e << 10)
6918#define MDIO_REG_GPHY_SHADOW_INVERT_FIB_SD (0x1 << 8)
6919
6204#define IGU_FUNC_BASE 0x0400 6920#define IGU_FUNC_BASE 0x0400
6205 6921
6206#define IGU_ADDR_MSIX 0x0000 6922#define IGU_ADDR_MSIX 0x0000
@@ -6217,11 +6933,6 @@ Theotherbitsarereservedandshouldbezero*/
6217#define IGU_ADDR_MSI_ADDR_HI 0x0212 6933#define IGU_ADDR_MSI_ADDR_HI 0x0212
6218#define IGU_ADDR_MSI_DATA 0x0213 6934#define IGU_ADDR_MSI_DATA 0x0213
6219 6935
6220#define IGU_INT_ENABLE 0
6221#define IGU_INT_DISABLE 1
6222#define IGU_INT_NOP 2
6223#define IGU_INT_NOP2 3
6224
6225#define IGU_USE_REGISTER_ustorm_type_0_sb_cleanup 0 6936#define IGU_USE_REGISTER_ustorm_type_0_sb_cleanup 0
6226#define IGU_USE_REGISTER_ustorm_type_1_sb_cleanup 1 6937#define IGU_USE_REGISTER_ustorm_type_1_sb_cleanup 1
6227#define IGU_USE_REGISTER_cstorm_type_0_sb_cleanup 2 6938#define IGU_USE_REGISTER_cstorm_type_0_sb_cleanup 2
@@ -6292,15 +7003,6 @@ Theotherbitsarereservedandshouldbezero*/
6292#define IGU_BC_BASE_DSB_PROD 128 7003#define IGU_BC_BASE_DSB_PROD 128
6293#define IGU_NORM_BASE_DSB_PROD 136 7004#define IGU_NORM_BASE_DSB_PROD 136
6294 7005
6295#define IGU_CTRL_CMD_TYPE_WR\
6296 1
6297#define IGU_CTRL_CMD_TYPE_RD\
6298 0
6299
6300#define IGU_SEG_ACCESS_NORM 0
6301#define IGU_SEG_ACCESS_DEF 1
6302#define IGU_SEG_ACCESS_ATTN 2
6303
6304 /* FID (if VF - [6] = 0; [5:0] = VF number; if PF - [6] = 1; \ 7006 /* FID (if VF - [6] = 0; [5:0] = VF number; if PF - [6] = 1; \
6305 [5:2] = 0; [1:0] = PF number) */ 7007 [5:2] = 0; [1:0] = PF number) */
6306#define IGU_FID_ENCODE_IS_PF (0x1<<6) 7008#define IGU_FID_ENCODE_IS_PF (0x1<<6)