Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/unicore32/include/mach/regs-umal.h
10819 views
1
/*
2
* PKUnity Ultra Media Access Layer (UMAL) Ethernet MAC Registers
3
*/
4
5
/* MAC module of UMAL */
6
/* UMAL's MAC module includes G/MII interface, several additional PHY
7
* interfaces, and MAC control sub-layer, which provides support for control
8
* frames (e.g. PAUSE frames).
9
*/
10
/*
11
* TX/RX reset and control UMAL_CFG1
12
*/
13
#define UMAL_CFG1 (PKUNITY_UMAL_BASE + 0x0000)
14
/*
15
* MAC interface mode control UMAL_CFG2
16
*/
17
#define UMAL_CFG2 (PKUNITY_UMAL_BASE + 0x0004)
18
/*
19
* Inter Packet/Frame Gap UMAL_IPGIFG
20
*/
21
#define UMAL_IPGIFG (PKUNITY_UMAL_BASE + 0x0008)
22
/*
23
* Collision retry or backoff UMAL_HALFDUPLEX
24
*/
25
#define UMAL_HALFDUPLEX (PKUNITY_UMAL_BASE + 0x000c)
26
/*
27
* Maximum Frame Length UMAL_MAXFRAME
28
*/
29
#define UMAL_MAXFRAME (PKUNITY_UMAL_BASE + 0x0010)
30
/*
31
* Test Regsiter UMAL_TESTREG
32
*/
33
#define UMAL_TESTREG (PKUNITY_UMAL_BASE + 0x001c)
34
/*
35
* MII Management Configure UMAL_MIICFG
36
*/
37
#define UMAL_MIICFG (PKUNITY_UMAL_BASE + 0x0020)
38
/*
39
* MII Management Command UMAL_MIICMD
40
*/
41
#define UMAL_MIICMD (PKUNITY_UMAL_BASE + 0x0024)
42
/*
43
* MII Management Address UMAL_MIIADDR
44
*/
45
#define UMAL_MIIADDR (PKUNITY_UMAL_BASE + 0x0028)
46
/*
47
* MII Management Control UMAL_MIICTRL
48
*/
49
#define UMAL_MIICTRL (PKUNITY_UMAL_BASE + 0x002c)
50
/*
51
* MII Management Status UMAL_MIISTATUS
52
*/
53
#define UMAL_MIISTATUS (PKUNITY_UMAL_BASE + 0x0030)
54
/*
55
* MII Management Indicator UMAL_MIIIDCT
56
*/
57
#define UMAL_MIIIDCT (PKUNITY_UMAL_BASE + 0x0034)
58
/*
59
* Interface Control UMAL_IFCTRL
60
*/
61
#define UMAL_IFCTRL (PKUNITY_UMAL_BASE + 0x0038)
62
/*
63
* Interface Status UMAL_IFSTATUS
64
*/
65
#define UMAL_IFSTATUS (PKUNITY_UMAL_BASE + 0x003c)
66
/*
67
* MAC address (high 4 bytes) UMAL_STADDR1
68
*/
69
#define UMAL_STADDR1 (PKUNITY_UMAL_BASE + 0x0040)
70
/*
71
* MAC address (low 2 bytes) UMAL_STADDR2
72
*/
73
#define UMAL_STADDR2 (PKUNITY_UMAL_BASE + 0x0044)
74
75
/* FIFO MODULE OF UMAL */
76
/* UMAL's FIFO module provides data queuing for increased system level
77
* throughput
78
*/
79
#define UMAL_FIFOCFG0 (PKUNITY_UMAL_BASE + 0x0048)
80
#define UMAL_FIFOCFG1 (PKUNITY_UMAL_BASE + 0x004c)
81
#define UMAL_FIFOCFG2 (PKUNITY_UMAL_BASE + 0x0050)
82
#define UMAL_FIFOCFG3 (PKUNITY_UMAL_BASE + 0x0054)
83
#define UMAL_FIFOCFG4 (PKUNITY_UMAL_BASE + 0x0058)
84
#define UMAL_FIFOCFG5 (PKUNITY_UMAL_BASE + 0x005c)
85
#define UMAL_FIFORAM0 (PKUNITY_UMAL_BASE + 0x0060)
86
#define UMAL_FIFORAM1 (PKUNITY_UMAL_BASE + 0x0064)
87
#define UMAL_FIFORAM2 (PKUNITY_UMAL_BASE + 0x0068)
88
#define UMAL_FIFORAM3 (PKUNITY_UMAL_BASE + 0x006c)
89
#define UMAL_FIFORAM4 (PKUNITY_UMAL_BASE + 0x0070)
90
#define UMAL_FIFORAM5 (PKUNITY_UMAL_BASE + 0x0074)
91
#define UMAL_FIFORAM6 (PKUNITY_UMAL_BASE + 0x0078)
92
#define UMAL_FIFORAM7 (PKUNITY_UMAL_BASE + 0x007c)
93
94
/* MAHBE MODULE OF UMAL */
95
/* UMAL's MAHBE module interfaces to the host system through 32-bit AHB Master
96
* and Slave ports.Registers within the M-AHBE provide Control and Status
97
* information concerning these transfers.
98
*/
99
/*
100
* Transmit Control UMAL_DMATxCtrl
101
*/
102
#define UMAL_DMATxCtrl (PKUNITY_UMAL_BASE + 0x0180)
103
/*
104
* Pointer to TX Descripter UMAL_DMATxDescriptor
105
*/
106
#define UMAL_DMATxDescriptor (PKUNITY_UMAL_BASE + 0x0184)
107
/*
108
* Status of Tx Packet Transfers UMAL_DMATxStatus
109
*/
110
#define UMAL_DMATxStatus (PKUNITY_UMAL_BASE + 0x0188)
111
/*
112
* Receive Control UMAL_DMARxCtrl
113
*/
114
#define UMAL_DMARxCtrl (PKUNITY_UMAL_BASE + 0x018c)
115
/*
116
* Pointer to Rx Descriptor UMAL_DMARxDescriptor
117
*/
118
#define UMAL_DMARxDescriptor (PKUNITY_UMAL_BASE + 0x0190)
119
/*
120
* Status of Rx Packet Transfers UMAL_DMARxStatus
121
*/
122
#define UMAL_DMARxStatus (PKUNITY_UMAL_BASE + 0x0194)
123
/*
124
* Interrupt Mask UMAL_DMAIntrMask
125
*/
126
#define UMAL_DMAIntrMask (PKUNITY_UMAL_BASE + 0x0198)
127
/*
128
* Interrupts, read only UMAL_DMAInterrupt
129
*/
130
#define UMAL_DMAInterrupt (PKUNITY_UMAL_BASE + 0x019c)
131
132
/*
133
* Commands for UMAL_CFG1 register
134
*/
135
#define UMAL_CFG1_TXENABLE FIELD(1, 1, 0)
136
#define UMAL_CFG1_RXENABLE FIELD(1, 1, 2)
137
#define UMAL_CFG1_TXFLOWCTL FIELD(1, 1, 4)
138
#define UMAL_CFG1_RXFLOWCTL FIELD(1, 1, 5)
139
#define UMAL_CFG1_CONFLPBK FIELD(1, 1, 8)
140
#define UMAL_CFG1_RESET FIELD(1, 1, 31)
141
#define UMAL_CFG1_CONFFLCTL (MAC_TX_FLOW_CTL | MAC_RX_FLOW_CTL)
142
143
/*
144
* Commands for UMAL_CFG2 register
145
*/
146
#define UMAL_CFG2_FULLDUPLEX FIELD(1, 1, 0)
147
#define UMAL_CFG2_CRCENABLE FIELD(1, 1, 1)
148
#define UMAL_CFG2_PADCRC FIELD(1, 1, 2)
149
#define UMAL_CFG2_LENGTHCHECK FIELD(1, 1, 4)
150
#define UMAL_CFG2_MODEMASK FMASK(2, 8)
151
#define UMAL_CFG2_NIBBLEMODE FIELD(1, 2, 8)
152
#define UMAL_CFG2_BYTEMODE FIELD(2, 2, 8)
153
#define UMAL_CFG2_PREAMBLENMASK FMASK(4, 12)
154
#define UMAL_CFG2_DEFPREAMBLEN FIELD(7, 4, 12)
155
#define UMAL_CFG2_FD100 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_NIBBLEMODE \
156
| UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \
157
| UMAL_CFG2_CRCENABLE | UMAL_CFG2_FULLDUPLEX)
158
#define UMAL_CFG2_FD1000 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_BYTEMODE \
159
| UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \
160
| UMAL_CFG2_CRCENABLE | UMAL_CFG2_FULLDUPLEX)
161
#define UMAL_CFG2_HD100 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_NIBBLEMODE \
162
| UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \
163
| UMAL_CFG2_CRCENABLE)
164
165
/*
166
* Command for UMAL_IFCTRL register
167
*/
168
#define UMAL_IFCTRL_RESET FIELD(1, 1, 31)
169
170
/*
171
* Command for UMAL_MIICFG register
172
*/
173
#define UMAL_MIICFG_RESET FIELD(1, 1, 31)
174
175
/*
176
* Command for UMAL_MIICMD register
177
*/
178
#define UMAL_MIICMD_READ FIELD(1, 1, 0)
179
180
/*
181
* Command for UMAL_MIIIDCT register
182
*/
183
#define UMAL_MIIIDCT_BUSY FIELD(1, 1, 0)
184
#define UMAL_MIIIDCT_NOTVALID FIELD(1, 1, 2)
185
186
/*
187
* Commands for DMATxCtrl regesters
188
*/
189
#define UMAL_DMA_Enable FIELD(1, 1, 0)
190
191
/*
192
* Commands for DMARxCtrl regesters
193
*/
194
#define UMAL_DMAIntrMask_ENABLEHALFWORD FIELD(1, 1, 16)
195
196
/*
197
* Command for DMARxStatus
198
*/
199
#define CLR_RX_BUS_ERR FIELD(1, 1, 3)
200
#define CLR_RX_OVERFLOW FIELD(1, 1, 2)
201
#define CLR_RX_PKT FIELD(1, 1, 0)
202
203
/*
204
* Command for DMATxStatus
205
*/
206
#define CLR_TX_BUS_ERR FIELD(1, 1, 3)
207
#define CLR_TX_UNDERRUN FIELD(1, 1, 1)
208
#define CLR_TX_PKT FIELD(1, 1, 0)
209
210
/*
211
* Commands for DMAIntrMask and DMAInterrupt register
212
*/
213
#define INT_RX_MASK FIELD(0xd, 4, 4)
214
#define INT_TX_MASK FIELD(0xb, 4, 0)
215
216
#define INT_RX_BUS_ERR FIELD(1, 1, 7)
217
#define INT_RX_OVERFLOW FIELD(1, 1, 6)
218
#define INT_RX_PKT FIELD(1, 1, 4)
219
#define INT_TX_BUS_ERR FIELD(1, 1, 3)
220
#define INT_TX_UNDERRUN FIELD(1, 1, 1)
221
#define INT_TX_PKT FIELD(1, 1, 0)
222
223
/*
224
* MARCOS of UMAL's descriptors
225
*/
226
#define UMAL_DESC_PACKETSIZE_EMPTY FIELD(1, 1, 31)
227
#define UMAL_DESC_PACKETSIZE_NONEMPTY FIELD(0, 1, 31)
228
#define UMAL_DESC_PACKETSIZE_SIZEMASK FMASK(12, 0)
229
230
231