2typedef uint16_t beuint16_t;
3typedef uint32_t beuint32_t;
5#define KSZ98XX_MAX_PORTS 8
7struct global_control_t {
12 uint8_t RESERVED0[0x02];
14 uint8_t RESERVED1[0x08];
15 uint8_t GLOBAL_OPTIONS;
16 beuint32_t GLOBAL_INT_STATUS;
17 beuint32_t GLOBAL_INT_MASK;
18 beuint32_t PORT_INT_STATUS;
19 beuint32_t PORT_INT_MASK;
20 beuint32_t PHY_INT_STATUS;
21 beuint32_t PHY_INT_MASK;
22 uint8_t RESERVED2[0xD8];
24} __attribute__((packed));
26struct global_io_control_t {
27 uint8_t SERIAL_IO_CTRL;
28 uint8_t RESERVED0[0x02];
29 uint8_t OUTPUT_CLOCK_CTRL;
31 beuint32_t APB_TIMEOUT;
33 uint8_t IO_DRIVE_STRENGTH;
34 uint8_t RESERVED1[0x02];
35 beuint32_t IBA_STATUS;
36 beuint32_t IBA_STATES;
37 beuint32_t IBA_RESULT;
38 uint8_t RESERVED2[0x04];
39 beuint32_t LED_OVERRIDE;
40 beuint32_t LED_OUTPUT;
41 uint8_t RESERVED3[0xD8];
43} __attribute__((packed));
45struct global_phy_control_t {
46 uint8_t RESERVED0[0x01];
47 uint8_t POWER_MANAGEMENT_CTRL;
48 uint8_t RESERVED1[0x0E];
50 uint8_t RESERVED2[0xEC];
52} __attribute__((packed));
54struct global_switch_control_t {
56 uint8_t RESERVED0[0x01];
57 uint8_t SW_MAC_ADDR_0;
58 uint8_t SW_MAC_ADDR_1;
59 uint8_t SW_MAC_ADDR_2;
60 uint8_t SW_MAC_ADDR_3;
61 uint8_t SW_MAC_ADDR_4;
62 uint8_t SW_MAC_ADDR_5;
64 beuint16_t SW_ISP_TPID;
65 beuint16_t SW_HSR_TPID;
66 beuint16_t SW_AVB_STRATEGY;
67 beuint32_t SW_LUE_CTRL;
68 uint8_t SW_LUE_INT_STATUS;
69 uint8_t SW_LUE_INT_MASK;
70 beuint16_t SW_LUE_INDEX_WRITE;
71 beuint16_t SW_LUE_INDEX_LEARN;
72 beuint16_t SW_LUE_INDEX_CPU;
73 uint8_t RESERVED1[0x04];
74 beuint32_t SW_UNK_UCAST_CTRL;
75 beuint32_t SW_UNK_MCAST_CTRL;
76 beuint32_t SW_UNK_VID_CTRL;
77 uint8_t RESERVED2[0x04];
78 beuint32_t SW_MAC_CTRL;
79 beuint32_t SW_MAC_CTRL2;
80 beuint32_t SW_MAC_802_1P_MAP;
81 uint8_t RESERVED3[0x02];
82 uint8_t SW_MAC_TOS_CTRL;
83 uint8_t RESERVED4[0x01];
84 uint8_t SW_MAC_TOS_PRIO_0;
85 uint8_t SW_MAC_TOS_PRIO_1;
86 uint8_t SW_MAC_TOS_PRIO_2;
87 uint8_t SW_MAC_TOS_PRIO_3;
88 uint8_t SW_MAC_TOS_PRIO_4;
89 uint8_t SW_MAC_TOS_PRIO_5;
90 uint8_t SW_MAC_TOS_PRIO_6;
91 uint8_t SW_MAC_TOS_PRIO_7;
92 uint8_t SW_MAC_TOS_PRIO_8;
93 uint8_t SW_MAC_TOS_PRIO_9;
94 uint8_t SW_MAC_TOS_PRIO_10;
95 uint8_t SW_MAC_TOS_PRIO_11;
96 uint8_t SW_MAC_TOS_PRIO_12;
97 uint8_t SW_MAC_TOS_PRIO_13;
98 uint8_t SW_MAC_TOS_PRIO_14;
99 uint8_t SW_MAC_TOS_PRIO_15;
100 uint8_t SW_MAC_TOS_PRIO_16;
101 uint8_t SW_MAC_TOS_PRIO_17;
102 uint8_t SW_MAC_TOS_PRIO_18;
103 uint8_t SW_MAC_TOS_PRIO_19;
104 uint8_t SW_MAC_TOS_PRIO_20;
105 uint8_t SW_MAC_TOS_PRIO_21;
106 uint8_t SW_MAC_TOS_PRIO_22;
107 uint8_t SW_MAC_TOS_PRIO_23;
108 uint8_t SW_MAC_TOS_PRIO_24;
109 uint8_t SW_MAC_TOS_PRIO_25;
110 uint8_t SW_MAC_TOS_PRIO_26;
111 uint8_t SW_MAC_TOS_PRIO_27;
112 uint8_t SW_MAC_TOS_PRIO_28;
113 uint8_t SW_MAC_TOS_PRIO_29;
114 uint8_t SW_MAC_TOS_PRIO_30;
115 uint8_t SW_MAC_TOS_PRIO_31;
116 uint8_t RESERVED5[0x10];
118 uint8_t RESERVED6[0x07];
119 uint8_t SW_WRED_DSCP_COLOR;
120 uint8_t RESERVED7[0x17];
121 beuint32_t SW_QM_CTRL;
122 uint8_t RESERVED8[0x2E];
123 beuint16_t SW_EEE_TXQ_WAIT_TIME;
124 uint8_t RESERVED9[0x3C];
126} __attribute__((packed));
128struct global_lue_control_t {
129 beuint32_t VLAN_ENTRY;
130 beuint32_t VLAN_UNTAG;
131 beuint32_t VLAN_FORWARD;
132 beuint16_t VLAN_INDEX;
134 uint8_t RESERVED0[0x01];
135 beuint32_t ALU_INDEX;
136 beuint32_t ALU_INDEX2;
138 beuint32_t ALU_STAT_CTRL;
139 beuint32_t ALU_VAL_A;
140 beuint32_t ALU_VAL_B;
141 beuint32_t ALU_VAL_C;
142 beuint32_t ALU_VAL_D;
143 uint8_t RESERVED1[0xD0];
145} __attribute__((packed));
147struct global_ptp_control_t {
148 beuint16_t PTP_CLK_CTRL;
149 beuint16_t PTP_RTC_PHASE;
150 beuint32_t PTP_RTC_NANO;
151 beuint32_t PTP_RTC_SEC;
152 beuint32_t PTP_RTC_SUBNANO;
153 beuint32_t PTP_RTC_TMP_ADJ;
154 beuint32_t PTP_MSG_CONFIG;
155 beuint16_t PTP_DOMAIN_VERSION;
156 uint8_t RESERVED0[0x06];
157 beuint32_t PTP_UNIT_INDEX;
158 beuint32_t PTP_TRIG_STATUS;
159 beuint32_t PTP_INT_STATUS;
160 beuint32_t PTP_TS_CTRL;
161 beuint32_t PTP_TRIG_TARGET_NANO;
162 beuint32_t PTP_TRIG_TARGET_SEC;
163 beuint32_t PTP_TRIG_CTRL;
164 beuint32_t PTP_TRIG_CYC_WIDTH;
165 beuint32_t PTP_TRIG_CYC_CNT;
166 beuint32_t PTP_TRIG_ITER_TIME;
167 beuint32_t PTP_TRIG_PULSE;
168 uint8_t RESERVED1[0x04];
169 beuint32_t PTP_TS_STAT_CTRL;
170 beuint32_t PTP_TS_EVT_0_NANO;
171 beuint32_t PTP_TS_EVT_0_SEC;
172 beuint32_t PTP_TS_EVT_0_PHASE;
173 beuint32_t PTP_TS_EVT_1_NANO;
174 beuint32_t PTP_TS_EVT_1_SEC;
175 beuint32_t PTP_TS_EVT_1_PHASE;
176 beuint32_t PTP_TS_EVT_2_NANO;
177 beuint32_t PTP_TS_EVT_2_SEC;
178 beuint32_t PTP_TS_EVT_2_PHASE;
179 beuint32_t PTP_TS_EVT_3_NANO;
180 beuint32_t PTP_TS_EVT_3_SEC;
181 beuint32_t PTP_TS_EVT_3_PHASE;
182 beuint32_t PTP_TS_EVT_4_NANO;
183 beuint32_t PTP_TS_EVT_4_SEC;
184 beuint32_t PTP_TS_EVT_4_PHASE;
185 beuint32_t PTP_TS_EVT_5_NANO;
186 beuint32_t PTP_TS_EVT_5_SEC;
187 beuint32_t PTP_TS_EVT_5_PHASE;
188 beuint32_t PTP_TS_EVT_6_NANO;
189 beuint32_t PTP_TS_EVT_6_SEC;
190 beuint32_t PTP_TS_EVT_6_PHASE;
191 beuint32_t PTP_TS_EVT_7_NANO;
192 beuint32_t PTP_TS_EVT_7_SEC;
193 beuint32_t PTP_TS_EVT_7_PHASE;
194 uint8_t RESERVED2[0x4C];
196} __attribute__((packed));
198struct port_control_t {
199 beuint16_t PORT_DEFAULT_VID;
200 beuint16_t PORT_CUSTOM_VID;
201 beuint16_t PORT_AVB_SR_1_VID;
202 beuint16_t PORT_AVB_SR_2_VID;
203 beuint16_t PORT_AVB_SR_1_TYPE;
204 beuint16_t PORT_AVB_SR_2_TYPE;
205 uint8_t RESERVED0[0x07];
206 uint8_t PORT_WOL_STATUS;
207 uint8_t RESERVED1[0x03];
208 uint8_t PORT_WOL_MASK;
209 uint8_t RESERVED2[0x03];
210 uint8_t PORT_INT_STATUS;
211 uint8_t RESERVED3[0x03];
212 uint8_t PORT_INT_MASK;
213 beuint32_t PORT_CTRL;
214 uint8_t RESERVED4[0x0C];
215 beuint32_t PORT_STATUS;
216 uint8_t RESERVED5[0xCC];
218} __attribute__((packed));
220struct port_phy_control_t {
221 beuint16_t PHY_BASIC_CTL;
222 beuint16_t PHY_BASIC_ST;
225 beuint16_t PHY_A_NEG_ADVERT;
226 beuint16_t PHY_A_NEG_LPA;
227 beuint16_t PHY_A_NEG_EXP;
228 beuint16_t PHY_A_NEG_NEXT_PG;
229 beuint16_t PHY_LP_NEXT_PG_ABIL;
232 uint8_t RESERVED0[0x04];
233 beuint16_t PHY_MMD_SETUP;
234 beuint16_t PHY_MMD_DATA;
235 beuint16_t PHY_EXT_STATUS;
236 uint8_t RESERVED1[0x02];
237 beuint16_t PHY_REMOTE_LOOPBACK;
238 beuint16_t PHY_LINK_MD;
239 beuint16_t PHY_PMA_STATUS;
240 uint8_t RESERVED2[0x02];
241 beuint16_t PHY_RXER_CNT;
242 uint8_t RESERVED3[0x0A];
244 beuint16_t PHY_AUTO_MDIX;
245 uint8_t RESERVED4[0x04];
246 beuint16_t PHY_CTL_2;
247 uint8_t RESERVED5[0xC0];
249} __attribute__((packed));
251struct port_mii_control_t {
252 beuint32_t PORT_XMII_CTRL;
253 uint8_t RESERVED0[0xFC];
255} __attribute__((packed));
257struct port_mac_control_t {
258 beuint32_t PORT_MAC_CTRL;
259 uint8_t RESERVED0[0x0C];
260 uint8_t PORT_IN_RATE_0;
261 uint8_t PORT_IN_RATE_1;
262 uint8_t PORT_IN_RATE_2;
263 uint8_t PORT_IN_RATE_3;
264 uint8_t PORT_IN_RATE_4;
265 uint8_t PORT_IN_RATE_5;
266 uint8_t PORT_IN_RATE_6;
267 uint8_t PORT_IN_RATE_7;
268 uint8_t RESERVED1[0x08];
269 uint8_t PORT_OUT_RATE_0;
270 uint8_t PORT_OUT_RATE_1;
271 uint8_t PORT_OUT_RATE_2;
272 uint8_t PORT_OUT_RATE_3;
273 uint8_t RESERVED2[0xDC];
275} __attribute__((packed));
277struct port_mib_control_t {
278 beuint32_t PORT_MIB_CTRL_STAT;
279 beuint32_t PORT_MIB_DATA;
280 uint8_t RESERVED0[0xF8];
282} __attribute__((packed));
284struct port_acl_control_t {
285 beuint32_t PORT_ACL_ACCESS;
286 beuint32_t PORT_ACL_ACCESS2;
287 beuint32_t PORT_ACL_ACCESS3;
288 beuint32_t PORT_ACL_ACCESS4;
289 beuint32_t PORT_ACL_EN_CTRL;
290 uint8_t RESERVED0[0xEC];
292} __attribute__((packed));
294struct port_sw_ingress_control_t {
295 uint8_t PORT_MIRROR_CTRL;
296 uint8_t PORT_PRIO_CTRL;
297 uint8_t PORT_IN_MAC_CTRL;
298 uint8_t PORT_AUTH_CTRL;
299 beuint32_t PORT_POINTER;
300 beuint32_t PORT_PRIO_QUEUE_MAP;
301 beuint32_t PORT_POLICE_CTRL;
302 uint8_t RESERVED0[0xF0];
304} __attribute__((packed));
306struct port_sw_egress_control_t {
307 beuint32_t PORT_TX_QUEUE_IDX;
308 beuint32_t PORT_TX_QUEUE_PVID;
309 uint8_t RESERVED0[0x0C];
310 beuint16_t PORT_TX_QUEUE_CTRL;
311 uint8_t RESERVED1[0xEA];
313} __attribute__((packed));
315struct port_sw_queue_management_control_t {
316 uint8_t RESERVED0[0x04];
317 beuint32_t PORT_VLAN_MEMBERS;
318 uint8_t RESERVED1[0xF8];
320} __attribute__((packed));
322struct port_sw_addr_lue_control_t {
323 uint8_t PORT_LUE_CTRL;
324 uint8_t PORT_MSTP_POINTER;
325 uint8_t RESERVED0[0x02];
326 uint8_t PORT_MSTP_STATE;
327 uint8_t RESERVED1[0xFB];
329} __attribute__((packed));
331struct global_regs_t {
332 global_control_t ctl;
333 global_io_control_t io;
334 global_phy_control_t phy;
335 global_switch_control_t sw;
336 global_lue_control_t lue;
337 global_ptp_control_t ptp;
338} __attribute__((packed));
342 port_phy_control_t phy;
343 uint8_t RESERVED0[0x100];
344 port_mii_control_t mii;
345 port_mac_control_t mac;
346 port_mib_control_t mib;
347 port_acl_control_t acl;
348 uint8_t RESERVED1[0x100];
349 port_sw_ingress_control_t in;
350 port_sw_egress_control_t out;
351 port_sw_queue_management_control_t qmanage;
352 port_sw_addr_lue_control_t lue;
353 uint8_t RESERVED2[0x400];
354} __attribute__((packed));
356struct ksz_98xx_regs_t {
358 uint8_t RESERVED0[0xA00];
359 port_regs_t p[KSZ98XX_MAX_PORTS];
360} __attribute__((packed));
389 SW_REV_Msk = ( 0xF << SW_REV_Pos),
396 PME_ENABLE_Msk = (0x1 << PME_ENABLE_Pos),
397 PME_ENABLE_ENABLED = (1 << PME_ENABLE_Pos),
398 PME_ENABLE_DISABLED = (0 << PME_ENABLE_Pos),
399 PME_POLARITY_Pos = 1,
400 PME_POLARITY_Msk = (0x1 << PME_POLARITY_Pos),
401 PME_POLARITY_HIGH = (1 << PME_POLARITY_Pos),
402 PME_POLARITY_LOW = (0 << PME_POLARITY_Pos),
405 inline uint32_t PME_ENABLE(uint32_t _x)
406 {
return ((_x) << PME_ENABLE_Pos); }
407 inline uint32_t PME_POLARITY(uint32_t _x)
408 {
return ((_x) << PME_POLARITY_Pos); }
411namespace GLOBAL_INT_STATUS {
414 LUE_INT_Msk = (0x1 << LUE_INT_Pos),
415 TRIG_TS_INT_Pos = 30,
416 TRIG_TS_INT_Msk = (0x1 << TRIG_TS_INT_Pos),
417 ABP_TIMEOUT_INT_Pos = 29,
418 ABP_TIMEOUT_INT_Msk = (0x1 << ABP_TIMEOUT_INT_Pos),
422namespace GLOBAL_INT_MASK {
425 LUE_INT_Msk = (0x1 << LUE_INT_Pos),
426 TRIG_TS_INT_Pos = 30,
427 TRIG_TS_INT_Msk = (0x1 << TRIG_TS_INT_Pos),
428 ABP_TIMEOUT_INT_Pos = 29,
429 ABP_TIMEOUT_INT_Msk = (0x1 << ABP_TIMEOUT_INT_Pos),
433namespace PORT_INT_STATUS {
437 inline uint32_t PORT(uint32_t _x)
438 {
return (0x1 << (_x)); }
441namespace PORT_INT_MASK {
445 inline uint32_t PORT(uint32_t _x)
446 {
return (0x1 << (_x)); }
449namespace PHY_INT_STATUS {
453 inline uint32_t PHY(uint32_t _x)
454 {
return (0x1 << (_x)); }
457namespace PHY_INT_MASK {
461 inline uint32_t PHY(uint32_t _x)
462 {
return (0x1 << (_x)); }
466namespace SERIAL_IO_CTRL {
468 SPI_CLOCK_OUT_RISING_EDGE_Pos = 0,
469 SPI_CLOCK_OUT_RISING_EDGE_Msk = (0x1 << SPI_CLOCK_OUT_RISING_EDGE_Pos),
470 SPI_CLOCK_OUT_RISING_EDGE_TRUE = (0x1 << SPI_CLOCK_OUT_RISING_EDGE_Pos),
471 SPI_CLOCK_OUT_RISING_EDGE_FALSE = (0x1 << SPI_CLOCK_OUT_RISING_EDGE_Pos),
472 SPI_AUTO_EDGE_DETECTION_Pos = 1,
473 SPI_AUTO_EDGE_DETECTION_Msk = (0x1 << SPI_AUTO_EDGE_DETECTION_Pos),
474 SPI_AUTO_EDGE_DETECTION_ENABLED = (0x1 << SPI_AUTO_EDGE_DETECTION_Pos),
475 SPI_AUTO_EDGE_DETECTION_DISABLED = (0x0 << SPI_AUTO_EDGE_DETECTION_Pos),
476 MIIM_PREAMBLE_SUPPRESSION_Pos = 2,
477 MIIM_PREAMBLE_SUPPRESSION_Msk = (0x1 << MIIM_PREAMBLE_SUPPRESSION_Pos),
478 MIIM_PREAMBLE_SUPPRESSION_ENABLED = (0x1 << MIIM_PREAMBLE_SUPPRESSION_Pos),
479 MIIM_PREAMBLE_SUPPRESSION_DISABLED = (0x0 << MIIM_PREAMBLE_SUPPRESSION_Pos),
482 inline uint32_t SPI_CLOCK_OUT_RISING_EDGE(uint32_t _x)
483 {
return (((_x) << SPI_CLOCK_OUT_RISING_EDGE_Pos) & SPI_CLOCK_OUT_RISING_EDGE_Msk); }
484 inline uint32_t SPI_AUTO_EDGE_DETECTION(uint32_t _x)
485 {
return ((_x) << SPI_AUTO_EDGE_DETECTION_Pos); }
486 inline uint32_t MIIM_PREAMBLE_SUPPRESSION(uint32_t _x)
487 {
return ((_x) << MIIM_PREAMBLE_SUPPRESSION_Pos); }
490namespace OUTPUT_CLOCK_CTRL {
492 REFCLKO_IS_125MHZ_Pos = 0,
493 REFCLKO_IS_125MHZ_Msk = (0x1 << REFCLKO_IS_125MHZ_Pos),
494 REFCLKO_IS_125MHZ_TRUE = (0x1 << REFCLKO_IS_125MHZ_Pos),
495 REFCLKO_IS_125MHZ_FALSE = (0x0 << REFCLKO_IS_125MHZ_Pos),
497 REFCLKO_Msk = (0x1 << REFCLKO_Pos),
498 REFCLKO_ENABLED = (0x1 << REFCLKO_Pos),
499 REFCLKO_DISABLED = (0x0 << REFCLKO_Pos),
502 inline uint32_t REFCLKO_IS_125MHZ(uint32_t _x)
503 {
return ((_x) << REFCLKO_IS_125MHZ_Pos); }
504 inline uint32_t REFCLKO(uint32_t _x)
505 {
return ((_x) << REFCLKO_Pos); }
510 IBA_FRAME_TPID_Pos = 0,
511 IBA_FRAME_TPID_Msk = (0xFFFF << IBA_FRAME_TPID_Pos),
513 IBA_PORT_Msk = (0x7 << IBA_PORT_Pos),
514 IBA_RESP_PRIO_Pos = 22,
515 IBA_RESP_PRIO_Msk = (0x3 << IBA_RESP_PRIO_Pos),
517 IBA_RESET_Msk = (0x1 << IBA_RESET_Pos),
518 IBA_DA_MATCH_Pos = 30,
519 IBA_DA_MATCH_Msk = (0x1 << IBA_DA_MATCH_Pos),
520 IBA_DA_MATCH_ENABLED = (0x1 << IBA_DA_MATCH_Pos),
521 IBA_DA_MATCH_DISABLED = (0x0 << IBA_DA_MATCH_Pos),
523 IBA_ENABLE_Msk = (0x1 << IBA_ENABLE_Pos),
524 IBA_ENABLE_ENABLED = (0x1 << IBA_ENABLE_Pos),
525 IBA_ENABLE_DISABLED = (0x0 << IBA_ENABLE_Pos),
528 inline uint32_t IBA_FRAME_TPID(uint32_t _x)
529 {
return ((_x) << IBA_FRAME_TPID_Pos); }
530 inline uint32_t IBA_PORT(uint32_t _x)
531 {
return ((_x) << IBA_PORT_Pos); }
532 inline uint32_t IBA_RESP_PRIO(uint32_t _x)
533 {
return ((_x) << IBA_RESP_PRIO_Pos); }
534 inline uint32_t IBA_RESET(uint32_t _x)
535 {
return ((_x) << IBA_RESET_Pos); }
536 inline uint32_t IBA_DA_MATCH(uint32_t _x)
537 {
return (((_x) << IBA_DA_MATCH_Pos) & IBA_DA_MATCH_Msk); }
538 inline uint32_t IBA_ENABLE(uint32_t _x)
539 {
return (((_x) << IBA_ENABLE_Pos) & IBA_ENABLE_Msk); }
542namespace APB_TIMEOUT {
544 APB_TIMEOUT_ACK_Pos = 31,
545 APB_TIMEOUT_ACK_Msk = (0x1 << APB_TIMEOUT_ACK_Pos),
549namespace IO_DRIVE_STRENGTH {
551 LO_SPEED_DRIVE_STRENGTH_Pos = 0,
552 LO_SPEED_DRIVE_STRENGTH_Msk = (0x7 << LO_SPEED_DRIVE_STRENGTH_Pos),
553 HI_SPEED_DRIVE_STRENGTH_Pos = 4,
554 HI_SPEED_DRIVE_STRENGTH_Msk = (0x7 << HI_SPEED_DRIVE_STRENGTH_Pos),
557 inline uint32_t LO_SPEED_DRIVE_STRENGTH(uint32_t _x)
558 {
return (((_x) << LO_SPEED_DRIVE_STRENGTH_Pos) & LO_SPEED_DRIVE_STRENGTH_Msk); }
559 inline uint32_t HI_SPEED_DRIVE_STRENGTH(uint32_t _x)
560 {
return (((_x) << HI_SPEED_DRIVE_STRENGTH_Pos) & HI_SPEED_DRIVE_STRENGTH_Msk); }
563namespace IBA_STATUS {
566 IBA_CMD_LOC_Msk = (0x7F << IBA_CMD_LOC_Pos),
567 IBA_OVERSIZE_ERROR_Pos = 10,
568 IBA_OVERSIZE_ERROR_Msk = (0x1 << IBA_OVERSIZE_ERROR_Pos),
569 IBA_CMD_ERROR_Pos = 11,
570 IBA_CMD_ERROR_Msk = (0x1 << IBA_CMD_ERROR_Pos),
571 IBA_CODE_ERROR_Pos = 12,
572 IBA_CODE_ERROR_Msk = (0x1 << IBA_CMD_ERROR_Pos),
573 IBA_FMT_MISMATCH_Pos = 13,
574 IBA_FMT_MISMATCH_Msk = (0x1 << IBA_FMT_MISMATCH_Pos),
575 IBA_DA_MISMATCH_Pos = 14,
576 IBA_DA_MISMATCH_Msk = (0x1 << IBA_DA_MISMATCH_Pos),
577 IBA_EXEC_DONE_Pos = 29,
578 IBA_EXEC_DONE_Msk = (0x1 << IBA_EXEC_DONE_Pos),
580 IBA_RESP_Msk = (0x1 << IBA_RESP_Pos),
582 IBA_REQ_Msk = (0x1 << IBA_REQ_Pos),
585 inline uint32_t IBA_CMD_LOC(uint32_t _x)
586 {
return (((_x) << IBA_CMD_LOC_Pos) & IBA_CMD_LOC_Msk); }
589namespace IBA_STATES {
592 IBA_FMT_ID_Msk = (0xFFFF << IBA_FMT_ID_Pos),
593 IBA_PACKET_SIZE_Pos = 16,
594 IBA_PACKET_SIZE_Msk = (0x7F << IBA_PACKET_SIZE_Pos),
595 IBA_RESP_STATE_Pos = 26,
596 IBA_RESP_STATE_Msk = (0x3 << IBA_RESP_STATE_Pos),
597 IBA_CMD_STATE_Pos = 28,
598 IBA_CMD_STATE_Msk = (0x3 << IBA_CMD_STATE_Pos),
599 IBA_BUF_STATE_Pos = 30,
600 IBA_BUF_STATE_Msk = (0x3 << IBA_BUF_STATE_Pos),
604namespace IBA_RESULT {
606 IBA_RETRY_CNT_Pos = 0,
607 IBA_RETRY_CNT_Msk = (0x3F << IBA_RETRY_CNT_Pos),
609 IBA_SIZE_Msk = (0xFF << IBA_SIZE_Pos),
613namespace LED_OVERRIDE {
617 inline uint32_t LED_GPO(uint32_t _x)
618 {
return (1 << (_x)); }
621namespace LED_OUTPUT {
625 inline uint32_t HIGH(uint32_t _x)
626 {
return (1 << (_x)); }
630namespace POWER_MANAGEMENT_CTRL {
633 MODE_Msk = (0x3 << MODE_Pos),
634 MODE_NORMAL = (0x0 << MODE_Pos),
635 MODE_ENERGY_DETECT_POWER_DOWN = (0x1 << MODE_Pos),
636 MODE_SOFT_POWER_DOWN = (0x2 << MODE_Pos),
637 PLL_POWER_DOWN_Pos = 5,
638 PLL_POWER_DOWN_Msk = (0x1 << MODE_Pos),
639 PLL_POWER_DOWN_NORMAL = (0x0 << MODE_Pos),
640 PLL_POWER_DOWN_PLL_DISABLED = (0x1 << MODE_Pos),
645namespace SW_OPERATION {
648 SW_START_Msk = (0x1 << SW_START_Pos),
649 SW_START_ENABLED = (0x1 << SW_START_Pos),
650 SW_START_DISABLED = (0x1 << SW_START_Pos),
652 SW_RESET_Msk = (0x1 << SW_RESET_Pos),
653 SW_RESET_RESET = (0x1 << SW_RESET_Pos),
654 SW_DOUBLE_TAG_Pos = 2,
655 SW_DOUBLE_TAG_Msk = (0x1 << SW_DOUBLE_TAG_Pos),
656 SW_DOUBLE_TAG_ENABLED = (0x1 << SW_DOUBLE_TAG_Pos),
657 SW_DOUBLE_TAG_DISABLED = (0x0 << SW_DOUBLE_TAG_Pos),
664 MTU_Msk = (0x3FFF << MTU_Pos),
667 inline uint32_t MTU(uint32_t _x)
668 {
return (((_x) << MTU_Pos) & MTU_Msk); }
671namespace SW_ISP_TPID {
674 ISP_TPID_Msk = (0xFFFF << ISP_TPID_Pos),
677 inline uint32_t ISP_TPID(uint32_t _x)
678 {
return (((_x) << ISP_TPID_Pos) & ISP_TPID_Msk); }
681namespace SW_HSR_TPID {
684 HSR_TPID_Msk = (0xFFFF << HSR_TPID_Pos),
687 inline uint32_t ISP_TPID(uint32_t _x)
688 {
return (((_x) << HSR_TPID_Pos) & HSR_TPID_Msk); }
691namespace SW_AVB_STRATEGY {
693 POLICING_CREDIT_ACCT_Pos = 0,
694 POLICING_CREDIT_ACCT_Msk = (0x1 << POLICING_CREDIT_ACCT_Pos),
695 SHAPING_CREDIT_ACCT_Pos = 1,
696 SHAPING_CREDIT_ACCT_Msk = (0x1 << SHAPING_CREDIT_ACCT_Pos),
700namespace SW_LUE_CTRL {
703 AGE_PERIOD_Msk = (0xFF << AGE_PERIOD_Pos),
705 PRIO_Msk = (0x3 << PRIO_Pos),
706 PRIO_DST_ADDR = (0x0 << PRIO_Pos),
707 PRIO_SRC_ADDR = (0x1 << PRIO_Pos),
708 PRIO_HIGHEST_DA_SA = (0x2 << PRIO_Pos),
709 PRIO_LOWEST_DA_SA = (0x3 << PRIO_Pos),
710 FLUSH_OPTION_Pos = 10,
711 FLUSH_OPTION_Msk = (0x3 << FLUSH_OPTION_Pos),
712 FLUSH_OPTION_NONE = (0x0 << FLUSH_OPTION_Pos),
713 FLUSH_OPTION_DYN_MAC = (0x1 << FLUSH_OPTION_Pos),
714 FLUSH_OPTION_STA_MAC = (0x2 << FLUSH_OPTION_Pos),
715 FLUSH_OPTION_BOTH = (0x3 << FLUSH_OPTION_Pos),
716 EGRESS_VLAN_FILTER_STA_Pos = 12,
717 EGRESS_VLAN_FILTER_STA_Msk = (0x3 << EGRESS_VLAN_FILTER_STA_Pos),
718 EGRESS_VLAN_FILTER_STA_ENABLED = (0x1 << EGRESS_VLAN_FILTER_STA_Pos),
719 EGRESS_VLAN_FILTER_STA_DISABLED = (0x0 << EGRESS_VLAN_FILTER_STA_Pos),
720 EGRESS_VLAN_FILTER_DYN_Pos = 13,
721 EGRESS_VLAN_FILTER_DYN_Msk = (0x1 << EGRESS_VLAN_FILTER_DYN_Pos),
722 EGRESS_VLAN_FILTER_DYN_ENABLED = (0x1 << EGRESS_VLAN_FILTER_DYN_Pos),
723 EGRESS_VLAN_FILTER_DYN_DISABLED = (0x0 << EGRESS_VLAN_FILTER_DYN_Pos),
724 TRAP_DOUBLE_TAG_Pos = 14,
725 TRAP_DOUBLE_TAG_Msk = (0x1 << TRAP_DOUBLE_TAG_Pos),
726 TRAP_DOUBLE_TAG_ENABLED = (0x1 << TRAP_DOUBLE_TAG_Pos),
727 TRAP_DOUBLE_TAG_DISABLED = (0x0 << TRAP_DOUBLE_TAG_Pos),
728 LINK_DOWN_FLUSH_Pos = 16,
729 LINK_DOWN_FLUSH_Msk = (0x1 << LINK_DOWN_FLUSH_Pos),
730 LINK_DOWN_FLUSH_ENABLED = (0x1 << LINK_DOWN_FLUSH_Pos),
731 LINK_DOWN_FLUSH_DISABLED = (0x0 << LINK_DOWN_FLUSH_Pos),
733 FAST_AGING_Msk = (0x1 << FAST_AGING_Pos),
734 FAST_AGING_ENABLED = (0x1 << FAST_AGING_Pos),
735 FAST_AGING_DISABLED = (0x0 << FAST_AGING_Pos),
737 AGING_Msk = (0x1 << AGING_Pos),
738 AGING_ENABLED = (0x1 << AGING_Pos),
739 AGING_DISABLED = (0x0 << AGING_Pos),
740 FWD_MCAST_SRC_ADDR_Pos = 19,
741 FWD_MCAST_SRC_ADDR_Msk = (0x1 << FWD_MCAST_SRC_ADDR_Pos),
742 FWD_MCAST_SRC_ADDR_ENABLED = (0x1 << FWD_MCAST_SRC_ADDR_Pos),
743 FWD_MCAST_SRC_ADDR_DISABLED = (0x0 << FWD_MCAST_SRC_ADDR_Pos),
744 FLUSH_MSTP_TABLE_Pos = 20,
745 FLUSH_MSTP_TABLE_Msk = (0x1 << FLUSH_MSTP_TABLE_Pos),
746 FLUSH_MSTP_TABLE_ENABLED = (0x1 << FLUSH_MSTP_TABLE_Pos),
747 FLUSH_MSTP_TABLE_DISABLED = (0x0 << FLUSH_MSTP_TABLE_Pos),
748 FLUSH_STP_TABLE_Pos = 21,
749 FLUSH_STP_TABLE_Msk = (0x1 << FLUSH_STP_TABLE_Pos),
750 FLUSH_STP_TABLE_ENABLED = (0x1 << FLUSH_STP_TABLE_Pos),
751 FLUSH_STP_TABLE_DISABLED = (0x0 << FLUSH_STP_TABLE_Pos),
752 SRC_ADDR_FILTER_Pos = 22,
753 SRC_ADDR_FILTER_Msk = (0x1 << SRC_ADDR_FILTER_Pos),
754 SRC_ADDR_FILTER_ENABLED = (0x1 << SRC_ADDR_FILTER_Pos),
755 SRC_ADDR_FILTER_DISABLED = (0x0 << SRC_ADDR_FILTER_Pos),
756 UNICAST_LEARN_DISABLE_Pos = 23,
757 UNICAST_LEARN_DISABLE_Msk = (0x1 << UNICAST_LEARN_DISABLE_Pos),
758 UNICAST_LEARN_DISABLE_ENABLED = (0x1 << UNICAST_LEARN_DISABLE_Pos),
759 UNICAST_LEARN_DISABLE_DISABLED = (0x0 << UNICAST_LEARN_DISABLE_Pos),
760 HASH_OPTION_Pos = 24,
761 HASH_OPTION_Msk = (0x3 << HASH_OPTION_Pos),
762 HASH_OPTION_CRC = (0x1 << HASH_OPTION_Pos),
763 HASH_OPTION_XOR = (0x2 << HASH_OPTION_Pos),
764 HASH_OPTION_DIRECT = (0x3 << HASH_OPTION_Pos),
766 RESV_MCAST_Msk = (0x1 << RESV_MCAST_Pos),
767 RESV_MCAST_ENABLED = (0x1 << RESV_MCAST_Pos),
768 RESV_MCAST_DISABLED = (0x0 << RESV_MCAST_Pos),
770 AGE_CNT_Msk = (0x7 << AGE_CNT_Pos),
771 DROP_INVALID_VID_Pos = 30,
772 DROP_INVALID_VID_Msk = (0x1 << DROP_INVALID_VID_Pos),
773 DROP_INVALID_VID_ENABLED = (0x1 << DROP_INVALID_VID_Pos),
774 DROP_INVALID_VID_DISABLED = (0x0 << DROP_INVALID_VID_Pos),
775 VLAN_ENABLE_Pos = 31,
776 VLAN_ENABLE_Msk = (0x1 << VLAN_ENABLE_Pos),
777 VLAN_ENABLE_ENABLED = (0x1 << VLAN_ENABLE_Pos),
778 VLAN_ENABLE_DISABLED = (0x0 << VLAN_ENABLE_Pos),
781 inline uint32_t AGE_PERIOD(uint32_t _x)
782 {
return (((_x) << AGE_PERIOD_Pos) & AGE_PERIOD_Msk); }
783 inline uint32_t AGE_CNT(uint32_t _x)
784 {
return (((_x) << AGE_CNT_Pos) & AGE_CNT_Msk); }
787namespace SW_LUE_INT_STATUS {
790 WRITE_FAIL_Msk = (0x1 << WRITE_FAIL_Pos),
791 WRITE_FAIL_ENABLED = (0x1 << WRITE_FAIL_Pos),
792 WRITE_FAIL_DISABLED = (0x0 << WRITE_FAIL_Pos),
794 ALMOST_FULL_Msk = (0x1 << ALMOST_FULL_Pos),
795 ALMOST_FULL_ENABLED = (0x1 << ALMOST_FULL_Pos),
796 ALMOST_FULL_DISABLED = (0x0 << ALMOST_FULL_Pos),
798 LEARN_FAIL_Msk = (0x1 << LEARN_FAIL_Pos),
799 LEARN_FAIL_ENABLED = (0x1 << LEARN_FAIL_Pos),
800 LEARN_FAIL_DISABLED = (0x0 << LEARN_FAIL_Pos),
804namespace SW_LUE_INT_MASK {
807 WRITE_FAIL_Msk = (0x1 << WRITE_FAIL_Pos),
808 WRITE_FAIL_ENABLED = (0x0 << WRITE_FAIL_Pos),
809 WRITE_FAIL_DISABLED = (0x1 << WRITE_FAIL_Pos),
811 ALMOST_FULL_Msk = (0x1 << ALMOST_FULL_Pos),
812 ALMOST_FULL_ENABLED = (0x0 << ALMOST_FULL_Pos),
813 ALMOST_FULL_DISABLED = (0x1 << ALMOST_FULL_Pos),
815 LEARN_FAIL_Msk = (0x1 << LEARN_FAIL_Pos),
816 LEARN_FAIL_ENABLED = (0x0 << LEARN_FAIL_Pos),
817 LEARN_FAIL_DISABLED = (0x1 << LEARN_FAIL_Pos),
821namespace SW_LUE_INDEX_WRITE {
823 FAIL_WRITE_ALMOST_FULL_Pos = 0,
824 FAIL_WRITE_ALMOST_FULL_Msk = (0xFFF << FAIL_WRITE_ALMOST_FULL_Pos),
828namespace SW_LUE_INDEX_LEARN {
831 FAIL_LEARN_Msk = (0x3FF << FAIL_LEARN_Pos),
835namespace SW_LUE_INDEX_CPU {
838 CPU_ACCESS_Msk = (0x3FF << CPU_ACCESS_Pos),
842namespace SW_UNK_UCAST_CTRL {
845 FWD_PORTS_Msk = (0xFF << FWD_PORTS_Pos),
847 FWD_Msk = (0x1 << FWD_Pos),
848 FWD_ENABLED = (0x1 << FWD_Pos),
849 FWD_DISABLED = (0x0 << FWD_Pos),
852 inline uint32_t FWD_PORT(uint32_t _x)
853 {
return (((_x) << FWD_PORTS_Pos) & FWD_PORTS_Msk); }
856namespace SW_UNK_MCAST_CTRL {
859 FWD_PORTS_Msk = (0xFF << FWD_PORTS_Pos),
861 FWD_Msk = (0x1 << FWD_Pos),
862 FWD_ENABLED = (0x1 << FWD_Pos),
863 FWD_DISABLED = (0x0 << FWD_Pos),
866 inline uint32_t FWD_PORT(uint32_t _x)
867 {
return (((_x) << FWD_PORTS_Pos) & FWD_PORTS_Msk); }
870namespace SW_UNK_VID_CTRL {
873 FWD_PORTS_Msk = (0xFF << FWD_PORTS_Pos),
875 FWD_Msk = (0x1 << FWD_Pos),
876 FWD_ENABLED = (0x1 << FWD_Pos),
877 FWD_DISABLED = (0x0 << FWD_Pos),
880 inline uint32_t FWD_PORT(uint32_t _x)
881 {
return (((_x) << FWD_PORTS_Pos) & FWD_PORTS_Msk); }
884namespace SW_MAC_CTRL {
886 AGGR_BACKOFF_Pos = 24,
887 AGGR_BACKOFF_Msk = (0x1 << AGGR_BACKOFF_Pos),
888 AGGR_BACKOFF_ENABLED = (0x1 << AGGR_BACKOFF_Pos),
889 AGGR_BACKOFF_DISABLED = (0x0 << AGGR_BACKOFF_Pos),
890 PAUSE_UNH_MODE_Pos = 25,
891 PAUSE_UNH_MODE_Msk = (0x1 << PAUSE_UNH_MODE_Pos),
892 PAUSE_UNH_MODE_DROP_EITHER = (0x1 << PAUSE_UNH_MODE_Pos),
893 PAUSE_UNH_MODE_DROP_BOTH = (0x0 << PAUSE_UNH_MODE_Pos),
894 CHECK_LENGTH_Pos = 27,
895 CHECK_LENGTH_Msk = (0x1 << CHECK_LENGTH_Pos),
896 CHECK_LENGTH_ENABLED = (0x1 << CHECK_LENGTH_Pos),
897 CHECK_LENGTH_DISABLED = (0x0 << CHECK_LENGTH_Pos),
898 NEW_BACKOFF_Pos = 31,
899 NEW_BACKOFF_Msk = (0x1 << NEW_BACKOFF_Pos),
900 NEW_BACKOFF_ENABLED = (0x1 << NEW_BACKOFF_Pos),
901 NEW_BACKOFF_DISABLED = (0x0 << NEW_BACKOFF_Pos),
902 PASS_SHORT_FRAME_Pos = 16,
903 PASS_SHORT_FRAME_Msk = (0x1 << PASS_SHORT_FRAME_Pos),
904 PASS_SHORT_FRAME_ENABLED = (0x1 << PASS_SHORT_FRAME_Pos),
905 PASS_SHORT_FRAME_DISABLED = (0x0 << PASS_SHORT_FRAME_Pos),
906 LEGAL_PACKET_SIZE_CHECK_Pos = 17,
907 LEGAL_PACKET_SIZE_CHECK_Msk = (0x1 << LEGAL_PACKET_SIZE_CHECK_Pos),
908 LEGAL_PACKET_SIZE_CHECK_ENABLED = (0x0 << LEGAL_PACKET_SIZE_CHECK_Pos),
909 LEGAL_PACKET_SIZE_CHECK_DISABLED = (0x1 << LEGAL_PACKET_SIZE_CHECK_Pos),
910 JUMBO_PACKET_Pos = 18,
911 JUMBO_PACKET_Msk = (0x1 << JUMBO_PACKET_Pos),
912 JUMBO_PACKET_ENABLED = (0x1 << JUMBO_PACKET_Pos),
913 JUMBO_PACKET_DISABLED = (0x0 << JUMBO_PACKET_Pos),
914 NO_EXC_COLLISION_DROP_Pos = 19,
915 NO_EXC_COLLISION_DROP_Msk = (0x1 << NO_EXC_COLLISION_DROP_Pos),
916 NO_EXC_COLLISION_DROP_ENABLED = (0x1 << NO_EXC_COLLISION_DROP_Pos),
917 NO_EXC_COLLISION_DROP_DISABLED = (0x0 << NO_EXC_COLLISION_DROP_Pos),
918 FAIR_FLOW_CTRL_Pos = 20,
919 FAIR_FLOW_CTRL_Msk = (0x1 << FAIR_FLOW_CTRL_Pos),
920 FAIR_FLOW_CTRL_ENABLED = (0x1 << FAIR_FLOW_CTRL_Pos),
921 FAIR_FLOW_CTRL_DISABLED = (0x0 << FAIR_FLOW_CTRL_Pos),
922 BACK_PRESSURE_Pos = 21,
923 BACK_PRESSURE_Msk = (0x1 << BACK_PRESSURE_Pos),
924 BACK_PRESSURE_CARRIER_SENSE = (0x1 << BACK_PRESSURE_Pos),
925 BACK_PRESSURE_COLLISION = (0x0 << BACK_PRESSURE_Pos),
926 MCAST_STORM_PROT_Pos = 22,
927 MCAST_STORM_PROT_Msk = (0x1 << MCAST_STORM_PROT_Pos),
928 MCAST_STORM_PROT_ENABLED = (0x0 << MCAST_STORM_PROT_Pos),
929 MCAST_STORM_PROT_DISABLED = (0x1 << MCAST_STORM_PROT_Pos),
930 NULL_VID_REPLACE_Pos = 11,
931 NULL_VID_REPLACE_Msk = (0x1 << NULL_VID_REPLACE_Pos),
932 NULL_VID_REPLACE_ENABLED = (0x1 << NULL_VID_REPLACE_Pos),
933 NULL_VID_REPLACE_DISABLED = (0x0 << NULL_VID_REPLACE_Pos),
934 BCAST_STORM_RATE_Pos = 0,
935 BCAST_STORM_RATE_Msk = (0x7FF << BCAST_STORM_RATE_Pos),
936 BCAST_STORM_RATE_DISABLED = (0x0 << BCAST_STORM_RATE_Pos),
939 inline uint32_t BCAST_STORM_RATE(uint32_t _x)
940 {
return (((_x) << BCAST_STORM_RATE_Pos & BCAST_STORM_RATE_Msk)); }
943namespace SW_MAC_CTRL2 {
946 PASS_PAUSE_Msk = (0x1 << PASS_PAUSE_Pos),
947 PASS_PAUSE_ENABLED = (0x1 << PASS_PAUSE_Pos),
948 PASS_PAUSE_DISABLED = (0x0 << PASS_PAUSE_Pos),
949 INGRESS_RATE_LIMIT_PERIOD_Pos = 20,
950 INGRESS_RATE_LIMIT_PERIOD_Msk = (0x3 << INGRESS_RATE_LIMIT_PERIOD_Pos),
951 INGRESS_RATE_LIMIT_PERIOD_16MS = (0x0 << INGRESS_RATE_LIMIT_PERIOD_Pos),
952 INGRESS_RATE_LIMIT_PERIOD_64MS = (0x1 << INGRESS_RATE_LIMIT_PERIOD_Pos),
953 INGRESS_RATE_LIMIT_PERIOD_256MS = (0x2 << INGRESS_RATE_LIMIT_PERIOD_Pos),
954 EGRESS_RATE_LIMIT_BY_Pos = 19,
955 EGRESS_RATE_LIMIT_BY_Msk = (0x1 << EGRESS_RATE_LIMIT_BY_Pos),
956 EGRESS_RATE_LIMIT_BY_QUEUE = (0x1 << EGRESS_RATE_LIMIT_BY_Pos),
957 EGRESS_RATE_LIMIT_BY_PORT = (0x0 << EGRESS_RATE_LIMIT_BY_Pos),
958 MIB_COUNTER_FLUSH_Pos = 15,
959 MIB_COUNTER_FLUSH_Msk = (0x1 << MIB_COUNTER_FLUSH_Pos),
960 MIB_COUNTER_FLUSH_ENABLED = (0x1 << MIB_COUNTER_FLUSH_Pos),
961 MIB_COUNTER_FLUSH_DISABLED = (0x0 << MIB_COUNTER_FLUSH_Pos),
962 MIB_COUNTER_FREEZE_Pos = 14,
963 MIB_COUNTER_FREEZE_Msk = (0x1 << MIB_COUNTER_FREEZE_Pos),
964 MIB_COUNTER_FREEZE_ENABLED = (0x1 << MIB_COUNTER_FREEZE_Pos),
965 MIB_COUNTER_FREEZE_DISABLED = (0x0 << MIB_COUNTER_FREEZE_Pos),
969namespace SW_MAC_802_1P_MAP {
973 inline uint32_t PCP_VAL_Pos(uint32_t _x)
974 {
return (28-((!(_x&1))*4)-(((_x>>1)&0x3)*8)); }
975 inline uint32_t PCP_VAL_Msk(uint32_t _x)
976 {
return (0xF << PCP_VAL_Pos(_x)); }
977 inline uint32_t PCP_VAL(uint32_t _x, uint32_t _val)
978 {
return (((_val) << PCP_VAL_Pos(_x) & PCP_VAL_Msk(_x))); }
981namespace SW_MAC_TOS_CTRL {
983 TOS_DCSP_REMAP_Pos = 0,
984 TOS_DCSP_REMAP_Msk = (0x1 << TOS_DCSP_REMAP_Pos),
985 TOS_DCSP_REMAP_ENABLED = (0x1 << TOS_DCSP_REMAP_Pos),
986 TOS_DCSP_REMAP_DISABLED = (0x0 << TOS_DCSP_REMAP_Pos),
987 TOS_DCSP_REMARK_Pos = 1,
988 TOS_DCSP_REMARK_Msk = (0x1 << TOS_DCSP_REMARK_Pos),
989 TOS_DCSP_REMARK_ENABLED = (0x1 << TOS_DCSP_REMARK_Pos),
990 TOS_DCSP_REMARK_DISABLED = (0x0 << TOS_DCSP_REMARK_Pos),
994namespace SW_MAC_TOS_PRIO_31 {
998 inline uint32_t REG(uint32_t _x)
999 {
return ((_x>>1)&0x1F); }
1000 inline uint32_t DCSP_VAL_Pos(uint32_t _x)
1001 {
return (((_x&1))*4); }
1002 inline uint32_t DCSP_VAL_Msk(uint32_t _x)
1003 {
return (0xF << DCSP_VAL_Pos(_x)); }
1004 inline uint32_t DCSP_VAL(uint32_t _x, uint32_t _val)
1005 {
return (((_val) << DCSP_VAL_Pos(_x) & DCSP_VAL_Msk(_x))); }
1008namespace SW_MRI_CTRL {
1010 MIRROR_FILTER_Pos = 0,
1011 MIRROR_FILTER_Msk = (0x1 << MIRROR_FILTER_Pos),
1012 MIRROR_FILTER_AND = (0x1 << MIRROR_FILTER_Pos),
1013 MIRROR_FILTER_OR = (0x0 << MIRROR_FILTER_Pos),
1014 IPV6_MLD_SNOOP_Pos = 2,
1015 IPV6_MLD_SNOOP_Msk = (0x1 << IPV6_MLD_SNOOP_Pos),
1016 IPV6_MLD_SNOOP_ENABLED = (0x1 << IPV6_MLD_SNOOP_Pos),
1017 IPV6_MLD_SNOOP_DISABLED = (0x0 << IPV6_MLD_SNOOP_Pos),
1018 IPV6_MLD_OPTION_Pos = 3,
1019 IPV6_MLD_OPTION_Msk = (0x1 << IPV6_MLD_OPTION_Pos),
1020 IPV6_MLD_OPTION_ENABLED = (0x1 << IPV6_MLD_OPTION_Pos),
1021 IPV6_MLD_OPTION_DISABLED = (0x0 << IPV6_MLD_OPTION_Pos),
1023 IGMP_SNOOP_Msk = (0x1 << IGMP_SNOOP_Pos),
1024 IGMP_SNOOP_ENABLED = (0x1 << IGMP_SNOOP_Pos),
1025 IGMP_SNOOP_DISABLED = (0x0 << IGMP_SNOOP_Pos),
1029namespace SW_WRED_DSCP_COLOR {
1032 GREEN_Msk = (0x3 << GREEN_Pos),
1034 YELLOW_Msk = (0x3 << YELLOW_Pos),
1036 RED_Msk = (0x3 << RED_Pos),
1038 NO_COLOR_Msk = (0x3 << NO_COLOR_Pos),
1041 inline uint32_t GREEN(uint32_t _x)
1042 {
return (((_x) << GREEN_Pos) & GREEN_Msk); }
1043 inline uint32_t YELLOW(uint32_t _x)
1044 {
return (((_x) << YELLOW_Pos) & YELLOW_Msk); }
1045 inline uint32_t RED(uint32_t _x)
1046 {
return (((_x) << RED_Pos) & RED_Msk); }
1047 inline uint32_t NO_COLOR(uint32_t _x)
1048 {
return (((_x) << NO_COLOR_Pos) & NO_COLOR_Msk); }
1051namespace SW_QM_CTRL {
1053 UNICAST_VLAN_BOUNDARY_Pos = 1,
1054 UNICAST_VLAN_BOUNDARY_Msk = (0x1 << UNICAST_VLAN_BOUNDARY_Pos),
1055 UNICAST_VLAN_BOUNDARY_ENABLED = (0x1 << UNICAST_VLAN_BOUNDARY_Pos),
1056 UNICAST_VLAN_BOUNDARY_DISABLED = (0x0 << UNICAST_VLAN_BOUNDARY_Pos),
1057 PRIO_SCHEME_SELECT_Pos = 6,
1058 PRIO_SCHEME_SELECT_Msk = (0x1 << PRIO_SCHEME_SELECT_Pos),
1059 PRIO_SCHEME_SELECT_MAP_3_HI = (0x0 << PRIO_SCHEME_SELECT_Pos),
1060 PRIO_SCHEME_SELECT_MAP_2_HI = (0x2 << PRIO_SCHEME_SELECT_Pos),
1061 PRIO_SCHEME_SELECT_MAP_0_LO = (0x3 << PRIO_SCHEME_SELECT_Pos),
1066namespace VLAN_ENTRY {
1069 FID_Msk = (0x7F << FID_Pos),
1070 MSTP_INDEX_Pos = 12,
1071 MSTP_INDEX_Msk = (0x7 << MSTP_INDEX_Pos),
1073 PRIORITY_Msk = (0x3 << PRIORITY_Pos),
1074 FORWARD_OPTION_Pos = 27,
1075 FORWARD_OPTION_Msk = (0x1 << FORWARD_OPTION_Pos),
1076 FORWARD_OPTION_OTHER = (0x0 << FORWARD_OPTION_Pos),
1077 FORWARD_OPTION_VLAN_MAP = (0x1 << FORWARD_OPTION_Pos),
1079 VALID_Msk = (0x1 << VALID_Pos),
1080 VALID_FALSE = (0x0 << VALID_Pos),
1081 VALID_TRUE = (0x1 << VALID_Pos),
1084 inline uint32_t FID(uint32_t _x)
1085 {
return (((_x) << FID_Pos) & FID_Msk); }
1086 inline uint32_t MSTP_INDEX(uint32_t _x)
1087 {
return (((_x) << MSTP_INDEX_Pos) & MSTP_INDEX_Msk); }
1088 inline uint32_t PRIORITY(uint32_t _x)
1089 {
return (((_x) << PRIORITY_Pos) & PRIORITY_Msk); }
1092namespace VLAN_UNTAG {
1096 inline uint32_t PORT(uint32_t _x)
1097 {
return (( 0x1 << (((_x)-1) & 0x1F))); }
1100namespace VLAN_FORWARD {
1104 inline uint32_t PORT(uint32_t _x)
1105 {
return (( 0x1 << (((_x)-1) & 0x1F))); }
1108namespace VLAN_INDEX {
1111 INDEX_Msk = (0xFFF << INDEX_Pos),
1114 inline uint32_t INDEX(uint32_t _x)
1115 {
return (((_x) << INDEX_Pos) & INDEX_Msk); }
1118namespace VLAN_CTRL {
1121 ACTION_Msk = (0x3 << ACTION_Pos),
1122 ACTION_NOP = (0x0 << ACTION_Pos),
1123 ACTION_WRITE = (0x1 << ACTION_Pos),
1124 ACTION_READ = (0x2 << ACTION_Pos),
1125 ACTION_CLEAR = (0x3 << ACTION_Pos),
1126 START_ACTION_Pos = 7,
1127 START_ACTION_Msk = (0x1 << START_ACTION_Pos),
1128 START_ACTION_START = (0x1 << START_ACTION_Pos),
1129 START_ACTION_COMPLETE = (0x1 << START_ACTION_Pos),
1133namespace ALU_INDEX {
1135 MAC_ADDR_HI_Pos = 0,
1136 MAC_ADDR_HI_Msk = (0xFFFF << MAC_ADDR_HI_Pos),
1138 FID_INDEX_Msk = (0x7F << FID_INDEX_Pos),
1141 inline uint32_t MAC_ADDR_HI(uint32_t _x)
1142 {
return (((_x) << MAC_ADDR_HI_Pos) & MAC_ADDR_HI_Msk); }
1143 inline uint32_t FID_INDEX(uint32_t _x)
1144 {
return (((_x) << FID_INDEX_Pos) & FID_INDEX_Msk); }
1147namespace ALU_INDEX2 {
1149 MAC_ADDR_LO_Pos = 0,
1150 MAC_ADDR_LO_Msk = (0xFFFFFFFF << MAC_ADDR_LO_Pos),
1151 ALU_DIRECT_INDEX_Pos = 0,
1152 ALU_DIRECT_INDEX_Msk = (0xFFF << ALU_DIRECT_INDEX_Pos),
1155 inline uint32_t MAC_ADDR_LO(uint32_t _x)
1156 {
return (((_x) << MAC_ADDR_LO_Pos) & MAC_ADDR_LO_Msk); }
1157 inline uint32_t ALU_DIRECT_INDEX(uint32_t _x)
1158 {
return (((_x) << ALU_DIRECT_INDEX_Pos) & ALU_DIRECT_INDEX_Msk); }
1164 ACTION_Msk = (0x3 << ACTION_Pos),
1165 ACTION_NOP = (0x0 << ACTION_Pos),
1166 ACTION_WRITE = (0x1 << ACTION_Pos),
1167 ACTION_READ = (0x2 << ACTION_Pos),
1168 ACTION_SEARCH = (0x3 << ACTION_Pos),
1170 DIRECT_Msk = (0x1 << DIRECT_Pos),
1171 DIRECT_DIRECT = (0x1 << DIRECT_Pos),
1172 DIRECT_HASHED = (0x0 << DIRECT_Pos),
1173 VALID_OR_STOP_Pos = 5,
1174 VALID_OR_STOP_Msk = (0x1 << VALID_OR_STOP_Pos),
1175 VALID_OR_STOP_TRUE = (0x1 << VALID_OR_STOP_Pos),
1176 VALID_OR_STOP_FALSE = (0x0 << VALID_OR_STOP_Pos),
1178 VALID_Msk = (0x1 << VALID_Pos),
1179 VALID_TRUE = (0x1 << VALID_Pos),
1180 VALID_FALSE = (0x0 << VALID_Pos),
1182 START_Msk = (0x1 << START_Pos),
1183 START_START = (0x1 << START_Pos),
1184 START_COMPLETE = (0x0 << START_Pos),
1186 VALID_CNT_Msk = (0x3FFF << VALID_CNT_Pos),
1190namespace ALU_STAT_CTRL {
1193 ACTION_Msk = (0x1 << ACTION_Pos),
1194 ACTION_WRITE = (0x0 << ACTION_Pos),
1195 ACTION_READ = (0x1 << ACTION_Pos),
1197 TABLE_Msk = (0x1 << TABLE_Pos),
1198 TABLE_STATIC_ADDR = (0x0 << TABLE_Pos),
1199 TABLE_STATIC_RESV_MCAST = (0x1 << TABLE_Pos),
1201 START_Msk = (0x1 << START_Pos),
1202 START_NOP = (0x0 << START_Pos),
1203 START_START = (0x1 << START_Pos),
1204 START_COMPLETE = (0x0 << START_Pos),
1205 TABLE_INDEX_Pos = 16,
1206 TABLE_INDEX_Msk = (0x3F << TABLE_INDEX_Pos),
1209 inline uint32_t TABLE_INDEX(uint32_t _x)
1210 {
return (((_x) << TABLE_INDEX_Pos) & TABLE_INDEX_Msk); }
1213namespace ALU_VAL_A {
1216 MSTP_Msk = (0x7 << MSTP_Pos),
1218 PRIO_AGE_Msk = (0x3 << PRIO_AGE_Pos),
1219 DST_FILTER_Pos = 29,
1220 DST_FILTER_Msk = (0x1 << DST_FILTER_Pos),
1221 DST_FILTER_ENABLED = (0x1 << DST_FILTER_Pos),
1222 DST_FILTER_DISABLED = (0x0 << DST_FILTER_Pos),
1223 SRC_FILTER_Pos = 30,
1224 SRC_FILTER_Msk = (0x1 << SRC_FILTER_Pos),
1225 SRC_FILTER_ENABLED = (0x1 << SRC_FILTER_Pos),
1226 SRC_FILTER_DISABLED = (0x0 << SRC_FILTER_Pos),
1227 ALU_STATIC_Pos = 31,
1228 ALU_STATIC_Msk = (0x1 << ALU_STATIC_Pos),
1229 ALU_STATIC_STATIC = (0x1 << ALU_STATIC_Pos),
1230 ALU_STATIC_DYN = (0x0 << ALU_STATIC_Pos),
1231 STATIC_VALID_Pos = 31,
1232 STATIC_VALID_Msk = (0x1 << STATIC_VALID_Pos),
1233 STATIC_VALID_TRUE = (0x1 << STATIC_VALID_Pos),
1234 STATIC_VALID_FALSE = (0x0 << STATIC_VALID_Pos),
1237 inline uint32_t MSTP(uint32_t _x)
1238 {
return (((_x) << MSTP_Pos) & MSTP_Msk); }
1239 inline uint32_t PRIO_AGE(uint32_t _x)
1240 {
return (((_x) << PRIO_AGE_Pos) & PRIO_AGE_Msk); }
1243namespace ALU_VAL_B {
1246 PORTS_Msk = (0x1FFFFFFF << PORTS_Pos),
1248 USE_FID_Msk = (0x1 << USE_FID_Pos),
1249 USE_FID_ENABLED = (0x1 << USE_FID_Pos),
1250 USE_FID_DISABLED = (0x0 << USE_FID_Pos),
1252 OVERRIDE_Msk = (0x1 << OVERRIDE_Pos),
1253 OVERRIDE_ENABLED = (0x1 << OVERRIDE_Pos),
1254 OVERRIDE_DISABLED = (0x0 << OVERRIDE_Pos),
1257 inline uint32_t PORT(uint32_t _x)
1258 {
return (((_x) << PORTS_Pos) & PORTS_Msk); }
1261namespace ALU_VAL_C {
1263 MAC_ADDR_HI_Pos = 0,
1264 MAC_ADDR_HI_Msk = (0xFFFF << MAC_ADDR_HI_Pos),
1266 FID_Msk = (0x7F << FID_Pos),
1269 inline uint32_t MAC_ADDR_HI(uint32_t _x)
1270 {
return (((_x) << MAC_ADDR_HI_Pos) & MAC_ADDR_HI_Msk); }
1271 inline uint32_t FID(uint32_t _x)
1272 {
return (((_x) << FID_Pos) & FID_Msk); }
1275namespace ALU_VAL_D {
1277 MAC_ADDR_LO_Pos = 0,
1278 MAC_ADDR_LO_Msk = (0xFFFFFFFF << MAC_ADDR_LO_Pos),
1281 inline uint32_t MAC_ADDR_LO(uint32_t _x)
1282 {
return (((_x) << MAC_ADDR_LO_Pos) & MAC_ADDR_LO_Msk); }
1286namespace PTP_CLK_CTRL {
1289 CLK_RESET_Msk = (0x1 << CLK_RESET_Pos),
1290 CLK_RESET_RESET = (0x1 << CLK_RESET_Pos),
1292 CLK_Msk = (0x1 << CLK_Pos),
1293 CLK_ENABLED = (0x1 << CLK_Pos),
1294 CLK_DISABLED = (0x0 << CLK_Pos),
1296 CLK_ADJ_Msk = (0x1 << CLK_ADJ_Pos),
1297 CLK_ADJ_ENABLED = (0x1 << CLK_ADJ_Pos),
1298 CLK_ADJ_DISABLED = (0x0 << CLK_ADJ_Pos),
1300 LOAD_Msk = (0x1 << LOAD_Pos),
1301 LOAD_ENABLED = (0x1 << LOAD_Pos),
1303 READ_Msk = (0x1 << READ_Pos),
1304 READ_ENABLED = (0x1 << READ_Pos),
1306 STEP_DIR_Msk = (0x1 << STEP_DIR_Pos),
1307 STEP_DIR_ADD = (0x1 << STEP_DIR_Pos),
1308 STEP_DIR_SUB = (0x0 << STEP_DIR_Pos),
1310 STEP_ADJ_Msk = (0x1 << STEP_ADJ_Pos),
1311 STEP_ADJ_ENABLED = (0x1 << STEP_ADJ_Pos),
1312 STEP_ADJ_DISABLED = (0x0 << STEP_ADJ_Pos),
1313 SW_FREQ_ADJ_Pos = 15,
1314 SW_FREQ_ADJ_Msk = (0x1 << SW_FREQ_ADJ_Pos),
1315 SW_FREQ_ADJ_ENABLED = (0x1 << SW_FREQ_ADJ_Pos),
1316 SW_FREQ_ADJ_DISABLED = (0x0 << SW_FREQ_ADJ_Pos),
1320namespace PTP_RTC_PHASE {
1323 PHASE_Msk = (0x3 << PHASE_Pos),
1326 inline uint32_t PHASE(uint32_t _x)
1327 {
return (((_x) << PHASE_Pos) & PHASE_Msk); }
1330namespace PTP_RTC_NANO {
1333 NANOSEC_Msk = (0xFFFFFFFF << NANOSEC_Pos),
1336 inline uint32_t NANOSEC(uint32_t _x)
1337 {
return (((_x) << NANOSEC_Pos) & NANOSEC_Msk); }
1340namespace PTP_RTC_SEC {
1343 SEC_Msk = (0xFFFFFFFF << SEC_Pos),
1346 inline uint32_t SEC(uint32_t _x)
1347 {
return (((_x) << SEC_Pos) & SEC_Msk); }
1350namespace PTP_RTC_SUBNANO {
1353 SUB_NANO_Msk = (0x3FFFFFFF << SUB_NANO_Pos),
1355 TMP_ADJ_Msk = (0x1 << TMP_ADJ_Pos),
1356 TMP_ADJ_ENABLED = (0x1 << TMP_ADJ_Pos),
1357 TMP_ADJ_DISABLED = (0x0 << TMP_ADJ_Pos),
1358 TMP_ADJ_DIR_Pos = 31,
1359 TMP_ADJ_DIR_Msk = (0x1 << TMP_ADJ_DIR_Pos),
1360 TMP_ADJ_DIR_ENABLED = (0x1 << TMP_ADJ_DIR_Pos),
1361 TMP_ADJ_DIR_DISABLED = (0x0 << TMP_ADJ_DIR_Pos),
1364 inline uint32_t SUB_NANO(uint32_t _x)
1365 {
return (((_x) << SUB_NANO_Pos) & SUB_NANO_Msk); }
1368namespace PTP_MSG_CONFIG {
1370 IPV4_CSUM_UPDATE_Pos = 2,
1371 IPV4_CSUM_UPDATE_Msk = (0x1 << IPV4_CSUM_UPDATE_Pos),
1372 IPV4_CSUM_UPDATE_ENABLED = (0x1 << IPV4_CSUM_UPDATE_Pos),
1373 IPV4_CSUM_UPDATE_DISABLED = (0x0 << IPV4_CSUM_UPDATE_Pos),
1374 DOMAIN_CHECK_Pos = 4,
1375 DOMAIN_CHECK_Msk = (0x1 << DOMAIN_CHECK_Pos),
1376 DOMAIN_CHECK_ENABLED = (0x1 << DOMAIN_CHECK_Pos),
1377 DOMAIN_CHECK_DISABLED = (0x0 << DOMAIN_CHECK_Pos),
1378 DROP_SYNC_DELAY_REQ_Pos = 5,
1379 DROP_SYNC_DELAY_REQ_Msk = (0x1 << DROP_SYNC_DELAY_REQ_Pos),
1380 DROP_SYNC_DELAY_REQ_ENABLED = (0x1 << DROP_SYNC_DELAY_REQ_Pos),
1381 DROP_SYNC_DELAY_REQ_DISABLED = (0x0 << DROP_SYNC_DELAY_REQ_Pos),
1382 PDELAY_CHECK_Pos = 7,
1383 PDELAY_CHECK_Msk = (0x1 << PDELAY_CHECK_Pos),
1384 PDELAY_CHECK_ENABLED = (0x1 << PDELAY_CHECK_Pos),
1385 PDELAY_CHECK_DISABLED = (0x0 << PDELAY_CHECK_Pos),
1386 DELAY_CHECK_Pos = 8,
1387 DELAY_CHECK_Msk = (0x1 << DELAY_CHECK_Pos),
1388 DELAY_CHECK_ENABLED = (0x1 << DELAY_CHECK_Pos),
1389 DELAY_CHECK_DISABLED = (0x0 << DELAY_CHECK_Pos),
1391 SYNC_CHECK_Msk = (0x1 << SYNC_CHECK_Pos),
1392 SYNC_CHECK_ENABLED = (0x1 << SYNC_CHECK_Pos),
1393 SYNC_CHECK_DISABLED = (0x0 << SYNC_CHECK_Pos),
1394 ALL_PTP_HI_PRIO_Pos = 10,
1395 ALL_PTP_HI_PRIO_Msk = (0x1 << ALL_PTP_HI_PRIO_Pos),
1396 ALL_PTP_HI_PRIO_ENABLED = (0x1 << ALL_PTP_HI_PRIO_Pos),
1397 ALL_PTP_HI_PRIO_DISABLED = (0x0 << ALL_PTP_HI_PRIO_Pos),
1398 ALT_MASTER_Pos = 11,
1399 ALT_MASTER_Msk = (0x1 << ALT_MASTER_Pos),
1400 ALT_MASTER_ENABLED = (0x1 << ALT_MASTER_Pos),
1401 ALT_MASTER_DISABLED = (0x0 << ALT_MASTER_Pos),
1403 UNICAST_Msk = (0x1 << UNICAST_Pos),
1404 UNICAST_ENABLED = (0x1 << UNICAST_Pos),
1405 UNICAST_DISABLED = (0x0 << UNICAST_Pos),
1407 MODE_Msk = (0x1 << MODE_Pos),
1408 MODE_MASTER = (0x1 << MODE_Pos),
1409 MODE_SLAVE = (0x0 << MODE_Pos),
1411 TC_Msk = (0x1 << TC_Pos),
1412 TC_P2P = (0x1 << TC_Pos),
1413 TC_E2E = (0x0 << TC_Pos),
1415 IPV6_UDP_Msk = (0x1 << IPV6_UDP_Pos),
1416 IPV6_UDP_ENABLED = (0x1 << IPV6_UDP_Pos),
1417 IPV6_UDP_DISABLED = (0x0 << IPV6_UDP_Pos),
1419 IPV4_UDP_Msk = (0x1 << IPV4_UDP_Pos),
1420 IPV4_UDP_ENABLED = (0x1 << IPV4_UDP_Pos),
1421 IPV4_UDP_DISABLED = (0x0 << IPV4_UDP_Pos),
1423 ETH_MSG_Msk = (0x1 << ETH_MSG_Pos),
1424 ETH_MSG_ENABLED = (0x1 << ETH_MSG_Pos),
1425 ETH_MSG_DISABLED = (0x0 << ETH_MSG_Pos),
1427 PTP_Msk = (0x1 << PTP_Pos),
1428 PTP_ENABLED = (0x1 << PTP_Pos),
1429 PTP_DISABLED = (0x0 << PTP_Pos),
1433namespace PTP_DOMAIN_VERSION {
1436 DOMAIN_Msk = (0xFF << DOMAIN_Pos),
1438 VERSION_Msk = (0xF << VERSION_Pos),
1441 inline uint32_t DOMAIN(uint32_t _x)
1442 {
return (((_x) << DOMAIN_Pos) & DOMAIN_Msk); }
1443 inline uint32_t VERSION(uint32_t _x)
1444 {
return (((_x) << VERSION_Pos) & VERSION_Msk); }
1447namespace PTP_UNIT_INDEX {
1450 TRIG_UNIT_Msk = (0x3 << TRIG_UNIT_Pos),
1451 TIMESTAMP_UNIT_Pos = 8,
1452 TIMESTAMP_UNIT_Msk = (0x1 << TIMESTAMP_UNIT_Pos),
1453 GPIO_INDEX_Pos = 16,
1454 GPIO_INDEX_Msk = (0xFF << GPIO_INDEX_Pos),
1457 inline uint32_t TRIG_UNIT(uint32_t _x)
1458 {
return (((_x) << TRIG_UNIT_Pos) & TRIG_UNIT_Msk); }
1459 inline uint32_t TIMESTAMP_UNIT(uint32_t _x)
1460 {
return (((_x) << TIMESTAMP_UNIT_Pos) & TIMESTAMP_UNIT_Msk); }
1461 inline uint32_t GPIO_INDEX(uint32_t _x)
1462 {
return (((_x) << GPIO_INDEX_Pos) & GPIO_INDEX_Msk); }
1465namespace PTP_TRIG_STATUS {
1468 DONE_Msk = (0x7 << DONE_Pos),
1470 ERROR_Msk = (0x7 << ERROR_Pos),
1473 inline uint32_t DONE(uint32_t _x)
1474 {
return (((_x) << DONE_Pos) & DONE_Msk); }
1475 inline uint32_t ERROR(uint32_t _x)
1476 {
return (((_x) << ERROR_Pos) & ERROR_Msk); }
1479namespace PTP_INT_STATUS {
1481 TIMESTAMP_IRQ_Pos = 0,
1482 TIMESTAMP_IRQ_Msk = (0x7 << TIMESTAMP_IRQ_Pos),
1484 TRIG_IRQ_Msk = (0x7 << TRIG_IRQ_Pos),
1487 inline uint32_t TIMESTAMP_IRQ(uint32_t _x)
1488 {
return (((_x) << TIMESTAMP_IRQ_Pos) & TIMESTAMP_IRQ_Msk); }
1489 inline uint32_t TRIG_IRQ(uint32_t _x)
1490 {
return (((_x) << TRIG_IRQ_Pos) & TRIG_IRQ_Msk); }
1493namespace PTP_TS_CTRL {
1495 TS_SW_RESET_Pos = 0,
1496 TS_SW_RESET_Msk = (0x1 << TS_SW_RESET_Pos),
1497 TS_SW_RESET = (0x1 << TS_SW_RESET_Pos),
1499 TS_Msk = (0x1 << TS_Pos),
1500 TS_ENABLED = (0x1 << TS_Pos),
1501 TS_DISABLED = (0x0 << TS_Pos),
1503 TRIG_RESET_Msk = (0x1 << TRIG_RESET_Pos),
1504 TRIG_RESET = (0x1 << TRIG_RESET_Pos),
1506 TRIG_Msk = (0x1 << TRIG_Pos),
1507 TRIG_ENABLED = (0x1 << TRIG_Pos),
1508 TRIG_DISABLED = (0x0 << TRIG_Pos),
1509 TRIG_ACTIVE_Pos = 4,
1510 TRIG_ACTIVE_Msk = (0x1 << TRIG_ACTIVE_Pos),
1511 TRIG_ACTIVE_ENABLED = (0x1 << TRIG_ACTIVE_Pos),
1512 TRIG_ACTIVE_DISABLED = (0x0 << TRIG_ACTIVE_Pos),
1514 TS_INT_Msk = (0x1 << TS_INT_Pos),
1515 TS_INT_ENABLED = (0x1 << TS_INT_Pos),
1516 TS_INT_DISABLED = (0x0 << TS_INT_Pos),
1518 GPIO_DIR_Msk = (0x1 << GPIO_DIR_Pos),
1519 GPIO_DIR_TS_INPUT = (0x1 << GPIO_DIR_Pos),
1520 GPIO_DIR_TRIG_OUT = (0x0 << GPIO_DIR_Pos),
1522 GPIO_IN_Msk = (0x1 << GPIO_IN_Pos),
1523 GPIO_OUT_SEL_Pos = 8,
1524 GPIO_OUT_SEL_Msk = (0x1 << GPIO_OUT_SEL_Pos),
1525 GPIO_OUT_SEL_COMB = (0x1 << GPIO_OUT_SEL_Pos),
1526 GPIO_OUT_SEL_FF = (0x0 << GPIO_OUT_SEL_Pos),
1530namespace PTP_TRIG_TARGET_NANO {
1533 NANOSEC_Msk = (0x3FFFFFFF << NANOSEC_Pos),
1536 inline uint32_t NANOSEC(uint32_t _x)
1537 {
return (((_x) << NANOSEC_Pos) & NANOSEC_Msk); }
1540namespace PTP_TRIG_TARGET_SEC {
1543 SEC_Msk = (0xFFFFFFFF << SEC_Pos),
1546 inline uint32_t SEC(uint32_t _x)
1547 {
return (((_x) << SEC_Pos) & SEC_Msk); }
1550namespace PTP_TRIG_CTRL {
1552 TRIG_ITERATION_Pos = 0,
1553 TRIG_ITERATION_Msk = (0xFFFF << TRIG_ITERATION_Pos),
1555 TRIG_GPO_Msk = (0x1 << TRIG_GPO_Pos),
1556 TRIG_GPO_GPIO2 = (0x1 << TRIG_GPO_Pos),
1557 TRIG_GPO_GPIO1 = (0x0 << TRIG_GPO_Pos),
1558 TRIG_EVT_OUT_Pos = 20,
1559 TRIG_EVT_OUT_Msk = (0x7 << TRIG_EVT_OUT_Pos),
1560 TRIG_EVT_OUT_EDGE_NEG = (0x0 << TRIG_EVT_OUT_Pos),
1561 TRIG_EVT_OUT_EDGE_POS = (0x1 << TRIG_EVT_OUT_Pos),
1562 TRIG_EVT_OUT_PULSE_NEG = (0x2 << TRIG_EVT_OUT_Pos),
1563 TRIG_EVT_OUT_PLUSE_POS = (0x3 << TRIG_EVT_OUT_Pos),
1564 TRIG_EVT_OUT_PER_NEG = (0x4 << TRIG_EVT_OUT_Pos),
1565 TRIG_EVT_OUT_PER_POS = (0x5 << TRIG_EVT_OUT_Pos),
1566 TRIG_EVT_OUT_PATTERN = (0x6 << TRIG_EVT_OUT_Pos),
1568 TRIG_EDGE_Msk = (0x1 << TRIG_EDGE_Pos),
1569 TRIG_EDGE_POS = (0x0 << TRIG_EDGE_Pos),
1570 TRIG_EDGE_NEG = (0x1 << TRIG_EDGE_Pos),
1571 TRIG_NOTIFY_Pos = 24,
1572 TRIG_NOTIFY_Msk = (0x1 << TRIG_NOTIFY_Pos),
1573 TRIG_NOTIFY_ENABLED = (0x1 << TRIG_NOTIFY_Pos),
1574 TRIG_NOTIFY_DISABLED = (0x0 << TRIG_NOTIFY_Pos),
1576 TRIG_NOW_Msk = (0x1 << TRIG_NOW_Pos),
1577 TRIG_NOW = (0x1 << TRIG_NOW_Pos),
1578 CASCADE_UPSTREAM_SEL_Pos = 26,
1579 CASCADE_UPSTREAM_SEL_Msk = (0x3 << CASCADE_UPSTREAM_SEL_Pos),
1580 CASCADE_TAIL_Pos = 30,
1581 CASCADE_TAIL_Msk = (0x1 << CASCADE_TAIL_Pos),
1582 CASCADE_TAIL_ENABLED = (0x1 << CASCADE_TAIL_Pos),
1583 CASCADE_TAIL_DISABLED = (0x0 << CASCADE_TAIL_Pos),
1585 CASCADE_Msk = (0x1 << CASCADE_Pos),
1586 CASCADE_ENABLED = (0x1 << CASCADE_Pos),
1587 CASCADE_DISABLED = (0x0 << CASCADE_Pos),
1590 inline uint32_t TRIG_ITERATION(uint32_t _x)
1591 {
return (((_x) << TRIG_ITERATION_Pos) & TRIG_ITERATION_Msk); }
1592 inline uint32_t CASCADE_UPSTREAM_SEL(uint32_t _x)
1593 {
return (((_x) << CASCADE_UPSTREAM_SEL_Pos) & CASCADE_UPSTREAM_SEL_Msk); }
1596namespace PTP_TRIG_CYC_WIDTH {
1599 WIDTH_Msk = (0xFFFFFFFF << WIDTH_Pos),
1602 inline uint32_t WIDTH(uint32_t _x)
1603 {
return (((_x) << WIDTH_Pos) & WIDTH_Msk); }
1606namespace PTP_TRIG_CYC_CNT {
1608 BIT_PATTERN_Pos = 0,
1609 BIT_PATTERN_Msk = (0xFFFF << BIT_PATTERN_Pos),
1611 CYCLE_CNT_Msk = (0xFFFF << CYCLE_CNT_Pos),
1614 inline uint32_t BIT_PATTERN(uint32_t _x)
1615 {
return (((_x) << BIT_PATTERN_Pos) & BIT_PATTERN_Msk); }
1616 inline uint32_t CYCLE_CNT(uint32_t _x)
1617 {
return (((_x) << CYCLE_CNT_Pos) & CYCLE_CNT_Msk); }
1620namespace PTP_TRIG_ITER_TIME {
1623 NANOSEC_Msk = (0xFFFFFFFF << NANOSEC_Pos),
1626 inline uint32_t NANOSEC(uint32_t _x)
1627 {
return (((_x) << NANOSEC_Pos) & NANOSEC_Msk); }
1630namespace PTP_TRIG_PULSE {
1633 OUT_WIDTH_Msk = (0xFFFF << OUT_WIDTH_Pos),
1634 PPS_WIDTH_HI_Pos = 16,
1635 PPS_WIDTH_HI_Msk = (0xFF << PPS_WIDTH_HI_Pos),
1638 inline uint32_t OUT_WIDTH(uint32_t _x)
1639 {
return (((_x) << OUT_WIDTH_Pos) & OUT_WIDTH_Msk); }
1640 inline uint32_t PPS_WIDTH_HI(uint32_t _x)
1641 {
return (((_x) << PPS_WIDTH_HI_Pos) & PPS_WIDTH_HI_Msk); }
1644namespace PTP_TS_STAT_CTRL {
1647 TS_CASCADE_Msk = (0x1 << TS_CASCADE_Pos),
1648 TS_CASCADE_ENABLED = (0x1 << TS_CASCADE_Pos),
1649 TS_CASCADE_DISABLED = (0x0 << TS_CASCADE_Pos),
1650 TS_CASCADE_UPS_Pos = 1,
1651 TS_CASCADE_UPS_Msk = (0x1 << TS_CASCADE_UPS_Pos),
1652 TS_CASCADE_UPS_TS_1 = (0x1 << TS_CASCADE_UPS_Pos),
1653 TS_CASCADE_UPS_TS_0 = (0x0 << TS_CASCADE_UPS_Pos),
1654 TS_CASCADE_TAIL_Pos = 5,
1655 TS_CASCADE_TAIL_Msk = (0x1 << TS_CASCADE_TAIL_Pos),
1656 TS_CASCADE_TAIL_ENABLED = (0x1 << TS_CASCADE_TAIL_Pos),
1657 TS_CASCADE_TAIL_DISABLED = (0x0 << TS_CASCADE_TAIL_Pos),
1658 TS_DETECT_NEG_Pos = 6,
1659 TS_DETECT_NEG_Msk = (0x1 << TS_DETECT_NEG_Pos),
1660 TS_DETECT_NEG_ENABLED = (0x1 << TS_DETECT_NEG_Pos),
1661 TS_DETECT_NEG_DISABLED = (0x0 << TS_DETECT_NEG_Pos),
1662 TS_DETECT_POS_Pos = 7,
1663 TS_DETECT_POS_Msk = (0x1 << TS_DETECT_POS_Pos),
1664 TS_DETECT_POS_ENABLED = (0x1 << TS_DETECT_POS_Pos),
1665 TS_DETECT_POS_DISABLED = (0x0 << TS_DETECT_POS_Pos),
1666 TS_EVT_OVERFLOW_Pos = 16,
1667 TS_EVT_OVERFLOW_Msk = (0x1 << TS_EVT_OVERFLOW_Pos),
1668 TS_EVT_OVERFLOW_ENABLED = (0x1 << TS_EVT_OVERFLOW_Pos),
1669 TS_EVT_OVERFLOW_DISABLED = (0x0 << TS_EVT_OVERFLOW_Pos),
1670 TS_EVT_CNT_Pos = 17,
1671 TS_EVT_CNT_Msk = (0xF << TS_EVT_CNT_Pos),
1675namespace PTP_TS_EVT_0_NANO {
1678 NANOSEC_Msk = (0x3FFFFFFF << NANOSEC_Pos),
1680 EVT_EDGE_Msk = (0x1 << EVT_EDGE_Pos),
1681 EVT_EDGE_POS = (0x1 << EVT_EDGE_Pos),
1682 EVT_EDGE_NEG = (0x1 << EVT_EDGE_Pos),
1686namespace PTP_TS_EVT_0_SEC {
1689 SEC_Msk = (0xFFFFFFFF << SEC_Pos),
1693namespace PTP_TS_EVT_0_PHASE {
1696 PHASE_Msk = (0x7 << PHASE_Pos),
1700namespace PTP_TS_EVT_1_NANO {
1703 NANOSEC_Msk = (0x3FFFFFFF << NANOSEC_Pos),
1705 EVT_EDGE_Msk = (0x1 << EVT_EDGE_Pos),
1706 EVT_EDGE_POS = (0x1 << EVT_EDGE_Pos),
1707 EVT_EDGE_NEG = (0x1 << EVT_EDGE_Pos),
1711namespace PTP_TS_EVT_1_SEC {
1714 SEC_Msk = (0xFFFFFFFF << SEC_Pos),
1718namespace PTP_TS_EVT_1_PHASE {
1721 PHASE_Msk = (0x7 << PHASE_Pos),
1725namespace PTP_TS_EVT_2_NANO {
1728 NANOSEC_Msk = (0x3FFFFFFF << NANOSEC_Pos),
1730 EVT_EDGE_Msk = (0x1 << EVT_EDGE_Pos),
1731 EVT_EDGE_POS = (0x1 << EVT_EDGE_Pos),
1732 EVT_EDGE_NEG = (0x1 << EVT_EDGE_Pos),
1736namespace PTP_TS_EVT_2_SEC {
1739 SEC_Msk = (0xFFFFFFFF << SEC_Pos),
1743namespace PTP_TS_EVT_2_PHASE {
1746 PHASE_Msk = (0x7 << PHASE_Pos),
1750namespace PTP_TS_EVT_3_NANO {
1753 NANOSEC_Msk = (0x3FFFFFFF << NANOSEC_Pos),
1755 EVT_EDGE_Msk = (0x1 << EVT_EDGE_Pos),
1756 EVT_EDGE_POS = (0x1 << EVT_EDGE_Pos),
1757 EVT_EDGE_NEG = (0x1 << EVT_EDGE_Pos),
1761namespace PTP_TS_EVT_3_SEC {
1764 SEC_Msk = (0xFFFFFFFF << SEC_Pos),
1768namespace PTP_TS_EVT_3_PHASE {
1771 PHASE_Msk = (0x7 << PHASE_Pos),
1775namespace PTP_TS_EVT_4_NANO {
1778 NANOSEC_Msk = (0x3FFFFFFF << NANOSEC_Pos),
1780 EVT_EDGE_Msk = (0x1 << EVT_EDGE_Pos),
1781 EVT_EDGE_POS = (0x1 << EVT_EDGE_Pos),
1782 EVT_EDGE_NEG = (0x1 << EVT_EDGE_Pos),
1786namespace PTP_TS_EVT_4_SEC {
1789 SEC_Msk = (0xFFFFFFFF << SEC_Pos),
1793namespace PTP_TS_EVT_4_PHASE {
1796 PHASE_Msk = (0x7 << PHASE_Pos),
1800namespace PTP_TS_EVT_5_NANO {
1803 NANOSEC_Msk = (0x3FFFFFFF << NANOSEC_Pos),
1805 EVT_EDGE_Msk = (0x1 << EVT_EDGE_Pos),
1806 EVT_EDGE_POS = (0x1 << EVT_EDGE_Pos),
1807 EVT_EDGE_NEG = (0x1 << EVT_EDGE_Pos),
1811namespace PTP_TS_EVT_5_SEC {
1814 SEC_Msk = (0xFFFFFFFF << SEC_Pos),
1818namespace PTP_TS_EVT_5_PHASE {
1821 PHASE_Msk = (0x7 << PHASE_Pos),
1825namespace PTP_TS_EVT_6_NANO {
1828 NANOSEC_Msk = (0x3FFFFFFF << NANOSEC_Pos),
1830 EVT_EDGE_Msk = (0x1 << EVT_EDGE_Pos),
1831 EVT_EDGE_POS = (0x1 << EVT_EDGE_Pos),
1832 EVT_EDGE_NEG = (0x1 << EVT_EDGE_Pos),
1836namespace PTP_TS_EVT_6_SEC {
1839 SEC_Msk = (0xFFFFFFFF << SEC_Pos),
1843namespace PTP_TS_EVT_6_PHASE {
1846 PHASE_Msk = (0x7 << PHASE_Pos),
1850namespace PTP_TS_EVT_7_NANO {
1853 NANOSEC_Msk = (0x3FFFFFFF << NANOSEC_Pos),
1855 EVT_EDGE_Msk = (0x1 << EVT_EDGE_Pos),
1856 EVT_EDGE_POS = (0x1 << EVT_EDGE_Pos),
1857 EVT_EDGE_NEG = (0x1 << EVT_EDGE_Pos),
1861namespace PTP_TS_EVT_7_SEC {
1864 SEC_Msk = (0xFFFFFFFF << SEC_Pos),
1868namespace PTP_TS_EVT_7_PHASE {
1871 PHASE_Msk = (0x7 << PHASE_Pos),
1876namespace PORT_DEFAULT_VID {
1879 VID_Msk = (0xFFF << VID_Pos),
1881 DEI_Msk = (0x1 << DEI_Pos),
1883 PCP_Msk = (0x7 << PCP_Pos),
1886 inline uint32_t VID(uint32_t _x)
1887 {
return (((_x) << VID_Pos) & VID_Msk); }
1888 inline uint32_t DEI(uint32_t _x)
1889 {
return (((_x) << DEI_Pos) & DEI_Msk); }
1890 inline uint32_t PCP(uint32_t _x)
1891 {
return (((_x) << PCP_Pos) & PCP_Msk); }
1894namespace PORT_CUSTOM_VID {
1897 VID_Msk = (0xFFF << VID_Pos),
1899 DEI_Msk = (0x1 << DEI_Pos),
1901 PCP_Msk = (0x7 << PCP_Pos),
1904 inline uint32_t VID(uint32_t _x)
1905 {
return (((_x) << VID_Pos) & VID_Msk); }
1906 inline uint32_t DEI(uint32_t _x)
1907 {
return (((_x) << DEI_Pos) & DEI_Msk); }
1908 inline uint32_t PCP(uint32_t _x)
1909 {
return (((_x) << PCP_Pos) & PCP_Msk); }
1912namespace PORT_AVB_SR_1_VID {
1915 VID_Msk = (0xFFF << VID_Pos),
1917 CFI_Msk = (0x1 << CFI_Pos),
1919 PRIO_Msk = (0x7 << PRIO_Pos),
1922 inline uint32_t VID(uint32_t _x)
1923 {
return (((_x) << VID_Pos) & VID_Msk); }
1924 inline uint32_t CFI(uint32_t _x)
1925 {
return (((_x) << CFI_Pos) & CFI_Msk); }
1926 inline uint32_t PRIO(uint32_t _x)
1927 {
return (((_x) << PRIO_Pos) & PRIO_Msk); }
1930namespace PORT_AVB_SR_2_VID {
1933 VID_Msk = (0xFFF << VID_Pos),
1935 CFI_Msk = (0x1 << CFI_Pos),
1937 PRIO_Msk = (0x7 << PRIO_Pos),
1940 inline uint32_t VID(uint32_t _x)
1941 {
return (((_x) << VID_Pos) & VID_Msk); }
1942 inline uint32_t CFI(uint32_t _x)
1943 {
return (((_x) << CFI_Pos) & CFI_Msk); }
1944 inline uint32_t PRIO(uint32_t _x)
1945 {
return (((_x) << PRIO_Pos) & PRIO_Msk); }
1948namespace PORT_WOL_STATUS {
1950 ENERGY_DETECTED_Pos = 0,
1951 ENERGY_DETECTED_Msk = (0x1 << ENERGY_DETECTED_Pos),
1952 ENERGY_DETECTED = (0x1 << ENERGY_DETECTED_Pos),
1953 LINK_DETECTED_Pos = 1,
1954 LINK_DETECTED_Msk = (0x1 << LINK_DETECTED_Pos),
1955 LINK_DETECTED = (0x1 << LINK_DETECTED_Pos),
1956 MAGIC_PKT_DETECTED_Pos = 2,
1957 MAGIC_PKT_DETECTED_Msk = (0x1 << MAGIC_PKT_DETECTED_Pos),
1958 MAGIC_PKT_DETECTED = (0x1 << MAGIC_PKT_DETECTED_Pos),
1962namespace PORT_WOL_MASK {
1965 ENERGY_Msk = (0x1 << ENERGY_Pos),
1966 ENERGY_ENABLED = (0x1 << ENERGY_Pos),
1967 ENERGY_DISABLED = (0x0 << ENERGY_Pos),
1969 LINK_Msk = (0x1 << LINK_Pos),
1970 LINK_ENABLED = (0x1 << LINK_Pos),
1971 LINK_DISABLED = (0x0 << LINK_Pos),
1973 MAGIC_PKT_Msk = (0x1 << MAGIC_PKT_Pos),
1974 MAGIC_PKT_ENABLED = (0x1 << MAGIC_PKT_Pos),
1975 MAGIC_PKT_DISABLED = (0x0 << MAGIC_PKT_Pos),
1979namespace PORT_INT_STATUS {
1982 ACL_INT_Msk = (0x1 << ACL_INT_Pos),
1983 ACL_INT = (0x1 << ACL_INT_Pos),
1985 PHY_INT_Msk = (0x1 << PHY_INT_Pos),
1986 PHY_INT = (0x1 << PHY_INT_Pos),
1988 PTP_INT_Msk = (0x1 << PTP_INT_Pos),
1989 PTP_INT = (0x1 << PTP_INT_Pos),
1991 SGMII_INT_Msk = (0x1 << SGMII_INT_Pos),
1992 SGMII_INT = (0x1 << SGMII_INT_Pos),
1996namespace PORT_INT_MASK {
1999 ACL_INT_Msk = (0x1 << ACL_INT_Pos),
2000 ACL_INT_ENABLED = (0x1 << ACL_INT_Pos),
2001 ACL_INT_DISABLED = (0x0 << ACL_INT_Pos),
2003 PHY_INT_Msk = (0x1 << PHY_INT_Pos),
2004 PHY_INT_ENABLED = (0x1 << PHY_INT_Pos),
2005 PHY_INT_DISABLED = (0x0 << PHY_INT_Pos),
2007 PTP_INT_Msk = (0x1 << PTP_INT_Pos),
2008 PTP_INT_ENABLED = (0x1 << PTP_INT_Pos),
2009 PTP_INT_DISABLED = (0x0 << PTP_INT_Pos),
2011 SGMII_INT_Msk = (0x1 << SGMII_INT_Pos),
2012 SGMII_INT_ENABLED = (0x1 << SGMII_INT_Pos),
2013 SGMII_INT_DISABLED = (0x0 << SGMII_INT_Pos),
2017namespace PORT_CTRL {
2019 SRP_ENABLE_Pos = 16,
2020 SRP_ENABLE_Msk = (0x3 << SRP_ENABLE_Pos),
2021 SRP_ENABLE_NONE = (0x0 << SRP_ENABLE_Pos),
2022 SRP_ENABLE_SRP_1 = (0x1 << SRP_ENABLE_Pos),
2023 SRP_ENABLE_SRP_2 = (0x2 << SRP_ENABLE_Pos),
2024 QUEUE_SPLIT_Pos = 24,
2025 QUEUE_SPLIT_Msk = (0x3 << QUEUE_SPLIT_Pos),
2026 QUEUE_SPLIT_SINGLE = (0x0 << QUEUE_SPLIT_Pos),
2027 QUEUE_SPLIT_DUAL = (0x1 << QUEUE_SPLIT_Pos),
2028 QUEUE_SPLIT_QUAD = (0x2 << QUEUE_SPLIT_Pos),
2030 TAIL_TAG_Msk = (0x1 << TAIL_TAG_Pos),
2031 TAIL_TAG_DISABLED = (0x0 << TAIL_TAG_Pos),
2032 TAIL_TAG_ENABLED = (0x1 << TAIL_TAG_Pos),
2033 REMOTE_LOOPBACK_Pos = 30,
2034 REMOTE_LOOPBACK_Msk = (0x1 << REMOTE_LOOPBACK_Pos),
2035 REMOTE_LOOPBACK_DISABLED = (0x0 << REMOTE_LOOPBACK_Pos),
2036 REMOTE_LOOPBACK_ENABLED = (0x1 << REMOTE_LOOPBACK_Pos),
2037 LOCAL_LOOPBACK_Pos = 31,
2038 LOCAL_LOOPBACK_Msk = (0x1 << LOCAL_LOOPBACK_Pos),
2039 LOCAL_LOOPBACK_DISABLED = (0x0 << LOCAL_LOOPBACK_Pos),
2040 LOCAL_LOOPBACK_ENABLED = (0x1 << LOCAL_LOOPBACK_Pos),
2044namespace PORT_STATUS {
2046 RX_FLOW_CTRL_Pos = 24,
2047 RX_FLOW_CTRL_Msk = (0x1 << RX_FLOW_CTRL_Pos),
2048 RX_FLOW_CTRL_DISABLED = (0x0 << RX_FLOW_CTRL_Pos),
2049 RX_FLOW_CTRL_ENABLED = (0x1 << RX_FLOW_CTRL_Pos),
2050 TX_FLOW_CTRL_Pos = 25,
2051 TX_FLOW_CTRL_Msk = (0x3 << TX_FLOW_CTRL_Pos),
2052 TX_FLOW_CTRL_DISABLED = (0x0 << TX_FLOW_CTRL_Pos),
2053 TX_FLOW_CTRL_ENABLED = (0x1 << TX_FLOW_CTRL_Pos),
2055 DUPLEX_Msk = (0x3 << DUPLEX_Pos),
2056 DUPLEX_HALF = (0x0 << DUPLEX_Pos),
2057 DUPLEX_FULL = (0x1 << DUPLEX_Pos),
2059 SPEED_Msk = (0x3 << SPEED_Pos),
2060 SPEED_10M = (0x0 << SPEED_Pos),
2061 SPEED_100M = (0x1 << SPEED_Pos),
2062 SPEED_1000M = (0x2 << SPEED_Pos),
2067namespace PHY_BASIC_CTL {
2069 PHY_SPEED_100M_Pos = 6,
2070 PHY_SPEED_100M_Msk = (0x1 << PHY_SPEED_100M_Pos),
2071 PHY_SPEED_100M_10M = (0x0 << PHY_SPEED_100M_Pos),
2072 PHY_SPEED_100M_100M = (0x1 << PHY_SPEED_100M_Pos),
2073 PHY_SPEED_100M_1000M = (0x0 << PHY_SPEED_100M_Pos),
2075 COL_TEST_Msk = (0x1 << COL_TEST_Pos),
2076 COL_TEST_DISABLED = (0x0 << COL_TEST_Pos),
2077 COL_TEST_ENABLED = (0x1 << COL_TEST_Pos),
2079 DUPLEX_Msk = (0x1 << DUPLEX_Pos),
2080 DUPLEX_HALF = (0x0 << DUPLEX_Pos),
2081 DUPLEX_FULl = (0x1 << DUPLEX_Pos),
2082 RESTART_AUTONEG_Pos = 9,
2083 RESTART_AUTONEG_Msk = (0x1 << RESTART_AUTONEG_Pos),
2084 RESTART_AUTONEG = (0x1 << RESTART_AUTONEG_Pos),
2086 ISOLATE_Msk = (0x1 << ISOLATE_Pos),
2087 ISOLATE_DISABLED = (0x0 << ISOLATE_Pos),
2088 ISOLATE_ENABLED = (0x1 << ISOLATE_Pos),
2089 POWER_DOWN_Pos = 11,
2090 POWER_DOWN_Msk = (0x1 << POWER_DOWN_Pos),
2091 POWER_DOWN_DISABLED = (0x0 << POWER_DOWN_Pos),
2092 POWER_DOWN_ENABLED = (0x1 << POWER_DOWN_Pos),
2094 AUTONEG_Msk = (0x1 << AUTONEG_Pos),
2095 AUTONEG_DISABLED = (0x0 << AUTONEG_Pos),
2096 AUTONEG_ENABLED = (0x1 << AUTONEG_Pos),
2097 PHY_SPEED_1000M_Pos = 13,
2098 PHY_SPEED_1000M_Msk = (0x1 << PHY_SPEED_1000M_Pos),
2099 PHY_SPEED_1000M_10M = (0x0 << PHY_SPEED_1000M_Pos),
2100 PHY_SPEED_1000M_100M = (0x0 << PHY_SPEED_1000M_Pos),
2101 PHY_SPEED_1000M_1000M = (0x1 << PHY_SPEED_1000M_Pos),
2102 LOCAL_LOOPBACK_Pos = 14,
2103 LOCAL_LOOPBACK_Msk = (0x1 << LOCAL_LOOPBACK_Pos),
2104 LOCAL_LOOPBACK_DISABLED = (0x0 << LOCAL_LOOPBACK_Pos),
2105 LOCAL_LOOPBACK_ENABLED = (0x1 << LOCAL_LOOPBACK_Pos),
2107 PHY_RESET_Msk = (0x1 << PHY_RESET_Pos),
2108 PHY_RESET = (0x1 << PHY_RESET_Pos),
2112namespace PHY_BASIC_ST {
2115 CAPABILITY_Msk = (0x1 << CAPABILITY_Pos),
2116 CAPABILITY_BASIC = (0x0 << CAPABILITY_Pos),
2117 CAPABILITY_EXTENDED = (0x1 << CAPABILITY_Pos),
2119 JABBER_Msk = (0x1 << JABBER_Pos),
2120 JABBER_NONE = (0x0 << JABBER_Pos),
2121 JABBER_DETECTED = (0x1 << JABBER_Pos),
2122 LINK_STATUS_Pos = 2,
2123 LINK_STATUS_Msk = (0x1 << LINK_STATUS_Pos),
2124 LINK_STATUS_DOWN = (0x0 << LINK_STATUS_Pos),
2125 LINK_STATUS_UP = (0x1 << LINK_STATUS_Pos),
2126 AUTONEG_CAPABLE_Pos = 3,
2127 AUTONEG_CAPABLE_Msk = (0x1 << AUTONEG_CAPABLE_Pos),
2128 AUTONEG_CAPABLE_NOT_CAPABLE = (0x0 << AUTONEG_CAPABLE_Pos),
2129 AUTONEG_CAPABLE_CAPABLE = (0x1 << AUTONEG_CAPABLE_Pos),
2130 REMOTE_FAULT_Pos = 4,
2131 REMOTE_FAULT_Msk = (0x1 << REMOTE_FAULT_Pos),
2132 REMOTE_FAULT_NONE = (0x0 << REMOTE_FAULT_Pos),
2133 REMOTE_FAULT_DETECTED = (0x1 << REMOTE_FAULT_Pos),
2134 AUTONEG_STATUS_Pos = 5,
2135 AUTONEG_STATUS_Msk = (0x1 << AUTONEG_STATUS_Pos),
2136 AUTONEG_STATUS_NOT_COMPLETE = (0x0 << AUTONEG_STATUS_Pos),
2137 AUTONEG_STATUS_COMPLETE = (0x1 << AUTONEG_STATUS_Pos),
2138 MF_PREAMBLE_SUPRESS_Pos = 6,
2139 MF_PREAMBLE_SUPRESS_Msk = (0x1 << MF_PREAMBLE_SUPRESS_Pos),
2140 MF_PREAMBLE_SUPRESS_NOT_SUPPORTED = (0x0 << MF_PREAMBLE_SUPRESS_Pos),
2141 MF_PREAMBLE_SUPRESS_SUPPORTED = (0x1 << MF_PREAMBLE_SUPRESS_Pos),
2143 EXT_STATUS_Msk = (0x1 << EXT_STATUS_Pos),
2144 EXT_STATUS_NOT_PRESENT = (0x0 << EXT_STATUS_Pos),
2145 EXT_STATUS_PRESENT = (0x1 << EXT_STATUS_Pos),
2147 _100BT_HD_Msk = (0x1 << _100BT_HD_Pos),
2148 _100BT_HD_NOT_SUPPORTED = (0x0 << _100BT_HD_Pos),
2149 _100BT_HD_SUPPORTED = (0x1 << _100BT_HD_Pos),
2151 _10BT_FD_Msk = (0x1 << _10BT_FD_Pos),
2152 _10BT_FD_NOT_SUPPORTED = (0x0 << _10BT_FD_Pos),
2153 _10BT_FD_SUPPORTED = (0x1 << _10BT_FD_Pos),
2154 _100BTX_HD_Pos = 13,
2155 _100BTX_HD_Msk = (0x1 << _100BTX_HD_Pos),
2156 _100BTX_HD_NOT_SUPPORTED = (0x0 << _100BTX_HD_Pos),
2157 _100BTX_HD_SUPPORTED = (0x1 << _100BTX_HD_Pos),
2158 _100BTX_FD_Pos = 14,
2159 _100BTX_FD_Msk = (0x1 << _100BTX_FD_Pos),
2160 _100BTX_FD_NOT_SUPPORTED = (0x0 << _100BTX_FD_Pos),
2161 _100BTX_FD_SUPPORTED = (0x1 << _100BTX_FD_Pos),
2163 _100BT4_Msk = (0x1 << _100BT4_Pos),
2164 _100BT4_NOT_SUPPORTED = (0x0 << _100BT4_Pos),
2165 _100BT4_SUPPORTED = (0x1 << _100BT4_Pos),
2169namespace PHY_A_NEG_ADVERT {
2172 SELECTOR_Msk = (0x1F << SELECTOR_Pos),
2174 _10BT_HD_Msk = (0x1 << _10BT_HD_Pos),
2175 _10BT_HD_NOT_ALLOWED = (0x0 << _10BT_HD_Pos),
2176 _10BT_HD_ALLOWED = (0x1 << _10BT_HD_Pos),
2178 _10BT_FD_Msk = (0x1 << _10BT_FD_Pos),
2179 _10BT_FD_NOT_ALLOWED = (0x0 << _10BT_FD_Pos),
2180 _10BT_FD_ALLOWED = (0x1 << _10BT_FD_Pos),
2182 _100BTX_HD_Msk = (0x1 << _100BTX_HD_Pos),
2183 _100BTX_HD_NOT_ALLOWED = (0x0 << _100BTX_HD_Pos),
2184 _100BTX_HD_ALLOWED = (0x1 << _100BTX_HD_Pos),
2186 _100BTX_FD_Msk = (0x1 << _100BTX_FD_Pos),
2187 _100BTX_FD_NOT_ALLOWED = (0x0 << _100BTX_FD_Pos),
2188 _100BTX_FD_ALLOWED = (0x1 << _100BTX_FD_Pos),
2190 _100BT4_Msk = (0x1 << _100BT4_Pos),
2191 _100BT4_NOT_ALLOWED = (0x0 << _100BT4_Pos),
2192 _100BT4_ALLOWED = (0x1 << _100BT4_Pos),
2194 SYM_PAUSE_Msk = (0x1 << SYM_PAUSE_Pos),
2195 SYM_PAUSE_NOT_ALLOWED = (0x0 << SYM_PAUSE_Pos),
2196 SYM_PAUSE_ALLOWED = (0x1 << SYM_PAUSE_Pos),
2197 ASYM_PAUSE_Pos = 11,
2198 ASYM_PAUSE_Msk = (0x1 << ASYM_PAUSE_Pos),
2199 ASYM_PAUSE_NOT_ALLOWED = (0x0 << ASYM_PAUSE_Pos),
2200 ASYM_PAUSE_ALLOWED = (0x1 << ASYM_PAUSE_Pos),
2201 REMOTE_FAULT_Pos = 13,
2202 REMOTE_FAULT_Msk = (0x1 << REMOTE_FAULT_Pos),
2203 REMOTE_FAULT_NOT_CAPABLE = (0x0 << REMOTE_FAULT_Pos),
2204 REMOTE_FAULT_CAPABLE = (0x1 << REMOTE_FAULT_Pos),
2206 NEXT_PAGE_Msk = (0x1 << NEXT_PAGE_Pos),
2207 NEXT_PAGE_NOT_CAPABLE = (0x0 << NEXT_PAGE_Pos),
2208 NEXT_PAGE_CAPABLE = (0x1 << NEXT_PAGE_Pos),
2211 inline uint32_t SELECTOR(uint32_t _x)
2212 {
return (((_x) << SELECTOR_Pos) & SELECTOR_Msk); }
2215namespace PHY_A_NEG_LPA {
2218 SELECTOR_Msk = (0x1F << SELECTOR_Pos),
2220 _10BT_HD_Msk = (0x1 << _10BT_HD_Pos),
2221 _10BT_HD_NOT_ALLOWED = (0x0 << _10BT_HD_Pos),
2222 _10BT_HD_ALLOWED = (0x1 << _10BT_HD_Pos),
2224 _10BT_FD_Msk = (0x1 << _10BT_FD_Pos),
2225 _10BT_FD_NOT_ALLOWED = (0x0 << _10BT_FD_Pos),
2226 _10BT_FD_ALLOWED = (0x1 << _10BT_FD_Pos),
2228 _100BTX_HD_Msk = (0x1 << _100BTX_HD_Pos),
2229 _100BTX_HD_NOT_ALLOWED = (0x0 << _100BTX_HD_Pos),
2230 _100BTX_HD_ALLOWED = (0x1 << _100BTX_HD_Pos),
2232 _100BTX_FD_Msk = (0x1 << _100BTX_FD_Pos),
2233 _100BTX_FD_NOT_ALLOWED = (0x0 << _100BTX_FD_Pos),
2234 _100BTX_FD_ALLOWED = (0x1 << _100BTX_FD_Pos),
2236 _100BT4_Msk = (0x1 << _100BT4_Pos),
2237 _100BT4_NOT_ALLOWED = (0x0 << _100BT4_Pos),
2238 _100BT4_ALLOWED = (0x1 << _100BT4_Pos),
2240 SYM_PAUSE_Msk = (0x1 << SYM_PAUSE_Pos),
2241 SYM_PAUSE_NOT_ALLOWED = (0x0 << SYM_PAUSE_Pos),
2242 SYM_PAUSE_ALLOWED = (0x1 << SYM_PAUSE_Pos),
2243 ASYM_PAUSE_Pos = 11,
2244 ASYM_PAUSE_Msk = (0x1 << ASYM_PAUSE_Pos),
2245 ASYM_PAUSE_NOT_ALLOWED = (0x0 << ASYM_PAUSE_Pos),
2246 ASYM_PAUSE_ALLOWED = (0x1 << ASYM_PAUSE_Pos),
2247 REMOTE_FAULT_Pos = 13,
2248 REMOTE_FAULT_Msk = (0x1 << REMOTE_FAULT_Pos),
2249 REMOTE_FAULT_NONE = (0x0 << REMOTE_FAULT_Pos),
2250 REMOTE_FAULT_DETECTED = (0x1 << REMOTE_FAULT_Pos),
2251 REMOTE_ACKNOWLEDGE_Pos = 14,
2252 REMOTE_ACKNOWLEDGE_Msk = (0x1 << REMOTE_FAULT_Pos),
2253 REMOTE_ACKNOWLEDGE_NONE = (0x0 << REMOTE_FAULT_Pos),
2254 REMOTE_ACKNOWLEDGE_ACKED = (0x1 << REMOTE_FAULT_Pos),
2256 NEXT_PAGE_Msk = (0x1F << NEXT_PAGE_Pos),
2257 NEXT_PAGE_NOT_CAPABLE = (0x0 << NEXT_PAGE_Pos),
2258 NEXT_PAGE_CAPABLE = (0x1 << NEXT_PAGE_Pos),
2261 inline uint32_t SELECTOR(uint32_t _x)
2262 {
return (((_x) << SELECTOR_Pos) & SELECTOR_Msk); }
2265namespace PHY_A_NEG_EXP {
2268 LP_A_NEG_Msk = (0x1 << LP_A_NEG_Pos),
2269 LP_A_NEG_NOT_CAPABLE = (0x0 << LP_A_NEG_Pos) & LP_A_NEG_Msk,
2270 LP_A_NEG_CAPABLE = (0x1 << LP_A_NEG_Pos) & LP_A_NEG_Msk,
2272 PAGE_RX_Msk = (0x1 << PAGE_RX_Pos),
2273 PAGE_RX_WAITING = (0x0 << PAGE_RX_Pos) & PAGE_RX_Msk,
2274 PAGE_RX_RXED = (0x1 << PAGE_RX_Pos) & PAGE_RX_Msk,
2275 LOCAL_NEXT_PAGE_Pos = 2,
2276 LOCAL_NEXT_PAGE_Msk = (0x1 << LOCAL_NEXT_PAGE_Pos),
2277 LOCAL_NEXT_PAGE_NOT_CAPABLE = (0x0 << LOCAL_NEXT_PAGE_Pos) & LOCAL_NEXT_PAGE_Msk,
2278 LOCAL_NEXT_PAGE_CAPABLE = (0x1 << LOCAL_NEXT_PAGE_Pos) & LOCAL_NEXT_PAGE_Msk,
2279 LPA_NEXT_PAGE_Pos = 3,
2280 LPA_NEXT_PAGE_Msk = (0x1 << LPA_NEXT_PAGE_Pos),
2281 LPA_NEXT_PAGE_NOT_CAPABLE = (0x0 << LPA_NEXT_PAGE_Pos) & LPA_NEXT_PAGE_Msk,
2282 LPA_NEXT_PAGE_CAPABLE = (0x1 << LPA_NEXT_PAGE_Pos) & LPA_NEXT_PAGE_Msk,
2283 PARALLEL_FAULT_Pos = 0,
2284 PARALLEL_FAULT_Msk = (0x1 << PARALLEL_FAULT_Pos),
2285 PARALLEL_FAULT_NONE = (0x0 << PARALLEL_FAULT_Pos) & PARALLEL_FAULT_Msk,
2286 PARALLEL_FAULT_DETECTED = (0x1 << PARALLEL_FAULT_Pos) & PARALLEL_FAULT_Msk,
2290namespace PHY_A_NEG_NEXT_PG {
2293 MESSAGE_Msk = (0x7FF << MESSAGE_Pos),
2295 TOGGLE_Msk = (0x1 << TOGGLE_Pos),
2296 ACKNOWLEDGE2_Pos = 12,
2297 ACKNOWLEDGE2_Msk = (0x1 << ACKNOWLEDGE2_Pos),
2298 ACKNOWLEDGE2_NACK = (0x0 << ACKNOWLEDGE2_Pos),
2299 ACKNOWLEDGE2_ACK = (0x1 << ACKNOWLEDGE2_Pos),
2301 PAGE_TYPE_Msk = (0x1 << PAGE_TYPE_Pos),
2302 PAGE_TYPE_UNFORMATTED = (0x0 << PAGE_TYPE_Pos),
2303 PAGE_TYPE_MESSAGE = (0x1 << PAGE_TYPE_Pos),
2305 NEXT_PAGE_Msk = (0x1 << NEXT_PAGE_Pos),
2306 NEXT_PAGE_LAST = (0x0 << NEXT_PAGE_Pos),
2307 NEXT_PAGE_MORE_FOLLOW = (0x1 << NEXT_PAGE_Pos),
2310 inline uint32_t MESSAGE(uint32_t _x)
2311 {
return (((_x) << MESSAGE_Pos) & MESSAGE_Msk); }
2312 inline uint32_t TOGGLE(uint32_t _x)
2313 {
return (((_x) << TOGGLE_Pos) & TOGGLE_Msk); }
2316namespace PHY_LP_NEXT_PG_ABIL {
2319 MESSAGE_Msk = (0x7FF << MESSAGE_Pos),
2321 TOGGLE_Msk = (0x1 << TOGGLE_Pos),
2322 ACKNOWLEDGE2_Pos = 12,
2323 ACKNOWLEDGE2_Msk = (0x1 << ACKNOWLEDGE2_Pos),
2324 ACKNOWLEDGE2_NACK = (0x0 << ACKNOWLEDGE2_Pos),
2325 ACKNOWLEDGE2_ACK = (0x1 << ACKNOWLEDGE2_Pos),
2327 PAGE_TYPE_Msk = (0x1 << PAGE_TYPE_Pos),
2328 PAGE_TYPE_UNFORMATTED = (0x0 << PAGE_TYPE_Pos),
2329 PAGE_TYPE_MESSAGE = (0x1 << PAGE_TYPE_Pos),
2330 ACKNOWLEDGE_Pos = 14,
2331 ACKNOWLEDGE_Msk = (0x1 << ACKNOWLEDGE_Pos),
2332 ACKNOWLEDGE_NACK = (0x0 << ACKNOWLEDGE_Pos),
2333 ACKNOWLEDGE_ACK = (0x1 << ACKNOWLEDGE_Pos),
2335 NEXT_PAGE_Msk = (0x1 << NEXT_PAGE_Pos),
2336 NEXT_PAGE_LAST = (0x0 << NEXT_PAGE_Pos),
2337 NEXT_PAGE_MORE_FOLLOW = (0x1 << NEXT_PAGE_Pos),
2340 inline uint32_t MESSAGE(uint32_t _x)
2341 {
return (((_x) << MESSAGE_Pos) & MESSAGE_Msk); }
2342 inline uint32_t TOGGLE(uint32_t _x)
2343 {
return (((_x) << TOGGLE_Pos) & TOGGLE_Msk); }
2349 _1000BT_HD_Msk = (0x1 << _1000BT_HD_Pos),
2350 _1000BT_HD_NOT_CAPABLE = (0x0 << _1000BT_HD_Pos),
2351 _1000BT_HD_CAPABLE = (0x1 << _1000BT_HD_Pos),
2353 _1000BT_FD_Msk = (0x1 << _1000BT_FD_Pos),
2354 _1000BT_FD_NOT_CAPABLE = (0x0 << _1000BT_FD_Pos),
2355 _1000BT_FD_CAPABLE = (0x1 << _1000BT_FD_Pos),
2356 DEVICE_TYPE_Pos = 10,
2357 DEVICE_TYPE_Msk = (0x1 << DEVICE_TYPE_Pos),
2358 DEVICE_TYPE_SINGLE_PORT = (0x0 << DEVICE_TYPE_Pos),
2359 DEVICE_TYPE_MULTI_PORT = (0x1 << DEVICE_TYPE_Pos),
2360 MANUAL_ROLE_CFG_Pos = 11,
2361 MANUAL_ROLE_CFG_Msk = (0x1 << MANUAL_ROLE_CFG_Pos),
2362 MANUAL_ROLE_CFG_SLAVE = (0x0 << MANUAL_ROLE_CFG_Pos),
2363 MANUAL_ROLE_CFG_MASTER = (0x1 << MANUAL_ROLE_CFG_Pos),
2364 MANUAL_ROLE_Pos = 12,
2365 MANUAL_ROLE_Msk = (0x1 << MANUAL_ROLE_Pos),
2366 MANUAL_ROLE_DISABLED = (0x0 << MANUAL_ROLE_Pos),
2367 MANUAL_ROLE_ENABLED = (0x1 << MANUAL_ROLE_Pos),
2368 TX_TEST_MODE_Pos = 13,
2369 TX_TEST_MODE_Msk = (0x7 << TX_TEST_MODE_Pos),
2370 TX_TEST_MODE_NORMAL_OPS = (0x0 << TX_TEST_MODE_Pos),
2371 TX_TEST_MODE_MODE_1_WAVE = (0x1 << TX_TEST_MODE_Pos),
2372 TX_TEST_MODE_MODE_2_JITTER_MASTER = (0x2 << TX_TEST_MODE_Pos),
2373 TX_TEST_MODE_MODE_3_JITTER_SLAVE = (0x3 << TX_TEST_MODE_Pos),
2374 TX_TEST_MODE_MODE_4_DISTORTION = (0x4 << TX_TEST_MODE_Pos),
2380 IDLE_ERR_CNT_Pos = 0,
2381 IDLE_ERR_CNT_Msk = (0xFF << IDLE_ERR_CNT_Pos),
2382 LP_1000BT_HD_Pos = 10,
2383 LP_1000BT_HD_Msk = (0x1 << LP_1000BT_HD_Pos),
2384 LP_1000BT_HD_NOT_CAPABLE = (0x0 << LP_1000BT_HD_Pos),
2385 LP_1000BT_HD_CAPABLE = (0x1 << LP_1000BT_HD_Pos),
2386 LP_1000BT_FD_Pos = 11,
2387 LP_1000BT_FD_Msk = (0x1 << LP_1000BT_FD_Pos),
2388 LP_1000BT_FD_NOT_CAPABLE = (0x0 << LP_1000BT_FD_Pos),
2389 LP_1000BT_FD_CAPABLE = (0x1 << LP_1000BT_FD_Pos),
2390 REMOTE_RX_STAT_Pos = 12,
2391 REMOTE_RX_STAT_Msk = (0x1 << REMOTE_RX_STAT_Pos),
2392 REMOTE_RX_STAT_NOT_OK = (0x0 << REMOTE_RX_STAT_Pos),
2393 REMOTE_RX_STAT_OK = (0x1 << REMOTE_RX_STAT_Pos),
2394 LOCAL_RX_STAT_Pos = 13,
2395 LOCAL_RX_STAT_Msk = (0x1 << LOCAL_RX_STAT_Pos),
2396 LOCAL_RX_STAT_NOT_OK = (0x0 << LOCAL_RX_STAT_Pos),
2397 LOCAL_RX_STAT_OK = (0x1 << LOCAL_RX_STAT_Pos),
2398 LOCAL_ROLE_Pos = 14,
2399 LOCAL_ROLE_Msk = (0x1 << LOCAL_ROLE_Pos),
2400 LOCAL_ROLE_SLAVE = (0x0 << LOCAL_ROLE_Pos),
2401 LOCAL_ROLE_MASTER = (0x1 << LOCAL_ROLE_Pos),
2402 ROLE_FAULT_Pos = 15,
2403 ROLE_FAULT_Msk = (0x1 << ROLE_FAULT_Pos),
2404 ROLE_FAULT_NONE = (0x0 << ROLE_FAULT_Pos),
2405 ROLE_FAULT_DETECTED = (0x1 << ROLE_FAULT_Pos),
2409namespace PHY_MMD_SETUP {
2412 DEV_ADDR_Msk = (0x1F << DEV_ADDR_Pos),
2414 OP_MODE_Msk = (0x3 << OP_MODE_Pos),
2415 OP_MODE_REGISTER = (0x00 << OP_MODE_Pos),
2416 OP_MODE_DATA = (0x01 << OP_MODE_Pos),
2417 OP_MODE_DATA_INCR = (0x02 << OP_MODE_Pos),
2418 OP_MODE_DATA_INCR_WRITE = (0x03 << OP_MODE_Pos),
2421 inline uint32_t DEV_ADDR(uint32_t _x)
2422 {
return (((_x) << DEV_ADDR_Pos) & DEV_ADDR_Pos); }
2423 inline uint32_t OP_MODE(uint32_t _x)
2424 {
return (((_x) << OP_MODE_Pos) & OP_MODE_Pos); }
2427namespace PHY_EXT_STATUS {
2429 _1000BT_HD_Pos = 12,
2430 _1000BT_HD_Msk = (0x1 << _1000BT_HD_Pos),
2431 _1000BT_HD_NOT_CAPABLE = (0x0 << _1000BT_HD_Pos),
2432 _1000BT_HD_CAPABLE = (0x1 << _1000BT_HD_Pos),
2433 _1000BT_FD_Pos = 13,
2434 _1000BT_FD_Msk = (0x1 << _1000BT_FD_Pos),
2435 _1000BT_FD_NOT_CAPABLE = (0x0 << _1000BT_FD_Pos),
2436 _1000BT_FD_CAPABLE = (0x1 << _1000BT_FD_Pos),
2437 _1000BX_HD_Pos = 14,
2438 _1000BX_HD_Msk = (0x1 << _1000BX_HD_Pos),
2439 _1000BX_HD_NOT_CAPABLE = (0x0 << _1000BX_HD_Pos),
2440 _1000BX_HD_CAPABLE = (0x1 << _1000BX_HD_Pos),
2441 _1000BX_FD_Pos = 15,
2442 _1000BX_FD_Msk = (0x1 << _1000BX_FD_Pos),
2443 _1000BX_FD_NOT_CAPABLE = (0x0 << _1000BX_FD_Pos),
2444 _1000BX_FD_CAPABLE = (0x1 << _1000BX_FD_Pos),
2448namespace PHY_REMOTE_LOOPBACK {
2450 LINK_MD_PASS_Pos = 0,
2451 LINK_MD_PASS_Msk = (0x1 << LINK_MD_PASS_Pos),
2452 LINK_MD_PASS_DISABLED = (0x0 << LINK_MD_PASS_Pos),
2453 LINK_MD_PASS_ENABLED = (0x1 << LINK_MD_PASS_Pos),
2454 LINK_MD_10BT_Pos = 1,
2455 LINK_MD_10BT_Msk = (0x1 << LINK_MD_10BT_Pos),
2456 LINK_MD_10BT_DISABLED = (0x0 << LINK_MD_10BT_Pos),
2457 LINK_MD_10BT_ENABLED = (0x1 << LINK_MD_10BT_Pos),
2458 _10BT_PREAMBLE_Pos = 2,
2459 _10BT_PREAMBLE_Msk = (0x1 << _10BT_PREAMBLE_Pos),
2460 _10BT_PREAMBLE_DISABLED = (0x0 << _10BT_PREAMBLE_Pos),
2461 _10BT_PREAMBLE_ENABLED = (0x1 << _10BT_PREAMBLE_Pos),
2462 LED_CTRL_TEST_Pos = 3,
2463 LED_CTRL_TEST_Msk = (0x1 << LED_CTRL_TEST_Pos),
2464 LED_CTRL_TEST_DISABLED = (0x0 << LED_CTRL_TEST_Pos),
2465 LED_CTRL_TEST_ENABLED = (0x1 << LED_CTRL_TEST_Pos),
2467 LED_CTRL_Msk = (0x1 << LED_CTRL_Pos),
2468 LED_CTRL_DISABLED = (0x0 << LED_CTRL_Pos),
2469 LED_CTRL_ENABLED = (0x1 << LED_CTRL_Pos),
2471 LED_SEL_Msk = (0x1 << LED_SEL_Pos),
2472 LED_SEL_DISABLED = (0x0 << LED_SEL_Pos),
2473 LED_SEL_ENABLED = (0x1 << LED_SEL_Pos),
2474 REMOTE_LOOPBACK_Pos = 8,
2475 REMOTE_LOOPBACK_Msk = (0x1 << REMOTE_LOOPBACK_Pos),
2476 REMOTE_LOOPBACK_DISABLED = (0x0 << REMOTE_LOOPBACK_Pos),
2477 REMOTE_LOOPBACK_ENABLED = (0x1 << REMOTE_LOOPBACK_Pos),
2481namespace PHY_LINK_MD {
2483 CABLE_STATUS_Pos = 8,
2484 CABLE_STATUS_Msk = (0x3 << CABLE_STATUS_Pos),
2485 CABLE_STATUS_NORMAL = (0x0 << CABLE_STATUS_Pos),
2486 CABLE_STATUS_OPEN = (0x1 << CABLE_STATUS_Pos),
2487 CABLE_STATUS_SHORT = (0x2 << CABLE_STATUS_Pos),
2489 TEST_PAIR_Msk = (0x3 << TEST_PAIR_Pos),
2490 TEST_PAIR_A = (0x0 << TEST_PAIR_Pos),
2491 TEST_PAIR_B = (0x1 << TEST_PAIR_Pos),
2492 TEST_PAIR_C = (0x2 << TEST_PAIR_Pos),
2493 TEST_PAIR_D = (0x3 << TEST_PAIR_Pos),
2495 LINX_TX_Msk = (0x1 << LINX_TX_Pos),
2496 LINX_TX_ENABLED = (0x0 << LINX_TX_Pos),
2497 LINX_TX_DISABLED = (0x1 << LINX_TX_Pos),
2498 CABLE_TEST_Pos = 15,
2499 CABLE_TEST_Msk = (0x1 << CABLE_TEST_Pos),
2500 CABLE_TEST_DONE = (0x0 << CABLE_TEST_Pos),
2501 CABLE_TEST_DISABLED = (0x0 << CABLE_TEST_Pos),
2502 CABLE_TEST_ENABLED = (0x1 << CABLE_TEST_Pos),
2503 CABLE_TEST_IN_PROGRESS = (0x1 << CABLE_TEST_Pos),
2507namespace PHY_PMA_STATUS {
2509 _100BTX_LINK_STATUS_Pos = 0,
2510 _100BTX_LINK_STATUS_Msk = (0x3 << _100BTX_LINK_STATUS_Pos),
2511 _100BTX_LINK_STATUS_DOWN = (0x0 << _100BTX_LINK_STATUS_Pos),
2512 _100BTX_LINK_STATUS_UP = (0x1 << _100BTX_LINK_STATUS_Pos),
2513 _1000BT_LINK_STATUS_Pos = 0,
2514 _1000BT_LINK_STATUS_Msk = (0x3 << _1000BT_LINK_STATUS_Pos),
2515 _1000BT_LINK_STATUS_DOWN = (0x0 << _1000BT_LINK_STATUS_Pos),
2516 _1000BT_LINK_STATUS_UP = (0x1 << _1000BT_LINK_STATUS_Pos),
2522 LINK_UP_IRQ_Pos = 0,
2523 LINK_UP_IRQ_Msk = (0x1 << LINK_UP_IRQ_Pos),
2524 REMOTE_FAULT_IRQ_Pos = 1,
2525 REMOTE_FAULT_IRQ_Msk = (0x1 << REMOTE_FAULT_IRQ_Pos),
2526 LINK_DOWN_IRQ_Pos = 2,
2527 LINK_DOWN_IRQ_Msk = (0x1 << LINK_DOWN_IRQ_Pos),
2529 LP_ACK_IRQ_Msk = (0x1 << LP_ACK_IRQ_Pos),
2530 PARALLEL_FAULT_IRQ_Pos = 4,
2531 PARALLEL_FAULT_IRQ_Msk = (0x1 << PARALLEL_FAULT_IRQ_Pos),
2533 PG_RX_IRQ_Msk = (0x1 << PG_RX_IRQ_Pos),
2535 RX_ERR_IRQ_Msk = (0x1 << RX_ERR_IRQ_Pos),
2537 JABBER_IRQ_Msk = (0x1 << JABBER_IRQ_Pos),
2539 LINK_UP_Msk = (0x1 << LINK_UP_Pos),
2540 LINK_UP_DISABLED = (0x0 << LINK_UP_Pos),
2541 LINK_UP_ENABLED = (0x1 << LINK_UP_Pos),
2542 REMOTE_FAULT_Pos = 9,
2543 REMOTE_FAULT_Msk = (0x1 << REMOTE_FAULT_Pos),
2544 REMOTE_FAULT_DISABLED = (0x0 << REMOTE_FAULT_Pos),
2545 REMOTE_FAULT_ENABLED = (0x1 << REMOTE_FAULT_Pos),
2547 LINK_DOWN_Msk = (0x1 << LINK_DOWN_Pos),
2548 LINK_DOWN_DISABLED = (0x0 << LINK_DOWN_Pos),
2549 LINK_DOWN_ENABLED = (0x1 << LINK_DOWN_Pos),
2550 PARALLEL_FAULT_Pos = 11,
2551 PARALLEL_FAULT_Msk = (0x1 << PARALLEL_FAULT_Pos),
2552 PARALLEL_FAULT_DISABLED = (0x0 << PARALLEL_FAULT_Pos),
2553 PARALLEL_FAULT_ENABLED = (0x1 << PARALLEL_FAULT_Pos),
2555 PG_RX_Msk = (0x1 << PG_RX_Pos),
2556 PG_RX_DISABLED = (0x0 << PG_RX_Pos),
2557 PG_RX_ENABLED = (0x1 << PG_RX_Pos),
2559 RX_ERR_Msk = (0x1 << RX_ERR_Pos),
2560 RX_ERR_DISABLED = (0x0 << RX_ERR_Pos),
2561 RX_ERR_ENABLED = (0x1 << RX_ERR_Pos),
2563 JABBER_Msk = (0x1 << JABBER_Pos),
2564 JABBER_DISABLED = (0x0 << JABBER_Pos),
2565 JABBER_ENABLED = (0x1 << JABBER_Pos),
2566 _100BTX_LINK_STATUS_Pos = 15,
2567 _100BTX_LINK_STATUS_Msk = (0x1 << _100BTX_LINK_STATUS_Pos),
2568 _100BTX_LINK_STATUS_DISABLED = (0x0 << _100BTX_LINK_STATUS_Pos),
2569 _100BTX_LINK_STATUS_ENABLED = (0x1 << _100BTX_LINK_STATUS_Pos),
2573namespace PHY_AUTO_MDIX {
2575 AUTO_MDIX_DISABLE_Pos = 6,
2576 AUTO_MDIX_DISABLE_Msk = (0x1 << AUTO_MDIX_DISABLE_Pos),
2577 AUTO_MDIX_DISABLE_DISABLED = (0x1 << AUTO_MDIX_DISABLE_Pos),
2578 AUTO_MDIX_DISABLE_ENABLED = (0x0 << AUTO_MDIX_DISABLE_Pos),
2580 MDI_MODE_Msk = (0x1 << MDI_MODE_Pos),
2581 MDI_MODE_MDI = (0x0 << MDI_MODE_Pos),
2582 MDI_MODE_MDIX = (0x1 << MDI_MODE_Pos),
2586namespace PHY_CTL_2 {
2588 _1000BT_ROLE_Pos = 2,
2589 _1000BT_ROLE_Msk = (0x1 << _1000BT_ROLE_Pos),
2590 _1000BT_ROLE_MASTER = (0x1 << _1000BT_ROLE_Pos),
2591 _1000BT_ROLE_SLAVE = (0x0 << _1000BT_ROLE_Pos),
2593 DUPLEX_Msk = (0x1 << DUPLEX_Pos),
2594 DUPLEX_FULL = (0x1 << DUPLEX_Pos),
2595 DUPLEX_HALF = (0x0 << DUPLEX_Pos),
2596 SPEED_IS_10BT_Pos = 4,
2597 SPEED_IS_10BT_Msk = (0x1 << SPEED_IS_10BT_Pos),
2598 SPEED_IS_10BT_TRUE = (0x1 << SPEED_IS_10BT_Pos),
2599 SPEED_IS_10BT_FALSE = (0x0 << SPEED_IS_10BT_Pos),
2600 SPEED_IS_100BTX_Pos = 5,
2601 SPEED_IS_100BTX_Msk = (0x1 << SPEED_IS_100BTX_Pos),
2602 SPEED_IS_100BTX_TRUE = (0x1 << SPEED_IS_100BTX_Pos),
2603 SPEED_IS_100BTX_FALSE = (0x0 << SPEED_IS_100BTX_Pos),
2604 SPEED_IS_1000BT_Pos = 6,
2605 SPEED_IS_1000BT_Msk = (0x1 << SPEED_IS_1000BT_Pos),
2606 SPEED_IS_1000BT_TRUE = (0x1 << SPEED_IS_1000BT_Pos),
2607 SPEED_IS_1000BT_FALSE = (0x0 << SPEED_IS_1000BT_Pos),
2608 JABBER_COUNTER_Pos = 9,
2609 JABBER_COUNTER_Msk = (0x1 << JABBER_COUNTER_Pos),
2610 JABBER_COUNTER_DISABLED = (0x0 << JABBER_COUNTER_Pos),
2611 JABBER_COUNTER_ENABLED = (0x1 << JABBER_COUNTER_Pos),
2616namespace PORT_XMII_CTRL {
2618 RGMII_IBS_LINK_STATUS_Pos = 0,
2619 RGMII_IBS_LINK_STATUS_Msk = (0x1 << RGMII_IBS_LINK_STATUS_Pos),
2620 RGMII_IBS_LINK_STATUS_UP = (0x1 << RGMII_IBS_LINK_STATUS_Pos),
2621 RGMII_IBS_LINK_STATUS_DOWN = (0x0 << RGMII_IBS_LINK_STATUS_Pos),
2622 RGMII_IBS_RCLK_SPD_Pos = 1,
2623 RGMII_IBS_RCLK_SPD_Msk = (0x3 << RGMII_IBS_RCLK_SPD_Pos),
2624 RGMII_IBS_RCLK_SPD_2_5M = (0x0 << RGMII_IBS_RCLK_SPD_Pos),
2625 RGMII_IBS_RCLK_SPD_25M = (0x1 << RGMII_IBS_RCLK_SPD_Pos),
2626 RGMII_IBS_RCLK_SPD_125M = (0x2 << RGMII_IBS_RCLK_SPD_Pos),
2627 RGMII_IBS_DUPLEX_Pos = 3,
2628 RGMII_IBS_DUPLEX_Msk = (0x1 << RGMII_IBS_DUPLEX_Pos),
2629 RGMII_IBS_DUPLEX_FULL = (0x1 << RGMII_IBS_DUPLEX_Pos),
2630 RGMII_IBS_DUPLEX_HALF = (0x0 << RGMII_IBS_DUPLEX_Pos),
2632 MII_MODE_Msk = (0x3 << MII_MODE_Pos),
2633 MII_MODE_MII = (0x0 << MII_MODE_Pos),
2634 MII_MODE_RMII = (0x1 << MII_MODE_Pos),
2635 MII_MODE_GMII = (0x2 << MII_MODE_Pos),
2636 MII_MODE_RGMII = (0x3 << MII_MODE_Pos),
2638 MII_CFG_Msk = (0x1 << MII_CFG_Pos),
2639 MII_CFG_MII_PHY = (0x0 << MII_CFG_Pos),
2640 MII_CFG_MII_MAC = (0x1 << MII_CFG_Pos),
2641 MII_CFG_RMII_CLK_IN = (0x0 << MII_CFG_Pos),
2642 MII_CFG_RMII_CLK_OUT = (0x1 << MII_CFG_Pos),
2643 MII_CFG_RGMII_IBS_DISABLED = (0x0 << MII_CFG_Pos),
2644 MII_CFG_RGMII_IBS_ENABLED = (0x1 << MII_CFG_Pos),
2645 RGMII_EGRESS_DLY_Pos = 19,
2646 RGMII_EGRESS_DLY_Msk = (0x1 << RGMII_EGRESS_DLY_Pos),
2647 RGMII_EGRESS_DLY_ENABLED = (0x1 << RGMII_EGRESS_DLY_Pos),
2648 RGMII_EGRESS_DLY_DISABLED = (0x0 << RGMII_EGRESS_DLY_Pos),
2649 RGMII_INGRESS_DLY_Pos = 20,
2650 RGMII_INGRESS_DLY_Msk = (0x1 << RGMII_INGRESS_DLY_Pos),
2651 RGMII_INGRESS_DLY_ENABLED = (0x1 << RGMII_INGRESS_DLY_Pos),
2652 RGMII_INGRESS_DLY_DISABLED = (0x0 << RGMII_INGRESS_DLY_Pos),
2653 MII_SEL_EDGE_Pos = 21,
2654 MII_SEL_EDGE_Msk = (0x1 << MII_SEL_EDGE_Pos),
2655 MII_SEL_EDGE_FALLINg = (0x1 << MII_SEL_EDGE_Pos),
2656 MII_SEL_EDGE_RISING = (0x0 << MII_SEL_EDGE_Pos),
2658 MII_1000M_Msk = (0x1 << MII_1000M_Pos),
2659 MII_1000M_1000M = (0x1 << MII_1000M_Pos),
2660 MII_1000M_10_OR_100M = (0x0 << MII_1000M_Pos),
2661 MII_CLK_SEL_Pos = 23,
2662 MII_CLK_SEL_Msk = (0x1 << MII_CLK_SEL_Pos),
2663 MII_CLK_SEL_MASTER = (0x1 << MII_CLK_SEL_Pos),
2664 MII_CLK_SEL_SLAVE = (0x0 << MII_CLK_SEL_Pos),
2666 GRXC_Msk = (0x1 << GRXC_Pos),
2667 GRXC_ENABLED = (0x1 << GRXC_Pos),
2668 GRXC_DISABLED = (0x0 << GRXC_Pos),
2669 RX_FLOW_CTRL_Pos = 27,
2670 RX_FLOW_CTRL_Msk = (0x1 << RX_FLOW_CTRL_Pos),
2671 RX_FLOW_CTRL_ENABLED = (0x1 << RX_FLOW_CTRL_Pos),
2672 RX_FLOW_CTRL_DISABLED = (0x0 << RX_FLOW_CTRL_Pos),
2674 MII_SPEED_Msk = (0x1 << MII_SPEED_Pos),
2675 MII_SPEED_100M = (0x1 << MII_SPEED_Pos),
2676 MII_SPEED_10M = (0x0 << MII_SPEED_Pos),
2677 TX_FLOW_CTRL_Pos = 29,
2678 TX_FLOW_CTRL_Msk = (0x1 << TX_FLOW_CTRL_Pos),
2679 TX_FLOW_CTRL_ENABLED = (0x1 << TX_FLOW_CTRL_Pos),
2680 TX_FLOW_CTRL_DISABLED = (0x0 << TX_FLOW_CTRL_Pos),
2682 DUPLEX_Msk = (0x1 << DUPLEX_Pos),
2683 DUPLEX_FULL = (0x1 << DUPLEX_Pos),
2684 DUPLEX_HALF = (0x0 << DUPLEX_Pos),
2686 SGMII_MODE_Msk = (0x1 << SGMII_MODE_Pos),
2687 SGMII_MODE_ENABLED = (0x1 << SGMII_MODE_Pos),
2688 SGMII_MODE_DISABLED = (0x0 << SGMII_MODE_Pos),
2693namespace PORT_MAC_CTRL {
2695 COUNT_PREAMBLE_Pos = 0,
2696 COUNT_PREAMBLE_Msk = (0x1 << COUNT_PREAMBLE_Pos),
2697 COUNT_PREAMBLE_ENABLED = (0x1 << COUNT_PREAMBLE_Pos),
2698 COUNT_PREAMBLE_DISABLED = (0x0 << COUNT_PREAMBLE_Pos),
2700 COUNT_IFG_Msk = (0x1 << COUNT_IFG_Pos),
2701 COUNT_IFG_ENABLED = (0x1 << COUNT_IFG_Pos),
2702 COUNT_IFG_DISABLED = (0x0 << COUNT_IFG_Pos),
2703 IN_LIMIT_MODE_Pos = 2,
2704 IN_LIMIT_MODE_Msk = (0x3 << IN_LIMIT_MODE_Pos),
2705 IN_LIMIT_MODE_ALL = (0x0 << IN_LIMIT_MODE_Pos),
2706 IN_LIMIT_MODE_UCAST = (0x1 << IN_LIMIT_MODE_Pos),
2707 IN_LIMIT_MODE_MCAST = (0x2 << IN_LIMIT_MODE_Pos),
2708 IN_LIMIT_MODE_BCAST = (0x3 << IN_LIMIT_MODE_Pos),
2709 IN_FLOW_CTRL_Pos = 4,
2710 IN_FLOW_CTRL_Msk = (0x1 << IN_FLOW_CTRL_Pos),
2711 IN_FLOW_CTRL_ENABLED = (0x1 << IN_FLOW_CTRL_Pos),
2712 IN_FLOW_CTRL_DISABLED = (0x0 << IN_FLOW_CTRL_Pos),
2713 IN_PKT_RATE_Pos = 5,
2714 IN_PKT_RATE_Msk = (0x1 << IN_PKT_RATE_Pos),
2715 IN_PKT_RATE_ENABLED = (0x1 << IN_PKT_RATE_Pos),
2716 IN_PKT_RATE_DISABLED = (0x0 << IN_PKT_RATE_Pos),
2718 IN_RATE_Msk = (0x1 << IN_RATE_Pos),
2719 IN_RATE_PORT = (0x1 << IN_RATE_Pos),
2720 IN_RATE_PRIO = (0x0 << IN_RATE_Pos),
2721 _1000BT_EEE_Pos = 14,
2722 _1000BT_EEE_Msk = (0x1 << _1000BT_EEE_Pos),
2723 _1000BT_EEE_ENABLED = (0x0 << _1000BT_EEE_Pos),
2724 _1000BT_EEE_DISABLED = (0x1 << _1000BT_EEE_Pos),
2725 _100BTX_EEE_Pos = 15,
2726 _100BTX_EEE_Msk = (0x1 << _100BTX_EEE_Pos),
2727 _100BTX_EEE_ENABLED = (0x0 << _100BTX_EEE_Pos),
2728 _100BTX_EEE_DISABLED = (0x1 << _100BTX_EEE_Pos),
2730 PASS_ALL_Msk = (0x1 << PASS_ALL_Pos),
2731 PASS_ALL_ENABLED = (0x1 << PASS_ALL_Pos),
2732 PASS_ALL_DISABLED = (0x0 << PASS_ALL_Pos),
2733 BACK_PRESSURE_Pos = 17,
2734 BACK_PRESSURE_Msk = (0x1 << BACK_PRESSURE_Pos),
2735 BACK_PRESSURE_ENABLED = (0x1 << BACK_PRESSURE_Pos),
2736 BACK_PRESSURE_DISABLED = (0x0 << BACK_PRESSURE_Pos),
2737 JUMBO_FRAME_Pos = 24,
2738 JUMBO_FRAME_Msk = (0x1 << JUMBO_FRAME_Pos),
2739 BCAST_STORM_PROT_Pos = 25,
2740 BCAST_STORM_PROT_Msk = (0x1 << BCAST_STORM_PROT_Pos),
2741 BCAST_STORM_PROT_ENABLED = (0x1 << BCAST_STORM_PROT_Pos),
2742 BCAST_STORM_PROT_DISABLED = (0x0 << BCAST_STORM_PROT_Pos),
2746namespace PORT_IN_RATE_0 {
2749 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
2750 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
2751 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
2752 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
2753 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
2754 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
2755 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
2756 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
2757 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
2758 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
2759 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
2760 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
2761 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
2762 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
2763 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
2764 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
2767 inline uint32_t RATE_LIMIT(uint32_t _x)
2768 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
2771namespace PORT_IN_RATE_1 {
2774 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
2775 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
2776 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
2777 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
2778 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
2779 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
2780 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
2781 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
2782 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
2783 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
2784 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
2785 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
2786 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
2787 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
2788 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
2789 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
2792 inline uint32_t RATE_LIMIT(uint32_t _x)
2793 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
2796namespace PORT_IN_RATE_2 {
2799 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
2800 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
2801 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
2802 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
2803 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
2804 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
2805 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
2806 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
2807 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
2808 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
2809 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
2810 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
2811 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
2812 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
2813 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
2814 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
2817 inline uint32_t RATE_LIMIT(uint32_t _x)
2818 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
2821namespace PORT_IN_RATE_3 {
2824 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
2825 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
2826 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
2827 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
2828 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
2829 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
2830 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
2831 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
2832 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
2833 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
2834 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
2835 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
2836 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
2837 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
2838 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
2839 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
2842 inline uint32_t RATE_LIMIT(uint32_t _x)
2843 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
2846namespace PORT_IN_RATE_4 {
2849 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
2850 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
2851 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
2852 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
2853 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
2854 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
2855 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
2856 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
2857 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
2858 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
2859 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
2860 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
2861 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
2862 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
2863 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
2864 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
2867 inline uint32_t RATE_LIMIT(uint32_t _x)
2868 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
2871namespace PORT_IN_RATE_5 {
2874 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
2875 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
2876 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
2877 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
2878 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
2879 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
2880 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
2881 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
2882 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
2883 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
2884 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
2885 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
2886 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
2887 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
2888 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
2889 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
2892 inline uint32_t RATE_LIMIT(uint32_t _x)
2893 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
2896namespace PORT_IN_RATE_6 {
2899 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
2900 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
2901 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
2902 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
2903 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
2904 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
2905 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
2906 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
2907 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
2908 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
2909 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
2910 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
2911 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
2912 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
2913 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
2914 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
2917 inline uint32_t RATE_LIMIT(uint32_t _x)
2918 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
2921namespace PORT_IN_RATE_7 {
2924 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
2925 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
2926 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
2927 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
2928 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
2929 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
2930 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
2931 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
2932 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
2933 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
2934 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
2935 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
2936 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
2937 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
2938 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
2939 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
2942 inline uint32_t RATE_LIMIT(uint32_t _x)
2943 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
2946namespace PORT_OUT_RATE_0 {
2949 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
2950 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
2951 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
2952 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
2953 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
2954 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
2955 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
2956 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
2957 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
2958 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
2959 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
2960 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
2961 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
2962 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
2963 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
2964 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
2967 inline uint32_t RATE_LIMIT(uint32_t _x)
2968 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
2971namespace PORT_OUT_RATE_1 {
2974 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
2975 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
2976 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
2977 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
2978 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
2979 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
2980 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
2981 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
2982 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
2983 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
2984 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
2985 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
2986 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
2987 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
2988 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
2989 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
2992 inline uint32_t RATE_LIMIT(uint32_t _x)
2993 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
2996namespace PORT_OUT_RATE_2 {
2999 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
3000 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
3001 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
3002 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
3003 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
3004 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
3005 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
3006 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
3007 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
3008 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
3009 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
3010 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
3011 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
3012 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
3013 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
3014 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
3017 inline uint32_t RATE_LIMIT(uint32_t _x)
3018 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
3021namespace PORT_OUT_RATE_3 {
3024 RATE_LIMIT_Msk = (0x7F << RATE_LIMIT_Pos),
3025 RATE_LIMIT_640 = (101 << RATE_LIMIT_Pos),
3026 RATE_LIMIT_1280 = (102 << RATE_LIMIT_Pos),
3027 RATE_LIMIT_2560 = (103 << RATE_LIMIT_Pos),
3028 RATE_LIMIT_3840 = (104 << RATE_LIMIT_Pos),
3029 RATE_LIMIT_5120 = (105 << RATE_LIMIT_Pos),
3030 RATE_LIMIT_6400 = (106 << RATE_LIMIT_Pos),
3031 RATE_LIMIT_7680 = (107 << RATE_LIMIT_Pos),
3032 RATE_LIMIT_8960 = (108 << RATE_LIMIT_Pos),
3033 RATE_LIMIT_10240 = (109 << RATE_LIMIT_Pos),
3034 RATE_LIMIT_11520 = (110 << RATE_LIMIT_Pos),
3035 RATE_LIMIT_12800 = (111 << RATE_LIMIT_Pos),
3036 RATE_LIMIT_14080 = (112 << RATE_LIMIT_Pos),
3037 RATE_LIMIT_15360 = (113 << RATE_LIMIT_Pos),
3038 RATE_LIMIT_16640 = (114 << RATE_LIMIT_Pos),
3039 RATE_LIMIT_17920 = (115 << RATE_LIMIT_Pos),
3042 inline uint32_t RATE_LIMIT(uint32_t _x)
3043 {
return (((_x) << RATE_LIMIT_Pos) & RATE_LIMIT_Msk); }
3047namespace PORT_MIB_CTRL_STAT {
3049 MIB_COUNTER_HI_Pos = 0,
3050 MIB_COUNTER_HI_Msk = (0xF << MIB_COUNTER_HI_Pos),
3052 MIB_INDEX_Msk = (0xFF << MIB_INDEX_Pos),
3053 FLUSH_AND_FREEZE_Pos = 24,
3054 FLUSH_AND_FREEZE_Msk = (0x1 << FLUSH_AND_FREEZE_Pos),
3055 FLUSH_AND_FREEZE_DISABLED = (0x0 << FLUSH_AND_FREEZE_Pos),
3056 FLUSH_AND_FREEZE_ENABLED = (0x1 << FLUSH_AND_FREEZE_Pos),
3057 MIB_COUNTER_RD_ENABLE_Pos = 25,
3058 MIB_COUNTER_RD_ENABLE_Msk = (0x1 << MIB_COUNTER_RD_ENABLE_Pos),
3059 MIB_COUNTER_RD_ENABLE_ENABLED = (0x1 << MIB_COUNTER_RD_ENABLE_Pos),
3060 MIB_COUNTER_VALID_Pos = 30,
3061 MIB_COUNTER_VALID_Msk = (0x1 << MIB_COUNTER_VALID_Pos),
3062 MIB_COUNTER_VALID_VALID = (0x0 << MIB_COUNTER_VALID_Pos),
3063 MIB_COUNTER_VALID_INVALID = (0x1 << MIB_COUNTER_VALID_Pos),
3064 COUNTER_OVERFLOW_Pos = 31,
3065 COUNTER_OVERFLOW_Msk = (0x1 << COUNTER_OVERFLOW_Pos),
3068 inline uint32_t MIB_COUNTER_HI(uint32_t _x)
3069 {
return (((_x) << MIB_COUNTER_HI_Pos) & MIB_COUNTER_HI_Msk); }
3070 inline uint32_t MIB_INDEX(uint32_t _x)
3071 {
return (((_x) << MIB_INDEX_Pos) & MIB_INDEX_Msk); }
3075namespace PORT_ACL_ACCESS {
3078 MAC_ADDR_4_Msk = (0xFF << MAC_ADDR_4_Pos),
3080 MAC_ADDR_5_Msk = (0xFF << MAC_ADDR_5_Pos),
3081 COMP_MATCH_Pos = 16,
3082 COMP_MATCH_Msk = (0x1 << COMP_MATCH_Pos),
3083 COMP_MATCH_EQUAL = (0x1 << COMP_MATCH_Pos),
3084 COMP_MATCH_NOT_EQUAL = (0x0 << COMP_MATCH_Pos),
3086 SRC_DEST_Msk = (0x1 << SRC_DEST_Pos),
3087 SRC_DEST_SRC = (0x1 << SRC_DEST_Pos),
3088 SRC_DEST_DEST = (0x0 << COMP_MATCH_Pos),
3090 ENABLE_Msk = (0x3 << ENABLE_Pos),
3092 MODE_Msk = (0x3 << MODE_Pos),
3093 MODE_NO_ACTION = (0x0 << MODE_Pos),
3094 MODE_L2_MAC_HDR = (0x1 << MODE_Pos),
3095 MODE_L3_IP_ADDR = (0x2 << MODE_Pos),
3096 MODE_L4_TPORT_IPROT = (0x3 << MODE_Pos),
3097 FIRST_RULE_NUM_Pos = 24,
3098 FIRST_RULE_NUM_Msk = (0xF << FIRST_RULE_NUM_Pos),
3101 inline uint32_t MAC_ADDR_4(uint32_t _x)
3102 {
return (((_x) << MAC_ADDR_4_Pos) & MAC_ADDR_4_Msk); }
3103 inline uint32_t MAC_ADDR_5(uint32_t _x)
3104 {
return (((_x) << MAC_ADDR_5_Pos) & MAC_ADDR_5_Msk); }
3105 inline uint32_t ENABLE(uint32_t _x)
3106 {
return (((_x) << ENABLE_Pos) & ENABLE_Msk); }
3107 inline uint32_t FIRST_RULE_NUM(uint32_t _x)
3108 {
return (((_x) << FIRST_RULE_NUM_Pos) & FIRST_RULE_NUM_Msk); }
3111namespace PORT_ACL_ACCESS2 {
3114 MAC_ADDR_0_Msk = (0xFF << MAC_ADDR_0_Pos),
3116 MAC_ADDR_1_Msk = (0xFF << MAC_ADDR_1_Pos),
3117 MAC_ADDR_2_Pos = 16,
3118 MAC_ADDR_2_Msk = (0xFF << MAC_ADDR_2_Pos),
3119 MAC_ADDR_3_Pos = 24,
3120 MAC_ADDR_3_Msk = (0xFF << MAC_ADDR_3_Pos),
3123 inline uint32_t MAC_ADDR_0(uint32_t _x)
3124 {
return (((_x) << MAC_ADDR_0_Pos) & MAC_ADDR_0_Msk); }
3125 inline uint32_t MAC_ADDR_1(uint32_t _x)
3126 {
return (((_x) << MAC_ADDR_1_Pos) & MAC_ADDR_1_Msk); }
3127 inline uint32_t MAC_ADDR_2(uint32_t _x)
3128 {
return (((_x) << MAC_ADDR_2_Pos) & MAC_ADDR_2_Msk); }
3129 inline uint32_t MAC_ADDR_3(uint32_t _x)
3130 {
return (((_x) << MAC_ADDR_3_Pos) & MAC_ADDR_3_Msk); }
3133namespace PORT_ACL_ACCESS3 {
3136 MAP_MODE_Msk = (0x3 << MAP_MODE_Pos),
3137 REMARK_PRIO_Pos = 7,
3138 REMARK_PRIO_Msk = (0x7 << REMARK_PRIO_Pos),
3139 REMARK_PRIO_ENABLE_Pos = 10,
3140 REMARK_PRIO_ENABLE_Msk = (0x1 << REMARK_PRIO_ENABLE_Pos),
3141 REMARK_PRIO_ENABLE_ENABLED = (0x1 << REMARK_PRIO_ENABLE_Pos),
3142 REMARK_PRIO_ENABLE_DISABLED = (0x0 << REMARK_PRIO_ENABLE_Pos),
3144 PRIORITY_Msk = (0x7 << PRIORITY_Pos),
3146 PRIO_MODE_Msk = (0x3 << PRIO_MODE_Pos),
3147 ETHER_TYPE_Pos = 16,
3148 ETHER_TYPE_Msk = (0xFFFF << ETHER_TYPE_Pos),
3151 inline uint32_t MAP_MODE(uint32_t _x)
3152 {
return (((_x) << MAP_MODE_Pos) & MAP_MODE_Msk); }
3153 inline uint32_t REMARK_PRIO(uint32_t _x)
3154 {
return (((_x) << REMARK_PRIO_Pos) & REMARK_PRIO_Msk); }
3155 inline uint32_t PRIORITY(uint32_t _x)
3156 {
return (((_x) << PRIORITY_Pos) & PRIORITY_Msk); }
3157 inline uint32_t PRIO_MODE(uint32_t _x)
3158 {
return (((_x) << PRIO_MODE_Pos) & PRIO_MODE_Msk); }
3159 inline uint32_t ETHER_TYPE(uint32_t _x)
3160 {
return (((_x) << ETHER_TYPE_Pos) & ETHER_TYPE_Msk); }
3163namespace PORT_ACL_ACCESS4 {
3166 RULESET_Msk = (0xFFFF << RULESET_Pos),
3167 FORWARD_MAP_Pos = 16,
3168 FORWARD_MAP_Msk = (0xFF << FORWARD_MAP_Pos),
3171 inline uint32_t RULESET(uint32_t _x)
3172 {
return (((_x) << RULESET_Pos) & RULESET_Msk); }
3173 inline uint32_t FORWARD_MAP(uint32_t _x)
3174 {
return (((_x) << FORWARD_MAP_Pos) & FORWARD_MAP_Msk); }
3177namespace PORT_ACL_EN_CTRL {
3180 ACL_IDX_Msk = (0xF << ACL_IDX_Pos),
3182 RW_Msk = (0x1 << RW_Pos),
3183 RW_WRITE = (0x1 << RW_Pos),
3184 RW_READ = (0x0 << RW_Pos),
3186 RD_STATUS_Msk = (0x1 << RD_STATUS_Pos),
3187 RD_STATUS_COMPLETE = (0x1 << RD_STATUS_Pos),
3188 RD_STATUS_IN_PROGRESS = (0x0 << RD_STATUS_Pos),
3190 WR_STATUS_Msk = (0x1 << WR_STATUS_Pos),
3191 WR_STATUS_COMPLETE = (0x1 << WR_STATUS_Pos),
3192 WR_STATUS_IN_PROGRESS = (0x0 << WR_STATUS_Pos),
3193 BYTE_EN_MAP_Pos = 16,
3194 BYTE_EN_MAP_Msk = (0xFFFF << BYTE_EN_MAP_Pos),
3197 inline uint32_t ACL_IDX(uint32_t _x)
3198 {
return (((_x) << ACL_IDX_Pos) & ACL_IDX_Msk); }
3199 inline uint32_t BYTE_EN_MAP(uint32_t _x)
3200 {
return (((_x) << BYTE_EN_MAP_Pos) & BYTE_EN_MAP_Msk); }
3204namespace PORT_MIRROR_CTRL {
3206 SNIFFER_PORT_Pos = 1,
3207 SNIFFER_PORT_Msk = (0x1 << SNIFFER_PORT_Pos),
3208 SNIFFER_PORT_THIS_PORT = (0x1 << SNIFFER_PORT_Pos),
3209 SNIFFER_PORT_NOT_THIS_PORT = (0x0 << SNIFFER_PORT_Pos),
3211 TX_SNIFF_Msk = (0x1 << TX_SNIFF_Pos),
3212 TX_SNIFF_ENABLED = (0x1 << TX_SNIFF_Pos),
3213 TX_SNIFF_DISABLED = (0x0 << TX_SNIFF_Pos),
3215 RX_SNIFF_Msk = (0x1 << RX_SNIFF_Pos),
3216 RX_SNIFF_ENABLED = (0x1 << RX_SNIFF_Pos),
3217 RX_SNIFF_DISABLED = (0x0 << RX_SNIFF_Pos),
3221namespace PORT_PRIO_CTRL {
3223 ACL_PRIO_CLASS_Pos = 0,
3224 ACL_PRIO_CLASS_Msk = (0x1 << ACL_PRIO_CLASS_Pos),
3225 ACL_PRIO_CLASS_ENABLED = (0x1 << ACL_PRIO_CLASS_Pos),
3226 ACL_PRIO_CLASS_DISABLED = (0x0 << ACL_PRIO_CLASS_Pos),
3227 DIFFSERV_PRIO_CLASS_Pos = 1,
3228 DIFFSERV_PRIO_CLASS_Msk = (0x1 << DIFFSERV_PRIO_CLASS_Pos),
3229 DIFFSERV_PRIO_CLASS_ENABLED = (0x1 << DIFFSERV_PRIO_CLASS_Pos),
3230 DIFFSERV_PRIO_CLASS_DISABLED = (0x0 << DIFFSERV_PRIO_CLASS_Pos),
3231 _802_1P_PRIO_CLASS_Pos = 2,
3232 _802_1P_PRIO_CLASS_Msk = (0x1 << _802_1P_PRIO_CLASS_Pos),
3233 _802_1P_PRIO_CLASS_ENABLED = (0x1 << _802_1P_PRIO_CLASS_Pos),
3234 _802_1P_PRIO_CLASS_DISABLED = (0x0 << _802_1P_PRIO_CLASS_Pos),
3235 VLAN_PRIO_CLASS_Pos = 2,
3236 VLAN_PRIO_CLASS_Msk = (0x1 << VLAN_PRIO_CLASS_Pos),
3237 VLAN_PRIO_CLASS_ENABLED = (0x1 << VLAN_PRIO_CLASS_Pos),
3238 VLAN_PRIO_CLASS_DISABLED = (0x0 << VLAN_PRIO_CLASS_Pos),
3239 MAC_ADDR_PRIO_CLASS_Pos = 4,
3240 MAC_ADDR_PRIO_CLASS_Msk = (0x1 << MAC_ADDR_PRIO_CLASS_Pos),
3241 MAC_ADDR_PRIO_CLASS_ENABLED = (0x1 << MAC_ADDR_PRIO_CLASS_Pos),
3242 MAC_ADDR_PRIO_CLASS_DISABLED = (0x0 << MAC_ADDR_PRIO_CLASS_Pos),
3243 BOOLEAN_OR_PRIO_Pos = 6,
3244 BOOLEAN_OR_PRIO_Msk = (0x1 << BOOLEAN_OR_PRIO_Pos),
3245 BOOLEAN_OR_PRIO_ENABLED = (0x1 << BOOLEAN_OR_PRIO_Pos),
3246 BOOLEAN_OR_PRIO_DISABLED = (0x0 << BOOLEAN_OR_PRIO_Pos),
3247 HIGHEST_PRIO_Pos = 6,
3248 HIGHEST_PRIO_Msk = (0x1 << HIGHEST_PRIO_Pos),
3249 HIGHEST_PRIO_ENABLED = (0x1 << HIGHEST_PRIO_Pos),
3250 HIGHEST_PRIO_DISABLED = (0x0 << HIGHEST_PRIO_Pos),
3254namespace PORT_IN_MAC_CTRL {
3256 PORT_DEF_PRIO_CLASS_Pos = 0,
3257 PORT_DEF_PRIO_CLASS_Msk = (0x7 << PORT_DEF_PRIO_CLASS_Pos),
3258 DISCARD_TAGGED_Pos = 3,
3259 DISCARD_TAGGED_Msk = (0x1 << DISCARD_TAGGED_Pos),
3260 DISCARD_TAGGED_ENABLED = (0x1 << DISCARD_TAGGED_Pos),
3261 DISCARD_TAGGED_DISABLED = (0x0 << DISCARD_TAGGED_Pos),
3262 DISCARD_UNTAGGED_Pos = 4,
3263 DISCARD_UNTAGGED_Msk = (0x1 << DISCARD_UNTAGGED_Pos),
3264 DISCARD_UNTAGGED_ENABLED = (0x1 << DISCARD_UNTAGGED_Pos),
3265 DISCARD_UNTAGGED_DISABLED = (0x0 << DISCARD_UNTAGGED_Pos),
3266 USER_PRIO_CEIL_Pos = 7,
3267 USER_PRIO_CEIL_Msk = (0x1 << USER_PRIO_CEIL_Pos),
3268 USER_PRIO_CEIL_ENABLED = (0x1 << USER_PRIO_CEIL_Pos),
3269 USER_PRIO_CEIL_DISABLED = (0x0 << USER_PRIO_CEIL_Pos),
3272 inline uint32_t PORT_DEF_PRIO_CLASS(uint32_t _x)
3273 {
return (((_x) << PORT_DEF_PRIO_CLASS_Pos) & PORT_DEF_PRIO_CLASS_Msk); }
3276namespace PORT_AUTH_CTRL {
3279 AUTH_MODE_Msk = (0x3 << AUTH_MODE_Msk),
3281 ACL_Msk = (0x1 << ACL_Pos),
3282 ACL_ENABLED = (0x1 << ACL_Pos),
3283 ACL_DISABLED = (0x0 << ACL_Pos),
3286 inline uint32_t AUTH_MODE(uint32_t _x)
3287 {
return (((_x) << AUTH_MODE_Pos) & AUTH_MODE_Msk); }
3290namespace PORT_POINTER {
3293 QUEUE_Msk = (0x3 << QUEUE_Pos),
3295 PORT_IDX_Msk = (0x7 << PORT_IDX_Pos),
3298 inline uint32_t QUEUE(uint32_t _x)
3299 {
return (((_x) << QUEUE_Pos) & QUEUE_Msk); }
3300 inline uint32_t PORT_IDX(uint32_t _x)
3301 {
return (((_x) << PORT_IDX_Pos) & PORT_IDX_Msk); }
3304namespace PORT_PRIO_QUEUE_MAP {
3308 inline uint32_t PRIO_Pos(uint32_t _p)
3309 {
return ((_p & 0x7)<< 2); }
3310 inline uint32_t PRIO_Msk(uint32_t _p)
3311 {
return ((0x3) << ((_p & 0x7)<< 2)); }
3312 inline uint32_t PRIO(uint32_t _p, uint32_t _x)
3313 {
return ((_x << PRIO_Pos(_p)) & PRIO_Msk(_p))); }
3316namespace PORT_POLICE_CTRL {
3318 POLICE_ENABLE_Pos = 0,
3319 POLICE_ENABLE_Msk = (0x1 << POLICE_ENABLE_Pos),
3320 POLICE_ENABLE_ENABLED = (0x1 << POLICE_ENABLE_Pos),
3321 POLICE_ENABLE_DISABLED = (0x0 << POLICE_ENABLE_Pos),
3322 POLICE_MODE_Pos = 1,
3323 POLICE_MODE_Msk = (0x1 << POLICE_MODE_Pos),
3324 POLICE_MODE_COLORBLIND = (0x1 << POLICE_MODE_Pos),
3325 POLICE_MODE_RACIST = (0x0 << POLICE_MODE_Pos),
3327 DROP_SRP_Msk = (0x1 << DROP_SRP_Pos),
3328 DROP_SRP_ENABLED = (0x1 << DROP_SRP_Pos),
3329 DROP_SRP_DISABLED = (0x0 << DROP_SRP_Pos),
3330 COLOR_REMAP_Pos = 3,
3331 COLOR_REMAP_Msk = (0x1 << COLOR_REMAP_Pos),
3332 COLOR_REMAP_ENABLED = (0x1 << COLOR_REMAP_Pos),
3333 COLOR_REMAP_DISABLED = (0x0 << COLOR_REMAP_Pos),
3335 COLOR_MARK_Msk = (0x1 << COLOR_MARK_Pos),
3336 COLOR_MARK_ENABLED = (0x1 << COLOR_MARK_Pos),
3337 COLOR_MARK_DISABLED = (0x0 << COLOR_MARK_Pos),
3338 NONDSCP_COLOR_Pos = 5,
3339 NONDSCP_COLOR_Msk = (0x3 << NONDSCP_COLOR_Pos),
3340 PORT_BASED_POLICING_Pos = 7,
3341 PORT_BASED_POLICING_Msk = (0x1 << PORT_BASED_POLICING_Pos),
3342 PORT_BASED_POLICING_ENABLED = (0x1 << PORT_BASED_POLICING_Pos),
3343 PORT_BASED_POLICING_DISABLED = (0x0 << PORT_BASED_POLICING_Pos),
3345 PKT_TYPE_Msk = (0x3 << PKT_TYPE_Pos),
3347 DROP_ALL_Msk = (0x1 << DROP_ALL_Pos),
3348 DROP_ALL_ENABLED = (0x1 << DROP_ALL_Pos),
3349 DROP_ALL_DISABLED = (0x0 << DROP_ALL_Pos),
3350 PMON_DROPPED_COLOR_Pos = 11,
3351 PMON_DROPPED_COLOR_Msk = (0x1 << PMON_DROPPED_COLOR_Pos),
3352 PMON_DROPPED_COLOR_ENABLED = (0x1 << PMON_DROPPED_COLOR_Pos),
3353 PMON_DROPPED_COLOR_DISABLED = (0x0 << PMON_DROPPED_COLOR_Pos),
3356 inline uint32_t NONDSCP_COLOR(uint32_t _x)
3357 {
return (((_x) << NONDSCP_COLOR_Pos) & NONDSCP_COLOR_Msk); }
3358 inline uint32_t PKT_TYPE(uint32_t _x)
3359 {
return (((_x) << PKT_TYPE_Pos) & PKT_TYPE_Msk); }
3363namespace PORT_TX_QUEUE_IDX {
3366 QUEUE_IDX_Msk = (0x3 << QUEUE_IDX_Pos),
3369 inline uint32_t QUEUE_IDX(uint32_t _x)
3370 {
return (((_x) << QUEUE_IDX_Pos) & QUEUE_IDX_Msk); }
3373namespace PORT_TX_QUEUE_PVID {
3375 PORT_VID_REPLACE_Pos = 0,
3376 PORT_VID_REPLACE_Msk = (0x1 << PORT_VID_REPLACE_Pos),
3377 PORT_VID_REPLACE_ENABLED = (0x1 << PORT_VID_REPLACE_Pos),
3378 PORT_VID_REPLACE_DISABLED = (0x0 << PORT_VID_REPLACE_Pos),
3382namespace PORT_TX_QUEUE_CTRL {
3384 QUEUE_WEIGHT_4_WRR_Pos = 0,
3385 QUEUE_WEIGHT_4_WRR_Msk = (0x7F << QUEUE_WEIGHT_4_WRR_Pos),
3386 SCHED_MODE_Pos = 14,
3387 SCHED_MODE_Msk = (0x3 << SCHED_MODE_Pos),
3390 inline uint32_t QUEUE_WEIGHT_4_WRR(uint32_t _x)
3391 {
return (((_x) << QUEUE_WEIGHT_4_WRR_Pos) & QUEUE_WEIGHT_4_WRR_Msk); }
3392 inline uint32_t SCHED_MODE(uint32_t _x)
3393 {
return (((_x) << SCHED_MODE_Pos) & SCHED_MODE_Msk); }
3398namespace PORT_LUE_CTRL {
3400 SELF_ADDR_FILT_Pos = 3,
3401 SELF_ADDR_FILT_Msk = (0x1 << SELF_ADDR_FILT_Pos),
3402 SELF_ADDR_FILT_ENABLED = (0x1 << SELF_ADDR_FILT_Pos),
3403 SELF_ADDR_FILT_DISABLED = (0x0 << SELF_ADDR_FILT_Pos),
3405 MAC_8021X_Msk = (0x1 << MAC_8021X_Pos),
3406 MAC_8021X_ENABLED = (0x1 << MAC_8021X_Pos),
3407 MAC_8021X_DISABLED = (0x0 << MAC_8021X_Pos),
3408 DISCARD_NON_PVID_Pos = 5,
3409 DISCARD_NON_PVID_Msk = (0x1 << DISCARD_NON_PVID_Pos),
3410 DISCARD_NON_PVID_ENABLED = (0x1 << DISCARD_NON_PVID_Pos),
3411 DISCARD_NON_PVID_DISABLED = (0x0 << DISCARD_NON_PVID_Pos),
3412 INGRESS_VLAN_FILT_Pos = 6,
3413 INGRESS_VLAN_FILT_Msk = (0x1 << INGRESS_VLAN_FILT_Pos),
3414 INGRESS_VLAN_FILT_ENABLED = (0x1 << INGRESS_VLAN_FILT_Pos),
3415 INGRESS_VLAN_FILT_DISABLED = (0x0 << INGRESS_VLAN_FILT_Pos),
3416 NULL_VID_LOOKUP_Pos = 7,
3417 NULL_VID_LOOKUP_Msk = (0x1 << NULL_VID_LOOKUP_Pos),
3418 NULL_VID_LOOKUP_ENABLED = (0x1 << NULL_VID_LOOKUP_Pos),
3419 NULL_VID_LOOKUP_DISABLED = (0x0 << NULL_VID_LOOKUP_Pos),
3423namespace PORT_MSTP_STATE {
3425 PORT_LEARNING_Pos = 0,
3426 PORT_LEARNING_Msk = (0x1 << PORT_LEARNING_Pos),
3427 PORT_LEARNING_ENABLED = (0x0 << PORT_LEARNING_Pos),
3428 PORT_LEARNING_DISABLED = (0x1 << PORT_LEARNING_Pos),
3430 PORT_RX_Msk = (0x1 << PORT_RX_Pos),
3431 PORT_RX_ENABLED = (0x1 << PORT_RX_Pos),
3432 PORT_RX_DISABLED = (0x0 << PORT_RX_Pos),
3434 PORT_TX_Msk = (0x1 << PORT_TX_Pos),
3435 PORT_TX_ENABLED = (0x1 << PORT_TX_Pos),
3436 PORT_TX_DISABLED = (0x0 << PORT_TX_Pos),
3439 inline uint32_t ACL_IDX(uint32_t _x)
3440 {
return (((_x) << ACL_IDX_Pos) & SNIFFER_PORT_Msk); }