diff options
author | Vladislav Zolotarov <vladz@broadcom.com> | 2010-12-13 00:44:25 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-12-16 16:15:55 -0500 |
commit | bcab15c5d780bafb38311f00fcb263d03d2b00f1 (patch) | |
tree | c50e4971d9c0d071b65dc4c849828d46140fb3a9 /drivers/net/bnx2x/bnx2x_reg.h | |
parent | e4901dde12d92b70dd13fa8b3bbc9df7a6129aab (diff) |
bnx2x: Add DCB/PFC support - link layer
Add appropriate HW DCB/PFC configuration
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2x/bnx2x_reg.h')
-rw-r--r-- | drivers/net/bnx2x/bnx2x_reg.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/drivers/net/bnx2x/bnx2x_reg.h b/drivers/net/bnx2x/bnx2x_reg.h index 64bdda189e5a..bfd875b72906 100644 --- a/drivers/net/bnx2x/bnx2x_reg.h +++ b/drivers/net/bnx2x/bnx2x_reg.h | |||
@@ -1615,6 +1615,8 @@ | |||
1615 | #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_NO_VLAN (0x1<<4) | 1615 | #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_NO_VLAN (0x1<<4) |
1616 | #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_UNCST (0x1<<2) | 1616 | #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_UNCST (0x1<<2) |
1617 | #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_VLAN (0x1<<3) | 1617 | #define NIG_LLH0_BRB1_DRV_MASK_REG_LLH0_BRB1_DRV_MASK_VLAN (0x1<<3) |
1618 | #define NIG_LLH0_XCM_MASK_REG_LLH0_XCM_MASK_BCN (0x1<<0) | ||
1619 | #define NIG_LLH1_XCM_MASK_REG_LLH1_XCM_MASK_BCN (0x1<<0) | ||
1618 | #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_EMAC0_MISC_MI_INT (0x1<<0) | 1620 | #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_EMAC0_MISC_MI_INT (0x1<<0) |
1619 | #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_SERDES0_LINK_STATUS (0x1<<9) | 1621 | #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_SERDES0_LINK_STATUS (0x1<<9) |
1620 | #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_XGXS0_LINK10G (0x1<<15) | 1622 | #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_XGXS0_LINK10G (0x1<<15) |
@@ -1744,12 +1746,16 @@ | |||
1744 | ~ppp_enable.ppp_enable = 0 and pause_enable.pause_enable =0 for the same | 1746 | ~ppp_enable.ppp_enable = 0 and pause_enable.pause_enable =0 for the same |
1745 | port */ | 1747 | port */ |
1746 | #define NIG_REG_LLFC_ENABLE_0 0x16208 | 1748 | #define NIG_REG_LLFC_ENABLE_0 0x16208 |
1749 | #define NIG_REG_LLFC_ENABLE_1 0x1620c | ||
1747 | /* [RW 16] classes are high-priority for port0 */ | 1750 | /* [RW 16] classes are high-priority for port0 */ |
1748 | #define NIG_REG_LLFC_HIGH_PRIORITY_CLASSES_0 0x16058 | 1751 | #define NIG_REG_LLFC_HIGH_PRIORITY_CLASSES_0 0x16058 |
1752 | #define NIG_REG_LLFC_HIGH_PRIORITY_CLASSES_1 0x1605c | ||
1749 | /* [RW 16] classes are low-priority for port0 */ | 1753 | /* [RW 16] classes are low-priority for port0 */ |
1750 | #define NIG_REG_LLFC_LOW_PRIORITY_CLASSES_0 0x16060 | 1754 | #define NIG_REG_LLFC_LOW_PRIORITY_CLASSES_0 0x16060 |
1755 | #define NIG_REG_LLFC_LOW_PRIORITY_CLASSES_1 0x16064 | ||
1751 | /* [RW 1] Output enable of message to LLFC BMAC IF for port0 */ | 1756 | /* [RW 1] Output enable of message to LLFC BMAC IF for port0 */ |
1752 | #define NIG_REG_LLFC_OUT_EN_0 0x160c8 | 1757 | #define NIG_REG_LLFC_OUT_EN_0 0x160c8 |
1758 | #define NIG_REG_LLFC_OUT_EN_1 0x160cc | ||
1753 | #define NIG_REG_LLH0_ACPI_PAT_0_CRC 0x1015c | 1759 | #define NIG_REG_LLH0_ACPI_PAT_0_CRC 0x1015c |
1754 | #define NIG_REG_LLH0_ACPI_PAT_6_LEN 0x10154 | 1760 | #define NIG_REG_LLH0_ACPI_PAT_6_LEN 0x10154 |
1755 | #define NIG_REG_LLH0_BRB1_DRV_MASK 0x10244 | 1761 | #define NIG_REG_LLH0_BRB1_DRV_MASK 0x10244 |
@@ -1912,11 +1918,17 @@ | |||
1912 | ~safc_enable.safc_enable = 0 and ppp_enable.ppp_enable =0 for the same | 1918 | ~safc_enable.safc_enable = 0 and ppp_enable.ppp_enable =0 for the same |
1913 | port */ | 1919 | port */ |
1914 | #define NIG_REG_PAUSE_ENABLE_0 0x160c0 | 1920 | #define NIG_REG_PAUSE_ENABLE_0 0x160c0 |
1921 | #define NIG_REG_PAUSE_ENABLE_1 0x160c4 | ||
1915 | /* [RW 1] Input enable for RX PBF LP IF */ | 1922 | /* [RW 1] Input enable for RX PBF LP IF */ |
1916 | #define NIG_REG_PBF_LB_IN_EN 0x100b4 | 1923 | #define NIG_REG_PBF_LB_IN_EN 0x100b4 |
1917 | /* [RW 1] Value of this register will be transmitted to port swap when | 1924 | /* [RW 1] Value of this register will be transmitted to port swap when |
1918 | ~nig_registers_strap_override.strap_override =1 */ | 1925 | ~nig_registers_strap_override.strap_override =1 */ |
1919 | #define NIG_REG_PORT_SWAP 0x10394 | 1926 | #define NIG_REG_PORT_SWAP 0x10394 |
1927 | /* [RW 1] PPP enable for port0. This register may get 1 only when | ||
1928 | * ~safc_enable.safc_enable = 0 and pause_enable.pause_enable =0 for the | ||
1929 | * same port */ | ||
1930 | #define NIG_REG_PPP_ENABLE_0 0x160b0 | ||
1931 | #define NIG_REG_PPP_ENABLE_1 0x160b4 | ||
1920 | /* [RW 1] output enable for RX parser descriptor IF */ | 1932 | /* [RW 1] output enable for RX parser descriptor IF */ |
1921 | #define NIG_REG_PRS_EOP_OUT_EN 0x10104 | 1933 | #define NIG_REG_PRS_EOP_OUT_EN 0x10104 |
1922 | /* [RW 1] Input enable for RX parser request IF */ | 1934 | /* [RW 1] Input enable for RX parser request IF */ |
@@ -1983,6 +1995,14 @@ | |||
1983 | #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK10G (0x1<<15) | 1995 | #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK10G (0x1<<15) |
1984 | #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS (0xf<<18) | 1996 | #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS (0xf<<18) |
1985 | #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS_SIZE 18 | 1997 | #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS_SIZE 18 |
1998 | /* [RW 31] The upper bound of the weight of COS0 in the ETS command arbiter. */ | ||
1999 | #define PBF_REG_COS0_UPPER_BOUND 0x15c05c | ||
2000 | /* [RW 31] The weight of COS0 in the ETS command arbiter. */ | ||
2001 | #define PBF_REG_COS0_WEIGHT 0x15c054 | ||
2002 | /* [RW 31] The upper bound of the weight of COS1 in the ETS command arbiter. */ | ||
2003 | #define PBF_REG_COS1_UPPER_BOUND 0x15c060 | ||
2004 | /* [RW 31] The weight of COS1 in the ETS command arbiter. */ | ||
2005 | #define PBF_REG_COS1_WEIGHT 0x15c058 | ||
1986 | /* [RW 1] Disable processing further tasks from port 0 (after ending the | 2006 | /* [RW 1] Disable processing further tasks from port 0 (after ending the |
1987 | current task in process). */ | 2007 | current task in process). */ |
1988 | #define PBF_REG_DISABLE_NEW_TASK_PROC_P0 0x14005c | 2008 | #define PBF_REG_DISABLE_NEW_TASK_PROC_P0 0x14005c |
@@ -1993,9 +2013,16 @@ | |||
1993 | current task in process). */ | 2013 | current task in process). */ |
1994 | #define PBF_REG_DISABLE_NEW_TASK_PROC_P4 0x14006c | 2014 | #define PBF_REG_DISABLE_NEW_TASK_PROC_P4 0x14006c |
1995 | #define PBF_REG_DISABLE_PF 0x1402e8 | 2015 | #define PBF_REG_DISABLE_PF 0x1402e8 |
2016 | /* [RW 1] Indicates that ETS is performed between the COSes in the command | ||
2017 | * arbiter. If reset strict priority w/ anti-starvation will be performed | ||
2018 | * w/o WFQ. */ | ||
2019 | #define PBF_REG_ETS_ENABLED 0x15c050 | ||
1996 | /* [RW 6] Bit-map indicating which L2 hdrs may appear after the basic | 2020 | /* [RW 6] Bit-map indicating which L2 hdrs may appear after the basic |
1997 | * Ethernet header. */ | 2021 | * Ethernet header. */ |
1998 | #define PBF_REG_HDRS_AFTER_BASIC 0x15c0a8 | 2022 | #define PBF_REG_HDRS_AFTER_BASIC 0x15c0a8 |
2023 | /* [RW 1] Indicates which COS is conncted to the highest priority in the | ||
2024 | * command arbiter. */ | ||
2025 | #define PBF_REG_HIGH_PRIORITY_COS_NUM 0x15c04c | ||
1999 | #define PBF_REG_IF_ENABLE_REG 0x140044 | 2026 | #define PBF_REG_IF_ENABLE_REG 0x140044 |
2000 | /* [RW 1] Init bit. When set the initial credits are copied to the credit | 2027 | /* [RW 1] Init bit. When set the initial credits are copied to the credit |
2001 | registers (except the port credits). Should be set and then reset after | 2028 | registers (except the port credits). Should be set and then reset after |
@@ -2021,6 +2048,10 @@ | |||
2021 | #define PBF_REG_MAC_LB_ENABLE 0x140040 | 2048 | #define PBF_REG_MAC_LB_ENABLE 0x140040 |
2022 | /* [RW 6] Bit-map indicating which headers must appear in the packet */ | 2049 | /* [RW 6] Bit-map indicating which headers must appear in the packet */ |
2023 | #define PBF_REG_MUST_HAVE_HDRS 0x15c0c4 | 2050 | #define PBF_REG_MUST_HAVE_HDRS 0x15c0c4 |
2051 | /* [RW 16] The number of strict priority arbitration slots between 2 RR | ||
2052 | * arbitration slots. A value of 0 means no strict priority cycles; i.e. the | ||
2053 | * strict-priority w/ anti-starvation arbiter is a RR arbiter. */ | ||
2054 | #define PBF_REG_NUM_STRICT_ARB_SLOTS 0x15c064 | ||
2024 | /* [RW 10] Port 0 threshold used by arbiter in 16 byte lines used when pause | 2055 | /* [RW 10] Port 0 threshold used by arbiter in 16 byte lines used when pause |
2025 | not suppoterd. */ | 2056 | not suppoterd. */ |
2026 | #define PBF_REG_P0_ARB_THRSH 0x1400e4 | 2057 | #define PBF_REG_P0_ARB_THRSH 0x1400e4 |
@@ -4975,7 +5006,23 @@ | |||
4975 | #define EMAC_REG_EMAC_TX_MODE 0xbc | 5006 | #define EMAC_REG_EMAC_TX_MODE 0xbc |
4976 | #define EMAC_REG_EMAC_TX_STAT_AC 0x280 | 5007 | #define EMAC_REG_EMAC_TX_STAT_AC 0x280 |
4977 | #define EMAC_REG_EMAC_TX_STAT_AC_COUNT 22 | 5008 | #define EMAC_REG_EMAC_TX_STAT_AC_COUNT 22 |
5009 | #define EMAC_REG_RX_PFC_MODE 0x320 | ||
5010 | #define EMAC_REG_RX_PFC_MODE_PRIORITIES (1L<<2) | ||
5011 | #define EMAC_REG_RX_PFC_MODE_RX_EN (1L<<1) | ||
5012 | #define EMAC_REG_RX_PFC_MODE_TX_EN (1L<<0) | ||
5013 | #define EMAC_REG_RX_PFC_PARAM 0x324 | ||
5014 | #define EMAC_REG_RX_PFC_PARAM_OPCODE_BITSHIFT 0 | ||
5015 | #define EMAC_REG_RX_PFC_PARAM_PRIORITY_EN_BITSHIFT 16 | ||
5016 | #define EMAC_REG_RX_PFC_STATS_XOFF_RCVD 0x328 | ||
5017 | #define EMAC_REG_RX_PFC_STATS_XOFF_RCVD_COUNT (0xffff<<0) | ||
5018 | #define EMAC_REG_RX_PFC_STATS_XOFF_SENT 0x330 | ||
5019 | #define EMAC_REG_RX_PFC_STATS_XOFF_SENT_COUNT (0xffff<<0) | ||
5020 | #define EMAC_REG_RX_PFC_STATS_XON_RCVD 0x32c | ||
5021 | #define EMAC_REG_RX_PFC_STATS_XON_RCVD_COUNT (0xffff<<0) | ||
5022 | #define EMAC_REG_RX_PFC_STATS_XON_SENT 0x334 | ||
5023 | #define EMAC_REG_RX_PFC_STATS_XON_SENT_COUNT (0xffff<<0) | ||
4978 | #define EMAC_RX_MODE_FLOW_EN (1L<<2) | 5024 | #define EMAC_RX_MODE_FLOW_EN (1L<<2) |
5025 | #define EMAC_RX_MODE_KEEP_MAC_CONTROL (1L<<3) | ||
4979 | #define EMAC_RX_MODE_KEEP_VLAN_TAG (1L<<10) | 5026 | #define EMAC_RX_MODE_KEEP_VLAN_TAG (1L<<10) |
4980 | #define EMAC_RX_MODE_PROMISCUOUS (1L<<8) | 5027 | #define EMAC_RX_MODE_PROMISCUOUS (1L<<8) |
4981 | #define EMAC_RX_MODE_RESET (1L<<0) | 5028 | #define EMAC_RX_MODE_RESET (1L<<0) |