Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * Broadcom Starfighter 2 switch register defines
0004  *
0005  * Copyright (C) 2014, Broadcom Corporation
0006  */
0007 #ifndef __BCM_SF2_REGS_H
0008 #define __BCM_SF2_REGS_H
0009 
0010 /* Register set relative to 'REG' */
0011 
0012 enum bcm_sf2_reg_offs {
0013     REG_SWITCH_CNTRL = 0,
0014     REG_SWITCH_STATUS,
0015     REG_DIR_DATA_WRITE,
0016     REG_DIR_DATA_READ,
0017     REG_SWITCH_REVISION,
0018     REG_PHY_REVISION,
0019     REG_SPHY_CNTRL,
0020     REG_CROSSBAR,
0021     REG_RGMII_0_CNTRL,
0022     REG_RGMII_1_CNTRL,
0023     REG_RGMII_2_CNTRL,
0024     REG_RGMII_11_CNTRL,
0025     REG_LED_0_CNTRL,
0026     REG_LED_1_CNTRL,
0027     REG_LED_2_CNTRL,
0028     REG_LED_3_CNTRL,
0029     REG_LED_4_CNTRL,
0030     REG_LED_5_CNTRL,
0031     REG_LED_AGGREGATE_CTRL,
0032     REG_SWITCH_REG_MAX,
0033 };
0034 
0035 /* Relative to REG_SWITCH_CNTRL */
0036 #define  MDIO_MASTER_SEL        (1 << 0)
0037 
0038 /* Relative to REG_SWITCH_REVISION */
0039 #define  SF2_REV_MASK           0xffff
0040 #define  SWITCH_TOP_REV_SHIFT       16
0041 #define  SWITCH_TOP_REV_MASK        0xffff
0042 
0043 /* Relative to REG_PHY_REVISION */
0044 #define  PHY_REVISION_MASK      0xffff
0045 
0046 /* Relative to REG_SPHY_CNTRL */
0047 #define  IDDQ_BIAS          (1 << 0)
0048 #define  EXT_PWR_DOWN           (1 << 1)
0049 #define  FORCE_DLL_EN           (1 << 2)
0050 #define  IDDQ_GLOBAL_PWR        (1 << 3)
0051 #define  CK25_DIS           (1 << 4)
0052 #define  PHY_RESET          (1 << 5)
0053 #define  PHY_PHYAD_SHIFT        8
0054 #define  PHY_PHYAD_MASK         0x1F
0055 
0056 /* Relative to REG_CROSSBAR */
0057 #define CROSSBAR_BCM4908_INT_P7     0
0058 #define CROSSBAR_BCM4908_INT_RUNNER 1
0059 #define CROSSBAR_BCM4908_EXT_SERDES 0
0060 #define CROSSBAR_BCM4908_EXT_GPHY4  1
0061 #define CROSSBAR_BCM4908_EXT_RGMII  2
0062 
0063 /* Relative to REG_LED_*_CNTRL (BCM7278, BCM7445) */
0064 #define  LED_CNTRL_NO_LINK_ENCODE_SHIFT     0
0065 #define  LED_CNTRL_M10_ENCODE_SHIFT     2
0066 #define  LED_CNTRL_M100_ENCODE_SHIFT        4
0067 #define  LED_CNTRL_M1000_ENCODE_SHIFT       6
0068 #define  LED_CNTRL_SEL_NO_LINK_ENCODE_SHIFT 8
0069 #define  LED_CNTRL_SEL_10M_ENCODE_SHIFT     10
0070 #define  LED_CNTRL_SEL_100M_ENCODE_SHIFT    12
0071 #define  LED_CNTRL_SEL_1000M_ENCODE_SHIFT   14
0072 #define  LED_CNTRL_RX_DV_EN         (1 << 16)
0073 #define  LED_CNTRL_TX_EN_EN         (1 << 17)
0074 #define  LED_CNTRL_SPDLNK_LED0_ACT_SEL_SHIFT    18
0075 #define  LED_CNTRL_SPDLNK_LED1_ACT_SEL_SHIFT    20
0076 #define  LED_CNTRL_ACT_LED_ACT_SEL_SHIFT    22
0077 #define  LED_CNTRL_SPDLNK_SRC_SEL       (1 << 24)
0078 #define  LED_CNTRL_SPDLNK_LED0_ACT_POL_SEL  (1 << 25)
0079 #define  LED_CNTRL_SPDLNK_LED1_ACT_POL_SEL  (1 << 26)
0080 #define  LED_CNTRL_ACT_LED_POL_SEL      (1 << 27)
0081 #define  LED_CNTRL_MASK             0x3
0082 
0083 /* Register relative to REG_LED_*_CNTRL (BCM4908) */
0084 #define REG_LED_CTRL                0x0
0085 #define  LED_CTRL_RX_ACT_EN         0x00000001
0086 #define  LED_CTRL_TX_ACT_EN         0x00000002
0087 #define  LED_CTRL_SPDLNK_LED0_ACT_SEL       0x00000004
0088 #define  LED_CTRL_SPDLNK_LED1_ACT_SEL       0x00000008
0089 #define  LED_CTRL_SPDLNK_LED2_ACT_SEL       0x00000010
0090 #define  LED_CTRL_ACT_LED_ACT_SEL       0x00000020
0091 #define  LED_CTRL_SPDLNK_LED0_ACT_POL_SEL   0x00000040
0092 #define  LED_CTRL_SPDLNK_LED1_ACT_POL_SEL   0x00000080
0093 #define  LED_CTRL_SPDLNK_LED2_ACT_POL_SEL   0x00000100
0094 #define  LED_CTRL_ACT_LED_POL_SEL       0x00000200
0095 #define  LED_CTRL_LED_SPD_OVRD          0x00001c00
0096 #define  LED_CTRL_LNK_STATUS_OVRD       0x00002000
0097 #define  LED_CTRL_SPD_OVRD_EN           0x00004000
0098 #define  LED_CTRL_LNK_OVRD_EN           0x00008000
0099 
0100 /* Register relative to REG_LED_*_CNTRL (BCM4908) */
0101 #define REG_LED_LINK_SPEED_ENC_SEL      0x4
0102 #define  LED_LINK_SPEED_ENC_SEL_NO_LINK_SHIFT   0
0103 #define  LED_LINK_SPEED_ENC_SEL_10M_SHIFT   3
0104 #define  LED_LINK_SPEED_ENC_SEL_100M_SHIFT  6
0105 #define  LED_LINK_SPEED_ENC_SEL_1000M_SHIFT 9
0106 #define  LED_LINK_SPEED_ENC_SEL_2500M_SHIFT 12
0107 #define  LED_LINK_SPEED_ENC_SEL_10G_SHIFT   15
0108 #define  LED_LINK_SPEED_ENC_SEL_MASK        0x7
0109 
0110 /* Register relative to REG_LED_*_CNTRL (BCM4908) */
0111 #define REG_LED_LINK_SPEED_ENC          0x8
0112 #define  LED_LINK_SPEED_ENC_NO_LINK_SHIFT   0
0113 #define  LED_LINK_SPEED_ENC_M10_SHIFT       3
0114 #define  LED_LINK_SPEED_ENC_M100_SHIFT      6
0115 #define  LED_LINK_SPEED_ENC_M1000_SHIFT     9
0116 #define  LED_LINK_SPEED_ENC_M2500_SHIFT     12
0117 #define  LED_LINK_SPEED_ENC_M10G_SHIFT      15
0118 #define  LED_LINK_SPEED_ENC_MASK        0x7
0119 
0120 /* Relative to REG_RGMII_CNTRL */
0121 #define  RGMII_MODE_EN          (1 << 0)
0122 #define  ID_MODE_DIS            (1 << 1)
0123 #define  PORT_MODE_SHIFT        2
0124 #define  INT_EPHY           (0 << PORT_MODE_SHIFT)
0125 #define  INT_GPHY           (1 << PORT_MODE_SHIFT)
0126 #define  EXT_EPHY           (2 << PORT_MODE_SHIFT)
0127 #define  EXT_GPHY           (3 << PORT_MODE_SHIFT)
0128 #define  EXT_REVMII         (4 << PORT_MODE_SHIFT)
0129 #define  PORT_MODE_MASK         0x7
0130 #define  RVMII_REF_SEL          (1 << 5)
0131 #define  RX_PAUSE_EN            (1 << 6)
0132 #define  TX_PAUSE_EN            (1 << 7)
0133 #define  TX_CLK_STOP_EN         (1 << 8)
0134 #define  LPI_COUNT_SHIFT        9
0135 #define  LPI_COUNT_MASK         0x3F
0136 
0137 /* Register set relative to 'INTRL2_0' and 'INTRL2_1' */
0138 #define INTRL2_CPU_STATUS       0x00
0139 #define INTRL2_CPU_SET          0x04
0140 #define INTRL2_CPU_CLEAR        0x08
0141 #define INTRL2_CPU_MASK_STATUS      0x0c
0142 #define INTRL2_CPU_MASK_SET     0x10
0143 #define INTRL2_CPU_MASK_CLEAR       0x14
0144 
0145 /* Shared INTRL2_0 and INTRL2_ interrupt sources macros */
0146 #define P_LINK_UP_IRQ(x)        (1 << (0 + (x)))
0147 #define P_LINK_DOWN_IRQ(x)      (1 << (1 + (x)))
0148 #define P_ENERGY_ON_IRQ(x)      (1 << (2 + (x)))
0149 #define P_ENERGY_OFF_IRQ(x)     (1 << (3 + (x)))
0150 #define P_GPHY_IRQ(x)           (1 << (4 + (x)))
0151 #define P_NUM_IRQ           5
0152 #define P_IRQ_MASK(x)           (P_LINK_UP_IRQ((x)) | \
0153                      P_LINK_DOWN_IRQ((x)) | \
0154                      P_ENERGY_ON_IRQ((x)) | \
0155                      P_ENERGY_OFF_IRQ((x)) | \
0156                      P_GPHY_IRQ((x)))
0157 
0158 /* INTRL2_0 interrupt sources */
0159 #define P0_IRQ_OFF          0
0160 #define MEM_DOUBLE_IRQ          (1 << 5)
0161 #define EEE_LPI_IRQ         (1 << 6)
0162 #define P5_CPU_WAKE_IRQ         (1 << 7)
0163 #define P8_CPU_WAKE_IRQ         (1 << 8)
0164 #define P7_CPU_WAKE_IRQ         (1 << 9)
0165 #define IEEE1588_IRQ            (1 << 10)
0166 #define MDIO_ERR_IRQ            (1 << 11)
0167 #define MDIO_DONE_IRQ           (1 << 12)
0168 #define GISB_ERR_IRQ            (1 << 13)
0169 #define UBUS_ERR_IRQ            (1 << 14)
0170 #define FAILOVER_ON_IRQ         (1 << 15)
0171 #define FAILOVER_OFF_IRQ        (1 << 16)
0172 #define TCAM_SOFT_ERR_IRQ       (1 << 17)
0173 
0174 /* INTRL2_1 interrupt sources */
0175 #define P7_IRQ_OFF          0
0176 #define P_IRQ_OFF(x)            ((6 - (x)) * P_NUM_IRQ)
0177 
0178 /* Register set relative to 'ACB' */
0179 #define ACB_CONTROL         0x00
0180 #define  ACB_EN             (1 << 0)
0181 #define  ACB_ALGORITHM          (1 << 1)
0182 #define  ACB_FLUSH_SHIFT        2
0183 #define  ACB_FLUSH_MASK         0x3
0184 
0185 #define ACB_QUEUE_0_CFG         0x08
0186 #define  XOFF_THRESHOLD_MASK        0x7ff
0187 #define  XON_EN             (1 << 11)
0188 #define  TOTAL_XOFF_THRESHOLD_SHIFT 12
0189 #define  TOTAL_XOFF_THRESHOLD_MASK  0x7ff
0190 #define  TOTAL_XOFF_EN          (1 << 23)
0191 #define  TOTAL_XON_EN           (1 << 24)
0192 #define  PKTLEN_SHIFT           25
0193 #define  PKTLEN_MASK            0x3f
0194 #define ACB_QUEUE_CFG(x)        (ACB_QUEUE_0_CFG + ((x) * 0x4))
0195 
0196 /* Register set relative to 'CORE' */
0197 #define CORE_G_PCTL_PORT0       0x00000
0198 #define CORE_G_PCTL_PORT(x)     (CORE_G_PCTL_PORT0 + (x * 0x4))
0199 #define CORE_IMP_CTL            0x00020
0200 #define  RX_DIS             (1 << 0)
0201 #define  TX_DIS             (1 << 1)
0202 #define  RX_BCST_EN         (1 << 2)
0203 #define  RX_MCST_EN         (1 << 3)
0204 #define  RX_UCST_EN         (1 << 4)
0205 
0206 #define CORE_SWMODE         0x0002c
0207 #define  SW_FWDG_MODE           (1 << 0)
0208 #define  SW_FWDG_EN         (1 << 1)
0209 #define  RTRY_LMT_DIS           (1 << 2)
0210 
0211 #define CORE_STS_OVERRIDE_IMP       0x00038
0212 #define  GMII_SPEED_UP_2G       (1 << 6)
0213 #define  MII_SW_OR          (1 << 7)
0214 
0215 /* Alternate layout for e.g: 7278 */
0216 #define CORE_STS_OVERRIDE_IMP2      0x39040
0217 
0218 #define CORE_NEW_CTRL           0x00084
0219 #define  IP_MC              (1 << 0)
0220 #define  OUTRANGEERR_DISCARD        (1 << 1)
0221 #define  INRANGEERR_DISCARD     (1 << 2)
0222 #define  CABLE_DIAG_LEN         (1 << 3)
0223 #define  OVERRIDE_AUTO_PD_WAR       (1 << 4)
0224 #define  EN_AUTO_PD_WAR         (1 << 5)
0225 #define  UC_FWD_EN          (1 << 6)
0226 #define  MC_FWD_EN          (1 << 7)
0227 
0228 #define CORE_SWITCH_CTRL        0x00088
0229 #define  MII_DUMB_FWDG_EN       (1 << 6)
0230 
0231 #define CORE_DIS_LEARN          0x000f0
0232 
0233 #define CORE_SFT_LRN_CTRL       0x000f8
0234 #define  SW_LEARN_CNTL(x)       (1 << (x))
0235 
0236 #define CORE_STS_OVERRIDE_GMIIP_PORT(x) (0x160 + (x) * 4)
0237 #define CORE_STS_OVERRIDE_GMIIP2_PORT(x) (0x39000 + (x) * 8)
0238 #define  LINK_STS           (1 << 0)
0239 #define  DUPLX_MODE         (1 << 1)
0240 #define  SPEED_SHIFT            2
0241 #define  SPEED_MASK         0x3
0242 #define  RXFLOW_CNTL            (1 << 4)
0243 #define  TXFLOW_CNTL            (1 << 5)
0244 #define  SW_OVERRIDE            (1 << 6)
0245 
0246 #define CORE_WATCHDOG_CTRL      0x001e4
0247 #define  SOFTWARE_RESET         (1 << 7)
0248 #define  EN_CHIP_RST            (1 << 6)
0249 #define  EN_SW_RESET            (1 << 4)
0250 
0251 #define CORE_FAST_AGE_CTRL      0x00220
0252 #define  EN_FAST_AGE_STATIC     (1 << 0)
0253 #define  EN_AGE_DYNAMIC         (1 << 1)
0254 #define  EN_AGE_PORT            (1 << 2)
0255 #define  EN_AGE_VLAN            (1 << 3)
0256 #define  EN_AGE_SPT         (1 << 4)
0257 #define  EN_AGE_MCAST           (1 << 5)
0258 #define  FAST_AGE_STR_DONE      (1 << 7)
0259 
0260 #define CORE_FAST_AGE_PORT      0x00224
0261 #define  AGE_PORT_MASK          0xf
0262 
0263 #define CORE_FAST_AGE_VID       0x00228
0264 #define  AGE_VID_MASK           0x3fff
0265 
0266 #define CORE_LNKSTS         0x00400
0267 #define  LNK_STS_MASK           0x1ff
0268 
0269 #define CORE_SPDSTS         0x00410
0270 #define  SPDSTS_10          0
0271 #define  SPDSTS_100         1
0272 #define  SPDSTS_1000            2
0273 #define  SPDSTS_SHIFT           2
0274 #define  SPDSTS_MASK            0x3
0275 
0276 #define CORE_DUPSTS         0x00420
0277 #define  CORE_DUPSTS_MASK       0x1ff
0278 
0279 #define CORE_PAUSESTS           0x00428
0280 #define  PAUSESTS_TX_PAUSE_SHIFT    9
0281 
0282 #define CORE_GMNCFGCFG          0x0800
0283 #define  RST_MIB_CNT            (1 << 0)
0284 #define  RXBPDU_EN          (1 << 1)
0285 
0286 #define CORE_IMP0_PRT_ID        0x0804
0287 
0288 #define CORE_RST_MIB_CNT_EN     0x0950
0289 
0290 #define CORE_ARLA_VTBL_RWCTRL       0x1600
0291 #define  ARLA_VTBL_CMD_WRITE        0
0292 #define  ARLA_VTBL_CMD_READ     1
0293 #define  ARLA_VTBL_CMD_CLEAR        2
0294 #define  ARLA_VTBL_STDN         (1 << 7)
0295 
0296 #define CORE_ARLA_VTBL_ADDR     0x1604
0297 #define  VTBL_ADDR_INDEX_MASK       0xfff
0298 
0299 #define CORE_ARLA_VTBL_ENTRY        0x160c
0300 #define  FWD_MAP_MASK           0x1ff
0301 #define  UNTAG_MAP_MASK         0x1ff
0302 #define  UNTAG_MAP_SHIFT        9
0303 #define  MSTP_INDEX_MASK        0x7
0304 #define  MSTP_INDEX_SHIFT       18
0305 #define  FWD_MODE           (1 << 21)
0306 
0307 #define CORE_MEM_PSM_VDD_CTRL       0x2380
0308 #define  P_TXQ_PSM_VDD_SHIFT        2
0309 #define  P_TXQ_PSM_VDD_MASK     0x3
0310 #define  P_TXQ_PSM_VDD(x)       (P_TXQ_PSM_VDD_MASK << \
0311                     ((x) * P_TXQ_PSM_VDD_SHIFT))
0312 
0313 #define CORE_PORT_TC2_QOS_MAP_PORT(x)   (0xc1c0 + ((x) * 0x10))
0314 #define  PRT_TO_QID_MASK        0x3
0315 #define  PRT_TO_QID_SHIFT       3
0316 
0317 #define CORE_PORT_VLAN_CTL_PORT(x)  (0xc400 + ((x) * 0x8))
0318 #define  PORT_VLAN_CTRL_MASK        0x1ff
0319 
0320 #define CORE_TXQ_THD_PAUSE_QN_PORT_0    0x2c80
0321 #define  TXQ_PAUSE_THD_MASK     0x7ff
0322 #define CORE_TXQ_THD_PAUSE_QN_PORT(x)   (CORE_TXQ_THD_PAUSE_QN_PORT_0 + \
0323                     (x) * 0x8)
0324 
0325 #define CORE_DEFAULT_1Q_TAG_P(x)    (0xd040 + ((x) * 8))
0326 #define  CFI_SHIFT          12
0327 #define  PRI_SHIFT          13
0328 #define  PRI_MASK           0x7
0329 
0330 #define CORE_JOIN_ALL_VLAN_EN       0xd140
0331 
0332 #define CORE_CFP_ACC            0x28000
0333 #define  OP_STR_DONE            (1 << 0)
0334 #define  OP_SEL_SHIFT           1
0335 #define  OP_SEL_READ            (1 << OP_SEL_SHIFT)
0336 #define  OP_SEL_WRITE           (2 << OP_SEL_SHIFT)
0337 #define  OP_SEL_SEARCH          (4 << OP_SEL_SHIFT)
0338 #define  OP_SEL_MASK            (7 << OP_SEL_SHIFT)
0339 #define  CFP_RAM_CLEAR          (1 << 4)
0340 #define  RAM_SEL_SHIFT          10
0341 #define  TCAM_SEL           (1 << RAM_SEL_SHIFT)
0342 #define  ACT_POL_RAM            (2 << RAM_SEL_SHIFT)
0343 #define  RATE_METER_RAM         (4 << RAM_SEL_SHIFT)
0344 #define  GREEN_STAT_RAM         (8 << RAM_SEL_SHIFT)
0345 #define  YELLOW_STAT_RAM        (16 << RAM_SEL_SHIFT)
0346 #define  RED_STAT_RAM           (24 << RAM_SEL_SHIFT)
0347 #define  RAM_SEL_MASK           (0x1f << RAM_SEL_SHIFT)
0348 #define  TCAM_RESET         (1 << 15)
0349 #define  XCESS_ADDR_SHIFT       16
0350 #define  XCESS_ADDR_MASK        0xff
0351 #define  SEARCH_STS         (1 << 27)
0352 #define  RD_STS_SHIFT           28
0353 #define  RD_STS_TCAM            (1 << RD_STS_SHIFT)
0354 #define  RD_STS_ACT_POL_RAM     (2 << RD_STS_SHIFT)
0355 #define  RD_STS_RATE_METER_RAM      (4 << RD_STS_SHIFT)
0356 #define  RD_STS_STAT_RAM        (8 << RD_STS_SHIFT)
0357 
0358 #define CORE_CFP_RATE_METER_GLOBAL_CTL  0x28010
0359 
0360 #define CORE_CFP_DATA_PORT_0        0x28040
0361 #define CORE_CFP_DATA_PORT(x)       (CORE_CFP_DATA_PORT_0 + \
0362                     (x) * 0x10)
0363 
0364 /* UDF_DATA7 */
0365 #define L3_FRAMING_SHIFT        24
0366 #define L3_FRAMING_MASK         (0x3 << L3_FRAMING_SHIFT)
0367 #define IPTOS_SHIFT         16
0368 #define IPTOS_MASK          0xff
0369 #define IPPROTO_SHIFT           8
0370 #define IPPROTO_MASK            (0xff << IPPROTO_SHIFT)
0371 #define IP_FRAG_SHIFT           7
0372 #define IP_FRAG             (1 << IP_FRAG_SHIFT)
0373 
0374 /* UDF_DATA0 */
0375 #define  SLICE_VALID            3
0376 #define  SLICE_NUM_SHIFT        2
0377 #define  SLICE_NUM(x)           ((x) << SLICE_NUM_SHIFT)
0378 #define  SLICE_NUM_MASK         0x3
0379 
0380 #define CORE_CFP_MASK_PORT_0        0x280c0
0381 
0382 #define CORE_CFP_MASK_PORT(x)       (CORE_CFP_MASK_PORT_0 + \
0383                     (x) * 0x10)
0384 
0385 #define CORE_ACT_POL_DATA0      0x28140
0386 #define  VLAN_BYP           (1 << 0)
0387 #define  EAP_BYP            (1 << 1)
0388 #define  STP_BYP            (1 << 2)
0389 #define  REASON_CODE_SHIFT      3
0390 #define  REASON_CODE_MASK       0x3f
0391 #define  LOOP_BK_EN         (1 << 9)
0392 #define  NEW_TC_SHIFT           10
0393 #define  NEW_TC_MASK            0x7
0394 #define  CHANGE_TC          (1 << 13)
0395 #define  DST_MAP_IB_SHIFT       14
0396 #define  DST_MAP_IB_MASK        0x1ff
0397 #define  CHANGE_FWRD_MAP_IB_SHIFT   24
0398 #define  CHANGE_FWRD_MAP_IB_MASK    0x3
0399 #define  CHANGE_FWRD_MAP_IB_NO_DEST (0 << CHANGE_FWRD_MAP_IB_SHIFT)
0400 #define  CHANGE_FWRD_MAP_IB_REM_ARL (1 << CHANGE_FWRD_MAP_IB_SHIFT)
0401 #define  CHANGE_FWRD_MAP_IB_REP_ARL (2 << CHANGE_FWRD_MAP_IB_SHIFT)
0402 #define  CHANGE_FWRD_MAP_IB_ADD_DST (3 << CHANGE_FWRD_MAP_IB_SHIFT)
0403 #define  NEW_DSCP_IB_SHIFT      26
0404 #define  NEW_DSCP_IB_MASK       0x3f
0405 
0406 #define CORE_ACT_POL_DATA1      0x28150
0407 #define  CHANGE_DSCP_IB         (1 << 0)
0408 #define  DST_MAP_OB_SHIFT       1
0409 #define  DST_MAP_OB_MASK        0x3ff
0410 #define  CHANGE_FWRD_MAP_OB_SHIT    11
0411 #define  CHANGE_FWRD_MAP_OB_MASK    0x3
0412 #define  NEW_DSCP_OB_SHIFT      13
0413 #define  NEW_DSCP_OB_MASK       0x3f
0414 #define  CHANGE_DSCP_OB         (1 << 19)
0415 #define  CHAIN_ID_SHIFT         20
0416 #define  CHAIN_ID_MASK          0xff
0417 #define  CHANGE_COLOR           (1 << 28)
0418 #define  NEW_COLOR_SHIFT        29
0419 #define  NEW_COLOR_MASK         0x3
0420 #define  NEW_COLOR_GREEN        (0 << NEW_COLOR_SHIFT)
0421 #define  NEW_COLOR_YELLOW       (1 << NEW_COLOR_SHIFT)
0422 #define  NEW_COLOR_RED          (2 << NEW_COLOR_SHIFT)
0423 #define  RED_DEFAULT            (1 << 31)
0424 
0425 #define CORE_ACT_POL_DATA2      0x28160
0426 #define  MAC_LIMIT_BYPASS       (1 << 0)
0427 #define  CHANGE_TC_O            (1 << 1)
0428 #define  NEW_TC_O_SHIFT         2
0429 #define  NEW_TC_O_MASK          0x7
0430 #define  SPCP_RMK_DISABLE       (1 << 5)
0431 #define  CPCP_RMK_DISABLE       (1 << 6)
0432 #define  DEI_RMK_DISABLE        (1 << 7)
0433 
0434 #define CORE_RATE_METER0        0x28180
0435 #define  COLOR_MODE         (1 << 0)
0436 #define  POLICER_ACTION         (1 << 1)
0437 #define  COUPLING_FLAG          (1 << 2)
0438 #define  POLICER_MODE_SHIFT     3
0439 #define  POLICER_MODE_MASK      0x3
0440 #define  POLICER_MODE_RFC2698       (0 << POLICER_MODE_SHIFT)
0441 #define  POLICER_MODE_RFC4115       (1 << POLICER_MODE_SHIFT)
0442 #define  POLICER_MODE_MEF       (2 << POLICER_MODE_SHIFT)
0443 #define  POLICER_MODE_DISABLE       (3 << POLICER_MODE_SHIFT)
0444 
0445 #define CORE_RATE_METER1        0x28190
0446 #define  EIR_TK_BKT_MASK        0x7fffff
0447 
0448 #define CORE_RATE_METER2        0x281a0
0449 #define  EIR_BKT_SIZE_MASK      0xfffff
0450 
0451 #define CORE_RATE_METER3        0x281b0
0452 #define  EIR_REF_CNT_MASK       0x7ffff
0453 
0454 #define CORE_RATE_METER4        0x281c0
0455 #define  CIR_TK_BKT_MASK        0x7fffff
0456 
0457 #define CORE_RATE_METER5        0x281d0
0458 #define  CIR_BKT_SIZE_MASK      0xfffff
0459 
0460 #define CORE_RATE_METER6        0x281e0
0461 #define  CIR_REF_CNT_MASK       0x7ffff
0462 
0463 #define CORE_STAT_GREEN_CNTR        0x28200
0464 #define CORE_STAT_YELLOW_CNTR       0x28210
0465 #define CORE_STAT_RED_CNTR      0x28220
0466 
0467 #define CORE_CFP_CTL_REG        0x28400
0468 #define  CFP_EN_MAP_MASK        0x1ff
0469 
0470 /* IPv4 slices, 3 of them */
0471 #define CORE_UDF_0_A_0_8_PORT_0     0x28440
0472 #define  CFG_UDF_OFFSET_MASK        0x1f
0473 #define  CFG_UDF_OFFSET_BASE_SHIFT  5
0474 #define  CFG_UDF_SOF            (0 << CFG_UDF_OFFSET_BASE_SHIFT)
0475 #define  CFG_UDF_EOL2           (2 << CFG_UDF_OFFSET_BASE_SHIFT)
0476 #define  CFG_UDF_EOL3           (3 << CFG_UDF_OFFSET_BASE_SHIFT)
0477 
0478 /* IPv6 slices */
0479 #define CORE_UDF_0_B_0_8_PORT_0     0x28500
0480 
0481 /* IPv6 chained slices */
0482 #define CORE_UDF_0_D_0_11_PORT_0    0x28680
0483 
0484 /* Number of slices for IPv4, IPv6 and non-IP */
0485 #define UDF_NUM_SLICES          4
0486 #define UDFS_PER_SLICE          9
0487 
0488 /* Spacing between different slices */
0489 #define UDF_SLICE_OFFSET        0x40
0490 
0491 #define CFP_NUM_RULES           256
0492 
0493 /* Number of egress queues per port */
0494 #define SF2_NUM_EGRESS_QUEUES       8
0495 
0496 #endif /* __BCM_SF2_REGS_H */