source: rtems/c/src/libchip/network/dwmac-regs.h @ 74172b7d

5
Last change on this file since 74172b7d was 062f9532, checked in by Sebastian Huber <sebastian.huber@…>, on 03/13/14 at 15:41:46

libchip: Avoid <bsp/utility.h>

  • Property mode set to 100644
File size: 29.2 KB
Line 
1#ifndef MAC_REGS_H
2#define MAC_REGS_H
3
4#include <stdint.h>
5
6#define DWMAC_REGS_BIT32(bit) \
7  ((uint32_t) (((uint32_t) 1) << (bit)))
8
9#define DWMAC_REGS_MSK32(first_bit, last_bit) \
10  ((uint32_t) ((DWMAC_REGS_BIT32((last_bit) - (first_bit) + 1) - 1) << (first_bit)))
11
12#define DWMAC_REGS_FLD32(val, first_bit, last_bit) \
13  ((uint32_t) \
14    ((((uint32_t) (val)) << (first_bit)) & DWMAC_REGS_MSK32(first_bit, last_bit)))
15
16#define DWMAC_REGS_FLD32GET(reg, first_bit, last_bit) \
17  ((uint32_t) (((reg) & DWMAC_REGS_MSK32(first_bit, last_bit)) >> (first_bit)))
18
19#define DWMAC_REGS_FLD32SET(reg, val, first_bit, last_bit) \
20  ((uint32_t) (((reg) & ~DWMAC_REGS_MSK32(first_bit, last_bit)) \
21    | DWMAC_REGS_FLD32(val, first_bit, last_bit)))
22
23typedef struct {
24        uint32_t high;
25#define MAC_HIGH_ADDRHI(val) DWMAC_REGS_FLD32(val, 0, 15)
26#define MAC_HIGH_ADDRHI_GET(reg) DWMAC_REGS_FLD32GET(reg, 0, 15)
27#define MAC_HIGH_ADDRHI_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 0, 15)
28#define MAC_HIGH_MBC0 DWMAC_REGS_BIT32(24)
29#define MAC_HIGH_MBC1 DWMAC_REGS_BIT32(25)
30#define MAC_HIGH_MBC2 DWMAC_REGS_BIT32(26)
31#define MAC_HIGH_MBC3 DWMAC_REGS_BIT32(27)
32#define MAC_HIGH_MBC4 DWMAC_REGS_BIT32(28)
33#define MAC_HIGH_MBC5 DWMAC_REGS_BIT32(29)
34#define MAC_HIGH_SA DWMAC_REGS_BIT32(30)
35#define MAC_HIGH_AE DWMAC_REGS_BIT32(31)
36        uint32_t low;
37#define MAC_LOW_ADDRLO(val) DWMAC_REGS_FLD32(val, 0, 32)
38#define MAC_LOW_ADDRLO_GET(reg) DWMAC_REGS_FLD32GET(reg, 0, 32)
39#define MAC_LOW_ADDRLO_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 0, 32)
40} mac;
41
42typedef struct {
43        uint32_t mac_configuration;
44#define MACGRP_MAC_CONFIGURATION_PRELEN(val) DWMAC_REGS_FLD32(val, 0, 1)
45#define MACGRP_MAC_CONFIGURATION_PRELEN_GET(reg) DWMAC_REGS_FLD32GET(reg, 0, 1)
46#define MACGRP_MAC_CONFIGURATION_PRELEN_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 0, 1)
47#define MACGRP_MAC_CONFIGURATION_RE DWMAC_REGS_BIT32(2)
48#define MACGRP_MAC_CONFIGURATION_TE DWMAC_REGS_BIT32(3)
49#define MACGRP_MAC_CONFIGURATION_DC DWMAC_REGS_BIT32(4)
50#define MACGRP_MAC_CONFIGURATION_BL(val) DWMAC_REGS_FLD32(val, 5, 6)
51#define MACGRP_MAC_CONFIGURATION_BL_GET(reg) DWMAC_REGS_FLD32GET(reg, 5, 6)
52#define MACGRP_MAC_CONFIGURATION_BL_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 5, 6)
53#define MACGRP_MAC_CONFIGURATION_ACS DWMAC_REGS_BIT32(7)
54#define MACGRP_MAC_CONFIGURATION_LUD DWMAC_REGS_BIT32(8)
55#define MACGRP_MAC_CONFIGURATION_DR DWMAC_REGS_BIT32(9)
56#define MACGRP_MAC_CONFIGURATION_IPC DWMAC_REGS_BIT32(10)
57#define MACGRP_MAC_CONFIGURATION_DM DWMAC_REGS_BIT32(11)
58#define MACGRP_MAC_CONFIGURATION_LM DWMAC_REGS_BIT32(12)
59#define MACGRP_MAC_CONFIGURATION_DO DWMAC_REGS_BIT32(13)
60#define MACGRP_MAC_CONFIGURATION_FES DWMAC_REGS_BIT32(14)
61#define MACGRP_MAC_CONFIGURATION_PS DWMAC_REGS_BIT32(15)
62#define MACGRP_MAC_CONFIGURATION_DCRS DWMAC_REGS_BIT32(16)
63#define MACGRP_MAC_CONFIGURATION_IFG(val) DWMAC_REGS_FLD32(val, 17, 19)
64#define MACGRP_MAC_CONFIGURATION_IFG_GET(reg) DWMAC_REGS_FLD32GET(reg, 17, 19)
65#define MACGRP_MAC_CONFIGURATION_IFG_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 17, 19)
66#define MACGRP_MAC_CONFIGURATION_JE DWMAC_REGS_BIT32(20)
67#define MACGRP_MAC_CONFIGURATION_BE DWMAC_REGS_BIT32(21)
68#define MACGRP_MAC_CONFIGURATION_JD DWMAC_REGS_BIT32(22)
69#define MACGRP_MAC_CONFIGURATION_WD DWMAC_REGS_BIT32(23)
70#define MACGRP_MAC_CONFIGURATION_TC DWMAC_REGS_BIT32(24)
71#define MACGRP_MAC_CONFIGURATION_CST DWMAC_REGS_BIT32(25)
72#define MACGRP_MAC_CONFIGURATION_TWOKPE DWMAC_REGS_BIT32(27)
73        uint32_t mac_frame_filter;
74#define MACGRP_MAC_FRAME_FILTER_PR DWMAC_REGS_BIT32(0)
75#define MACGRP_MAC_FRAME_FILTER_HUC DWMAC_REGS_BIT32(1)
76#define MACGRP_MAC_FRAME_FILTER_HMC DWMAC_REGS_BIT32(2)
77#define MACGRP_MAC_FRAME_FILTER_DAIF DWMAC_REGS_BIT32(3)
78#define MACGRP_MAC_FRAME_FILTER_PM DWMAC_REGS_BIT32(4)
79#define MACGRP_MAC_FRAME_FILTER_DBF DWMAC_REGS_BIT32(5)
80#define MACGRP_MAC_FRAME_FILTER_PCF(val) DWMAC_REGS_FLD32(val, 6, 7)
81#define MACGRP_MAC_FRAME_FILTER_PCF_GET(reg) DWMAC_REGS_FLD32GET(reg, 6, 7)
82#define MACGRP_MAC_FRAME_FILTER_PCF_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 6, 7)
83#define MACGRP_MAC_FRAME_FILTER_SAIF DWMAC_REGS_BIT32(8)
84#define MACGRP_MAC_FRAME_FILTER_SAF DWMAC_REGS_BIT32(9)
85#define MACGRP_MAC_FRAME_FILTER_HPF DWMAC_REGS_BIT32(10)
86#define MACGRP_MAC_FRAME_FILTER_VTFE DWMAC_REGS_BIT32(16)
87#define MACGRP_MAC_FRAME_FILTER_IPFE DWMAC_REGS_BIT32(20)
88#define MACGRP_MAC_FRAME_FILTER_DNTU DWMAC_REGS_BIT32(21)
89#define MACGRP_MAC_FRAME_FILTER_RA DWMAC_REGS_BIT32(31)
90        uint32_t reserved_08[2];
91        uint32_t gmii_address;
92#define MACGRP_GMII_ADDRESS_GMII_BUSY DWMAC_REGS_BIT32(0)
93#define MACGRP_GMII_ADDRESS_GMII_WRITE DWMAC_REGS_BIT32(1)
94#define MACGRP_GMII_ADDRESS_CSR_CLOCK_RANGE(val) DWMAC_REGS_FLD32(val, 2, 5)
95#define MACGRP_GMII_ADDRESS_CSR_CLOCK_RANGE_GET(reg) DWMAC_REGS_FLD32GET(reg, 2, 5)
96#define MACGRP_GMII_ADDRESS_CSR_CLOCK_RANGE_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 2, 5)
97#define MACGRP_GMII_ADDRESS_GMII_REGISTER(val) DWMAC_REGS_FLD32(val, 6, 10)
98#define MACGRP_GMII_ADDRESS_GMII_REGISTER_GET(reg) DWMAC_REGS_FLD32GET(reg, 6, 10)
99#define MACGRP_GMII_ADDRESS_GMII_REGISTER_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 6, 10)
100#define MACGRP_GMII_ADDRESS_PHYSICAL_LAYER_ADDRESS(val) DWMAC_REGS_FLD32(val, 11, 15)
101#define MACGRP_GMII_ADDRESS_PHYSICAL_LAYER_ADDRESS_GET(reg) DWMAC_REGS_FLD32GET(reg, 11, 15)
102#define MACGRP_GMII_ADDRESS_PHYSICAL_LAYER_ADDRESS_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 11, 15)
103        uint32_t gmii_data;
104#define MACGRP_GMII_DATA_GMII_DATA(val) DWMAC_REGS_FLD32(val, 0, 15)
105#define MACGRP_GMII_DATA_GMII_DATA_GET(reg) DWMAC_REGS_FLD32GET(reg, 0, 15)
106#define MACGRP_GMII_DATA_GMII_DATA_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 0, 15)
107        uint32_t reserved_18[9];
108        uint32_t interrupt_mask;
109#define MACGRP_INTERRUPT_MASK_RGSMIIIM DWMAC_REGS_BIT32(0)
110#define MACGRP_INTERRUPT_MASK_PCSLCHGIM DWMAC_REGS_BIT32(1)
111#define MACGRP_INTERRUPT_MASK_PCSANCIM DWMAC_REGS_BIT32(2)
112#define MACGRP_INTERRUPT_MASK_TSIM DWMAC_REGS_BIT32(9)
113#define MACGRP_INTERRUPT_MASK_LPIIM DWMAC_REGS_BIT32(10)
114        mac mac_addr0_15[16];
115        uint32_t reserved_c0[16];
116        uint32_t mmc_control;
117#define MACGRP_MMC_CONTROL_CNTRST DWMAC_REGS_BIT32(0)
118#define MACGRP_MMC_CONTROL_CNTSTOPRO DWMAC_REGS_BIT32(1)
119#define MACGRP_MMC_CONTROL_RSTONRD DWMAC_REGS_BIT32(2)
120#define MACGRP_MMC_CONTROL_CNTFREEZ DWMAC_REGS_BIT32(3)
121#define MACGRP_MMC_CONTROL_CNTPRST DWMAC_REGS_BIT32(4)
122#define MACGRP_MMC_CONTROL_CNTPRSTLVL DWMAC_REGS_BIT32(5)
123#define MACGRP_MMC_CONTROL_UCDBC DWMAC_REGS_BIT32(8)
124        uint32_t mmc_receive_interrupt;
125#define MACGRP_MMC_RECEIVE_INTERRUPT_RXGBFRMIS DWMAC_REGS_BIT32(0)
126#define MACGRP_MMC_RECEIVE_INTERRUPT_RXGBOCTIS DWMAC_REGS_BIT32(1)
127#define MACGRP_MMC_RECEIVE_INTERRUPT_RXGOCTIS DWMAC_REGS_BIT32(2)
128#define MACGRP_MMC_RECEIVE_INTERRUPT_RXBCGFIS DWMAC_REGS_BIT32(3)
129#define MACGRP_MMC_RECEIVE_INTERRUPT_RXMCGFIS DWMAC_REGS_BIT32(4)
130#define MACGRP_MMC_RECEIVE_INTERRUPT_RXCRCERFIS DWMAC_REGS_BIT32(5)
131#define MACGRP_MMC_RECEIVE_INTERRUPT_RXALGNERFIS DWMAC_REGS_BIT32(6)
132#define MACGRP_MMC_RECEIVE_INTERRUPT_RXRUNTFIS DWMAC_REGS_BIT32(7)
133#define MACGRP_MMC_RECEIVE_INTERRUPT_RXJABERFIS DWMAC_REGS_BIT32(8)
134#define MACGRP_MMC_RECEIVE_INTERRUPT_RXUSIZEGFIS DWMAC_REGS_BIT32(9)
135#define MACGRP_MMC_RECEIVE_INTERRUPT_RXOSIZEGFIS DWMAC_REGS_BIT32(10)
136#define MACGRP_MMC_RECEIVE_INTERRUPT_RX64OCTGBFIS DWMAC_REGS_BIT32(11)
137#define MACGRP_MMC_RECEIVE_INTERRUPT_RX65T127OCTGBFIS DWMAC_REGS_BIT32(12)
138#define MACGRP_MMC_RECEIVE_INTERRUPT_RX128T255OCTGBFIS DWMAC_REGS_BIT32(13)
139#define MACGRP_MMC_RECEIVE_INTERRUPT_RX256T511OCTGBFIS DWMAC_REGS_BIT32(14)
140#define MACGRP_MMC_RECEIVE_INTERRUPT_RX512T1023OCTGBFIS DWMAC_REGS_BIT32(15)
141#define MACGRP_MMC_RECEIVE_INTERRUPT_RX1024TMAXOCTGBFIS DWMAC_REGS_BIT32(16)
142#define MACGRP_MMC_RECEIVE_INTERRUPT_RXUCGFIS DWMAC_REGS_BIT32(17)
143#define MACGRP_MMC_RECEIVE_INTERRUPT_RXLENERFIS DWMAC_REGS_BIT32(18)
144#define MACGRP_MMC_RECEIVE_INTERRUPT_RXORANGEFIS DWMAC_REGS_BIT32(19)
145#define MACGRP_MMC_RECEIVE_INTERRUPT_RXPAUSFIS DWMAC_REGS_BIT32(20)
146#define MACGRP_MMC_RECEIVE_INTERRUPT_RXFOVFIS DWMAC_REGS_BIT32(21)
147#define MACGRP_MMC_RECEIVE_INTERRUPT_RXVLANGBFIS DWMAC_REGS_BIT32(22)
148#define MACGRP_MMC_RECEIVE_INTERRUPT_RXWDOGFIS DWMAC_REGS_BIT32(23)
149#define MACGRP_MMC_RECEIVE_INTERRUPT_RXRCVERRFIS DWMAC_REGS_BIT32(24)
150#define MACGRP_MMC_RECEIVE_INTERRUPT_RXCTRLFIS DWMAC_REGS_BIT32(25)
151        uint32_t mmc_transmit_interrupt;
152#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXGBOCTIS DWMAC_REGS_BIT32(0)
153#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXGBFRMIS DWMAC_REGS_BIT32(1)
154#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXBCGFIS DWMAC_REGS_BIT32(2)
155#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXMCGFIS DWMAC_REGS_BIT32(3)
156#define MACGRP_MMC_TRANSMIT_INTERRUPT_TX64OCTGBFIS DWMAC_REGS_BIT32(4)
157#define MACGRP_MMC_TRANSMIT_INTERRUPT_TX65T127OCTGBFIS DWMAC_REGS_BIT32(5)
158#define MACGRP_MMC_TRANSMIT_INTERRUPT_TX128T255OCTGBFIS DWMAC_REGS_BIT32(6)
159#define MACGRP_MMC_TRANSMIT_INTERRUPT_TX256T511OCTGBFIS DWMAC_REGS_BIT32(7)
160#define MACGRP_MMC_TRANSMIT_INTERRUPT_TX512T1023OCTGBFIS DWMAC_REGS_BIT32(8)
161#define MACGRP_MMC_TRANSMIT_INTERRUPT_TX1024TMAXOCTGBFIS DWMAC_REGS_BIT32(9)
162#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXUCGBFIS DWMAC_REGS_BIT32(10)
163#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXMCGBFIS DWMAC_REGS_BIT32(11)
164#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXBCGBFIS DWMAC_REGS_BIT32(12)
165#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXUFLOWERFIS DWMAC_REGS_BIT32(13)
166#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXSCOLGFIS DWMAC_REGS_BIT32(14)
167#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXMCOLGFIS DWMAC_REGS_BIT32(15)
168#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXDEFFIS DWMAC_REGS_BIT32(16)
169#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXLATCOLFIS DWMAC_REGS_BIT32(17)
170#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXEXCOLFIS DWMAC_REGS_BIT32(18)
171#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXCARERFIS DWMAC_REGS_BIT32(19)
172#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXGOCTIS DWMAC_REGS_BIT32(20)
173#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXGFRMIS DWMAC_REGS_BIT32(21)
174#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXEXDEFFIS DWMAC_REGS_BIT32(22)
175#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXPAUSFIS DWMAC_REGS_BIT32(23)
176#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXVLANGFIS DWMAC_REGS_BIT32(24)
177#define MACGRP_MMC_TRANSMIT_INTERRUPT_TXOSIZEGFIS DWMAC_REGS_BIT32(25)
178        uint32_t mmc_receive_interrupt_mask;
179#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXGBFRMIM DWMAC_REGS_BIT32(0)
180#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXGBOCTIM DWMAC_REGS_BIT32(1)
181#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXGOCTIM DWMAC_REGS_BIT32(2)
182#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXBCGFIM DWMAC_REGS_BIT32(3)
183#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXMCGFIM DWMAC_REGS_BIT32(4)
184#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXCRCERFIM DWMAC_REGS_BIT32(5)
185#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXALGNERFIM DWMAC_REGS_BIT32(6)
186#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXRUNTFIM DWMAC_REGS_BIT32(7)
187#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXJABERFIM DWMAC_REGS_BIT32(8)
188#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXUSIZEGFIM DWMAC_REGS_BIT32(9)
189#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXOSIZEGFIM DWMAC_REGS_BIT32(10)
190#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RX64OCTGBFIM DWMAC_REGS_BIT32(11)
191#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RX65T127OCTGBFIM DWMAC_REGS_BIT32(12)
192#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RX128T255OCTGBFIM DWMAC_REGS_BIT32(13)
193#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RX256T511OCTGBFIM DWMAC_REGS_BIT32(14)
194#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RX512T1023OCTGBFIM DWMAC_REGS_BIT32(15)
195#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RX1024TMAXOCTGBFIM DWMAC_REGS_BIT32(16)
196#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXUCGFIM DWMAC_REGS_BIT32(17)
197#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXLENERFIM DWMAC_REGS_BIT32(18)
198#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXORANGEFIM DWMAC_REGS_BIT32(19)
199#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXPAUSFIM DWMAC_REGS_BIT32(20)
200#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXFOVFIM DWMAC_REGS_BIT32(21)
201#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXVLANGBFIM DWMAC_REGS_BIT32(22)
202#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXWDOGFIM DWMAC_REGS_BIT32(23)
203#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXRCVERRFIM DWMAC_REGS_BIT32(24)
204#define MACGRP_MMC_RECEIVE_INTERRUPT_MASK_RXCTRLFIM DWMAC_REGS_BIT32(25)
205        uint32_t mmc_transmit_interrupt_mask;
206#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXGBOCTIM DWMAC_REGS_BIT32(0)
207#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXGBFRMIM DWMAC_REGS_BIT32(1)
208#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXBCGFIM DWMAC_REGS_BIT32(2)
209#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXMCGFIM DWMAC_REGS_BIT32(3)
210#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TX64OCTGBFIM DWMAC_REGS_BIT32(4)
211#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TX65T127OCTGBFIM DWMAC_REGS_BIT32(5)
212#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TX128T255OCTGBFIM DWMAC_REGS_BIT32(6)
213#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TX256T511OCTGBFIM DWMAC_REGS_BIT32(7)
214#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TX512T1023OCTGBFIM DWMAC_REGS_BIT32(8)
215#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TX1024TMAXOCTGBFIM DWMAC_REGS_BIT32(9)
216#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXUCGBFIM DWMAC_REGS_BIT32(10)
217#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXMCGBFIM DWMAC_REGS_BIT32(11)
218#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXBCGBFIM DWMAC_REGS_BIT32(12)
219#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXUFLOWERFIM DWMAC_REGS_BIT32(13)
220#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXSCOLGFIM DWMAC_REGS_BIT32(14)
221#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXMCOLGFIM DWMAC_REGS_BIT32(15)
222#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXDEFFIM DWMAC_REGS_BIT32(16)
223#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXLATCOLFIM DWMAC_REGS_BIT32(17)
224#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXEXCOLFIM DWMAC_REGS_BIT32(18)
225#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXCARERFIM DWMAC_REGS_BIT32(19)
226#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXGOCTIM DWMAC_REGS_BIT32(20)
227#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXGFRMIM DWMAC_REGS_BIT32(21)
228#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXEXDEFFIM DWMAC_REGS_BIT32(22)
229#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXPAUSFIM DWMAC_REGS_BIT32(23)
230#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXVLANGFIM DWMAC_REGS_BIT32(24)
231#define MACGRP_MMC_TRANSMIT_INTERRUPT_MASK_TXOSIZEGFIM DWMAC_REGS_BIT32(25)
232        uint32_t txoctetcount_gb;
233        uint32_t txframecount_gb;
234        uint32_t txbroadcastframes_g;
235        uint32_t txmulticastframes_g;
236        uint32_t tx64octets_gb;
237        uint32_t tx65to127octets_gb;
238        uint32_t tx128to255octets_gb;
239        uint32_t tx256to511octets_gb;
240        uint32_t tx512to1023octets_gb;
241        uint32_t tx1024tomaxoctets_gb;
242        uint32_t txunicastframes_gb;
243        uint32_t txmulticastframes_gb;
244        uint32_t txbroadcastframes_gb;
245        uint32_t txunderflowerror;
246        uint32_t txsinglecol_g;
247        uint32_t txmulticol_g;
248        uint32_t txdeferred;
249        uint32_t txlatecol;
250        uint32_t txexesscol;
251        uint32_t txcarriererr;
252        uint32_t txoctetcnt;
253        uint32_t txframecount_g;
254        uint32_t txexcessdef;
255        uint32_t txpauseframes;
256        uint32_t txvlanframes_g;
257        uint32_t txoversize_g;
258        uint32_t reserved_17c;
259        uint32_t rxframecount_gb;
260        uint32_t rxoctetcount_gb;
261        uint32_t rxoctetcount_g;
262        uint32_t rxbroadcastframes_g;
263        uint32_t rxmulticastframes_g;
264        uint32_t rxcrcerror;
265        uint32_t rxalignmenterror;
266        uint32_t rxrunterror;
267        uint32_t rxjabbererror;
268        uint32_t rxundersize_g;
269        uint32_t rxoversize_g;
270        uint32_t rx64octets_gb;
271        uint32_t rx65to127octets_gb;
272        uint32_t rx128to255octets_gb;
273        uint32_t rx256to511octets_gb;
274        uint32_t rx512to1023octets_gb;
275        uint32_t rx1024tomaxoctets_gb;
276        uint32_t rxunicastframes_g;
277        uint32_t rxlengtherror;
278        uint32_t rxoutofrangetype;
279        uint32_t rxpauseframes;
280        uint32_t rxfifooverflow;
281        uint32_t rxvlanframes_gb;
282        uint32_t rxwatchdogerror;
283        uint32_t rxrcverror;
284        uint32_t rxctrlframes_g;
285        uint32_t reserved_1e8[6];
286        uint32_t mmc_ipc_receive_interrupt_mask;
287#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV4GFIM DWMAC_REGS_BIT32(0)
288#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV4HERFIM DWMAC_REGS_BIT32(1)
289#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV4NOPAYFIM DWMAC_REGS_BIT32(2)
290#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV4FRAGFIM DWMAC_REGS_BIT32(3)
291#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV4UDSBLFIM DWMAC_REGS_BIT32(4)
292#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV6GFIM DWMAC_REGS_BIT32(5)
293#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV6HERFIM DWMAC_REGS_BIT32(6)
294#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV6NOPAYFIM DWMAC_REGS_BIT32(7)
295#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXUDPGFIM DWMAC_REGS_BIT32(8)
296#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXUDPERFIM DWMAC_REGS_BIT32(9)
297#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXTCPGFIM DWMAC_REGS_BIT32(10)
298#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXTCPERFIM DWMAC_REGS_BIT32(11)
299#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXICMPGFIM DWMAC_REGS_BIT32(12)
300#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXICMPERFIM DWMAC_REGS_BIT32(13)
301#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV4GOIM DWMAC_REGS_BIT32(16)
302#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV4HEROIM DWMAC_REGS_BIT32(17)
303#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV4NOPAYOIM DWMAC_REGS_BIT32(18)
304#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV4FRAGOIM DWMAC_REGS_BIT32(19)
305#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV4UDSBLOIM DWMAC_REGS_BIT32(20)
306#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV6GOIM DWMAC_REGS_BIT32(21)
307#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV6HEROIM DWMAC_REGS_BIT32(22)
308#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXIPV6NOPAYOIM DWMAC_REGS_BIT32(23)
309#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXUDPGOIM DWMAC_REGS_BIT32(24)
310#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXUDPEROIM DWMAC_REGS_BIT32(25)
311#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXTCPGOIM DWMAC_REGS_BIT32(26)
312#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXTCPEROIM DWMAC_REGS_BIT32(27)
313#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXICMPGOIM DWMAC_REGS_BIT32(28)
314#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_MASK_RXICMPEROIM DWMAC_REGS_BIT32(29)
315        uint32_t reserved_204;
316        uint32_t mmc_ipc_receive_interrupt;
317#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV4GFIS DWMAC_REGS_BIT32(0)
318#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV4HERFIS DWMAC_REGS_BIT32(1)
319#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV4NOPAYFIS DWMAC_REGS_BIT32(2)
320#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV4FRAGFIS DWMAC_REGS_BIT32(3)
321#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV4UDSBLFIS DWMAC_REGS_BIT32(4)
322#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV6GFIS DWMAC_REGS_BIT32(5)
323#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV6HERFIS DWMAC_REGS_BIT32(6)
324#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV6NOPAYFIS DWMAC_REGS_BIT32(7)
325#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXUDPGFIS DWMAC_REGS_BIT32(8)
326#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXUDPERFIS DWMAC_REGS_BIT32(9)
327#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXTCPGFIS DWMAC_REGS_BIT32(10)
328#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXTCPERFIS DWMAC_REGS_BIT32(11)
329#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXICMPGFIS DWMAC_REGS_BIT32(12)
330#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXICMPERFIS DWMAC_REGS_BIT32(13)
331#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV4GOIS DWMAC_REGS_BIT32(16)
332#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV4HEROIS DWMAC_REGS_BIT32(17)
333#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV4NOPAYOIS DWMAC_REGS_BIT32(18)
334#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV4FRAGOIS DWMAC_REGS_BIT32(19)
335#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV4UDSBLOIS DWMAC_REGS_BIT32(20)
336#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV6GOIS DWMAC_REGS_BIT32(21)
337#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV6HEROIS DWMAC_REGS_BIT32(22)
338#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXIPV6NOPAYOIS DWMAC_REGS_BIT32(23)
339#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXUDPGOIS DWMAC_REGS_BIT32(24)
340#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXUDPEROIS DWMAC_REGS_BIT32(25)
341#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXTCPGOIS DWMAC_REGS_BIT32(26)
342#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXTCPEROIS DWMAC_REGS_BIT32(27)
343#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXICMPGOIS DWMAC_REGS_BIT32(28)
344#define MACGRP_MMC_IPC_RECEIVE_INTERRUPT_RXICMPEROIS DWMAC_REGS_BIT32(29)
345        uint32_t reserved_20c;
346        uint32_t rxipv4_gd_frms;
347        uint32_t rxipv4_hdrerr_frms;
348        uint32_t rxipv4_nopay_frms;
349        uint32_t rxipv4_frag_frms;
350        uint32_t rxipv4_udsbl_frms;
351        uint32_t rxipv6_gd_frms;
352        uint32_t rxipv6_hdrerr_frms;
353        uint32_t rxipv6_nopay_frms;
354        uint32_t rxudp_gd_frms;
355        uint32_t rxudp_err_frms;
356        uint32_t rxtcp_gd_frms;
357        uint32_t rxtcp_err_frms;
358        uint32_t rxicmp_gd_frms;
359        uint32_t rxicmp_err_frms;
360        uint32_t reserved_248[2];
361        uint32_t rxipv4_gd_octets;
362        uint32_t rxipv4_hdrerr_octets;
363        uint32_t rxipv4_nopay_octets;
364        uint32_t rxipv4_frag_octets;
365        uint32_t rxipv4_udsbl_octets;
366        uint32_t rxipv6_gd_octets;
367        uint32_t rxipv6_hdrerr_octets;
368        uint32_t rxipv6_nopay_octets;
369        uint32_t rxudp_gd_octets;
370        uint32_t rxudp_err_octets;
371        uint32_t rxtcp_gd_octets;
372        uint32_t rxtcperroctets;
373        uint32_t rxicmp_gd_octets;
374        uint32_t rxicmp_err_octets;
375        uint32_t reserved_288[158];
376        uint32_t hash_table_reg[8];
377        uint32_t reserved_520[184];
378        mac mac_addr16_127[112];
379} macgrp;
380
381typedef struct {
382        uint32_t bus_mode;
383#define DMAGRP_BUS_MODE_SWR DWMAC_REGS_BIT32(0)
384#define DMAGRP_BUS_MODE_DSL(val) DWMAC_REGS_FLD32(val, 2, 6)
385#define DMAGRP_BUS_MODE_DSL_GET(reg) DWMAC_REGS_FLD32GET(reg, 2, 6)
386#define DMAGRP_BUS_MODE_DSL_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 2, 6)
387#define DMAGRP_BUS_MODE_ATDS DWMAC_REGS_BIT32(7)
388#define DMAGRP_BUS_MODE_PBL(val) DWMAC_REGS_FLD32(val, 8, 13)
389#define DMAGRP_BUS_MODE_PBL_GET(reg) DWMAC_REGS_FLD32GET(reg, 8, 13)
390#define DMAGRP_BUS_MODE_PBL_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 8, 13)
391#define DMAGRP_BUS_MODE_FB DWMAC_REGS_BIT32(16)
392#define DMAGRP_BUS_MODE_RPBL(val) DWMAC_REGS_FLD32(val, 17, 22)
393#define DMAGRP_BUS_MODE_RPBL_GET(reg) DWMAC_REGS_FLD32GET(reg, 17, 22)
394#define DMAGRP_BUS_MODE_RPBL_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 17, 22)
395#define DMAGRP_BUS_MODE_USP DWMAC_REGS_BIT32(23)
396#define DMAGRP_BUS_MODE_EIGHTXPBL DWMAC_REGS_BIT32(24)
397#define DMAGRP_BUS_MODE_AAL DWMAC_REGS_BIT32(25)
398#define DMAGRP_BUS_MODE_MB DWMAC_REGS_BIT32(26)
399        uint32_t transmit_poll_demand;
400#define DMAGRP_TRANSMIT_POLL_DEMAND_TPD(val) DWMAC_REGS_FLD32(val, 0, 31)
401#define DMAGRP_TRANSMIT_POLL_DEMAND_TPD_GET(reg) DWMAC_REGS_FLD32GET(reg, 0, 31)
402#define DMAGRP_TRANSMIT_POLL_DEMAND_TPD_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 0, 31)
403        uint32_t receive_poll_demand;
404#define DMAGRP_RECEIVE_POLL_DEMAND_RPD(val) DWMAC_REGS_FLD32(val, 0, 31)
405#define DMAGRP_RECEIVE_POLL_DEMAND_RPD_GET(reg) DWMAC_REGS_FLD32GET(reg, 0, 31)
406#define DMAGRP_RECEIVE_POLL_DEMAND_RPD_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 0, 31)
407        uint32_t receive_descr_list_addr;
408#define DMAGRP_RECEIVE_DESCR_LIST_ADDR_RDESLA_32BIT(val) DWMAC_REGS_FLD32(val, 2, 31)
409#define DMAGRP_RECEIVE_DESCR_LIST_ADDR_RDESLA_32BIT_GET(reg) DWMAC_REGS_FLD32GET(reg, 2, 31)
410#define DMAGRP_RECEIVE_DESCR_LIST_ADDR_RDESLA_32BIT_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 2, 31)
411        uint32_t transmit_descr_list_addr;
412#define DMAGRP_TRANSMIT_DESCR_LIST_ADDR_TDESLA_32BIT(val) DWMAC_REGS_FLD32(val, 2, 31)
413#define DMAGRP_TRANSMIT_DESCR_LIST_ADDR_TDESLA_32BIT_GET(reg) DWMAC_REGS_FLD32GET(reg, 2, 31)
414#define DMAGRP_TRANSMIT_DESCR_LIST_ADDR_TDESLA_32BIT_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 2, 31)
415        uint32_t status;
416#define DMAGRP_STATUS_TI DWMAC_REGS_BIT32(0)
417#define DMAGRP_STATUS_TPS DWMAC_REGS_BIT32(1)
418#define DMAGRP_STATUS_TU DWMAC_REGS_BIT32(2)
419#define DMAGRP_STATUS_TJT DWMAC_REGS_BIT32(3)
420#define DMAGRP_STATUS_OVF DWMAC_REGS_BIT32(4)
421#define DMAGRP_STATUS_UNF DWMAC_REGS_BIT32(5)
422#define DMAGRP_STATUS_RI DWMAC_REGS_BIT32(6)
423#define DMAGRP_STATUS_RU DWMAC_REGS_BIT32(7)
424#define DMAGRP_STATUS_RPS DWMAC_REGS_BIT32(8)
425#define DMAGRP_STATUS_RWT DWMAC_REGS_BIT32(9)
426#define DMAGRP_STATUS_ETI DWMAC_REGS_BIT32(10)
427#define DMAGRP_STATUS_FBI DWMAC_REGS_BIT32(13)
428#define DMAGRP_STATUS_ERI DWMAC_REGS_BIT32(14)
429#define DMAGRP_STATUS_AIS DWMAC_REGS_BIT32(15)
430#define DMAGRP_STATUS_NIS DWMAC_REGS_BIT32(16)
431#define DMAGRP_STATUS_RS(val) DWMAC_REGS_FLD32(val, 17, 19)
432#define DMAGRP_STATUS_RS_GET(reg) DWMAC_REGS_FLD32GET(reg, 17, 19)
433#define DMAGRP_STATUS_RS_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 17, 19)
434#define DMAGRP_STATUS_TS(val) DWMAC_REGS_FLD32(val, 20, 22)
435#define DMAGRP_STATUS_TS_GET(reg) DWMAC_REGS_FLD32GET(reg, 20, 22)
436#define DMAGRP_STATUS_TS_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 20, 22)
437#define DMAGRP_STATUS_EB(val) DWMAC_REGS_FLD32(val, 23, 25)
438#define DMAGRP_STATUS_EB_GET(reg) DWMAC_REGS_FLD32GET(reg, 23, 25)
439#define DMAGRP_STATUS_EB_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 23, 25)
440#define DMAGRP_STATUS_GLI DWMAC_REGS_BIT32(26)
441#define DMAGRP_STATUS_GMI DWMAC_REGS_BIT32(27)
442#define DMAGRP_STATUS_TTI DWMAC_REGS_BIT32(29)
443#define DMAGRP_STATUS_GLPII DWMAC_REGS_BIT32(30)
444        uint32_t operation_mode;
445#define DMAGRP_OPERATION_MODE_SR DWMAC_REGS_BIT32(1)
446#define DMAGRP_OPERATION_MODE_OSF DWMAC_REGS_BIT32(2)
447#define DMAGRP_OPERATION_MODE_RTC(val) DWMAC_REGS_FLD32(val, 3, 4)
448#define DMAGRP_OPERATION_MODE_RTC_GET(reg) DWMAC_REGS_FLD32GET(reg, 3, 4)
449#define DMAGRP_OPERATION_MODE_RTC_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 3, 4)
450#define DMAGRP_OPERATION_MODE_FUF DWMAC_REGS_BIT32(6)
451#define DMAGRP_OPERATION_MODE_FEF DWMAC_REGS_BIT32(7)
452#define DMAGRP_OPERATION_MODE_EFC DWMAC_REGS_BIT32(8)
453#define DMAGRP_OPERATION_MODE_RFA(val) DWMAC_REGS_FLD32(val, 9, 10)
454#define DMAGRP_OPERATION_MODE_RFA_GET(reg) DWMAC_REGS_FLD32GET(reg, 9, 10)
455#define DMAGRP_OPERATION_MODE_RFA_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 9, 10)
456#define DMAGRP_OPERATION_MODE_RFD(val) DWMAC_REGS_FLD32(val, 11, 12)
457#define DMAGRP_OPERATION_MODE_RFD_GET(reg) DWMAC_REGS_FLD32GET(reg, 11, 12)
458#define DMAGRP_OPERATION_MODE_RFD_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 11, 12)
459#define DMAGRP_OPERATION_MODE_ST DWMAC_REGS_BIT32(13)
460#define DMAGRP_OPERATION_MODE_TTC(val) DWMAC_REGS_FLD32(val, 14, 16)
461#define DMAGRP_OPERATION_MODE_TTC_GET(reg) DWMAC_REGS_FLD32GET(reg, 14, 16)
462#define DMAGRP_OPERATION_MODE_TTC_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 14, 16)
463#define DMAGRP_OPERATION_MODE_FTF DWMAC_REGS_BIT32(20)
464#define DMAGRP_OPERATION_MODE_TSF DWMAC_REGS_BIT32(21)
465#define DMAGRP_OPERATION_MODE_DFF DWMAC_REGS_BIT32(24)
466#define DMAGRP_OPERATION_MODE_RSF DWMAC_REGS_BIT32(25)
467#define DMAGRP_OPERATION_MODE_DT DWMAC_REGS_BIT32(26)
468        uint32_t interrupt_enable;
469#define DMAGRP_INTERRUPT_ENABLE_TIE DWMAC_REGS_BIT32(0)
470#define DMAGRP_INTERRUPT_ENABLE_TSE DWMAC_REGS_BIT32(1)
471#define DMAGRP_INTERRUPT_ENABLE_TUE DWMAC_REGS_BIT32(2)
472#define DMAGRP_INTERRUPT_ENABLE_TJE DWMAC_REGS_BIT32(3)
473#define DMAGRP_INTERRUPT_ENABLE_OVE DWMAC_REGS_BIT32(4)
474#define DMAGRP_INTERRUPT_ENABLE_UNE DWMAC_REGS_BIT32(5)
475#define DMAGRP_INTERRUPT_ENABLE_RIE DWMAC_REGS_BIT32(6)
476#define DMAGRP_INTERRUPT_ENABLE_RUE DWMAC_REGS_BIT32(7)
477#define DMAGRP_INTERRUPT_ENABLE_RSE DWMAC_REGS_BIT32(8)
478#define DMAGRP_INTERRUPT_ENABLE_RWE DWMAC_REGS_BIT32(9)
479#define DMAGRP_INTERRUPT_ENABLE_ETE DWMAC_REGS_BIT32(10)
480#define DMAGRP_INTERRUPT_ENABLE_FBE DWMAC_REGS_BIT32(13)
481#define DMAGRP_INTERRUPT_ENABLE_ERE DWMAC_REGS_BIT32(14)
482#define DMAGRP_INTERRUPT_ENABLE_AIE DWMAC_REGS_BIT32(15)
483#define DMAGRP_INTERRUPT_ENABLE_NIE DWMAC_REGS_BIT32(16)
484        uint32_t reserved_20[2];
485        uint32_t axi_bus_mode;
486#define DMAGRP_AXI_BUS_MODE_UNDEFINED DWMAC_REGS_BIT32(0)
487#define DMAGRP_AXI_BUS_MODE_BLEND4 DWMAC_REGS_BIT32(1)
488#define DMAGRP_AXI_BUS_MODE_BLEND8 DWMAC_REGS_BIT32(2)
489#define DMAGRP_AXI_BUS_MODE_BLEND16 DWMAC_REGS_BIT32(3)
490#define DMAGRP_AXI_BUS_MODE_AXI_AAL DWMAC_REGS_BIT32(12)
491#define DMAGRP_AXI_BUS_MODE_ONEKBBE DWMAC_REGS_BIT32(13)
492#define DMAGRP_AXI_BUS_MODE_RD_OSR_LMT(val) DWMAC_REGS_FLD32(val, 16, 19)
493#define DMAGRP_AXI_BUS_MODE_RD_OSR_LMT_GET(reg) DWMAC_REGS_FLD32GET(reg, 16, 19)
494#define DMAGRP_AXI_BUS_MODE_RD_OSR_LMT_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 16, 19)
495#define DMAGRP_AXI_BUS_MODE_WR_OSR_LMT(val) DWMAC_REGS_FLD32(val, 20, 23)
496#define DMAGRP_AXI_BUS_MODE_WR_OSR_LMT_GET(reg) DWMAC_REGS_FLD32GET(reg, 20, 23)
497#define DMAGRP_AXI_BUS_MODE_WR_OSR_LMT_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 20, 23)
498#define DMAGRP_AXI_BUS_MODE_LPI_XIT_FRM DWMAC_REGS_BIT32(30)
499#define DMAGRP_AXI_BUS_MODE_EN_LPI DWMAC_REGS_BIT32(31)
500        uint32_t reserved_2c[11];
501        uint32_t hw_feature;
502#define DMAGRP_HW_FEATURE_MIISEL DWMAC_REGS_BIT32(0)
503#define DMAGRP_HW_FEATURE_GMIISEL DWMAC_REGS_BIT32(1)
504#define DMAGRP_HW_FEATURE_HDSEL DWMAC_REGS_BIT32(2)
505#define DMAGRP_HW_FEATURE_HASHSEL DWMAC_REGS_BIT32(4)
506#define DMAGRP_HW_FEATURE_ADDMACADRSEL DWMAC_REGS_BIT32(5)
507#define DMAGRP_HW_FEATURE_PCSSEL DWMAC_REGS_BIT32(6)
508#define DMAGRP_HW_FEATURE_SMASEL DWMAC_REGS_BIT32(8)
509#define DMAGRP_HW_FEATURE_RWKSEL DWMAC_REGS_BIT32(9)
510#define DMAGRP_HW_FEATURE_MGKSEL DWMAC_REGS_BIT32(10)
511#define DMAGRP_HW_FEATURE_MMCSEL DWMAC_REGS_BIT32(11)
512#define DMAGRP_HW_FEATURE_TSVER1SEL DWMAC_REGS_BIT32(12)
513#define DMAGRP_HW_FEATURE_TSVER2SEL DWMAC_REGS_BIT32(13)
514#define DMAGRP_HW_FEATURE_EEESEL DWMAC_REGS_BIT32(14)
515#define DMAGRP_HW_FEATURE_AVSEL DWMAC_REGS_BIT32(15)
516#define DMAGRP_HW_FEATURE_TXOESEL DWMAC_REGS_BIT32(16)
517#define DMAGRP_HW_FEATURE_RXTYP1COE DWMAC_REGS_BIT32(17)
518#define DMAGRP_HW_FEATURE_RXTYP2COE DWMAC_REGS_BIT32(18)
519#define DMAGRP_HW_FEATURE_RXFIFOSIZE DWMAC_REGS_BIT32(19)
520#define DMAGRP_HW_FEATURE_RXCHCNT(val) DWMAC_REGS_FLD32(val, 20, 21)
521#define DMAGRP_HW_FEATURE_RXCHCNT_GET(reg) DWMAC_REGS_FLD32GET(reg, 20, 21)
522#define DMAGRP_HW_FEATURE_RXCHCNT_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 20, 21)
523#define DMAGRP_HW_FEATURE_TXCHCNT(val) DWMAC_REGS_FLD32(val, 22, 23)
524#define DMAGRP_HW_FEATURE_TXCHCNT_GET(reg) DWMAC_REGS_FLD32GET(reg, 22, 23)
525#define DMAGRP_HW_FEATURE_TXCHCNT_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 22, 23)
526#define DMAGRP_HW_FEATURE_ENHDESSEL DWMAC_REGS_BIT32(24)
527#define DMAGRP_HW_FEATURE_ACTPHYIF(val) DWMAC_REGS_FLD32(val, 28, 30)
528#define DMAGRP_HW_FEATURE_ACTPHYIF_GET(reg) DWMAC_REGS_FLD32GET(reg, 28, 30)
529#define DMAGRP_HW_FEATURE_ACTPHYIF_SET(reg, val) DWMAC_REGS_FLD32SET(reg, val, 28, 30)
530} dmagrp;
531
532#endif /* MAC_REGS_H */
Note: See TracBrowser for help on using the repository browser.