xref: /qemu/hw/net/fsl_etsec/registers.c (revision eb1e7c3e514665bb948357ef39845efd9af29de1)
1*eb1e7c3eSFabien Chouteau /*
2*eb1e7c3eSFabien Chouteau  * QEMU Freescale eTSEC Emulator
3*eb1e7c3eSFabien Chouteau  *
4*eb1e7c3eSFabien Chouteau  * Copyright (c) 2011-2013 AdaCore
5*eb1e7c3eSFabien Chouteau  *
6*eb1e7c3eSFabien Chouteau  * Permission is hereby granted, free of charge, to any person obtaining a copy
7*eb1e7c3eSFabien Chouteau  * of this software and associated documentation files (the "Software"), to deal
8*eb1e7c3eSFabien Chouteau  * in the Software without restriction, including without limitation the rights
9*eb1e7c3eSFabien Chouteau  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10*eb1e7c3eSFabien Chouteau  * copies of the Software, and to permit persons to whom the Software is
11*eb1e7c3eSFabien Chouteau  * furnished to do so, subject to the following conditions:
12*eb1e7c3eSFabien Chouteau  *
13*eb1e7c3eSFabien Chouteau  * The above copyright notice and this permission notice shall be included in
14*eb1e7c3eSFabien Chouteau  * all copies or substantial portions of the Software.
15*eb1e7c3eSFabien Chouteau  *
16*eb1e7c3eSFabien Chouteau  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17*eb1e7c3eSFabien Chouteau  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18*eb1e7c3eSFabien Chouteau  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19*eb1e7c3eSFabien Chouteau  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20*eb1e7c3eSFabien Chouteau  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21*eb1e7c3eSFabien Chouteau  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22*eb1e7c3eSFabien Chouteau  * THE SOFTWARE.
23*eb1e7c3eSFabien Chouteau  */
24*eb1e7c3eSFabien Chouteau #include "registers.h"
25*eb1e7c3eSFabien Chouteau 
26*eb1e7c3eSFabien Chouteau const eTSEC_Register_Definition eTSEC_registers_def[] = {
27*eb1e7c3eSFabien Chouteau {0x000, "TSEC_ID",  "Controller ID register",    ACC_RO,  0x01240000},
28*eb1e7c3eSFabien Chouteau {0x004, "TSEC_ID2", "Controller ID register 2",  ACC_RO,  0x003000F0},
29*eb1e7c3eSFabien Chouteau {0x010, "IEVENT",   "Interrupt event register",  ACC_W1C, 0x00000000},
30*eb1e7c3eSFabien Chouteau {0x014, "IMASK",    "Interrupt mask register",   ACC_RW,  0x00000000},
31*eb1e7c3eSFabien Chouteau {0x018, "EDIS",     "Error disabled register",   ACC_RW,  0x00000000},
32*eb1e7c3eSFabien Chouteau {0x020, "ECNTRL",   "Ethernet control register", ACC_RW,  0x00000040},
33*eb1e7c3eSFabien Chouteau {0x028, "PTV",      "Pause time value register", ACC_RW,  0x00000000},
34*eb1e7c3eSFabien Chouteau {0x02C, "DMACTRL",  "DMA control register",      ACC_RW,  0x00000000},
35*eb1e7c3eSFabien Chouteau {0x030, "TBIPA",    "TBI PHY address register",  ACC_RW,  0x00000000},
36*eb1e7c3eSFabien Chouteau 
37*eb1e7c3eSFabien Chouteau /* eTSEC FIFO Control and Status Registers */
38*eb1e7c3eSFabien Chouteau 
39*eb1e7c3eSFabien Chouteau {0x058, "FIFO_RX_ALARM",          "FIFO receive alarm start threshold register",    ACC_RW, 0x00000040},
40*eb1e7c3eSFabien Chouteau {0x05C, "FIFO_RX_ALARM_SHUTOFF",  "FIFO receive alarm shut-off threshold register", ACC_RW, 0x00000080},
41*eb1e7c3eSFabien Chouteau {0x08C, "FIFO_TX_THR",            "FIFO transmit threshold register",               ACC_RW, 0x00000080},
42*eb1e7c3eSFabien Chouteau {0x098, "FIFO_TX_STARVE",         "FIFO transmit starve register",                  ACC_RW, 0x00000040},
43*eb1e7c3eSFabien Chouteau {0x09C, "FIFO_TX_STARVE_SHUTOFF", "FIFO transmit starve shut-off register",         ACC_RW, 0x00000080},
44*eb1e7c3eSFabien Chouteau 
45*eb1e7c3eSFabien Chouteau /* eTSEC Transmit Control and Status Registers */
46*eb1e7c3eSFabien Chouteau 
47*eb1e7c3eSFabien Chouteau {0x100, "TCTRL",        "Transmit control register",                ACC_RW,  0x00000000},
48*eb1e7c3eSFabien Chouteau {0x104, "TSTAT",        "Transmit status register",                 ACC_W1C, 0x00000000},
49*eb1e7c3eSFabien Chouteau {0x108, "DFVLAN",       "Default VLAN control word",                ACC_RW,  0x81000000},
50*eb1e7c3eSFabien Chouteau {0x110, "TXIC",         "Transmit interrupt coalescing register",   ACC_RW,  0x00000000},
51*eb1e7c3eSFabien Chouteau {0x114, "TQUEUE",       "Transmit queue control register",          ACC_RW,  0x00008000},
52*eb1e7c3eSFabien Chouteau {0x140, "TR03WT",       "TxBD Rings 0-3 round-robin weightings",    ACC_RW,  0x00000000},
53*eb1e7c3eSFabien Chouteau {0x144, "TR47WT",       "TxBD Rings 4-7 round-robin weightings",    ACC_RW,  0x00000000},
54*eb1e7c3eSFabien Chouteau {0x180, "TBDBPH",       "Tx data buffer pointer high bits",         ACC_RW,  0x00000000},
55*eb1e7c3eSFabien Chouteau {0x184, "TBPTR0",       "TxBD pointer for ring 0",                  ACC_RW,  0x00000000},
56*eb1e7c3eSFabien Chouteau {0x18C, "TBPTR1",       "TxBD pointer for ring 1",                  ACC_RW,  0x00000000},
57*eb1e7c3eSFabien Chouteau {0x194, "TBPTR2",       "TxBD pointer for ring 2",                  ACC_RW,  0x00000000},
58*eb1e7c3eSFabien Chouteau {0x19C, "TBPTR3",       "TxBD pointer for ring 3",                  ACC_RW,  0x00000000},
59*eb1e7c3eSFabien Chouteau {0x1A4, "TBPTR4",       "TxBD pointer for ring 4",                  ACC_RW,  0x00000000},
60*eb1e7c3eSFabien Chouteau {0x1AC, "TBPTR5",       "TxBD pointer for ring 5",                  ACC_RW,  0x00000000},
61*eb1e7c3eSFabien Chouteau {0x1B4, "TBPTR6",       "TxBD pointer for ring 6",                  ACC_RW,  0x00000000},
62*eb1e7c3eSFabien Chouteau {0x1BC, "TBPTR7",       "TxBD pointer for ring 7",                  ACC_RW,  0x00000000},
63*eb1e7c3eSFabien Chouteau {0x200, "TBASEH",       "TxBD base address high bits",              ACC_RW,  0x00000000},
64*eb1e7c3eSFabien Chouteau {0x204, "TBASE0",       "TxBD base address of ring 0",              ACC_RW,  0x00000000},
65*eb1e7c3eSFabien Chouteau {0x20C, "TBASE1",       "TxBD base address of ring 1",              ACC_RW,  0x00000000},
66*eb1e7c3eSFabien Chouteau {0x214, "TBASE2",       "TxBD base address of ring 2",              ACC_RW,  0x00000000},
67*eb1e7c3eSFabien Chouteau {0x21C, "TBASE3",       "TxBD base address of ring 3",              ACC_RW,  0x00000000},
68*eb1e7c3eSFabien Chouteau {0x224, "TBASE4",       "TxBD base address of ring 4",              ACC_RW,  0x00000000},
69*eb1e7c3eSFabien Chouteau {0x22C, "TBASE5",       "TxBD base address of ring 5",              ACC_RW,  0x00000000},
70*eb1e7c3eSFabien Chouteau {0x234, "TBASE6",       "TxBD base address of ring 6",              ACC_RW,  0x00000000},
71*eb1e7c3eSFabien Chouteau {0x23C, "TBASE7",       "TxBD base address of ring 7",              ACC_RW,  0x00000000},
72*eb1e7c3eSFabien Chouteau {0x280, "TMR_TXTS1_ID", "Tx time stamp identification tag (set 1)", ACC_RO,  0x00000000},
73*eb1e7c3eSFabien Chouteau {0x284, "TMR_TXTS2_ID", "Tx time stamp identification tag (set 2)", ACC_RO,  0x00000000},
74*eb1e7c3eSFabien Chouteau {0x2C0, "TMR_TXTS1_H",  "Tx time stamp high (set 1)",               ACC_RO,  0x00000000},
75*eb1e7c3eSFabien Chouteau {0x2C4, "TMR_TXTS1_L",  "Tx time stamp high (set 1)",               ACC_RO,  0x00000000},
76*eb1e7c3eSFabien Chouteau {0x2C8, "TMR_TXTS2_H",  "Tx time stamp high (set 2)",               ACC_RO,  0x00000000},
77*eb1e7c3eSFabien Chouteau {0x2CC, "TMR_TXTS2_L",  "Tx time stamp high (set 2)",               ACC_RO,  0x00000000},
78*eb1e7c3eSFabien Chouteau 
79*eb1e7c3eSFabien Chouteau /* eTSEC Receive Control and Status Registers */
80*eb1e7c3eSFabien Chouteau 
81*eb1e7c3eSFabien Chouteau {0x300, "RCTRL",      "Receive control register",                     ACC_RW,  0x00000000},
82*eb1e7c3eSFabien Chouteau {0x304, "RSTAT",      "Receive status register",                      ACC_W1C, 0x00000000},
83*eb1e7c3eSFabien Chouteau {0x310, "RXIC",       "Receive interrupt coalescing register",        ACC_RW,  0x00000000},
84*eb1e7c3eSFabien Chouteau {0x314, "RQUEUE",     "Receive queue control register.",              ACC_RW,  0x00800080},
85*eb1e7c3eSFabien Chouteau {0x330, "RBIFX",      "Receive bit field extract control register",   ACC_RW,  0x00000000},
86*eb1e7c3eSFabien Chouteau {0x334, "RQFAR",      "Receive queue filing table address register",  ACC_RW,  0x00000000},
87*eb1e7c3eSFabien Chouteau {0x338, "RQFCR",      "Receive queue filing table control register",  ACC_RW,  0x00000000},
88*eb1e7c3eSFabien Chouteau {0x33C, "RQFPR",      "Receive queue filing table property register", ACC_RW,  0x00000000},
89*eb1e7c3eSFabien Chouteau {0x340, "MRBLR",      "Maximum receive buffer length register",       ACC_RW,  0x00000000},
90*eb1e7c3eSFabien Chouteau {0x380, "RBDBPH",     "Rx data buffer pointer high bits",             ACC_RW,  0x00000000},
91*eb1e7c3eSFabien Chouteau {0x384, "RBPTR0",     "RxBD pointer for ring 0",                      ACC_RW,  0x00000000},
92*eb1e7c3eSFabien Chouteau {0x38C, "RBPTR1",     "RxBD pointer for ring 1",                      ACC_RW,  0x00000000},
93*eb1e7c3eSFabien Chouteau {0x394, "RBPTR2",     "RxBD pointer for ring 2",                      ACC_RW,  0x00000000},
94*eb1e7c3eSFabien Chouteau {0x39C, "RBPTR3",     "RxBD pointer for ring 3",                      ACC_RW,  0x00000000},
95*eb1e7c3eSFabien Chouteau {0x3A4, "RBPTR4",     "RxBD pointer for ring 4",                      ACC_RW,  0x00000000},
96*eb1e7c3eSFabien Chouteau {0x3AC, "RBPTR5",     "RxBD pointer for ring 5",                      ACC_RW,  0x00000000},
97*eb1e7c3eSFabien Chouteau {0x3B4, "RBPTR6",     "RxBD pointer for ring 6",                      ACC_RW,  0x00000000},
98*eb1e7c3eSFabien Chouteau {0x3BC, "RBPTR7",     "RxBD pointer for ring 7",                      ACC_RW,  0x00000000},
99*eb1e7c3eSFabien Chouteau {0x400, "RBASEH",     "RxBD base address high bits",                  ACC_RW,  0x00000000},
100*eb1e7c3eSFabien Chouteau {0x404, "RBASE0",     "RxBD base address of ring 0",                  ACC_RW,  0x00000000},
101*eb1e7c3eSFabien Chouteau {0x40C, "RBASE1",     "RxBD base address of ring 1",                  ACC_RW,  0x00000000},
102*eb1e7c3eSFabien Chouteau {0x414, "RBASE2",     "RxBD base address of ring 2",                  ACC_RW,  0x00000000},
103*eb1e7c3eSFabien Chouteau {0x41C, "RBASE3",     "RxBD base address of ring 3",                  ACC_RW,  0x00000000},
104*eb1e7c3eSFabien Chouteau {0x424, "RBASE4",     "RxBD base address of ring 4",                  ACC_RW,  0x00000000},
105*eb1e7c3eSFabien Chouteau {0x42C, "RBASE5",     "RxBD base address of ring 5",                  ACC_RW,  0x00000000},
106*eb1e7c3eSFabien Chouteau {0x434, "RBASE6",     "RxBD base address of ring 6",                  ACC_RW,  0x00000000},
107*eb1e7c3eSFabien Chouteau {0x43C, "RBASE7",     "RxBD base address of ring 7",                  ACC_RW,  0x00000000},
108*eb1e7c3eSFabien Chouteau {0x4C0, "TMR_RXTS_H", "Rx timer time stamp register high",            ACC_RW,  0x00000000},
109*eb1e7c3eSFabien Chouteau {0x4C4, "TMR_RXTS_L", "Rx timer time stamp register low",             ACC_RW,  0x00000000},
110*eb1e7c3eSFabien Chouteau 
111*eb1e7c3eSFabien Chouteau /* eTSEC MAC Registers */
112*eb1e7c3eSFabien Chouteau 
113*eb1e7c3eSFabien Chouteau {0x500, "MACCFG1",     "MAC configuration register 1",          ACC_RW, 0x00000000},
114*eb1e7c3eSFabien Chouteau {0x504, "MACCFG2",     "MAC configuration register 2",          ACC_RW, 0x00007000},
115*eb1e7c3eSFabien Chouteau {0x508, "IPGIFG",      "Inter-packet/inter-frame gap register", ACC_RW, 0x40605060},
116*eb1e7c3eSFabien Chouteau {0x50C, "HAFDUP",      "Half-duplex control",                   ACC_RW, 0x00A1F037},
117*eb1e7c3eSFabien Chouteau {0x510, "MAXFRM",      "Maximum frame length",                  ACC_RW, 0x00000600},
118*eb1e7c3eSFabien Chouteau {0x520, "MIIMCFG",     "MII management configuration",          ACC_RW, 0x00000007},
119*eb1e7c3eSFabien Chouteau {0x524, "MIIMCOM",     "MII management command",                ACC_RW, 0x00000000},
120*eb1e7c3eSFabien Chouteau {0x528, "MIIMADD",     "MII management address",                ACC_RW, 0x00000000},
121*eb1e7c3eSFabien Chouteau {0x52C, "MIIMCON",     "MII management control",                ACC_WO, 0x00000000},
122*eb1e7c3eSFabien Chouteau {0x530, "MIIMSTAT",    "MII management status",                 ACC_RO, 0x00000000},
123*eb1e7c3eSFabien Chouteau {0x534, "MIIMIND",     "MII management indicator",              ACC_RO, 0x00000000},
124*eb1e7c3eSFabien Chouteau {0x53C, "IFSTAT",      "Interface status",                      ACC_RO, 0x00000000},
125*eb1e7c3eSFabien Chouteau {0x540, "MACSTNADDR1", "MAC station address register 1",        ACC_RW, 0x00000000},
126*eb1e7c3eSFabien Chouteau {0x544, "MACSTNADDR2", "MAC station address register 2",        ACC_RW, 0x00000000},
127*eb1e7c3eSFabien Chouteau {0x548, "MAC01ADDR1",  "MAC exact match address 1, part 1",     ACC_RW, 0x00000000},
128*eb1e7c3eSFabien Chouteau {0x54C, "MAC01ADDR2",  "MAC exact match address 1, part 2",     ACC_RW, 0x00000000},
129*eb1e7c3eSFabien Chouteau {0x550, "MAC02ADDR1",  "MAC exact match address 2, part 1",     ACC_RW, 0x00000000},
130*eb1e7c3eSFabien Chouteau {0x554, "MAC02ADDR2",  "MAC exact match address 2, part 2",     ACC_RW, 0x00000000},
131*eb1e7c3eSFabien Chouteau {0x558, "MAC03ADDR1",  "MAC exact match address 3, part 1",     ACC_RW, 0x00000000},
132*eb1e7c3eSFabien Chouteau {0x55C, "MAC03ADDR2",  "MAC exact match address 3, part 2",     ACC_RW, 0x00000000},
133*eb1e7c3eSFabien Chouteau {0x560, "MAC04ADDR1",  "MAC exact match address 4, part 1",     ACC_RW, 0x00000000},
134*eb1e7c3eSFabien Chouteau {0x564, "MAC04ADDR2",  "MAC exact match address 4, part 2",     ACC_RW, 0x00000000},
135*eb1e7c3eSFabien Chouteau {0x568, "MAC05ADDR1",  "MAC exact match address 5, part 1",     ACC_RW, 0x00000000},
136*eb1e7c3eSFabien Chouteau {0x56C, "MAC05ADDR2",  "MAC exact match address 5, part 2",     ACC_RW, 0x00000000},
137*eb1e7c3eSFabien Chouteau {0x570, "MAC06ADDR1",  "MAC exact match address 6, part 1",     ACC_RW, 0x00000000},
138*eb1e7c3eSFabien Chouteau {0x574, "MAC06ADDR2",  "MAC exact match address 6, part 2",     ACC_RW, 0x00000000},
139*eb1e7c3eSFabien Chouteau {0x578, "MAC07ADDR1",  "MAC exact match address 7, part 1",     ACC_RW, 0x00000000},
140*eb1e7c3eSFabien Chouteau {0x57C, "MAC07ADDR2",  "MAC exact match address 7, part 2",     ACC_RW, 0x00000000},
141*eb1e7c3eSFabien Chouteau {0x580, "MAC08ADDR1",  "MAC exact match address 8, part 1",     ACC_RW, 0x00000000},
142*eb1e7c3eSFabien Chouteau {0x584, "MAC08ADDR2",  "MAC exact match address 8, part 2",     ACC_RW, 0x00000000},
143*eb1e7c3eSFabien Chouteau {0x588, "MAC09ADDR1",  "MAC exact match address 9, part 1",     ACC_RW, 0x00000000},
144*eb1e7c3eSFabien Chouteau {0x58C, "MAC09ADDR2",  "MAC exact match address 9, part 2",     ACC_RW, 0x00000000},
145*eb1e7c3eSFabien Chouteau {0x590, "MAC10ADDR1",  "MAC exact match address 10, part 1",    ACC_RW, 0x00000000},
146*eb1e7c3eSFabien Chouteau {0x594, "MAC10ADDR2",  "MAC exact match address 10, part 2",    ACC_RW, 0x00000000},
147*eb1e7c3eSFabien Chouteau {0x598, "MAC11ADDR1",  "MAC exact match address 11, part 1",    ACC_RW, 0x00000000},
148*eb1e7c3eSFabien Chouteau {0x59C, "MAC11ADDR2",  "MAC exact match address 11, part 2",    ACC_RW, 0x00000000},
149*eb1e7c3eSFabien Chouteau {0x5A0, "MAC12ADDR1",  "MAC exact match address 12, part 1",    ACC_RW, 0x00000000},
150*eb1e7c3eSFabien Chouteau {0x5A4, "MAC12ADDR2",  "MAC exact match address 12, part 2",    ACC_RW, 0x00000000},
151*eb1e7c3eSFabien Chouteau {0x5A8, "MAC13ADDR1",  "MAC exact match address 13, part 1",    ACC_RW, 0x00000000},
152*eb1e7c3eSFabien Chouteau {0x5AC, "MAC13ADDR2",  "MAC exact match address 13, part 2",    ACC_RW, 0x00000000},
153*eb1e7c3eSFabien Chouteau {0x5B0, "MAC14ADDR1",  "MAC exact match address 14, part 1",    ACC_RW, 0x00000000},
154*eb1e7c3eSFabien Chouteau {0x5B4, "MAC14ADDR2",  "MAC exact match address 14, part 2",    ACC_RW, 0x00000000},
155*eb1e7c3eSFabien Chouteau {0x5B8, "MAC15ADDR1",  "MAC exact match address 15, part 1",    ACC_RW, 0x00000000},
156*eb1e7c3eSFabien Chouteau {0x5BC, "MAC15ADDR2",  "MAC exact match address 15, part 2",    ACC_RW, 0x00000000},
157*eb1e7c3eSFabien Chouteau 
158*eb1e7c3eSFabien Chouteau /* eTSEC, "Transmit", "and", Receive, Counters */
159*eb1e7c3eSFabien Chouteau 
160*eb1e7c3eSFabien Chouteau {0x680, "TR64",  "Transmit and receive 64-byte frame counter ",                   ACC_RW, 0x00000000},
161*eb1e7c3eSFabien Chouteau {0x684, "TR127", "Transmit and receive 65- to 127-byte frame counter",            ACC_RW, 0x00000000},
162*eb1e7c3eSFabien Chouteau {0x688, "TR255", "Transmit and receive 128- to 255-byte frame counter",           ACC_RW, 0x00000000},
163*eb1e7c3eSFabien Chouteau {0x68C, "TR511", "Transmit and receive 256- to 511-byte frame counter",           ACC_RW, 0x00000000},
164*eb1e7c3eSFabien Chouteau {0x690, "TR1K",  "Transmit and receive 512- to 1023-byte frame counter",          ACC_RW, 0x00000000},
165*eb1e7c3eSFabien Chouteau {0x694, "TRMAX", "Transmit and receive 1024- to 1518-byte frame counter",         ACC_RW, 0x00000000},
166*eb1e7c3eSFabien Chouteau {0x698, "TRMGV", "Transmit and receive 1519- to 1522-byte good VLAN frame count", ACC_RW, 0x00000000},
167*eb1e7c3eSFabien Chouteau 
168*eb1e7c3eSFabien Chouteau /* eTSEC Receive Counters */
169*eb1e7c3eSFabien Chouteau 
170*eb1e7c3eSFabien Chouteau {0x69C, "RBYT", "Receive byte counter",                  ACC_RW, 0x00000000},
171*eb1e7c3eSFabien Chouteau {0x6A0, "RPKT", "Receive packet counter",                ACC_RW, 0x00000000},
172*eb1e7c3eSFabien Chouteau {0x6A4, "RFCS", "Receive FCS error counter",             ACC_RW, 0x00000000},
173*eb1e7c3eSFabien Chouteau {0x6A8, "RMCA", "Receive multicast packet counter",      ACC_RW, 0x00000000},
174*eb1e7c3eSFabien Chouteau {0x6AC, "RBCA", "Receive broadcast packet counter",      ACC_RW, 0x00000000},
175*eb1e7c3eSFabien Chouteau {0x6B0, "RXCF", "Receive control frame packet counter ", ACC_RW, 0x00000000},
176*eb1e7c3eSFabien Chouteau {0x6B4, "RXPF", "Receive PAUSE frame packet counter",    ACC_RW, 0x00000000},
177*eb1e7c3eSFabien Chouteau {0x6B8, "RXUO", "Receive unknown OP code counter ",      ACC_RW, 0x00000000},
178*eb1e7c3eSFabien Chouteau {0x6BC, "RALN", "Receive alignment error counter ",      ACC_RW, 0x00000000},
179*eb1e7c3eSFabien Chouteau {0x6C0, "RFLR", "Receive frame length error counter ",   ACC_RW, 0x00000000},
180*eb1e7c3eSFabien Chouteau {0x6C4, "RCDE", "Receive code error counter ",           ACC_RW, 0x00000000},
181*eb1e7c3eSFabien Chouteau {0x6C8, "RCSE", "Receive carrier sense error counter",   ACC_RW, 0x00000000},
182*eb1e7c3eSFabien Chouteau {0x6CC, "RUND", "Receive undersize packet counter",      ACC_RW, 0x00000000},
183*eb1e7c3eSFabien Chouteau {0x6D0, "ROVR", "Receive oversize packet counter ",      ACC_RW, 0x00000000},
184*eb1e7c3eSFabien Chouteau {0x6D4, "RFRG", "Receive fragments counter",             ACC_RW, 0x00000000},
185*eb1e7c3eSFabien Chouteau {0x6D8, "RJBR", "Receive jabber counter ",               ACC_RW, 0x00000000},
186*eb1e7c3eSFabien Chouteau {0x6DC, "RDRP", "Receive drop counter",                  ACC_RW, 0x00000000},
187*eb1e7c3eSFabien Chouteau 
188*eb1e7c3eSFabien Chouteau /* eTSEC Transmit Counters */
189*eb1e7c3eSFabien Chouteau 
190*eb1e7c3eSFabien Chouteau {0x6E0, "TBYT", "Transmit byte counter",                       ACC_RW, 0x00000000},
191*eb1e7c3eSFabien Chouteau {0x6E4, "TPKT", "Transmit packet counter",                     ACC_RW, 0x00000000},
192*eb1e7c3eSFabien Chouteau {0x6E8, "TMCA", "Transmit multicast packet counter ",          ACC_RW, 0x00000000},
193*eb1e7c3eSFabien Chouteau {0x6EC, "TBCA", "Transmit broadcast packet counter ",          ACC_RW, 0x00000000},
194*eb1e7c3eSFabien Chouteau {0x6F0, "TXPF", "Transmit PAUSE control frame counter ",       ACC_RW, 0x00000000},
195*eb1e7c3eSFabien Chouteau {0x6F4, "TDFR", "Transmit deferral packet counter ",           ACC_RW, 0x00000000},
196*eb1e7c3eSFabien Chouteau {0x6F8, "TEDF", "Transmit excessive deferral packet counter ", ACC_RW, 0x00000000},
197*eb1e7c3eSFabien Chouteau {0x6FC, "TSCL", "Transmit single collision packet counter",    ACC_RW, 0x00000000},
198*eb1e7c3eSFabien Chouteau {0x700, "TMCL", "Transmit multiple collision packet counter",  ACC_RW, 0x00000000},
199*eb1e7c3eSFabien Chouteau {0x704, "TLCL", "Transmit late collision packet counter",      ACC_RW, 0x00000000},
200*eb1e7c3eSFabien Chouteau {0x708, "TXCL", "Transmit excessive collision packet counter", ACC_RW, 0x00000000},
201*eb1e7c3eSFabien Chouteau {0x70C, "TNCL", "Transmit total collision counter ",           ACC_RW, 0x00000000},
202*eb1e7c3eSFabien Chouteau {0x714, "TDRP", "Transmit drop frame counter",                 ACC_RW, 0x00000000},
203*eb1e7c3eSFabien Chouteau {0x718, "TJBR", "Transmit jabber frame counter ",              ACC_RW, 0x00000000},
204*eb1e7c3eSFabien Chouteau {0x71C, "TFCS", "Transmit FCS error counter",                  ACC_RW, 0x00000000},
205*eb1e7c3eSFabien Chouteau {0x720, "TXCF", "Transmit control frame counter ",             ACC_RW, 0x00000000},
206*eb1e7c3eSFabien Chouteau {0x724, "TOVR", "Transmit oversize frame counter",             ACC_RW, 0x00000000},
207*eb1e7c3eSFabien Chouteau {0x728, "TUND", "Transmit undersize frame counter ",           ACC_RW, 0x00000000},
208*eb1e7c3eSFabien Chouteau {0x72C, "TFRG", "Transmit fragments frame counter ",           ACC_RW, 0x00000000},
209*eb1e7c3eSFabien Chouteau 
210*eb1e7c3eSFabien Chouteau /* eTSEC Counter Control and TOE Statistics Registers */
211*eb1e7c3eSFabien Chouteau 
212*eb1e7c3eSFabien Chouteau {0x730, "CAR1", "Carry register one register",           ACC_W1C, 0x00000000},
213*eb1e7c3eSFabien Chouteau {0x734, "CAR2", "Carry register two register ",          ACC_W1C, 0x00000000},
214*eb1e7c3eSFabien Chouteau {0x738, "CAM1", "Carry register one mask register ",     ACC_RW,  0xFE03FFFF},
215*eb1e7c3eSFabien Chouteau {0x73C, "CAM2", "Carry register two mask register ",     ACC_RW,  0x000FFFFD},
216*eb1e7c3eSFabien Chouteau {0x740, "RREJ", "Receive filer rejected packet counter", ACC_RW,  0x00000000},
217*eb1e7c3eSFabien Chouteau 
218*eb1e7c3eSFabien Chouteau /* Hash Function Registers */
219*eb1e7c3eSFabien Chouteau 
220*eb1e7c3eSFabien Chouteau {0x800, "IGADDR0", "Individual/group address register 0", ACC_RW, 0x00000000},
221*eb1e7c3eSFabien Chouteau {0x804, "IGADDR1", "Individual/group address register 1", ACC_RW, 0x00000000},
222*eb1e7c3eSFabien Chouteau {0x808, "IGADDR2", "Individual/group address register 2", ACC_RW, 0x00000000},
223*eb1e7c3eSFabien Chouteau {0x80C, "IGADDR3", "Individual/group address register 3", ACC_RW, 0x00000000},
224*eb1e7c3eSFabien Chouteau {0x810, "IGADDR4", "Individual/group address register 4", ACC_RW, 0x00000000},
225*eb1e7c3eSFabien Chouteau {0x814, "IGADDR5", "Individual/group address register 5", ACC_RW, 0x00000000},
226*eb1e7c3eSFabien Chouteau {0x818, "IGADDR6", "Individual/group address register 6", ACC_RW, 0x00000000},
227*eb1e7c3eSFabien Chouteau {0x81C, "IGADDR7", "Individual/group address register 7", ACC_RW, 0x00000000},
228*eb1e7c3eSFabien Chouteau {0x880, "GADDR0",  "Group address register 0",            ACC_RW, 0x00000000},
229*eb1e7c3eSFabien Chouteau {0x884, "GADDR1",  "Group address register 1",            ACC_RW, 0x00000000},
230*eb1e7c3eSFabien Chouteau {0x888, "GADDR2",  "Group address register 2",            ACC_RW, 0x00000000},
231*eb1e7c3eSFabien Chouteau {0x88C, "GADDR3",  "Group address register 3",            ACC_RW, 0x00000000},
232*eb1e7c3eSFabien Chouteau {0x890, "GADDR4",  "Group address register 4",            ACC_RW, 0x00000000},
233*eb1e7c3eSFabien Chouteau {0x894, "GADDR5",  "Group address register 5",            ACC_RW, 0x00000000},
234*eb1e7c3eSFabien Chouteau {0x898, "GADDR6",  "Group address register 6",            ACC_RW, 0x00000000},
235*eb1e7c3eSFabien Chouteau {0x89C, "GADDR7",  "Group address register 7",            ACC_RW, 0x00000000},
236*eb1e7c3eSFabien Chouteau 
237*eb1e7c3eSFabien Chouteau /* eTSEC DMA Attribute Registers */
238*eb1e7c3eSFabien Chouteau 
239*eb1e7c3eSFabien Chouteau {0xBF8, "ATTR",    "Attribute register",                                  ACC_RW, 0x00000000},
240*eb1e7c3eSFabien Chouteau {0xBFC, "ATTRELI", "Attribute extract length and extract index register", ACC_RW, 0x00000000},
241*eb1e7c3eSFabien Chouteau 
242*eb1e7c3eSFabien Chouteau 
243*eb1e7c3eSFabien Chouteau /* eTSEC Lossless Flow Control Registers */
244*eb1e7c3eSFabien Chouteau 
245*eb1e7c3eSFabien Chouteau {0xC00, "RQPRM0",  "Receive Queue Parameters register 0 ", ACC_RW, 0x00000000},
246*eb1e7c3eSFabien Chouteau {0xC04, "RQPRM1",  "Receive Queue Parameters register 1 ", ACC_RW, 0x00000000},
247*eb1e7c3eSFabien Chouteau {0xC08, "RQPRM2",  "Receive Queue Parameters register 2 ", ACC_RW, 0x00000000},
248*eb1e7c3eSFabien Chouteau {0xC0C, "RQPRM3",  "Receive Queue Parameters register 3 ", ACC_RW, 0x00000000},
249*eb1e7c3eSFabien Chouteau {0xC10, "RQPRM4",  "Receive Queue Parameters register 4 ", ACC_RW, 0x00000000},
250*eb1e7c3eSFabien Chouteau {0xC14, "RQPRM5",  "Receive Queue Parameters register 5 ", ACC_RW, 0x00000000},
251*eb1e7c3eSFabien Chouteau {0xC18, "RQPRM6",  "Receive Queue Parameters register 6 ", ACC_RW, 0x00000000},
252*eb1e7c3eSFabien Chouteau {0xC1C, "RQPRM7",  "Receive Queue Parameters register 7 ", ACC_RW, 0x00000000},
253*eb1e7c3eSFabien Chouteau {0xC44, "RFBPTR0", "Last Free RxBD pointer for ring 0",    ACC_RW, 0x00000000},
254*eb1e7c3eSFabien Chouteau {0xC4C, "RFBPTR1", "Last Free RxBD pointer for ring 1",    ACC_RW, 0x00000000},
255*eb1e7c3eSFabien Chouteau {0xC54, "RFBPTR2", "Last Free RxBD pointer for ring 2",    ACC_RW, 0x00000000},
256*eb1e7c3eSFabien Chouteau {0xC5C, "RFBPTR3", "Last Free RxBD pointer for ring 3",    ACC_RW, 0x00000000},
257*eb1e7c3eSFabien Chouteau {0xC64, "RFBPTR4", "Last Free RxBD pointer for ring 4",    ACC_RW, 0x00000000},
258*eb1e7c3eSFabien Chouteau {0xC6C, "RFBPTR5", "Last Free RxBD pointer for ring 5",    ACC_RW, 0x00000000},
259*eb1e7c3eSFabien Chouteau {0xC74, "RFBPTR6", "Last Free RxBD pointer for ring 6",    ACC_RW, 0x00000000},
260*eb1e7c3eSFabien Chouteau {0xC7C, "RFBPTR7", "Last Free RxBD pointer for ring 7",    ACC_RW, 0x00000000},
261*eb1e7c3eSFabien Chouteau 
262*eb1e7c3eSFabien Chouteau /* eTSEC Future Expansion Space */
263*eb1e7c3eSFabien Chouteau 
264*eb1e7c3eSFabien Chouteau /* Reserved*/
265*eb1e7c3eSFabien Chouteau 
266*eb1e7c3eSFabien Chouteau /* eTSEC IEEE 1588 Registers */
267*eb1e7c3eSFabien Chouteau 
268*eb1e7c3eSFabien Chouteau {0xE00, "TMR_CTRL",     "Timer control register",                          ACC_RW,  0x00010001},
269*eb1e7c3eSFabien Chouteau {0xE04, "TMR_TEVENT",   "time stamp event register",                       ACC_W1C, 0x00000000},
270*eb1e7c3eSFabien Chouteau {0xE08, "TMR_TEMASK",   "Timer event mask register",                       ACC_RW,  0x00000000},
271*eb1e7c3eSFabien Chouteau {0xE0C, "TMR_PEVENT",   "time stamp event register",                       ACC_RW,  0x00000000},
272*eb1e7c3eSFabien Chouteau {0xE10, "TMR_PEMASK",   "Timer event mask register",                       ACC_RW,  0x00000000},
273*eb1e7c3eSFabien Chouteau {0xE14, "TMR_STAT",     "time stamp status register",                      ACC_RW,  0x00000000},
274*eb1e7c3eSFabien Chouteau {0xE18, "TMR_CNT_H",    "timer counter high register",                     ACC_RW,  0x00000000},
275*eb1e7c3eSFabien Chouteau {0xE1C, "TMR_CNT_L",    "timer counter low register",                      ACC_RW,  0x00000000},
276*eb1e7c3eSFabien Chouteau {0xE20, "TMR_ADD",      "Timer drift compensation addend register",        ACC_RW,  0x00000000},
277*eb1e7c3eSFabien Chouteau {0xE24, "TMR_ACC",      "Timer accumulator register",                      ACC_RW,  0x00000000},
278*eb1e7c3eSFabien Chouteau {0xE28, "TMR_PRSC",     "Timer prescale",                                  ACC_RW,  0x00000002},
279*eb1e7c3eSFabien Chouteau {0xE30, "TMROFF_H",     "Timer offset high",                               ACC_RW,  0x00000000},
280*eb1e7c3eSFabien Chouteau {0xE34, "TMROFF_L",     "Timer offset low",                                ACC_RW,  0x00000000},
281*eb1e7c3eSFabien Chouteau {0xE40, "TMR_ALARM1_H", "Timer alarm 1 high register",                     ACC_RW,  0xFFFFFFFF},
282*eb1e7c3eSFabien Chouteau {0xE44, "TMR_ALARM1_L", "Timer alarm 1 high register",                     ACC_RW,  0xFFFFFFFF},
283*eb1e7c3eSFabien Chouteau {0xE48, "TMR_ALARM2_H", "Timer alarm 2 high register",                     ACC_RW,  0xFFFFFFFF},
284*eb1e7c3eSFabien Chouteau {0xE4C, "TMR_ALARM2_L", "Timer alarm 2 high register",                     ACC_RW,  0xFFFFFFFF},
285*eb1e7c3eSFabien Chouteau {0xE80, "TMR_FIPER1",   "Timer fixed period interval",                     ACC_RW,  0xFFFFFFFF},
286*eb1e7c3eSFabien Chouteau {0xE84, "TMR_FIPER2",   "Timer fixed period interval",                     ACC_RW,  0xFFFFFFFF},
287*eb1e7c3eSFabien Chouteau {0xE88, "TMR_FIPER3",   "Timer fixed period interval",                     ACC_RW,  0xFFFFFFFF},
288*eb1e7c3eSFabien Chouteau {0xEA0, "TMR_ETTS1_H",  "Time stamp of general purpose external trigger ", ACC_RW,  0x00000000},
289*eb1e7c3eSFabien Chouteau {0xEA4, "TMR_ETTS1_L",  "Time stamp of general purpose external trigger",  ACC_RW,  0x00000000},
290*eb1e7c3eSFabien Chouteau {0xEA8, "TMR_ETTS2_H",  "Time stamp of general purpose external trigger ", ACC_RW,  0x00000000},
291*eb1e7c3eSFabien Chouteau {0xEAC, "TMR_ETTS2_L",  "Time stamp of general purpose external trigger",  ACC_RW,  0x00000000},
292*eb1e7c3eSFabien Chouteau 
293*eb1e7c3eSFabien Chouteau /* End Of Table */
294*eb1e7c3eSFabien Chouteau {0x0, 0x0, 0x0, 0x0, 0x0}
295*eb1e7c3eSFabien Chouteau };
296