gem5  v20.1.0.0
ns_gige.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2004-2005 The Regents of The University of Michigan
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met: redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer;
9  * redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution;
12  * neither the name of the copyright holders nor the names of its
13  * contributors may be used to endorse or promote products derived from
14  * this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
34 #ifndef __DEV_NET_NS_GIGE_HH__
35 #define __DEV_NET_NS_GIGE_HH__
36 
37 #include "base/inet.hh"
38 #include "dev/io_device.hh"
39 #include "dev/net/etherdevice.hh"
40 #include "dev/net/etherint.hh"
41 #include "dev/net/etherpkt.hh"
42 #include "dev/net/ns_gige_reg.h"
43 #include "dev/net/pktfifo.hh"
44 #include "params/NSGigE.hh"
45 #include "sim/eventq.hh"
46 
47 // Hash filtering constants
48 const uint16_t FHASH_ADDR = 0x100;
49 const uint16_t FHASH_SIZE = 0x100;
50 
51 // EEPROM constants
52 const uint8_t EEPROM_READ = 0x2;
53 const uint8_t EEPROM_SIZE = 64; // Size in words of NSC93C46 EEPROM
54 const uint8_t EEPROM_PMATCH2_ADDR = 0xA; // EEPROM Address of PMATCH word 2
55 const uint8_t EEPROM_PMATCH1_ADDR = 0xB; // EEPROM Address of PMATCH word 1
56 const uint8_t EEPROM_PMATCH0_ADDR = 0xC; // EEPROM Address of PMATCH word 0
57 
61 struct dp_regs {
62  uint32_t command;
63  uint32_t config;
64  uint32_t mear;
65  uint32_t ptscr;
66  uint32_t isr;
67  uint32_t imr;
68  uint32_t ier;
69  uint32_t ihr;
70  uint32_t txdp;
71  uint32_t txdp_hi;
72  uint32_t txcfg;
73  uint32_t gpior;
74  uint32_t rxdp;
75  uint32_t rxdp_hi;
76  uint32_t rxcfg;
77  uint32_t pqcr;
78  uint32_t wcsr;
79  uint32_t pcr;
80  uint32_t rfcr;
81  uint32_t rfdr;
82  uint32_t brar;
83  uint32_t brdr;
84  uint32_t srr;
85  uint32_t mibc;
86  uint32_t vrcr;
87  uint32_t vtcr;
88  uint32_t vdr;
89  uint32_t ccsr;
90  uint32_t tbicr;
91  uint32_t tbisr;
92  uint32_t tanar;
93  uint32_t tanlpar;
94  uint32_t taner;
95  uint32_t tesr;
96 };
97 
98 struct dp_rom {
103  uint8_t perfectMatch[ETH_ADDR_LEN];
104 
110 };
111 
112 class NSGigEInt;
113 class Packet;
114 
118 class NSGigE : public EtherDevBase
119 {
120  public:
122  enum TxState
123  {
131  };
132 
134  enum RxState
135  {
143  };
144 
145  enum DmaState
146  {
152  };
153 
156  {
161  };
162 
163  protected:
167 
169  bool ioEnable;
170 
171  /*** BASIC STRUCTURES FOR TX/RX ***/
172  /* Data FIFOs */
175 
179  uint8_t *txPacketBufPtr;
180  uint8_t *rxPacketBufPtr;
181  uint32_t txXferLen;
182  uint32_t rxXferLen;
183  bool rxDmaFree;
184  bool txDmaFree;
185 
191 
192  /* tx State Machine */
194  bool txEnable;
195 
197  bool CTDD;
199  bool txHalt;
203  uint32_t txDescCnt;
205 
208  bool rxEnable;
209 
211  bool CRDD;
213  uint32_t rxPktBytes;
215  bool rxHalt;
219  uint32_t rxDescCnt;
221 
223 
226  bool eepromClk;
227  uint8_t eepromBitsToRx;
228  uint8_t eepromOpcode;
229  uint8_t eepromAddress;
230  uint16_t eepromData;
231 
232  protected:
235 
238 
239  void *rxDmaData;
241  int rxDmaLen;
242  bool doRxDmaRead();
243  bool doRxDmaWrite();
244 
245  void *txDmaData;
247  int txDmaLen;
248  bool doTxDmaRead();
249  bool doTxDmaWrite();
250 
251  void rxDmaReadDone();
253 
254  void rxDmaWriteDone();
256 
257  void txDmaReadDone();
259 
260  void txDmaWriteDone();
262 
265 
266  protected:
269 
270  void txReset();
271  void rxReset();
272  void regsReset();
273 
274  void rxKick();
277 
278  void txKick();
281 
282  void eepromKick();
283 
287  void transmit();
289  {
290  transmit();
291  if (txState == txFifoBlock)
292  txKick();
293  }
295 
296  void txDump() const;
297  void rxDump() const;
298 
303  bool rxFilter(const EthPacketPtr &packet);
308  bool acceptArp;
310 
314  void devIntrPost(uint32_t interrupts);
315  void devIntrClear(uint32_t interrupts);
316  void devIntrChangeMask();
317 
321  void cpuIntrPost(Tick when);
322  void cpuInterrupt();
323  void cpuIntrClear();
324 
327 
328  public:
329  typedef NSGigEParams Params;
330  const Params *params() const {
331  return dynamic_cast<const Params *>(_params);
332  }
333 
334  NSGigE(Params *params);
335  ~NSGigE();
336 
337  Port &getPort(const std::string &if_name,
338  PortID idx=InvalidPortID) override;
339 
340  Tick writeConfig(PacketPtr pkt) override;
341 
342  Tick read(PacketPtr pkt) override;
343  Tick write(PacketPtr pkt) override;
344 
345  bool cpuIntrPending() const;
346  void cpuIntrAck() { cpuIntrClear(); }
347 
348  bool recvPacket(EthPacketPtr packet);
349  void transferDone();
350 
351  void serialize(CheckpointOut &cp) const override;
352  void unserialize(CheckpointIn &cp) override;
353 
354  void drainResume() override;
355 };
356 
357 /*
358  * Ethernet Interface for an Ethernet Device
359  */
360 class NSGigEInt : public EtherInt
361 {
362  private:
364 
365  public:
366  NSGigEInt(const std::string &name, NSGigE *d)
367  : EtherInt(name), dev(d)
368  { }
369 
370  virtual bool recvPacket(EthPacketPtr pkt) { return dev->recvPacket(pkt); }
371  virtual void sendDone() { dev->transferDone(); }
372 };
373 
374 #endif // __DEV_NET_NS_GIGE_HH__
NSGigE::rxDescRead
@ rxDescRead
Definition: ns_gige.hh:138
NSGigE::eepromKick
void eepromKick()
Advance the EEPROM state machine Called on rising edge of EEPROM clock bit in MEAR.
Definition: ns_gige.cc:1796
NSGigE::txDmaReadDone
void txDmaReadDone()
Definition: ns_gige.cc:1417
NSGigE::rxEnable
bool rxEnable
Definition: ns_gige.hh:208
NSGigE::regs
dp_regs regs
device register file
Definition: ns_gige.hh:165
dp_regs::rxdp_hi
uint32_t rxdp_hi
Definition: ns_gige.hh:75
NSGigE::acceptUnicast
bool acceptUnicast
Definition: ns_gige.hh:306
NSGigE::dmaWriteFactor
Tick dmaWriteFactor
Definition: ns_gige.hh:237
io_device.hh
NSGigE::rxAdvance
@ rxAdvance
Definition: ns_gige.hh:142
dp_regs::rfdr
uint32_t rfdr
Definition: ns_gige.hh:81
NSGigE::params
const Params * params() const
Definition: ns_gige.hh:330
PacketFifo
Definition: pktfifo.hh:76
NSGigE::~NSGigE
~NSGigE()
Definition: ns_gige.cc:139
FHASH_SIZE
const uint16_t FHASH_SIZE
Definition: ns_gige.hh:49
dp_regs::wcsr
uint32_t wcsr
Definition: ns_gige.hh:78
dp_regs::config
uint32_t config
Definition: ns_gige.hh:63
NSGigE::txDmaAddr
Addr txDmaAddr
Definition: ns_gige.hh:246
NSGigE::txDmaWriteEvent
EventFunctionWrapper txDmaWriteEvent
Definition: ns_gige.hh:261
ns_desc64
Definition: ns_gige_reg.h:361
InvalidPortID
const PortID InvalidPortID
Definition: types.hh:238
NSGigE::txDump
void txDump() const
NSGigE
NS DP83820 Ethernet device model.
Definition: ns_gige.hh:118
NSGigE::txKickEvent
EventFunctionWrapper txKickEvent
Definition: ns_gige.hh:280
NSGigE::txReset
void txReset()
Definition: ns_gige.cc:923
NSGigE::txDmaData
void * txDmaData
Definition: ns_gige.hh:245
NSGigE::intrEvent
EventFunctionWrapper * intrEvent
Definition: ns_gige.hh:325
NSGigE::TxState
TxState
Transmit State Machine states.
Definition: ns_gige.hh:122
EtherInt
Definition: etherint.hh:47
NSGigE::rxDmaLen
int rxDmaLen
Definition: ns_gige.hh:241
dp_regs::tanlpar
uint32_t tanlpar
Definition: ns_gige.hh:93
NSGigE::cpuIntrPost
void cpuIntrPost(Tick when)
Definition: ns_gige.cc:841
NSGigE::eepromData
uint16_t eepromData
Definition: ns_gige.hh:230
NSGigE::rxDmaAddr
Addr rxDmaAddr
Definition: ns_gige.hh:240
etherint.hh
NSGigE::rxFilter
bool rxFilter(const EthPacketPtr &packet)
Definition: ns_gige.cc:1906
NSGigE::intrDelay
Tick intrDelay
Definition: ns_gige.hh:318
NSGigE::rxDesc64
ns_desc64 rxDesc64
Definition: ns_gige.hh:190
dp_regs::vrcr
uint32_t vrcr
Definition: ns_gige.hh:86
Tick
uint64_t Tick
Tick count type.
Definition: types.hh:63
ns_desc32
Definition: ns_gige_reg.h:354
NSGigE::rxDmaWriteEvent
EventFunctionWrapper rxDmaWriteEvent
Definition: ns_gige.hh:255
PortID
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
Definition: types.hh:237
NSGigE::eepromAddress
uint8_t eepromAddress
Definition: ns_gige.hh:229
NSGigE::txState
TxState txState
Definition: ns_gige.hh:193
NSGigE::doRxDmaWrite
bool doRxDmaWrite()
Definition: ns_gige.cc:1007
NSGigE::rxDmaReadEvent
EventFunctionWrapper rxDmaReadEvent
Definition: ns_gige.hh:252
NSGigE::dmaIdle
@ dmaIdle
Definition: ns_gige.hh:147
NSGigE::serialize
void serialize(CheckpointOut &cp) const override
Serialize an object.
Definition: ns_gige.cc:2015
NSGigE::EEPROMState
EEPROMState
EEPROM State Machine States.
Definition: ns_gige.hh:155
dp_regs::tbicr
uint32_t tbicr
Definition: ns_gige.hh:90
dp_regs::pqcr
uint32_t pqcr
Definition: ns_gige.hh:77
NSGigE::txDescRefr
@ txDescRefr
Definition: ns_gige.hh:125
ns_gige_reg.h
NSGigE::rxDmaReadDone
void rxDmaReadDone()
Definition: ns_gige.cc:990
NSGigE::transferDone
void transferDone()
Definition: ns_gige.cc:1893
dp_regs::brdr
uint32_t brdr
Definition: ns_gige.hh:83
NSGigE::cpuInterrupt
void cpuInterrupt()
Definition: ns_gige.cc:877
dp_regs::pcr
uint32_t pcr
Definition: ns_gige.hh:79
NSGigE::rxFilterEnable
bool rxFilterEnable
receive address filter
Definition: ns_gige.hh:302
dp_regs::ier
uint32_t ier
Definition: ns_gige.hh:68
EEPROM_PMATCH0_ADDR
const uint8_t EEPROM_PMATCH0_ADDR
Definition: ns_gige.hh:56
NSGigE::txFragPtr
Addr txFragPtr
ptr to the next byte in the current fragment
Definition: ns_gige.hh:201
NSGigE::rxDelay
Tick rxDelay
Definition: ns_gige.hh:268
NSGigE::CRDD
bool CRDD
Current Receive Descriptor Done.
Definition: ns_gige.hh:211
NSGigE::txDmaLen
int txDmaLen
Definition: ns_gige.hh:247
dp_regs::rxdp
uint32_t rxdp
Definition: ns_gige.hh:74
NSGigE::eepromStart
@ eepromStart
Definition: ns_gige.hh:157
NSGigE::rxFifo
PacketFifo rxFifo
Definition: ns_gige.hh:174
NSGigE::dmaReadWaiting
@ dmaReadWaiting
Definition: ns_gige.hh:150
NSGigE::txEvent
EventFunctionWrapper txEvent
Definition: ns_gige.hh:294
EventFunctionWrapper
Definition: eventq.hh:1101
NSGigE::acceptPerfect
bool acceptPerfect
Definition: ns_gige.hh:307
NSGigE::eepromState
EEPROMState eepromState
EEPROM State Machine.
Definition: ns_gige.hh:225
NSGigE::doRxDmaRead
bool doRxDmaRead()
Definition: ns_gige.cc:976
NSGigE::txAdvance
@ txAdvance
Definition: ns_gige.hh:130
NSGigE::rxIdle
@ rxIdle
Definition: ns_gige.hh:136
EEPROM_PMATCH2_ADDR
const uint8_t EEPROM_PMATCH2_ADDR
Definition: ns_gige.hh:54
NSGigEInt::dev
NSGigE * dev
Definition: ns_gige.hh:363
NSGigE::cpuIntrPending
bool cpuIntrPending() const
Definition: ns_gige.cc:919
NSGigE::rxPacketBufPtr
uint8_t * rxPacketBufPtr
Definition: ns_gige.hh:180
NSGigE::txIdle
@ txIdle
Definition: ns_gige.hh:124
NSGigE::dmaReadFactor
Tick dmaReadFactor
Definition: ns_gige.hh:236
NSGigE::rxState
RxState rxState
rx State Machine
Definition: ns_gige.hh:207
NSGigE::rxDescRefr
@ rxDescRefr
Definition: ns_gige.hh:137
dp_regs::tesr
uint32_t tesr
Definition: ns_gige.hh:95
NSGigE::rxDmaFree
bool rxDmaFree
Definition: ns_gige.hh:183
cp
Definition: cprintf.cc:40
NSGigE::rxDescWrite
@ rxDescWrite
Definition: ns_gige.hh:141
NSGigE::rxKick
void rxKick()
Definition: ns_gige.cc:1037
NSGigE::txDmaFree
bool txDmaFree
Definition: ns_gige.hh:184
NSGigE::acceptMulticast
bool acceptMulticast
Definition: ns_gige.hh:305
NSGigE::devIntrClear
void devIntrClear(uint32_t interrupts)
Definition: ns_gige.cc:787
NSGigE::rxReset
void rxReset()
Definition: ns_gige.cc:938
NSGigE::multicastHashEnable
bool multicastHashEnable
Definition: ns_gige.hh:309
NSGigE::unserialize
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Definition: ns_gige.cc:2188
NSGigE::dmaDataFree
bool dmaDataFree
Definition: ns_gige.hh:264
NSGigE::eepromRead
@ eepromRead
Definition: ns_gige.hh:160
NSGigE::cpuPendingIntr
bool cpuPendingIntr
Definition: ns_gige.hh:320
dp_regs::isr
uint32_t isr
Definition: ns_gige.hh:66
NSGigE::rxPktBytes
uint32_t rxPktBytes
num of bytes in the current packet being drained from rxDataFifo
Definition: ns_gige.hh:213
NSGigE::recvPacket
bool recvPacket(EthPacketPtr packet)
Definition: ns_gige.cc:1949
NSGigE::ioEnable
bool ioEnable
pci settings
Definition: ns_gige.hh:169
ArmISA::d
Bitfield< 9 > d
Definition: miscregs_types.hh:60
dp_regs::txdp
uint32_t txdp
Definition: ns_gige.hh:70
dp_regs::srr
uint32_t srr
Definition: ns_gige.hh:84
NSGigE::rxDump
void rxDump() const
Port
Ports are used to interface objects to each other.
Definition: port.hh:56
NSGigE::NSGigE
NSGigE(Params *params)
Definition: ns_gige.cc:94
NSGigE::txDmaReadEvent
EventFunctionWrapper txDmaReadEvent
Definition: ns_gige.hh:258
NSGigE::txDesc32
ns_desc32 txDesc32
DescCaches.
Definition: ns_gige.hh:187
NSGigE::rxXferLen
uint32_t rxXferLen
Definition: ns_gige.hh:182
NSGigE::rxPacket
EthPacketPtr rxPacket
Definition: ns_gige.hh:178
dp_regs::rxcfg
uint32_t rxcfg
Definition: ns_gige.hh:76
dp_regs::ptscr
uint32_t ptscr
Definition: ns_gige.hh:65
NSGigE::rxKickEvent
EventFunctionWrapper rxKickEvent
Definition: ns_gige.hh:276
dp_regs::txdp_hi
uint32_t txdp_hi
Definition: ns_gige.hh:71
NSGigE::txDmaState
DmaState txDmaState
Definition: ns_gige.hh:204
dp_regs::command
uint32_t command
Definition: ns_gige.hh:62
NSGigE::getPort
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
Definition: ns_gige.cc:172
NSGigE::txFifoBlock
@ txFifoBlock
Definition: ns_gige.hh:127
dp_regs::rfcr
uint32_t rfcr
Definition: ns_gige.hh:80
NSGigE::acceptBroadcast
bool acceptBroadcast
Definition: ns_gige.hh:304
NSGigE::doTxDmaWrite
bool doTxDmaWrite()
Definition: ns_gige.cc:1434
NSGigE::read
Tick read(PacketPtr pkt) override
This reads the device registers, which are detailed in the NS83820 spec sheet.
Definition: ns_gige.cc:184
dp_regs::vdr
uint32_t vdr
Definition: ns_gige.hh:88
NSGigE::drainResume
void drainResume() override
Resume execution after a successful drain.
Definition: ns_gige.cc:1999
dp_regs::mibc
uint32_t mibc
Definition: ns_gige.hh:85
NSGigE::cpuIntrClear
void cpuIntrClear()
Definition: ns_gige.cc:900
Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:142
NSGigE::eepromClk
bool eepromClk
Definition: ns_gige.hh:226
dp_regs::ccsr
uint32_t ccsr
Definition: ns_gige.hh:89
dp_rom
Definition: ns_gige.hh:98
NSGigE::CTDD
bool CTDD
Current Transmit Descriptor Done.
Definition: ns_gige.hh:197
dp_regs::tanar
uint32_t tanar
Definition: ns_gige.hh:92
NSGigE::transmit
void transmit()
Retransmit event.
Definition: ns_gige.cc:1352
NSGigE::txEnable
bool txEnable
Definition: ns_gige.hh:194
dp_regs::tbisr
uint32_t tbisr
Definition: ns_gige.hh:91
NSGigE::rxFragWrite
@ rxFragWrite
Definition: ns_gige.hh:140
NSGigE::Params
NSGigEParams Params
Definition: ns_gige.hh:329
NSGigE::interface
NSGigEInt * interface
Definition: ns_gige.hh:326
dp_regs::ihr
uint32_t ihr
Definition: ns_gige.hh:69
NSGigE::cpuIntrAck
void cpuIntrAck()
Definition: ns_gige.hh:346
NSGigE::txPacketBufPtr
uint8_t * txPacketBufPtr
Definition: ns_gige.hh:179
NSGigE::eepromOpcode
uint8_t eepromOpcode
Definition: ns_gige.hh:228
EthPacketPtr
std::shared_ptr< EthPacketData > EthPacketPtr
Definition: etherpkt.hh:87
NSGigE::dmaWriting
@ dmaWriting
Definition: ns_gige.hh:149
EtherInt::name
const std::string & name() const
Return port name (for DPRINTF).
Definition: etherint.hh:59
NSGigE::RxState
RxState
Receive State Machine States.
Definition: ns_gige.hh:134
NSGigE::eepromGetOpcode
@ eepromGetOpcode
Definition: ns_gige.hh:158
dp_regs::txcfg
uint32_t txcfg
Definition: ns_gige.hh:72
NSGigE::rxHalt
bool rxHalt
halt the rx state machine after current packet
Definition: ns_gige.hh:215
EEPROM_PMATCH1_ADDR
const uint8_t EEPROM_PMATCH1_ADDR
Definition: ns_gige.hh:55
dp_regs
Ethernet device registers.
Definition: ns_gige.hh:61
SimObject::_params
const SimObjectParams * _params
Cached copy of the object parameters.
Definition: sim_object.hh:110
dp_rom::filterHash
uint8_t filterHash[FHASH_SIZE]
for hash table memory.
Definition: ns_gige.hh:109
NSGigE::txPacket
EthPacketPtr txPacket
various helper vars
Definition: ns_gige.hh:177
Packet
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Definition: packet.hh:257
NSGigE::txDesc64
ns_desc64 txDesc64
Definition: ns_gige.hh:189
NSGigE::txHalt
bool txHalt
halt the tx state machine after next packet
Definition: ns_gige.hh:199
NSGigEInt
Definition: ns_gige.hh:360
NSGigEInt::recvPacket
virtual bool recvPacket(EthPacketPtr pkt)
Definition: ns_gige.hh:370
NSGigE::txFifo
PacketFifo txFifo
Definition: ns_gige.hh:173
NSGigE::writeConfig
Tick writeConfig(PacketPtr pkt) override
This is to write to the PCI general configuration registers.
Definition: ns_gige.cc:148
NSGigE::rxDescCnt
uint32_t rxDescCnt
count of bytes remaining in the current descriptor
Definition: ns_gige.hh:219
NSGigE::eepromBitsToRx
uint8_t eepromBitsToRx
Definition: ns_gige.hh:227
NSGigE::rxFifoBlock
@ rxFifoBlock
Definition: ns_gige.hh:139
EEPROM_SIZE
const uint8_t EEPROM_SIZE
Definition: ns_gige.hh:53
FHASH_ADDR
const uint16_t FHASH_ADDR
Definition: ns_gige.hh:48
pktfifo.hh
NSGigE::dmaReadDelay
Tick dmaReadDelay
Definition: ns_gige.hh:233
etherpkt.hh
dp_rom::perfectMatch
uint8_t perfectMatch[ETH_ADDR_LEN]
for perfect match memory.
Definition: ns_gige.hh:103
NSGigE::rxDesc32
ns_desc32 rxDesc32
Definition: ns_gige.hh:188
dp_regs::taner
uint32_t taner
Definition: ns_gige.hh:94
NSGigE::intrTick
Tick intrTick
Definition: ns_gige.hh:319
CheckpointOut
std::ostream CheckpointOut
Definition: serialize.hh:63
NSGigEInt::NSGigEInt
NSGigEInt(const std::string &name, NSGigE *d)
Definition: ns_gige.hh:366
EEPROM_READ
const uint8_t EEPROM_READ
Definition: ns_gige.hh:52
NSGigE::dmaDescFree
bool dmaDescFree
Definition: ns_gige.hh:263
NSGigE::regsReset
void regsReset()
Definition: ns_gige.cc:953
NSGigE::txEventTransmit
void txEventTransmit()
Definition: ns_gige.hh:288
NSGigE::doTxDmaRead
bool doTxDmaRead()
Definition: ns_gige.cc:1403
NSGigE::txKickTick
Tick txKickTick
Definition: ns_gige.hh:279
etherdevice.hh
NSGigE::txXferLen
uint32_t txXferLen
Definition: ns_gige.hh:181
EtherDevBase
Dummy class to keep the Python class hierarchy in sync with the C++ object hierarchy.
Definition: etherdevice.hh:124
NSGigE::DmaState
DmaState
Definition: ns_gige.hh:145
NSGigE::rom
dp_rom rom
Definition: ns_gige.hh:166
NSGigE::write
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
Definition: ns_gige.cc:406
NSGigE::rxDmaState
DmaState rxDmaState
Definition: ns_gige.hh:220
NSGigE::dmaWriteWaiting
@ dmaWriteWaiting
Definition: ns_gige.hh:151
inet.hh
NSGigE::extstsEnable
bool extstsEnable
Definition: ns_gige.hh:222
CheckpointIn
Definition: serialize.hh:67
NSGigE::txFragRead
@ txFragRead
Definition: ns_gige.hh:128
NSGigEInt::sendDone
virtual void sendDone()
Definition: ns_gige.hh:371
NSGigE::txDescCnt
uint32_t txDescCnt
count of bytes remaining in the current descriptor
Definition: ns_gige.hh:203
NSGigE::dmaWriteDelay
Tick dmaWriteDelay
Definition: ns_gige.hh:234
NSGigE::txKick
void txKick()
Definition: ns_gige.cc:1464
NSGigE::rxKickTick
Tick rxKickTick
Definition: ns_gige.hh:275
dp_regs::vtcr
uint32_t vtcr
Definition: ns_gige.hh:87
NSGigE::txDmaWriteDone
void txDmaWriteDone()
Definition: ns_gige.cc:1447
NSGigE::eepromGetAddress
@ eepromGetAddress
Definition: ns_gige.hh:159
NSGigE::devIntrPost
void devIntrPost(uint32_t interrupts)
Interrupt management.
Definition: ns_gige.cc:730
NSGigE::rxDmaData
void * rxDmaData
Definition: ns_gige.hh:239
dp_regs::mear
uint32_t mear
Definition: ns_gige.hh:64
NSGigE::txDescWrite
@ txDescWrite
Definition: ns_gige.hh:129
DmaDevice::Params
DmaDeviceParams Params
Definition: dma_device.hh:171
dp_regs::imr
uint32_t imr
Definition: ns_gige.hh:67
NSGigE::txDelay
Tick txDelay
Definition: ns_gige.hh:267
NSGigE::rxFragPtr
Addr rxFragPtr
ptr to the next byte in current fragment
Definition: ns_gige.hh:217
NSGigE::acceptArp
bool acceptArp
Definition: ns_gige.hh:308
NSGigE::txDescRead
@ txDescRead
Definition: ns_gige.hh:126
NSGigE::dmaReading
@ dmaReading
Definition: ns_gige.hh:148
dp_regs::gpior
uint32_t gpior
Definition: ns_gige.hh:73
NSGigE::rxDmaWriteDone
void rxDmaWriteDone()
Definition: ns_gige.cc:1020
NSGigE::devIntrChangeMask
void devIntrChangeMask()
Definition: ns_gige.cc:829
dp_regs::brar
uint32_t brar
Definition: ns_gige.hh:82
eventq.hh

Generated on Wed Sep 30 2020 14:02:11 for gem5 by doxygen 1.8.17