gem5 v24.0.0.0
|
This protocol describes the properties of the implementation and provides generic error management. More...
#include <scmi_protocols.hh>
Public Types | |
enum class | Commands { VERSION = 0x0 , ATTRIBUTES = 0x1 , MESSAGE_ATTRIBUTES = 0x2 , DISCOVER_VENDOR = 0x3 , DISCOVER_SUB_VENDOR = 0x4 , DISCOVER_IMPLEMENTATION_VERSION = 0x5 , DISCOVER_LIST_PROTOCOLS = 0x6 , DISCOVER_AGENT = 0x7 , NOTIFY_ERRORS = 0x8 , SET_DEVICE_PERMISSIONS = 0x9 , SET_PROTOCOL_PERMISSIONS = 0xa , RESET_AGENT_CONFIGURATION = 0xb } |
Public Member Functions | |
BaseProtocol (Platform &_platform) | |
void | handleMessage (Message &msg) override |
void | version (Message &msg) override |
void | attributes (Message &msg) override |
void | messageAttributes (Message &msg) override |
void | discoverVendor (Message &msg) |
void | discoverSubVendor (Message &msg) |
void | discoverImplVersion (Message &msg) |
void | discoverListProtocols (Message &msg) |
void | discoverAgent (Message &msg) |
void | invalidCommand (Message &msg) |
Public Member Functions inherited from gem5::scmi::Protocol | |
Protocol (Platform &_platform) | |
virtual | ~Protocol () |
const std::string | name () const |
Protected Member Functions | |
bool | implementedProtocol (Commands message_id) const |
Protected Attributes | |
const std::string | vendor |
const std::string | subvendor |
const uint32_t | implementationVersion |
Protected Attributes inherited from gem5::scmi::Protocol | |
Platform & | platform |
Static Private Attributes | |
static const uint32_t | PROTOCOL_VERSION = 0x10000 |
Additional Inherited Members | |
Static Public Attributes inherited from gem5::scmi::Protocol | |
static const uint32_t | MAX_STRING_SIZE = 15 |
This protocol describes the properties of the implementation and provides generic error management.
The Base protocol provides commands to:
Definition at line 110 of file scmi_protocols.hh.
|
strong |
Definition at line 117 of file scmi_protocols.hh.
|
explicit |
Definition at line 54 of file scmi_protocols.cc.
References fatal_if, gem5::scmi::Protocol::MAX_STRING_SIZE, subvendor, and vendor.
|
overridevirtual |
Implements gem5::scmi::Protocol.
Definition at line 122 of file scmi_protocols.cc.
References gem5::scmi::Message::length, gem5::scmi::Platform::numAgents(), gem5::scmi::Platform::numProtocols(), gem5::scmi::Message::payload, gem5::scmi::Protocol::platform, gem5::replaceBits(), and gem5::scmi::SUCCESS.
Referenced by handleMessage().
void gem5::BaseProtocol::discoverAgent | ( | Message & | msg | ) |
Definition at line 247 of file scmi_protocols.cc.
References gem5::scmi::Platform::getAgent(), gem5::scmi::Message::length, gem5::scmi::NOT_FOUND, gem5::scmi::Platform::numAgents(), gem5::scmi::Message::payload, gem5::scmi::Protocol::platform, and gem5::scmi::SUCCESS.
Referenced by handleMessage().
void gem5::BaseProtocol::discoverImplVersion | ( | Message & | msg | ) |
Definition at line 202 of file scmi_protocols.cc.
References implementationVersion, gem5::scmi::Message::length, gem5::scmi::Message::payload, and gem5::scmi::SUCCESS.
Referenced by handleMessage().
void gem5::BaseProtocol::discoverListProtocols | ( | Message & | msg | ) |
Definition at line 213 of file scmi_protocols.cc.
References gem5::scmi::END, gem5::scmi::INVALID_PARAMETERS, gem5::scmi::Message::length, gem5::scmi::Platform::numProtocols(), gem5::scmi::Message::payload, gem5::scmi::Protocol::platform, gem5::scmi::Platform::protocolList(), gem5::scmi::START, and gem5::scmi::SUCCESS.
Referenced by handleMessage().
void gem5::BaseProtocol::discoverSubVendor | ( | Message & | msg | ) |
Definition at line 189 of file scmi_protocols.cc.
References gem5::scmi::Message::length, gem5::scmi::Protocol::MAX_STRING_SIZE, gem5::scmi::Message::payload, subvendor, and gem5::scmi::SUCCESS.
Referenced by handleMessage().
void gem5::BaseProtocol::discoverVendor | ( | Message & | msg | ) |
Definition at line 176 of file scmi_protocols.cc.
References gem5::scmi::Message::length, gem5::scmi::Protocol::MAX_STRING_SIZE, gem5::scmi::Message::payload, gem5::scmi::SUCCESS, and vendor.
Referenced by handleMessage().
|
overridevirtual |
Implements gem5::scmi::Protocol.
Definition at line 67 of file scmi_protocols.cc.
References ATTRIBUTES, attributes(), DISCOVER_AGENT, DISCOVER_IMPLEMENTATION_VERSION, DISCOVER_LIST_PROTOCOLS, DISCOVER_SUB_VENDOR, DISCOVER_VENDOR, discoverAgent(), discoverImplVersion(), discoverListProtocols(), discoverSubVendor(), discoverVendor(), DPRINTF, invalidCommand(), MESSAGE_ATTRIBUTES, messageAttributes(), gem5::scmi::Platform::messageID(), NOTIFY_ERRORS, RESET_AGENT_CONFIGURATION, SET_DEVICE_PERMISSIONS, SET_PROTOCOL_PERMISSIONS, VERSION, version(), and warn.
|
protected |
Definition at line 138 of file scmi_protocols.cc.
References ATTRIBUTES, DISCOVER_AGENT, DISCOVER_IMPLEMENTATION_VERSION, DISCOVER_LIST_PROTOCOLS, DISCOVER_SUB_VENDOR, DISCOVER_VENDOR, MESSAGE_ATTRIBUTES, and VERSION.
Referenced by messageAttributes().
void gem5::BaseProtocol::invalidCommand | ( | Message & | msg | ) |
Definition at line 280 of file scmi_protocols.cc.
References gem5::scmi::Message::length, gem5::scmi::NOT_FOUND, and gem5::scmi::Message::payload.
Referenced by handleMessage().
|
overridevirtual |
Implements gem5::scmi::Protocol.
Definition at line 156 of file scmi_protocols.cc.
References implementedProtocol(), gem5::scmi::Message::length, gem5::scmi::NOT_FOUND, gem5::scmi::Message::payload, and gem5::scmi::SUCCESS.
Referenced by handleMessage().
|
overridevirtual |
Implements gem5::scmi::Protocol.
Definition at line 111 of file scmi_protocols.cc.
References gem5::scmi::Message::length, gem5::scmi::Message::payload, PROTOCOL_VERSION, and gem5::scmi::SUCCESS.
Referenced by handleMessage().
|
protected |
Definition at line 152 of file scmi_protocols.hh.
Referenced by discoverImplVersion().
|
staticprivate |
Definition at line 112 of file scmi_protocols.hh.
Referenced by version().
|
protected |
Definition at line 151 of file scmi_protocols.hh.
Referenced by BaseProtocol(), and discoverSubVendor().
|
protected |
Definition at line 150 of file scmi_protocols.hh.
Referenced by BaseProtocol(), and discoverVendor().