gem5 v24.0.0.0
|
An ItsCommand is created whenever there is a new command in the command queue. More...
#include <gic_v3_its.hh>
Classes | |
union | CommandEntry |
struct | DispatchEntry |
Dispatch entry is a metadata struct which contains information about the command (like the name) and the function object implementing the command. More... | |
Public Types | |
enum | CommandType : uint32_t { CLEAR = 0x04 , DISCARD = 0x0F , INT = 0x03 , INV = 0x0C , INVALL = 0x0D , MAPC = 0x09 , MAPD = 0x08 , MAPI = 0x0B , MAPTI = 0x0A , MOVALL = 0x0E , MOVI = 0x01 , SYNC = 0x05 , VINVALL = 0x2D , VMAPI = 0x2B , VMAPP = 0x29 , VMAPTI = 0x2A , VMOVI = 0x21 , VMOVP = 0x22 , VSYNC = 0x25 } |
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 Member Functions | |
ItsCommand (Gicv3Its &_its) | |
~ItsCommand () | |
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 Types | |
using | DispatchTable |
Protected Member Functions | |
void | main (Yield &yield) override |
void | readCommand (Yield &yield, CommandEntry &command) |
void | processCommand (Yield &yield, CommandEntry &command) |
void | clear (Yield &yield, CommandEntry &command) |
void | discard (Yield &yield, CommandEntry &command) |
void | mapc (Yield &yield, CommandEntry &command) |
void | mapd (Yield &yield, CommandEntry &command) |
void | mapi (Yield &yield, CommandEntry &command) |
void | mapti (Yield &yield, CommandEntry &command) |
void | movall (Yield &yield, CommandEntry &command) |
void | movi (Yield &yield, CommandEntry &command) |
void | sync (Yield &yield, CommandEntry &command) |
void | doInt (Yield &yield, CommandEntry &command) |
void | inv (Yield &yield, CommandEntry &command) |
void | invall (Yield &yield, CommandEntry &command) |
void | vinvall (Yield &yield, CommandEntry &command) |
void | vmapi (Yield &yield, CommandEntry &command) |
void | vmapp (Yield &yield, CommandEntry &command) |
void | vmapti (Yield &yield, CommandEntry &command) |
void | vmovi (Yield &yield, CommandEntry &command) |
void | vmovp (Yield &yield, CommandEntry &command) |
void | vsync (Yield &yield, CommandEntry &command) |
bool | idOutOfRange (CommandEntry &command, DTE dte) const |
bool | deviceOutOfRange (CommandEntry &command) const |
bool | sizeOutOfRange (CommandEntry &command) const |
bool | collectionOutOfRange (CommandEntry &command) const |
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) |
Static Protected Member Functions | |
static std::string | commandName (uint32_t cmd) |
Static Protected Attributes | |
static DispatchTable | cmdDispatcher |
Additional Inherited Members | |
Public Attributes inherited from gem5::Packet::SenderState | |
SenderState * | predecessor |
Protected Attributes inherited from gem5::ItsProcess | |
Gicv3Its & | its |
An ItsCommand is created whenever there is a new command in the command queue.
Only one command can be executed per time. main will firstly read the command from memory and then it will process it.
Definition at line 428 of file gic_v3_its.hh.
|
protected |
Definition at line 489 of file gic_v3_its.hh.
enum gem5::ItsCommand::CommandType : uint32_t |
Enumerator | |
---|---|
CLEAR | |
DISCARD | |
INT | |
INV | |
INVALL | |
MAPC | |
MAPD | |
MAPI | |
MAPTI | |
MOVALL | |
MOVI | |
SYNC | |
VINVALL | |
VMAPI | |
VMAPP | |
VMAPTI | |
VMOVI | |
VMOVP | |
VSYNC |
Definition at line 445 of file gic_v3_its.hh.
gem5::ItsCommand::ItsCommand | ( | Gicv3Its & | _its | ) |
Definition at line 318 of file gic_v3_its.cc.
References gem5::ItsProcess::its, gem5::Gicv3Its::pendingCommands, and gem5::ItsProcess::reinit().
gem5::ItsCommand::~ItsCommand | ( | ) |
Definition at line 327 of file gic_v3_its.cc.
References gem5::ItsProcess::its, gem5::Gicv3Its::pendingCommands, and gem5::Gicv3Its::pendingTranslations.
|
protected |
Definition at line 394 of file gic_v3_its.cc.
References gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, gem5::Gicv3Its::getRedistributor(), idOutOfRange(), gem5::Gicv3Its::incrementReadPointer(), gem5::ItsProcess::its, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqCollectionTable(), gem5::ItsProcess::readIrqTranslationTable(), gem5::Gicv3Redistributor::setClrLPI(), and gem5::ItsProcess::terminate().
|
inlineprotected |
Definition at line 543 of file gic_v3_its.hh.
References gem5::bits(), gem5::Gicv3Its::collectionOutOfRange(), gem5::ItsProcess::its, and gem5::ItsCommand::CommandEntry::raw.
Referenced by invall(), mapc(), mapi(), mapti(), and movi().
|
staticprotected |
Definition at line 336 of file gic_v3_its.cc.
References cmdDispatcher.
Referenced by readCommand().
|
inlineprotected |
Definition at line 528 of file gic_v3_its.hh.
References gem5::ItsCommand::CommandEntry::deviceId, gem5::Gicv3Its::deviceOutOfRange(), and gem5::ItsProcess::its.
Referenced by clear(), discard(), doInt(), inv(), mapd(), mapi(), mapti(), and movi().
|
protected |
Definition at line 429 of file gic_v3_its.cc.
References gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, gem5::Gicv3Its::getRedistributor(), idOutOfRange(), gem5::Gicv3Its::incrementReadPointer(), gem5::ItsProcess::its, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqCollectionTable(), gem5::ItsProcess::readIrqTranslationTable(), gem5::Gicv3Redistributor::setClrLPI(), gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeIrqTranslationTable().
|
protected |
Definition at line 468 of file gic_v3_its.cc.
References gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, gem5::Gicv3Its::getRedistributor(), idOutOfRange(), gem5::Gicv3Its::incrementReadPointer(), gem5::ItsProcess::its, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqCollectionTable(), gem5::ItsProcess::readIrqTranslationTable(), gem5::Gicv3Redistributor::setClrLPI(), and gem5::ItsProcess::terminate().
|
inlineprotected |
Definition at line 523 of file gic_v3_its.hh.
References gem5::ItsCommand::CommandEntry::eventId, gem5::Gicv3Its::idOutOfRange(), and gem5::ItsProcess::its.
Referenced by clear(), discard(), doInt(), inv(), mapi(), mapti(), and movi().
|
protected |
Definition at line 503 of file gic_v3_its.cc.
References gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, idOutOfRange(), gem5::Gicv3Its::incrementReadPointer(), gem5::ItsProcess::its, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqCollectionTable(), gem5::ItsProcess::readIrqTranslationTable(), and gem5::ItsProcess::terminate().
|
protected |
Definition at line 537 of file gic_v3_its.cc.
References gem5::bits(), collectionOutOfRange(), gem5::Gicv3Its::incrementReadPointer(), gem5::ItsProcess::its, gem5::ItsCommand::CommandEntry::raw, gem5::ItsProcess::readIrqCollectionTable(), and gem5::ItsProcess::terminate().
|
overrideprotectedvirtual |
Implements gem5::ItsProcess.
Definition at line 343 of file gic_v3_its.cc.
References gem5::ArmISA::a, gem5::Gicv3Its::gitsCreadr, gem5::Gicv3Its::gitsCwriter, gem5::Gicv3Its::incrementReadPointer(), gem5::INITIAL_NOP, gem5::ItsProcess::its, processCommand(), readCommand(), gem5::ItsProcess::terminate(), and gem5::ItsAction::type.
|
protected |
Definition at line 557 of file gic_v3_its.cc.
References gem5::bits(), collectionOutOfRange(), gem5::Gicv3Its::incrementReadPointer(), gem5::ItsProcess::its, gem5::ItsCommand::CommandEntry::raw, gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeIrqCollectionTable().
|
protected |
Definition at line 574 of file gic_v3_its.cc.
References gem5::bits(), gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::Gicv3Its::incrementReadPointer(), gem5::ItsProcess::its, gem5::mbits(), gem5::ItsCommand::CommandEntry::raw, sizeOutOfRange(), gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeDeviceTable().
|
protected |
Definition at line 590 of file gic_v3_its.cc.
References gem5::bits(), collectionOutOfRange(), gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, idOutOfRange(), gem5::Gicv3Its::incrementReadPointer(), gem5::ItsProcess::its, gem5::Gicv3Its::lpiOutOfRange(), gem5::ItsCommand::CommandEntry::raw, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqTranslationTable(), gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeIrqTranslationTable().
|
protected |
Definition at line 624 of file gic_v3_its.cc.
References gem5::bits(), collectionOutOfRange(), gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, idOutOfRange(), gem5::Gicv3Its::incrementReadPointer(), gem5::ItsProcess::its, gem5::Gicv3Its::lpiOutOfRange(), gem5::ItsCommand::CommandEntry::raw, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqTranslationTable(), gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeIrqTranslationTable().
|
protected |
Definition at line 660 of file gic_v3_its.cc.
References gem5::bits(), gem5::Gicv3Its::getRedistributor(), gem5::ItsProcess::its, gem5::Gicv3Its::moveAllPendingState(), and gem5::ItsCommand::CommandEntry::raw.
|
protected |
Definition at line 674 of file gic_v3_its.cc.
References gem5::bits(), collectionOutOfRange(), gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, gem5::Gicv3Its::getRedistributor(), idOutOfRange(), gem5::Gicv3Its::incrementReadPointer(), gem5::Gicv3Redistributor::isPendingLPI(), gem5::ItsProcess::its, gem5::ItsCommand::CommandEntry::raw, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqCollectionTable(), gem5::ItsProcess::readIrqTranslationTable(), gem5::Gicv3Redistributor::setClrLPI(), gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeIrqTranslationTable().
|
protected |
Definition at line 381 of file gic_v3_its.cc.
References cmdDispatcher, panic, and gem5::ItsCommand::CommandEntry::type.
Referenced by main().
|
protected |
Definition at line 366 of file gic_v3_its.cc.
References commandName(), gem5::ItsProcess::doRead(), DPRINTF, gem5::Gicv3Its::gitsCbaser, gem5::Gicv3Its::gitsCreadr, gem5::ItsProcess::its, gem5::ItsCommand::CommandEntry::raw, and gem5::ItsCommand::CommandEntry::type.
Referenced by main().
|
inlineprotected |
Definition at line 533 of file gic_v3_its.hh.
References gem5::bits(), gem5::ItsProcess::its, gem5::ItsCommand::CommandEntry::raw, and gem5::Gicv3Its::sizeOutOfRange().
Referenced by mapd().
|
protected |
Definition at line 735 of file gic_v3_its.cc.
References warn.
|
protected |
Definition at line 741 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 747 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 753 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 759 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 765 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 771 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 777 of file gic_v3_its.cc.
References panic.
|
staticprotected |
Definition at line 492 of file gic_v3_its.hh.
Referenced by commandName(), and processCommand().