gem5 v24.0.0.0
|
An ItsTranslation is created whenever a peripheral writes a message in GITS_TRANSLATER (MSI). More...
#include <gic_v3_its.hh>
Public Member Functions | |
ItsTranslation (Gicv3Its &_its) | |
~ItsTranslation () | |
Public Member Functions inherited from gem5::ItsProcess | |
ItsProcess (Gicv3Its &_its) | |
virtual | ~ItsProcess () |
const std::string | name () const |
Returns the Gicv3Its name. | |
ItsAction | run (PacketPtr pkt) |
Public Member Functions inherited from gem5::Packet::SenderState | |
SenderState () | |
virtual | ~SenderState () |
Protected Member Functions | |
void | main (Yield &yield) override |
std::pair< uint32_t, Gicv3Redistributor * > | translateLPI (Yield &yield, uint32_t device_id, uint32_t event_id) |
Protected Member Functions inherited from gem5::ItsProcess | |
void | reinit () |
void | writeDeviceTable (Yield &yield, uint32_t device_id, DTE dte) |
void | writeIrqTranslationTable (Yield &yield, const Addr itt_base, uint32_t event_id, ITTE itte) |
void | writeIrqCollectionTable (Yield &yield, uint32_t collection_id, CTE cte) |
uint64_t | readDeviceTable (Yield &yield, uint32_t device_id) |
uint64_t | readIrqTranslationTable (Yield &yield, const Addr itt_base, uint32_t event_id) |
uint64_t | readIrqCollectionTable (Yield &yield, uint32_t collection_id) |
void | doRead (Yield &yield, Addr addr, void *ptr, size_t size) |
void | doWrite (Yield &yield, Addr addr, void *ptr, size_t size) |
void | terminate (Yield &yield) |
Additional Inherited Members | |
Public Types inherited from gem5::ItsProcess | |
using | DTE = Gicv3Its::DTE |
using | ITTE = Gicv3Its::ITTE |
using | CTE = Gicv3Its::CTE |
using | Coroutine = gem5::Coroutine<PacketPtr, ItsAction> |
using | Yield = Coroutine::CallerType |
Public Attributes inherited from gem5::Packet::SenderState | |
SenderState * | predecessor |
Protected Attributes inherited from gem5::ItsProcess | |
Gicv3Its & | its |
An ItsTranslation is created whenever a peripheral writes a message in GITS_TRANSLATER (MSI).
In this case main will simply do the table walks until it gets a redistributor and an INTID. It will then raise the LPI interrupt to the target redistributor.
Definition at line 409 of file gic_v3_its.hh.
gem5::ItsTranslation::ItsTranslation | ( | Gicv3Its & | _its | ) |
Definition at line 224 of file gic_v3_its.cc.
References gem5::ItsProcess::its, gem5::Gicv3Its::pendingTranslations, and gem5::ItsProcess::reinit().
gem5::ItsTranslation::~ItsTranslation | ( | ) |
Definition at line 232 of file gic_v3_its.cc.
References gem5::ItsProcess::its, gem5::Gicv3Its::pendingCommands, and gem5::Gicv3Its::pendingTranslations.
|
overrideprotectedvirtual |
Implements gem5::ItsProcess.
Definition at line 241 of file gic_v3_its.cc.
References gem5::Coroutine< Arg, Ret >::CallerType::get(), gem5::Packet::getLE(), gem5::Gicv3Its::gitsTranslater, gem5::ItsProcess::its, gem5::Packet::req, gem5::Gicv3Redistributor::setClrLPI(), gem5::ItsProcess::terminate(), and translateLPI().
|
protected |
Definition at line 265 of file gic_v3_its.cc.
References gem5::Gicv3Its::collectionOutOfRange(), gem5::Gicv3Its::deviceOutOfRange(), gem5::Gicv3Its::getRedistributor(), gem5::Gicv3Its::idOutOfRange(), gem5::ItsProcess::its, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqCollectionTable(), gem5::ItsProcess::readIrqTranslationTable(), and gem5::ItsProcess::terminate().
Referenced by main().