gem5
[DEVELOP-FOR-23.0]
|
This protocol describes the properties of the implementation and provides generic error management. More...
#include <scmi_protocols.hh>
Public Types | |
enum | Commands { Commands::VERSION = 0x0, Commands::ATTRIBUTES = 0x1, Commands::MESSAGE_ATTRIBUTES = 0x2, Commands::DISCOVER_VENDOR = 0x3, Commands::DISCOVER_SUB_VENDOR = 0x4, Commands::DISCOVER_IMPLEMENTATION_VERSION = 0x5, Commands::DISCOVER_LIST_PROTOCOLS = 0x6, Commands::DISCOVER_AGENT = 0x7, Commands::NOTIFY_ERRORS = 0x8, Commands::SET_DEVICE_PERMISSIONS = 0x9, Commands::SET_PROTOCOL_PERMISSIONS = 0xa, Commands::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) |
![]() | |
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 |
![]() | |
Platform & | platform |
Static Private Attributes | |
static const uint32_t | PROTOCOL_VERSION = 0x10000 |
Additional Inherited Members | |
![]() | |
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().