FreeNOS
Sun8iEmac.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2020 Niek Linnenbank
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef __SERVER_NETWORK_SUN8I_SUN8IEMAC_H
19 #define __SERVER_NETWORK_SUN8I_SUN8IEMAC_H
20 
21 #include <FreeNOS/System.h>
22 #include <Types.h>
23 #include <Index.h>
24 #include <Queue.h>
25 #include <NetworkDevice.h>
26 #include <Ethernet.h>
29 
41 class Sun8iEmac : public NetworkDevice
42 {
43  public:
44 
46  static const Size InterruptNumber = 114;
47 
48  private:
49 
51  static const Address MemoryAddress = 0x01c30000;
52 
54  static const u8 PhyMdioAddress = 0x1;
55 
57  static const Size MaximumMiiPoll = 100000;
58 
60  static const Size MaximumResetPoll = 100000;
61 
65  enum Registers
66  {
67  BasicCtl0 = 0x0000,
68  BasicCtl1 = 0x0004,
69  IntStatus = 0x0008,
70  IntEnable = 0x000C,
71  TransmitCtl0 = 0x0010,
72  TransmitCtl1 = 0x0014,
73  TransmitFlowCtl = 0x001C,
74  TransmitDescList = 0x0020,
75  ReceiveCtl0 = 0x0024,
76  ReceiveCtl1 = 0x0028,
77  ReceiveDescList = 0x0034,
78  ReceiveFrmFilter = 0x0038,
79  ReceiveHash0 = 0x0040,
80  ReceiveHash1 = 0x0044,
81  MiiCmd = 0x0048,
82  MiiData = 0x004C,
83  AddrHigh = 0x0050,
84  AddrLow = 0x0054,
85  TransmitStatus = 0x00B0,
86  TransmitCurDesc = 0x00B4,
87  TransmitCurBuf = 0x00B8,
88  ReceiveStatus = 0x00C0,
89  ReceiveCurDesc = 0x00C4,
90  ReceiveCurBuf = 0x00C8,
91  RgmiiStatus = 0x00D0,
92  };
93 
98  {
99  BasicCtl0FullDup = (1 << 0),
100  BasicCtl0SpeedMask = ((1 << 2) | (1 << 3)),
101  BasicCtl0Speed100 = (0x3 << 2)
102  };
103 
108  {
109  BasicCtl1Reset = (1 << 0),
111  };
112 
117  {
118  IntStatusReceive = (1 << 8),
119  IntStatusTransmit = (1 << 0)
120  };
121 
126  {
127  IntEnableReceive = (1 << 8),
128  IntEnableTransmit = (1 << 0)
129  };
130 
135  {
142  MiiCmdPhyWrite = (1 << 1),
143  MiiCmdPhyBusy = (1 << 0)
144  };
145 
150  {
151  MiiRegControl = (0x0),
152  MiiRegStatus = (0x1),
153  MiiRegIdHigh = (0x2),
154  MiiRegIdLow = (0x3),
155  MiiRegAdv = (0x4),
156  MiiRegLink = (0x5),
157  };
158 
163  {
168  MiiControlReset = 0x8000,
169  };
170 
175  {
176  MiiStatusExt = 0x0001,
177  MiiStatusLink = 0x0004,
180  };
181 
186  {
189  };
190 
195  {
196  TransmitCtl0Enable = (1 << 31)
197  };
198 
203  {
204  TransmitCtl1DmaStart = (1 << 31),
208  };
209 
214  {
215  ReceiveCtl0Enable = (1 << 31)
216  };
217 
222  {
223  ReceiveCtl1DmaStart = (1 << 31),
224  ReceiveCtl1DmaEnable = (1 << 30),
228  };
229 
234  {
239  };
240 
245  {
246  FrameDescriptorCtl = (1 << 31),
247  TransmitDescRaiseInt = (1 << 31),
248  TransmitDescFirst = (1 << 29),
249  TransmitDescLast = (1 << 30),
250  TransmitDescChained = (1 << 24),
251  ReceiveDescLast = (1 << 8),
254  };
255 
256  public:
257 
264  Sun8iEmac(const u32 inode,
265  NetworkServer &server);
266 
270  virtual ~Sun8iEmac();
271 
277  virtual FileSystem::Result initialize();
278 
287 
295  virtual FileSystem::Result setAddress(const Ethernet::Address *address);
296 
304  virtual FileSystem::Result interrupt(const Size vector);
305 
314 
320  virtual FileSystem::Result startDMA();
321 
322  private:
323 
330 
336  bool miiBusyWait() const;
337 
346  u32 miiRead(const u8 phyAddr,
347  const u8 regAddr);
348 
356  void miiWrite(const u8 phyAddr,
357  const u8 regAddr,
358  const u32 data);
359 
366 
373 
380 
387 
394 
398  void printRx();
399 
403  void printTx();
404 
405  private:
406 
409 
412 
415 
418 
421 
424 
427 
430 
433 
436 
439 
442 };
443 
449 #endif /* __SERVER_NETWORK_SUN8I_SUN8IEMAC_H */
Sun8iEmac::m_transmitPending
Queue< NetworkQueue::Packet *, NetworkQueue::MaxPackets > m_transmitPending
List of pointers to packets pending transmission.
Definition: Sun8iEmac.h:435
Sun8iEmac::ReceiveCtl1DmaStart
@ ReceiveCtl1DmaStart
Definition: Sun8iEmac.h:223
Sun8iEmac::MiiCmdPhyRegMask
@ MiiCmdPhyRegMask
Definition: Sun8iEmac.h:139
Sun8iEmac::MiiCmdPhyRegShift
@ MiiCmdPhyRegShift
Definition: Sun8iEmac.h:138
Sun8iEmac::m_receiveDescRange
Memory::Range m_receiveDescRange
Memory range for receive descriptors.
Definition: Sun8iEmac.h:417
Sun8iEmac::MiiCmdPhyAddrMask
@ MiiCmdPhyAddrMask
Definition: Sun8iEmac.h:137
Memory::Range
Memory range.
Definition: Memory.h:55
Sun8iEmac::TransmitCtl1DmaStart
@ TransmitCtl1DmaStart
Definition: Sun8iEmac.h:204
Sun8iEmac::ReceiveCtl1UnderFrame
@ ReceiveCtl1UnderFrame
Definition: Sun8iEmac.h:226
Types.h
Sun8iEmac::transmit
virtual FileSystem::Result transmit(NetworkQueue::Packet *pkt)
Add a network packet to the transmit queue.
Definition: Sun8iEmac.cpp:214
Sun8iEmac::MiiStatusAutoCap
@ MiiStatusAutoCap
Definition: Sun8iEmac.h:178
Sun8iEmac::TransmitCtl0
@ TransmitCtl0
< Interrupt Enable
Definition: Sun8iEmac.h:71
Sun8iEmac::MiiRegisters
MiiRegisters
Registers provided by the PHY on the Media-Independent-Interface (MII)
Definition: Sun8iEmac.h:149
Sun8iEmac::MiiRegIdHigh
@ MiiRegIdHigh
< Status
Definition: Sun8iEmac.h:153
Sun8iEmac::FrameDescriptorCtl
@ FrameDescriptorCtl
Definition: Sun8iEmac.h:246
Sun8iEmac::MiiControlAutoEnable
@ MiiControlAutoEnable
Definition: Sun8iEmac.h:166
Sun8iEmac::FrameDescriptor::bufsize
u32 bufsize
Definition: Sun8iEmac.h:236
Sun8iEmac::MiiStatusExt
@ MiiStatusExt
Definition: Sun8iEmac.h:176
Index.h
Sun8iEmac::TransmitStatus
@ TransmitStatus
< MAC Address Low
Definition: Sun8iEmac.h:85
ARMIO
Input/Output operations specific to the ARM architecture.
Definition: ARMIO.h:39
Ethernet.h
NetworkDevice
Network Device abstract class.
Definition: NetworkDevice.h:41
Sun8iEmac::TransmitCtl0Flags
TransmitCtl0Flags
Flags for the Transmit Control 0 register.
Definition: Sun8iEmac.h:194
Sun8iEmac::MiiAdvSpeed10Full
@ MiiAdvSpeed10Full
Definition: Sun8iEmac.h:187
Sun8iEmac::MiiCmdPhyCsrShift
@ MiiCmdPhyCsrShift
Definition: Sun8iEmac.h:141
Sun8iEmac::BasicCtl1
@ BasicCtl1
< Basic Control 0
Definition: Sun8iEmac.h:68
Sun8iEmac::ReceiveStatus
@ ReceiveStatus
< Transmit Current Buffer
Definition: Sun8iEmac.h:88
Sun8iEmac::FrameDescriptor
Transmit/receive frame descriptor.
Definition: Sun8iEmac.h:233
Sun8iEmac::MemoryAddress
static const Address MemoryAddress
Physical memory address of the device memory mapped registers.
Definition: Sun8iEmac.h:51
Sun8iEmac::ReceiveHash0
@ ReceiveHash0
< Receive Frame Filter
Definition: Sun8iEmac.h:79
Index
Index is a N-sized array of pointers to items of type T.
Definition: Index.h:36
Sun8iEmac::TransmitDescList
@ TransmitDescList
< Transmit Flow Control
Definition: Sun8iEmac.h:74
Sun8iEmac::FrameDescriptor::bufaddr
u32 bufaddr
Definition: Sun8iEmac.h:237
Address
unsigned long Address
A memory address.
Definition: Types.h:131
Sun8iEmac::TransmitCtl1
@ TransmitCtl1
< Transmit Control 0
Definition: Sun8iEmac.h:72
Sun8iEmac::MiiAdvFlags
MiiAdvFlags
Flags in the Mii Advertised abilities register.
Definition: Sun8iEmac.h:185
Sun8iEmac::MiiControlReset
@ MiiControlReset
Definition: Sun8iEmac.h:168
SunxiSystemControl.h
Sun8iEmac::m_transmitIndex
Size m_transmitIndex
Current transmit packet index.
Definition: Sun8iEmac.h:441
Sun8iEmac::m_receiveIndex
Size m_receiveIndex
Current receive packet index.
Definition: Sun8iEmac.h:426
Sun8iEmac::ReceiveCtl0
@ ReceiveCtl0
< Transmit Descriptor List Address
Definition: Sun8iEmac.h:75
Sun8iEmac::Registers
Registers
Hardware registers.
Definition: Sun8iEmac.h:65
Sun8iEmac::BasicCtl1Flags
BasicCtl1Flags
Flags for the Basic Control 1 register.
Definition: Sun8iEmac.h:107
Sun8iEmac::ReceiveCtl1ErrorFrame
@ ReceiveCtl1ErrorFrame
Definition: Sun8iEmac.h:225
Sun8iEmac::Sun8iEmac
Sun8iEmac(const u32 inode, NetworkServer &server)
Constructor.
Definition: Sun8iEmac.cpp:26
Sun8iEmac
Network device of the Allwinner Sun8i family System-on-Chips.
Definition: Sun8iEmac.h:41
Sun8iEmac::FrameDescriptor::next
u32 next
Definition: Sun8iEmac.h:238
Sun8iEmac::BasicCtl1BurstShift
@ BasicCtl1BurstShift
Definition: Sun8iEmac.h:110
Sun8iEmac::MiiData
@ MiiData
< Management Interface Command
Definition: Sun8iEmac.h:82
Sun8iEmac::m_transmitDescRange
Memory::Range m_transmitDescRange
Memory range for transmit descriptors.
Definition: Sun8iEmac.h:429
Sun8iEmac::printRx
void printRx()
Print diagnostic information about the receive queue (RX)
Definition: Sun8iEmac.cpp:143
Sun8iEmac::TransmitDescFirst
@ TransmitDescFirst
Definition: Sun8iEmac.h:248
Sun8iEmac::receive
FileSystem::Result receive()
Receive packets.
Definition: Sun8iEmac.cpp:290
Sun8iEmac::MiiRegControl
@ MiiRegControl
Definition: Sun8iEmac.h:151
Sun8iEmac::BasicCtl0Speed100
@ BasicCtl0Speed100
Definition: Sun8iEmac.h:101
Sun8iEmac::FrameDescriptor::status
u32 status
Definition: Sun8iEmac.h:235
Sun8iEmac::printTx
void printTx()
Print diagnostic information about the transmit queue (TX)
Definition: Sun8iEmac.cpp:164
Ethernet::Address
Ethernet network address.
Definition: Ethernet.h:52
Sun8iEmac::m_transmitDesc
Index< FrameDescriptor, NetworkQueue::MaxPackets > m_transmitDesc
List of pointers to transmit descriptors.
Definition: Sun8iEmac.h:432
NetworkDevice.h
SunxiSystemControl
Allwinner System Control (SYSCON) module.
Definition: SunxiSystemControl.h:38
Sun8iEmac::MiiStatusAutoCompl
@ MiiStatusAutoCompl
Definition: Sun8iEmac.h:179
Sun8iEmac::IntEnable
@ IntEnable
< Interrupt Status
Definition: Sun8iEmac.h:70
Sun8iEmac::ReceiveCtl1Flags
ReceiveCtl1Flags
Flags for the Receive Control 1 register.
Definition: Sun8iEmac.h:221
Sun8iEmac::miiBusyWait
bool miiBusyWait() const
Wait until the PHY comes out of busy state.
Definition: Sun8iEmac.cpp:348
NetworkServer
Networking server.
Definition: NetworkServer.h:40
Sun8iEmac::interrupt
virtual FileSystem::Result interrupt(const Size vector)
Called when an interrupt has been triggered for this device.
Definition: Sun8iEmac.cpp:175
Sun8iEmac::MiiControlFullDuplex
@ MiiControlFullDuplex
Definition: Sun8iEmac.h:164
Sun8iEmac::ReceiveHash1
@ ReceiveHash1
< Receive Hash Table 0
Definition: Sun8iEmac.h:80
Sun8iEmac::MiiRegAdv
@ MiiRegAdv
< Identifier Low
Definition: Sun8iEmac.h:155
Sun8iEmac::resetPhy
FileSystem::Result resetPhy()
Reset the PHY connected to the MAC controller.
Definition: Sun8iEmac.cpp:405
Sun8iEmac::BasicCtl0Flags
BasicCtl0Flags
Flags for the Basic Control 0 register.
Definition: Sun8iEmac.h:97
Sun8iEmac::m_ccu
SunxiClockControl m_ccu
Clock Control Unit.
Definition: Sun8iEmac.h:411
Sun8iEmac::TransmitCurDesc
@ TransmitCurDesc
< Transmit DMA Status
Definition: Sun8iEmac.h:86
SunxiClockControl
Allwinner Clock Control Unit (CCU)
Definition: SunxiClockControl.h:38
Sun8iEmac::RgmiiStatus
@ RgmiiStatus
< Receive Current Buffer
Definition: Sun8iEmac.h:91
Sun8iEmac::ReceiveDescLast
@ ReceiveDescLast
Definition: Sun8iEmac.h:251
Sun8iEmac::BasicCtl0SpeedMask
@ BasicCtl0SpeedMask
Definition: Sun8iEmac.h:100
Queue.h
Sun8iEmac::ReceiveDescList
@ ReceiveDescList
< Receive Control 1
Definition: Sun8iEmac.h:77
Sun8iEmac::ReceiveCurDesc
@ ReceiveCurDesc
< Receive DMA Status
Definition: Sun8iEmac.h:89
u32
unsigned int u32
Unsigned 32-bit number.
Definition: Types.h:53
Sun8iEmac::TransmitCtl1NextFrame
@ TransmitCtl1NextFrame
Definition: Sun8iEmac.h:206
Sun8iEmac::MiiStatusFlags
MiiStatusFlags
Flags in the Mii Status register.
Definition: Sun8iEmac.h:174
Sun8iEmac::ReceiveDescFrmShift
@ ReceiveDescFrmShift
Definition: Sun8iEmac.h:252
Sun8iEmac::MiiCmdPhyBusy
@ MiiCmdPhyBusy
Definition: Sun8iEmac.h:143
Size
unsigned int Size
Any sane size indicator cannot go negative.
Definition: Types.h:128
Sun8iEmac::miiRead
u32 miiRead(const u8 phyAddr, const u8 regAddr)
Read a Media-Independent-Interface (MII) register on the PHY.
Definition: Sun8iEmac.cpp:373
Sun8iEmac::TransmitCtl1Flags
TransmitCtl1Flags
Flags for the Transmit Control 1 register.
Definition: Sun8iEmac.h:202
Sun8iEmac::ReceiveCtl0Flags
ReceiveCtl0Flags
Flags for the Receive Control 0 register.
Definition: Sun8iEmac.h:213
Sun8iEmac::TransmitDescChained
@ TransmitDescChained
Definition: Sun8iEmac.h:250
Sun8iEmac::IntStatusTransmit
@ IntStatusTransmit
Definition: Sun8iEmac.h:119
Sun8iEmac::ReceiveCtl1DmaEnable
@ ReceiveCtl1DmaEnable
Definition: Sun8iEmac.h:224
Sun8iEmac::ReceiveCtl1FullFrame
@ ReceiveCtl1FullFrame
Definition: Sun8iEmac.h:227
Sun8iEmac::m_syscon
SunxiSystemControl m_syscon
System Control Unit.
Definition: Sun8iEmac.h:414
Sun8iEmac::MiiRegIdLow
@ MiiRegIdLow
< Identifier High
Definition: Sun8iEmac.h:154
Sun8iEmac::ReceiveFrmFilter
@ ReceiveFrmFilter
< Receive Descriptor List Address
Definition: Sun8iEmac.h:78
Sun8iEmac::initialize
virtual FileSystem::Result initialize()
Initialize the device.
Definition: Sun8iEmac.cpp:39
Sun8iEmac::MaximumResetPoll
static const Size MaximumResetPoll
Maximum number of polling reset iterations.
Definition: Sun8iEmac.h:60
Sun8iEmac::AddrLow
@ AddrLow
< MAC Address High
Definition: Sun8iEmac.h:84
Sun8iEmac::MiiCmdFlags
MiiCmdFlags
Flags for Media-Independent-Interface (MII) Command register.
Definition: Sun8iEmac.h:134
Sun8iEmac::configPhy
FileSystem::Result configPhy()
Configure the PHY connected to the MAC controller.
Definition: Sun8iEmac.cpp:477
Sun8iEmac::ReceiveCurBuf
@ ReceiveCurBuf
< Receive Current Descriptor
Definition: Sun8iEmac.h:90
Sun8iEmac::m_io
Arch::IO m_io
Memory mapped registers.
Definition: Sun8iEmac.h:408
Sun8iEmac::IntStatusFlags
IntStatusFlags
Flags for the Interrupt Status register.
Definition: Sun8iEmac.h:116
Sun8iEmac::startDMA
virtual FileSystem::Result startDMA()
Start DMA processing.
Definition: Sun8iEmac.cpp:228
Sun8iEmac::PhyMdioAddress
static const u8 PhyMdioAddress
Fixed address of the PHY on the MDIO bus.
Definition: Sun8iEmac.h:54
Sun8iEmac::IntEnableReceive
@ IntEnableReceive
Definition: Sun8iEmac.h:127
Sun8iEmac::BasicCtl1Reset
@ BasicCtl1Reset
Definition: Sun8iEmac.h:109
Sun8iEmac::m_transmitPackets
Queue< NetworkQueue::Packet *, NetworkQueue::MaxPackets > m_transmitPackets
List of pointers to packets that the driver has submitted for transmission.
Definition: Sun8iEmac.h:438
Sun8iEmac::MiiCmdPhyCsrDiv128
@ MiiCmdPhyCsrDiv128
Definition: Sun8iEmac.h:140
Sun8iEmac::MiiControlFlags
MiiControlFlags
Flags in the Mii Control register.
Definition: Sun8iEmac.h:162
Sun8iEmac::TransmitCtl1DmaEnable
@ TransmitCtl1DmaEnable
Definition: Sun8iEmac.h:205
Sun8iEmac::getAddress
virtual FileSystem::Result getAddress(Ethernet::Address *address)
Read ethernet address.
Definition: Sun8iEmac.cpp:123
FileSystem::Result
Result
Result code for filesystem Actions.
Definition: FileSystem.h:52
u8
unsigned char u8
Unsigned 8-bit number.
Definition: Types.h:59
Sun8iEmac::MiiControlAutoRestart
@ MiiControlAutoRestart
Definition: Sun8iEmac.h:165
Sun8iEmac::TransmitCtl0Enable
@ TransmitCtl0Enable
Definition: Sun8iEmac.h:196
Sun8iEmac::AddrHigh
@ AddrHigh
< Management Interface Data
Definition: Sun8iEmac.h:83
Sun8iEmac::MiiStatusLink
@ MiiStatusLink
Definition: Sun8iEmac.h:177
Sun8iEmac::MiiCmdPhyAddrShift
@ MiiCmdPhyAddrShift
Definition: Sun8iEmac.h:136
Sun8iEmac::InterruptNumber
static const Size InterruptNumber
Interrupt number for this device on a sun8i family SoC.
Definition: Sun8iEmac.h:46
Sun8iEmac::TransmitDescLast
@ TransmitDescLast
Definition: Sun8iEmac.h:249
Sun8iEmac::MiiRegLink
@ MiiRegLink
< Advertised abilities
Definition: Sun8iEmac.h:156
Sun8iEmac::FrameDescriptorFlags
FrameDescriptorFlags
Flags for frame descriptors.
Definition: Sun8iEmac.h:244
Queue< NetworkQueue::Packet *, NetworkQueue::MaxPackets >
Sun8iEmac::m_receivePackets
Index< NetworkQueue::Packet, NetworkQueue::MaxPackets > m_receivePackets
List of pointers to receive packets.
Definition: Sun8iEmac.h:423
Sun8iEmac::MaximumMiiPoll
static const Size MaximumMiiPoll
Maximum number of polling reads for MII-busy flag.
Definition: Sun8iEmac.h:57
Sun8iEmac::IntStatus
@ IntStatus
< Basic Control 1
Definition: Sun8iEmac.h:69
SunxiClockControl.h
Sun8iEmac::IntStatusReceive
@ IntStatusReceive
Definition: Sun8iEmac.h:118
Sun8iEmac::BasicCtl0FullDup
@ BasicCtl0FullDup
Definition: Sun8iEmac.h:99
Sun8iEmac::ReceiveCtl0Enable
@ ReceiveCtl0Enable
Definition: Sun8iEmac.h:215
Sun8iEmac::TransmitCurBuf
@ TransmitCurBuf
< Transmit Current Descriptor
Definition: Sun8iEmac.h:87
Sun8iEmac::MiiRegStatus
@ MiiRegStatus
< Control
Definition: Sun8iEmac.h:152
Sun8iEmac::MiiCmdPhyWrite
@ MiiCmdPhyWrite
Definition: Sun8iEmac.h:142
Sun8iEmac::ReceiveCtl1
@ ReceiveCtl1
< Receive Control 0
Definition: Sun8iEmac.h:76
NetworkQueue::Packet
Represents a network packet.
Definition: NetworkQueue.h:50
Sun8iEmac::resetReceive
FileSystem::Result resetReceive()
Reset receive control functions.
Definition: Sun8iEmac.cpp:515
Sun8iEmac::IntEnableFlags
IntEnableFlags
Flags for the Interrupt Enable register.
Definition: Sun8iEmac.h:125
Sun8iEmac::reset
FileSystem::Result reset()
Reset the controller.
Definition: Sun8iEmac.cpp:599
Sun8iEmac::TransmitDescRaiseInt
@ TransmitDescRaiseInt
Definition: Sun8iEmac.h:247
Sun8iEmac::m_receiveDesc
Index< FrameDescriptor, NetworkQueue::MaxPackets > m_receiveDesc
List of pointers to receive descriptors.
Definition: Sun8iEmac.h:420
Sun8iEmac::MiiAdvSpeed100Full
@ MiiAdvSpeed100Full
Definition: Sun8iEmac.h:188
Sun8iEmac::BasicCtl0
@ BasicCtl0
Definition: Sun8iEmac.h:67
Sun8iEmac::miiWrite
void miiWrite(const u8 phyAddr, const u8 regAddr, const u32 data)
Write a Media-Independent-Interface (MII) register on the PHY.
Definition: Sun8iEmac.cpp:390
Sun8iEmac::ReceiveDescFrmMask
@ ReceiveDescFrmMask
Definition: Sun8iEmac.h:253
Sun8iEmac::~Sun8iEmac
virtual ~Sun8iEmac()
Destructor.
Definition: Sun8iEmac.cpp:34
Sun8iEmac::resetTransmit
FileSystem::Result resetTransmit()
Reset transmit control functions.
Definition: Sun8iEmac.cpp:566
Sun8iEmac::MiiCmd
@ MiiCmd
< Receive Hash Table 1
Definition: Sun8iEmac.h:81
Sun8iEmac::TransmitFlowCtl
@ TransmitFlowCtl
< Transmit Control 1
Definition: Sun8iEmac.h:73
Sun8iEmac::IntEnableTransmit
@ IntEnableTransmit
Definition: Sun8iEmac.h:128
Sun8iEmac::setAddress
virtual FileSystem::Result setAddress(const Ethernet::Address *address)
Set ethernet address.
Definition: Sun8iEmac.cpp:133
Sun8iEmac::TransmitCtl1FullFrame
@ TransmitCtl1FullFrame
Definition: Sun8iEmac.h:207
Sun8iEmac::MiiControlSpeed100
@ MiiControlSpeed100
Definition: Sun8iEmac.h:167