|
gem5 [DEVELOP-FOR-25.1]
|
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 429 of file gic_v3_its.hh.
|
protected |
Definition at line 490 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 446 of file gic_v3_its.hh.
| gem5::ItsCommand::ItsCommand | ( | Gicv3Its & | _its | ) |
Definition at line 319 of file gic_v3_its.cc.
References gem5::ItsProcess::its, gem5::ItsProcess::ItsProcess(), and gem5::ItsProcess::reinit().
| gem5::ItsCommand::~ItsCommand | ( | ) |
Definition at line 328 of file gic_v3_its.cc.
References gem5::ItsProcess::its.
|
protected |
Definition at line 395 of file gic_v3_its.cc.
References gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, idOutOfRange(), gem5::ItsProcess::its, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqCollectionTable(), gem5::ItsProcess::readIrqTranslationTable(), and gem5::ItsProcess::terminate().
|
inlineprotected |
Definition at line 544 of file gic_v3_its.hh.
References gem5::bits(), gem5::ItsProcess::its, and gem5::ItsCommand::CommandEntry::raw.
Referenced by invall(), mapc(), mapi(), mapti(), and movi().
|
staticprotected |
Definition at line 337 of file gic_v3_its.cc.
References cmdDispatcher.
Referenced by readCommand().
|
inlineprotected |
Definition at line 529 of file gic_v3_its.hh.
References gem5::ItsCommand::CommandEntry::deviceId, and gem5::ItsProcess::its.
Referenced by clear(), discard(), doInt(), inv(), mapd(), mapi(), mapti(), and movi().
|
protected |
Definition at line 430 of file gic_v3_its.cc.
References gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, idOutOfRange(), gem5::ItsProcess::its, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqCollectionTable(), gem5::ItsProcess::readIrqTranslationTable(), gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeIrqTranslationTable().
|
protected |
Definition at line 469 of file gic_v3_its.cc.
References gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, idOutOfRange(), gem5::ItsProcess::its, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqCollectionTable(), gem5::ItsProcess::readIrqTranslationTable(), and gem5::ItsProcess::terminate().
|
inlineprotected |
Definition at line 524 of file gic_v3_its.hh.
References gem5::ItsCommand::CommandEntry::eventId, and gem5::ItsProcess::its.
Referenced by clear(), discard(), doInt(), inv(), mapi(), mapti(), and movi().
|
protected |
Definition at line 504 of file gic_v3_its.cc.
References gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, idOutOfRange(), gem5::ItsProcess::its, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqCollectionTable(), gem5::ItsProcess::readIrqTranslationTable(), and gem5::ItsProcess::terminate().
|
protected |
Definition at line 538 of file gic_v3_its.cc.
References gem5::bits(), collectionOutOfRange(), gem5::ItsProcess::its, gem5::ItsCommand::CommandEntry::raw, gem5::ItsProcess::readIrqCollectionTable(), and gem5::ItsProcess::terminate().
|
overrideprotectedvirtual |
Implements gem5::ItsProcess.
Definition at line 344 of file gic_v3_its.cc.
References gem5::ArmISA::a, gem5::INITIAL_NOP, gem5::ItsProcess::its, processCommand(), readCommand(), and gem5::ItsProcess::terminate().
|
protected |
Definition at line 558 of file gic_v3_its.cc.
References gem5::bits(), collectionOutOfRange(), gem5::ItsProcess::its, gem5::ItsCommand::CommandEntry::raw, gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeIrqCollectionTable().
|
protected |
Definition at line 575 of file gic_v3_its.cc.
References gem5::bits(), gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsProcess::its, gem5::mbits(), gem5::ItsCommand::CommandEntry::raw, sizeOutOfRange(), gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeDeviceTable().
|
protected |
Definition at line 591 of file gic_v3_its.cc.
References gem5::bits(), collectionOutOfRange(), gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, idOutOfRange(), gem5::ItsProcess::its, gem5::ItsCommand::CommandEntry::raw, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqTranslationTable(), gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeIrqTranslationTable().
|
protected |
Definition at line 625 of file gic_v3_its.cc.
References gem5::bits(), collectionOutOfRange(), gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, idOutOfRange(), gem5::ItsProcess::its, gem5::ItsCommand::CommandEntry::raw, gem5::ItsProcess::readDeviceTable(), gem5::ItsProcess::readIrqTranslationTable(), gem5::ItsProcess::terminate(), and gem5::ItsProcess::writeIrqTranslationTable().
|
protected |
Definition at line 661 of file gic_v3_its.cc.
References gem5::bits(), gem5::ItsProcess::its, and gem5::ItsCommand::CommandEntry::raw.
|
protected |
Definition at line 675 of file gic_v3_its.cc.
References gem5::bits(), collectionOutOfRange(), gem5::ItsCommand::CommandEntry::deviceId, deviceOutOfRange(), gem5::ItsCommand::CommandEntry::eventId, idOutOfRange(), 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 382 of file gic_v3_its.cc.
References cmdDispatcher, panic, and gem5::ItsCommand::CommandEntry::type.
Referenced by main().
|
protected |
Definition at line 367 of file gic_v3_its.cc.
References commandName(), gem5::ItsProcess::doRead(), DPRINTF, gem5::ItsProcess::its, gem5::ItsCommand::CommandEntry::raw, and gem5::ItsCommand::CommandEntry::type.
Referenced by main().
|
inlineprotected |
Definition at line 534 of file gic_v3_its.hh.
References gem5::bits(), gem5::ItsProcess::its, and gem5::ItsCommand::CommandEntry::raw.
Referenced by mapd().
|
protected |
Definition at line 736 of file gic_v3_its.cc.
References warn.
|
protected |
Definition at line 742 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 748 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 754 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 760 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 766 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 772 of file gic_v3_its.cc.
References panic.
|
protected |
Definition at line 778 of file gic_v3_its.cc.
References panic.
|
staticprotected |
Definition at line 493 of file gic_v3_its.hh.
Referenced by commandName(), and processCommand().