gem5 v24.0.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. | |
void | getPacketData (EthPacketPtr p) |
void | processContextDesc () |
unsigned | descInBlock (unsigned num_desc) |
Return the number of dsecriptors in a cache block for threshold operations. | |
bool | packetAvailable () |
Ask if the packet has been transfered so the state machine can give it to the fifo. | |
bool | packetWaiting () |
Ask if we are still waiting for the packet to be transfered. | |
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. | |
void | pktComplete () |
Called by event when dma to write packet is completed. | |
void | headerComplete () |
void | completionWriteback (Addr a, bool enabled) |
bool | hasOutstandingEvents () override |
void | nullCallback () |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. | |
Public Member Functions inherited from gem5::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. | |
void | writeback (Addr aMask) |
void | writeback1 () |
void | fetchDescriptors () |
Fetch a chunk of descriptors into the descriptor cache. | |
void | fetchDescriptors1 () |
void | fetchComplete () |
Called by event when dma to read descriptors is completed. | |
void | wbComplete () |
Called by event when dma to writeback descriptors is completed. | |
unsigned | descLeft () const |
unsigned | descUsed () const |
unsigned | descUnused () const |
void | reset () |
Public Member Functions inherited from gem5::Serializable | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Public Attributes | |
EventFunctionWrapper | pktEvent |
EventFunctionWrapper | headerEvent |
EventFunctionWrapper | nullEvent |
Public Attributes inherited from gem5::IGbE::DescCache< igbreg::TxDesc > | |
std::string | annSmFetch |
Annotate sm. | |
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 gem5::IGbE::DescCache< igbreg::TxDesc > | |
Addr | pciToDma (Addr a) |
Shortcut for DMA address translation. | |
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 gem5::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. | |
Additional Inherited Members | |
Static Public Member Functions inherited from gem5::Serializable | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. | |
static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
Generate a checkpoint file so that the serialization can be routed to it. | |
Protected Types inherited from gem5::IGbE::DescCache< igbreg::TxDesc > | |
typedef std::deque< igbreg::TxDesc * > | CacheType |
Definition at line 366 of file i8254xGBe.hh.
gem5::IGbE::TxDescCache::TxDescCache | ( | IGbE * | i, |
std::string | n, | ||
int | s ) |
Definition at line 1498 of file i8254xGBe.cc.
References pktComplete().
|
overrideprotectedvirtual |
Reimplemented from gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 1902 of file i8254xGBe.cc.
References DPRINTF, gem5::igbreg::IT_TXDW, gem5::mbits(), and gem5::PciDevice::pciToDma().
|
inline |
Definition at line 455 of file i8254xGBe.hh.
References gem5::ArmISA::a, completionAddress, completionEnabled, DPRINTF, and gem5::statistics::enabled().
Referenced by gem5::IGbE::write().
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 369 of file i8254xGBe.hh.
References gem5::IGbE::DescCache< igbreg::TxDesc >::igbe, gem5::IGbE::regs, and gem5::igbreg::Regs::tdba.
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 370 of file i8254xGBe.hh.
References gem5::IGbE::DescCache< igbreg::TxDesc >::igbe, gem5::IGbE::regs, and gem5::igbreg::Regs::tdh.
|
inline |
Return the number of dsecriptors in a cache block for threshold operations.
Definition at line 422 of file i8254xGBe.hh.
References gem5::DmaDevice::cacheBlockSize(), and gem5::IGbE::DescCache< igbreg::TxDesc >::igbe.
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 372 of file i8254xGBe.hh.
References gem5::IGbE::DescCache< igbreg::TxDesc >::igbe, gem5::IGbE::regs, and gem5::igbreg::Regs::tdlen.
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 371 of file i8254xGBe.hh.
References gem5::IGbE::DescCache< igbreg::TxDesc >::igbe, gem5::IGbE::regs, and gem5::igbreg::Regs::tdt.
|
overrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 1986 of file i8254xGBe.cc.
References gem5::Draining.
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 376 of file i8254xGBe.hh.
References gem5::Drainable::drainState(), gem5::IGbE::DescCache< igbreg::TxDesc >::fetchDescriptors(), gem5::IGbE::DescCache< igbreg::TxDesc >::igbe, gem5::Running, and gem5::IGbE::txTick.
void gem5::IGbE::TxDescCache::getPacketData | ( | EthPacketPtr | p | ) |
Definition at line 1659 of file i8254xGBe.cc.
References gem5::igbreg::TxDesc::d1, gem5::igbreg::TxDesc::d2, DPRINTF, gem5::igbreg::txd_op::getBuf(), gem5::igbreg::txd_op::getLen(), gem5::igbreg::txd_op::isData(), gem5::igbreg::txd_op::isLegacy(), gem5::MipsISA::p, and gem5::PciDevice::pciToDma().
Referenced by gem5::IGbE::txStateMachine().
unsigned gem5::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 1619 of file i8254xGBe.cc.
References gem5::igbreg::TxDesc::d1, gem5::igbreg::TxDesc::d2, DPRINTF, gem5::igbreg::txd_op::getLen(), and gem5::MipsISA::p.
Referenced by gem5::IGbE::txStateMachine().
|
overridevirtual |
Reimplemented from gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 1995 of file i8254xGBe.cc.
Referenced by gem5::IGbE::checkDrain(), and gem5::IGbE::drain().
void gem5::IGbE::TxDescCache::headerComplete | ( | ) |
Definition at line 1594 of file i8254xGBe.cc.
References DPRINTF, and gem5::igbreg::txd_op::getLen().
|
inline |
Definition at line 465 of file i8254xGBe.hh.
References DPRINTF.
bool gem5::IGbE::TxDescCache::packetAvailable | ( | ) |
Ask if the packet has been transfered so the state machine can give it to the fifo.
Definition at line 1976 of file i8254xGBe.cc.
Referenced by gem5::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 444 of file i8254xGBe.hh.
References pktMultiDesc.
Referenced by gem5::IGbE::txStateMachine().
|
inline |
Ask if we are still waiting for the packet to be transfered.
Definition at line 436 of file i8254xGBe.hh.
References pktWaiting.
Referenced by gem5::IGbE::txStateMachine().
void gem5::IGbE::TxDescCache::pktComplete | ( | ) |
Called by event when dma to write packet is completed.
Definition at line 1707 of file i8254xGBe.cc.
References gem5::networking::cksum(), gem5::curTick(), gem5::igbreg::TxDesc::d1, gem5::igbreg::TxDesc::d2, DPRINTF, gem5::igbreg::txd_op::eop(), gem5::igbreg::txd_op::getLen(), gem5::igbreg::txd_op::ide(), gem5::MipsISA::ip6, gem5::igbreg::txd_op::isData(), gem5::igbreg::txd_op::isLegacy(), gem5::igbreg::txd_op::ixsm(), gem5::networking::UdpHdr::len(), panic, gem5::igbreg::txd_op::rs(), gem5::igbreg::txd_op::setDd(), gem5::networking::UdpHdr::sum(), gem5::igbreg::txd_op::txsm(), gem5::igbreg::txd_op::vle(), and gem5::ArmISA::writeback.
Referenced by TxDescCache().
void gem5::IGbE::TxDescCache::processContextDesc | ( | ) |
Definition at line 1519 of file i8254xGBe.cc.
References gem5::igbreg::TxDesc::d1, gem5::igbreg::TxDesc::d2, DPRINTF, gem5::igbreg::txd_op::getBuf(), gem5::igbreg::txd_op::getLen(), gem5::igbreg::txd_op::getTsoLen(), gem5::igbreg::txd_op::hdrlen(), gem5::igbreg::txd_op::isContext(), gem5::igbreg::txd_op::isData(), gem5::igbreg::txd_op::isType(), gem5::igbreg::txd_op::mss(), gem5::PciDevice::pciToDma(), gem5::igbreg::txd_op::setDd(), gem5::igbreg::txd_op::tcp(), gem5::igbreg::txd_op::tse(), gem5::igbreg::txd_op::TXD_ADVDATA, and gem5::igbreg::txd_op::TXD_CNXT.
Referenced by gem5::IGbE::txStateMachine().
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Reimplemented from gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 1918 of file i8254xGBe.cc.
References gem5::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 |
Reimplemented from gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 1947 of file i8254xGBe.cc.
References gem5::IGbE::DescCache< T >::unserialize(), UNSERIALIZE_ARRAY, and UNSERIALIZE_SCALAR.
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::TxDesc >.
Definition at line 373 of file i8254xGBe.hh.
References gem5::IGbE::DescCache< igbreg::TxDesc >::igbe, gem5::IGbE::regs, and gem5::igbreg::Regs::tdh.
|
protected |
Definition at line 387 of file i8254xGBe.hh.
Referenced by completionWriteback().
|
protected |
Definition at line 388 of file i8254xGBe.hh.
Referenced by completionWriteback().
|
protected |
Definition at line 389 of file i8254xGBe.hh.
EventFunctionWrapper gem5::IGbE::TxDescCache::headerEvent |
Definition at line 452 of file i8254xGBe.hh.
|
protected |
Definition at line 384 of file i8254xGBe.hh.
EventFunctionWrapper gem5::IGbE::TxDescCache::nullEvent |
Definition at line 468 of file i8254xGBe.hh.
|
protected |
Definition at line 383 of file i8254xGBe.hh.
EventFunctionWrapper gem5::IGbE::TxDescCache::pktEvent |
Definition at line 449 of file i8254xGBe.hh.
|
protected |
Definition at line 386 of file i8254xGBe.hh.
Referenced by packetMultiDesc().
|
protected |
Definition at line 385 of file i8254xGBe.hh.
Referenced by packetWaiting().
|
protected |
Definition at line 404 of file i8254xGBe.hh.
|
protected |
Definition at line 403 of file i8254xGBe.hh.
|
protected |
Definition at line 402 of file i8254xGBe.hh.
|
protected |
Definition at line 394 of file i8254xGBe.hh.
|
protected |
Definition at line 400 of file i8254xGBe.hh.
|
protected |
Definition at line 395 of file i8254xGBe.hh.
|
protected |
Definition at line 401 of file i8254xGBe.hh.
|
protected |
Definition at line 399 of file i8254xGBe.hh.
|
protected |
Definition at line 405 of file i8254xGBe.hh.
|
protected |
Definition at line 398 of file i8254xGBe.hh.
|
protected |
Definition at line 396 of file i8254xGBe.hh.
|
protected |
Definition at line 397 of file i8254xGBe.hh.
|
protected |
Definition at line 393 of file i8254xGBe.hh.