OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-arm/] [arch-at91rm9200/] [AT91RM9200_EMAC.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1276 phoenix
// ----------------------------------------------------------------------------
2
//          ATMEL Microcontroller Software Support  -  ROUSSET  -
3
// ----------------------------------------------------------------------------
4
//  The software is delivered "AS IS" without warranty or condition of any
5
//  kind, either express, implied or statutory. This includes without
6
//  limitation any warranty or condition with respect to merchantability or
7
//  fitness for any particular purpose, or against the infringements of
8
//  intellectual property rights of others.
9
// ----------------------------------------------------------------------------
10
// File Name           : AT91RM9200.h
11
// Object              : AT91RM9200 / EMAC definitions
12
// Generated           : AT91 SW Application Group  01/17/2003 (13:41:21)
13
//
14
// ----------------------------------------------------------------------------
15
 
16
#ifndef AT91RM9200_EMAC_H
17
#define AT91RM9200_EMAC_H
18
 
19
// *****************************************************************************
20
//              SOFTWARE API DEFINITION  FOR Ethernet MAC
21
// *****************************************************************************
22
#ifndef __ASSEMBLY__
23
 
24
typedef struct _AT91S_EMAC {
25
        AT91_REG         EMAC_CTL;      // Network Control Register
26
        AT91_REG         EMAC_CFG;      // Network Configuration Register
27
        AT91_REG         EMAC_SR;       // Network Status Register
28
        AT91_REG         EMAC_TAR;      // Transmit Address Register
29
        AT91_REG         EMAC_TCR;      // Transmit Control Register
30
        AT91_REG         EMAC_TSR;      // Transmit Status Register
31
        AT91_REG         EMAC_RBQP;     // Receive Buffer Queue Pointer
32
        AT91_REG         Reserved0[1];  //
33
        AT91_REG         EMAC_RSR;      // Receive Status Register
34
        AT91_REG         EMAC_ISR;      // Interrupt Status Register
35
        AT91_REG         EMAC_IER;      // Interrupt Enable Register
36
        AT91_REG         EMAC_IDR;      // Interrupt Disable Register
37
        AT91_REG         EMAC_IMR;      // Interrupt Mask Register
38
        AT91_REG         EMAC_MAN;      // PHY Maintenance Register
39
        AT91_REG         Reserved1[2];  //
40
        AT91_REG         EMAC_FRA;      // Frames Transmitted OK Register
41
        AT91_REG         EMAC_SCOL;     // Single Collision Frame Register
42
        AT91_REG         EMAC_MCOL;     // Multiple Collision Frame Register
43
        AT91_REG         EMAC_OK;       // Frames Received OK Register
44
        AT91_REG         EMAC_SEQE;     // Frame Check Sequence Error Register
45
        AT91_REG         EMAC_ALE;      // Alignment Error Register
46
        AT91_REG         EMAC_DTE;      // Deferred Transmission Frame Register
47
        AT91_REG         EMAC_LCOL;     // Late Collision Register
48
        AT91_REG         EMAC_ECOL;     // Excessive Collision Register
49
        AT91_REG         EMAC_CSE;      // Carrier Sense Error Register
50
        AT91_REG         EMAC_TUE;      // Transmit Underrun Error Register
51
        AT91_REG         EMAC_CDE;      // Code Error Register
52
        AT91_REG         EMAC_ELR;      // Excessive Length Error Register
53
        AT91_REG         EMAC_RJB;      // Receive Jabber Register
54
        AT91_REG         EMAC_USF;      // Undersize Frame Register
55
        AT91_REG         EMAC_SQEE;     // SQE Test Error Register
56
        AT91_REG         EMAC_DRFC;     // Discarded RX Frame Register
57
        AT91_REG         Reserved2[3];  //
58
        AT91_REG         EMAC_HSH;      // Hash Address High[63:32]
59
        AT91_REG         EMAC_HSL;      // Hash Address Low[31:0]
60
        AT91_REG         EMAC_SA1L;     // Specific Address 1 Low, First 4 bytes
61
        AT91_REG         EMAC_SA1H;     // Specific Address 1 High, Last 2 bytes
62
        AT91_REG         EMAC_SA2L;     // Specific Address 2 Low, First 4 bytes
63
        AT91_REG         EMAC_SA2H;     // Specific Address 2 High, Last 2 bytes
64
        AT91_REG         EMAC_SA3L;     // Specific Address 3 Low, First 4 bytes
65
        AT91_REG         EMAC_SA3H;     // Specific Address 3 High, Last 2 bytes
66
        AT91_REG         EMAC_SA4L;     // Specific Address 4 Low, First 4 bytes
67
        AT91_REG         EMAC_SA4H;     // Specific Address 4 High, Last 2 bytesr
68
} AT91S_EMAC, *AT91PS_EMAC;
69
 
70
#endif
71
 
72
// -------- EMAC_CTL : (EMAC Offset: 0x0)  --------
73
#define AT91C_EMAC_LB         ( 0x1 <<  0) // (EMAC) Loopback. Optional. When set, loopback signal is at high level.
74
#define AT91C_EMAC_LBL        ( 0x1 <<  1) // (EMAC) Loopback local.
75
#define AT91C_EMAC_RE         ( 0x1 <<  2) // (EMAC) Receive enable.
76
#define AT91C_EMAC_TE         ( 0x1 <<  3) // (EMAC) Transmit enable.
77
#define AT91C_EMAC_MPE        ( 0x1 <<  4) // (EMAC) Management port enable.
78
#define AT91C_EMAC_CSR        ( 0x1 <<  5) // (EMAC) Clear statistics registers.
79
#define AT91C_EMAC_ISR        ( 0x1 <<  6) // (EMAC) Increment statistics registers.
80
#define AT91C_EMAC_WES        ( 0x1 <<  7) // (EMAC) Write enable for statistics registers.
81
#define AT91C_EMAC_BP         ( 0x1 <<  8) // (EMAC) Back pressure.
82
// -------- EMAC_CFG : (EMAC Offset: 0x4) Network Configuration Register --------
83
#define AT91C_EMAC_SPD        ( 0x1 <<  0) // (EMAC) Speed.
84
#define AT91C_EMAC_FD         ( 0x1 <<  1) // (EMAC) Full duplex.
85
#define AT91C_EMAC_BR         ( 0x1 <<  2) // (EMAC) Bit rate.
86
#define AT91C_EMAC_CAF        ( 0x1 <<  4) // (EMAC) Copy all frames.
87
#define AT91C_EMAC_NBC        ( 0x1 <<  5) // (EMAC) No broadcast.
88
#define AT91C_EMAC_MTI        ( 0x1 <<  6) // (EMAC) Multicast hash enable
89
#define AT91C_EMAC_UNI        ( 0x1 <<  7) // (EMAC) Unicast hash enable.
90
#define AT91C_EMAC_BIG        ( 0x1 <<  8) // (EMAC) Receive 1522 bytes.
91
#define AT91C_EMAC_EAE        ( 0x1 <<  9) // (EMAC) External address match enable.
92
#define AT91C_EMAC_CLK        ( 0x3 << 10) // (EMAC)
93
#define         AT91C_EMAC_CLK_HCLK_8               ( 0x0 << 10) // (EMAC) HCLK divided by 8
94
#define         AT91C_EMAC_CLK_HCLK_16              ( 0x1 << 10) // (EMAC) HCLK divided by 16
95
#define         AT91C_EMAC_CLK_HCLK_32              ( 0x2 << 10) // (EMAC) HCLK divided by 32
96
#define         AT91C_EMAC_CLK_HCLK_64              ( 0x3 << 10) // (EMAC) HCLK divided by 64
97
#define AT91C_EMAC_RTY        ( 0x1 << 12) // (EMAC)
98
#define AT91C_EMAC_RMII       ( 0x1 << 13) // (EMAC)
99
// -------- EMAC_SR : (EMAC Offset: 0x8) Network Status Register --------
100
#define AT91C_EMAC_MDIO       ( 0x1 <<  1) // (EMAC)
101
#define AT91C_EMAC_IDLE       ( 0x1 <<  2) // (EMAC)
102
// -------- EMAC_TCR : (EMAC Offset: 0x10) Transmit Control Register --------
103
#define AT91C_EMAC_LEN        ( 0x7FF <<  0) // (EMAC)
104
#define AT91C_EMAC_NCRC       ( 0x1 << 15) // (EMAC)
105
// -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Control Register --------
106
#define AT91C_EMAC_OVR        ( 0x1 <<  0) // (EMAC)
107
#define AT91C_EMAC_COL        ( 0x1 <<  1) // (EMAC)
108
#define AT91C_EMAC_RLE        ( 0x1 <<  2) // (EMAC)
109
#define AT91C_EMAC_TXIDLE     ( 0x1 <<  3) // (EMAC)
110
#define AT91C_EMAC_BNQ        ( 0x1 <<  4) // (EMAC)
111
#define AT91C_EMAC_COMP       ( 0x1 <<  5) // (EMAC)
112
#define AT91C_EMAC_UND        ( 0x1 <<  6) // (EMAC)
113
// -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register --------
114
#define AT91C_EMAC_BNA        ( 0x1 <<  0) // (EMAC)
115
#define AT91C_EMAC_REC        ( 0x1 <<  1) // (EMAC)
116
// -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register --------
117
#define AT91C_EMAC_DONE       ( 0x1 <<  0) // (EMAC)
118
#define AT91C_EMAC_RCOM       ( 0x1 <<  1) // (EMAC)
119
#define AT91C_EMAC_RBNA       ( 0x1 <<  2) // (EMAC)
120
#define AT91C_EMAC_TOVR       ( 0x1 <<  3) // (EMAC)
121
#define AT91C_EMAC_TUND       ( 0x1 <<  4) // (EMAC)
122
#define AT91C_EMAC_RTRY       ( 0x1 <<  5) // (EMAC)
123
#define AT91C_EMAC_TBRE       ( 0x1 <<  6) // (EMAC)
124
#define AT91C_EMAC_TCOM       ( 0x1 <<  7) // (EMAC)
125
#define AT91C_EMAC_TIDLE      ( 0x1 <<  8) // (EMAC)
126
#define AT91C_EMAC_LINK       ( 0x1 <<  9) // (EMAC)
127
#define AT91C_EMAC_ROVR       ( 0x1 << 10) // (EMAC)
128
#define AT91C_EMAC_HRESP      ( 0x1 << 11) // (EMAC)
129
// -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register --------
130
// -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register --------
131
// -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register --------
132
// -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register --------
133
#define AT91C_EMAC_DATA       ( 0xFFFF <<  0) // (EMAC)
134
#define AT91C_EMAC_CODE       ( 0x3 << 16) // (EMAC)
135
#define         AT91C_EMAC_CODE_802_3 ( 0x2 << 16) // (EMAC) Write Operation
136
#define AT91C_EMAC_REGA       ( 0x1F << 18) // (EMAC)
137
#define AT91C_EMAC_PHYA       ( 0x1F << 23) // (EMAC)
138
#define AT91C_EMAC_RW         ( 0x3 << 28) // (EMAC)
139
#define         AT91C_EMAC_RW_R       ( 0x2 << 28) // (EMAC) Read Operation
140
#define         AT91C_EMAC_RW_W       ( 0x1 << 28) // (EMAC) Write Operation
141
#define AT91C_EMAC_HIGH       ( 0x1 << 30) // (EMAC)
142
#define AT91C_EMAC_LOW        ( 0x1 << 31) // (EMAC)
143
 
144
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.