gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::scmi::BaseProtocol Class Reference

This protocol describes the properties of the implementation and provides generic error management. More...

#include <scmi_protocols.hh>

Inheritance diagram for gem5::scmi::BaseProtocol:
gem5::scmi::Protocol

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
Platformplatform
 

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
 

Detailed Description

This protocol describes the properties of the implementation and provides generic error management.

The Base protocol provides commands to:

  • Describe protocol version
  • Discover implementation attributes and vendor identification.
  • Discover which protocols are implemented.
  • Discover which agents are in the system.
  • Register for notifications of platform errors.
  • Configure the platform in order to control and modify an agent visibility of platform resources and commands. This protocol is mandatory.

Definition at line 110 of file scmi_protocols.hh.

Member Enumeration Documentation

◆ Commands

Enumerator
VERSION 
ATTRIBUTES 
MESSAGE_ATTRIBUTES 
DISCOVER_VENDOR 
DISCOVER_SUB_VENDOR 
DISCOVER_IMPLEMENTATION_VERSION 
DISCOVER_LIST_PROTOCOLS 
DISCOVER_AGENT 
NOTIFY_ERRORS 
SET_DEVICE_PERMISSIONS 
SET_PROTOCOL_PERMISSIONS 
RESET_AGENT_CONFIGURATION 

Definition at line 117 of file scmi_protocols.hh.

Constructor & Destructor Documentation

◆ BaseProtocol()

gem5::BaseProtocol::BaseProtocol ( Platform & _platform)
explicit

Definition at line 54 of file scmi_protocols.cc.

References fatal_if, gem5::scmi::Protocol::MAX_STRING_SIZE, subvendor, and vendor.

Member Function Documentation

◆ attributes()

◆ discoverAgent()

◆ discoverImplVersion()

void gem5::BaseProtocol::discoverImplVersion ( Message & msg)

◆ discoverListProtocols()

◆ discoverSubVendor()

void gem5::BaseProtocol::discoverSubVendor ( Message & msg)

◆ discoverVendor()

void gem5::BaseProtocol::discoverVendor ( Message & msg)

◆ handleMessage()

◆ implementedProtocol()

bool gem5::BaseProtocol::implementedProtocol ( Commands message_id) const
protected

◆ invalidCommand()

void gem5::BaseProtocol::invalidCommand ( Message & msg)

◆ messageAttributes()

void gem5::BaseProtocol::messageAttributes ( Message & msg)
overridevirtual

◆ version()

void gem5::BaseProtocol::version ( Message & msg)
overridevirtual

Member Data Documentation

◆ implementationVersion

const uint32_t gem5::scmi::BaseProtocol::implementationVersion
protected

Definition at line 152 of file scmi_protocols.hh.

Referenced by discoverImplVersion().

◆ PROTOCOL_VERSION

const uint32_t gem5::scmi::BaseProtocol::PROTOCOL_VERSION = 0x10000
staticprivate

Definition at line 112 of file scmi_protocols.hh.

Referenced by version().

◆ subvendor

const std::string gem5::scmi::BaseProtocol::subvendor
protected

Definition at line 151 of file scmi_protocols.hh.

Referenced by BaseProtocol(), and discoverSubVendor().

◆ vendor

const std::string gem5::scmi::BaseProtocol::vendor
protected

Definition at line 150 of file scmi_protocols.hh.

Referenced by BaseProtocol(), and discoverVendor().


The documentation for this class was generated from the following files:

Generated on Tue Jun 18 2024 16:24:22 for gem5 by doxygen 1.11.0