gem5
v20.1.0.0
|
Public Member Functions | |
TxDescCache (IGbE *i, std::string n, int s) | |
unsigned | getPacketSize (EthPacketPtr p) |
Tell the cache to DMA a packet from main memory into its buffer and return the size the of the packet to reserve space in tx fifo. More... | |
void | getPacketData (EthPacketPtr p) |
void | processContextDesc () |
unsigned | descInBlock (unsigned num_desc) |
Return the number of dsecriptors in a cache block for threshold operations. More... | |
bool | packetAvailable () |
Ask if the packet has been transfered so the state machine can give it to the fifo. More... | |
bool | packetWaiting () |
Ask if we are still waiting for the packet to be transfered. More... | |
bool | packetMultiDesc () |
Ask if this packet is composed of multiple descriptors so even if we've got data, we need to wait for more before we can send it out. More... | |
void | pktComplete () |
Called by event when dma to write packet is completed. More... | |
void | headerComplete () |
void | completionWriteback (Addr a, bool enabled) |
bool | hasOutstandingEvents () override |
void | nullCallback () |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
Public Member Functions inherited from IGbE::DescCache< iGbReg::TxDesc > | |
DescCache (IGbE *i, const std::string n, int s) | |
virtual | ~DescCache () |
std::string | name () |
void | areaChanged () |
If the address/len/head change when we've got descriptors that are dirty that is very bad. More... | |
void | writeback (Addr aMask) |
void | writeback1 () |
void | fetchDescriptors () |
Fetch a chunk of descriptors into the descriptor cache. More... | |
void | fetchDescriptors1 () |
void | fetchComplete () |
Called by event when dma to read descriptors is completed. More... | |
void | wbComplete () |
Called by event when dma to writeback descriptors is completed. More... | |
unsigned | descLeft () const |
unsigned | descUsed () const |
unsigned | descUnused () const |
void | reset () |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
Public Member Functions inherited from Serializable | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. More... | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. More... | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Public Attributes | |
EventFunctionWrapper | pktEvent |
EventFunctionWrapper | headerEvent |
EventFunctionWrapper | nullEvent |
Public Attributes inherited from IGbE::DescCache< iGbReg::TxDesc > | |
std::string | annSmFetch |
Annotate sm. More... | |
std::string | annSmWb |
std::string | annUnusedDescQ |
std::string | annUsedCacheQ |
std::string | annUsedDescQ |
std::string | annUnusedCacheQ |
std::string | annDescQ |
EventFunctionWrapper | wbDelayEvent |
EventFunctionWrapper | fetchDelayEvent |
EventFunctionWrapper | fetchEvent |
EventFunctionWrapper | wbEvent |
Protected Member Functions | |
Addr | descBase () const override |
long | descHead () const override |
long | descTail () const override |
long | descLen () const override |
void | updateHead (long h) override |
void | enableSm () override |
void | actionAfterWb () override |
void | fetchAfterWb () override |
Protected Member Functions inherited from IGbE::DescCache< iGbReg::TxDesc > | |
virtual Addr | descBase () const=0 |
virtual long | descHead () const=0 |
virtual long | descTail () const=0 |
virtual long | descLen () const=0 |
Addr | pciToDma (Addr a) |
Shortcut for DMA address translation. More... | |
Protected Attributes | |
bool | pktDone |
bool | isTcp |
bool | pktWaiting |
bool | pktMultiDesc |
Addr | completionAddress |
bool | completionEnabled |
uint32_t | descEnd |
bool | useTso |
Addr | tsoHeaderLen |
Addr | tsoMss |
Addr | tsoTotalLen |
Addr | tsoUsedLen |
Addr | tsoPrevSeq |
Addr | tsoPktPayloadBytes |
bool | tsoLoadedHeader |
bool | tsoPktHasHeader |
uint8_t | tsoHeader [256] |
Addr | tsoDescBytesUsed |
Addr | tsoCopyBytes |
int | tsoPkts |
Protected Attributes inherited from IGbE::DescCache< iGbReg::TxDesc > | |
CacheType | usedCache |
CacheType | unusedCache |
iGbReg::TxDesc * | fetchBuf |
iGbReg::TxDesc * | wbBuf |
IGbE * | igbe |
std::string | _name |
int | cachePnt |
int | size |
int | curFetching |
int | wbOut |
bool | moreToWb |
Addr | wbAlignment |
EthPacketPtr | pktPtr |
The packet that is currently being dmad to memory if any. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Serializable | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. More... | |
static void | serializeAll (const std::string &cpt_dir) |
Serializes all the SimObjects. More... | |
static void | unserializeGlobals (CheckpointIn &cp) |
Protected Types inherited from IGbE::DescCache< iGbReg::TxDesc > | |
typedef std::deque< iGbReg::TxDesc * > | CacheType |
Definition at line 359 of file i8254xGBe.hh.
IGbE::TxDescCache::TxDescCache | ( | IGbE * | i, |
std::string | n, | ||
int | s | ||
) |
Definition at line 1497 of file i8254xGBe.cc.
References pktComplete().
|
overrideprotectedvirtual |
Reimplemented from IGbE::DescCache< iGbReg::TxDesc >.
Definition at line 1901 of file i8254xGBe.cc.
References DPRINTF, iGbReg::IT_TXDW, mbits(), and PciDevice::pciToDma().
|
inline |
Definition at line 448 of file i8254xGBe.hh.
References ArmISA::a, completionAddress, completionEnabled, DPRINTF, and Stats::enabled().
Referenced by IGbE::write().
|
inlineoverrideprotected |
Definition at line 362 of file i8254xGBe.hh.
References IGbE::DescCache< iGbReg::TxDesc >::igbe, IGbE::regs, and iGbReg::Regs::tdba.
|
inlineoverrideprotected |
Definition at line 363 of file i8254xGBe.hh.
References IGbE::DescCache< iGbReg::TxDesc >::igbe, IGbE::regs, and iGbReg::Regs::tdh.
|
inline |
Return the number of dsecriptors in a cache block for threshold operations.
Definition at line 415 of file i8254xGBe.hh.
References DmaDevice::cacheBlockSize(), and IGbE::DescCache< iGbReg::TxDesc >::igbe.
|
inlineoverrideprotected |
Definition at line 365 of file i8254xGBe.hh.
References IGbE::DescCache< iGbReg::TxDesc >::igbe, IGbE::regs, and iGbReg::Regs::tdlen.
|
inlineoverrideprotected |
Definition at line 364 of file i8254xGBe.hh.
References IGbE::DescCache< iGbReg::TxDesc >::igbe, IGbE::regs, and iGbReg::Regs::tdt.
|
overrideprotectedvirtual |
Implements IGbE::DescCache< iGbReg::TxDesc >.
Definition at line 1985 of file i8254xGBe.cc.
References Draining.
|
inlineoverrideprotectedvirtual |
Implements IGbE::DescCache< iGbReg::TxDesc >.
Definition at line 369 of file i8254xGBe.hh.
References Drainable::drainState(), IGbE::DescCache< iGbReg::TxDesc >::fetchDescriptors(), IGbE::DescCache< iGbReg::TxDesc >::igbe, Running, and IGbE::txTick.
void IGbE::TxDescCache::getPacketData | ( | EthPacketPtr | p | ) |
Definition at line 1658 of file i8254xGBe.cc.
References iGbReg::TxDesc::d1, iGbReg::TxDesc::d2, DPRINTF, iGbReg::TxdOp::getBuf(), iGbReg::TxdOp::getLen(), iGbReg::TxdOp::isData(), iGbReg::TxdOp::isLegacy(), MipsISA::p, and PciDevice::pciToDma().
Referenced by IGbE::txStateMachine().
unsigned IGbE::TxDescCache::getPacketSize | ( | EthPacketPtr | p | ) |
Tell the cache to DMA a packet from main memory into its buffer and return the size the of the packet to reserve space in tx fifo.
Definition at line 1618 of file i8254xGBe.cc.
References iGbReg::TxDesc::d1, iGbReg::TxDesc::d2, DPRINTF, iGbReg::TxdOp::getLen(), and MipsISA::p.
Referenced by IGbE::txStateMachine().
|
overridevirtual |
Reimplemented from IGbE::DescCache< iGbReg::TxDesc >.
Definition at line 1994 of file i8254xGBe.cc.
Referenced by IGbE::checkDrain(), and IGbE::drain().
void IGbE::TxDescCache::headerComplete | ( | ) |
Definition at line 1593 of file i8254xGBe.cc.
References DPRINTF, and iGbReg::TxdOp::getLen().
|
inline |
Definition at line 458 of file i8254xGBe.hh.
References DPRINTF.
bool IGbE::TxDescCache::packetAvailable | ( | ) |
Ask if the packet has been transfered so the state machine can give it to the fifo.
Definition at line 1975 of file i8254xGBe.cc.
Referenced by IGbE::txStateMachine().
|
inline |
Ask if this packet is composed of multiple descriptors so even if we've got data, we need to wait for more before we can send it out.
Definition at line 437 of file i8254xGBe.hh.
References pktMultiDesc.
Referenced by IGbE::txStateMachine().
|
inline |
Ask if we are still waiting for the packet to be transfered.
Definition at line 429 of file i8254xGBe.hh.
References pktWaiting.
Referenced by IGbE::txStateMachine().
void IGbE::TxDescCache::pktComplete | ( | ) |
Called by event when dma to write packet is completed.
Definition at line 1706 of file i8254xGBe.cc.
References Net::cksum(), curTick(), iGbReg::TxDesc::d1, iGbReg::TxDesc::d2, DPRINTF, DTRACE, iGbReg::TxdOp::eop(), iGbReg::TxdOp::getLen(), ArmISA::ide, iGbReg::TxdOp::ip(), MipsISA::ip6, iGbReg::TxdOp::isData(), iGbReg::TxdOp::isLegacy(), iGbReg::TxdOp::ixsm(), Net::UdpHdr::len(), panic, ArmISA::rs, iGbReg::TxdOp::setDd(), Net::UdpHdr::sum(), iGbReg::TxdOp::tcp(), iGbReg::TxdOp::txsm(), iGbReg::TxdOp::vle(), and ArmISA::writeback.
Referenced by TxDescCache().
void IGbE::TxDescCache::processContextDesc | ( | ) |
Definition at line 1518 of file i8254xGBe.cc.
References iGbReg::TxDesc::d1, iGbReg::TxDesc::d2, DPRINTF, iGbReg::TxdOp::getBuf(), iGbReg::TxdOp::getLen(), iGbReg::TxdOp::getTsoLen(), iGbReg::TxdOp::hdrlen(), iGbReg::TxdOp::isContext(), iGbReg::TxdOp::isData(), iGbReg::TxdOp::isType(), iGbReg::TxdOp::mss(), PciDevice::pciToDma(), iGbReg::TxdOp::setDd(), iGbReg::TxdOp::tcp(), iGbReg::TxdOp::tse(), iGbReg::TxdOp::TXD_ADVDATA, and iGbReg::TxdOp::TXD_CNXT.
Referenced by IGbE::txStateMachine().
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Implements Serializable.
Definition at line 1917 of file i8254xGBe.cc.
References IGbE::DescCache< T >::serialize(), SERIALIZE_ARRAY, and SERIALIZE_SCALAR.
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Implements Serializable.
Definition at line 1946 of file i8254xGBe.cc.
References IGbE::DescCache< T >::unserialize(), UNSERIALIZE_ARRAY, and UNSERIALIZE_SCALAR.
|
inlineoverrideprotectedvirtual |
Implements IGbE::DescCache< iGbReg::TxDesc >.
Definition at line 366 of file i8254xGBe.hh.
References IGbE::DescCache< iGbReg::TxDesc >::igbe, IGbE::regs, and iGbReg::Regs::tdh.
|
protected |
Definition at line 380 of file i8254xGBe.hh.
Referenced by completionWriteback().
|
protected |
Definition at line 381 of file i8254xGBe.hh.
Referenced by completionWriteback().
|
protected |
Definition at line 382 of file i8254xGBe.hh.
EventFunctionWrapper IGbE::TxDescCache::headerEvent |
Definition at line 445 of file i8254xGBe.hh.
|
protected |
Definition at line 377 of file i8254xGBe.hh.
EventFunctionWrapper IGbE::TxDescCache::nullEvent |
Definition at line 461 of file i8254xGBe.hh.
|
protected |
Definition at line 376 of file i8254xGBe.hh.
EventFunctionWrapper IGbE::TxDescCache::pktEvent |
Definition at line 442 of file i8254xGBe.hh.
|
protected |
Definition at line 379 of file i8254xGBe.hh.
Referenced by packetMultiDesc().
|
protected |
Definition at line 378 of file i8254xGBe.hh.
Referenced by packetWaiting().
|
protected |
Definition at line 397 of file i8254xGBe.hh.
|
protected |
Definition at line 396 of file i8254xGBe.hh.
|
protected |
Definition at line 395 of file i8254xGBe.hh.
|
protected |
Definition at line 387 of file i8254xGBe.hh.
|
protected |
Definition at line 393 of file i8254xGBe.hh.
|
protected |
Definition at line 388 of file i8254xGBe.hh.
|
protected |
Definition at line 394 of file i8254xGBe.hh.
|
protected |
Definition at line 392 of file i8254xGBe.hh.
|
protected |
Definition at line 398 of file i8254xGBe.hh.
|
protected |
Definition at line 391 of file i8254xGBe.hh.
|
protected |
Definition at line 389 of file i8254xGBe.hh.
|
protected |
Definition at line 390 of file i8254xGBe.hh.
|
protected |
Definition at line 386 of file i8254xGBe.hh.