diff --git a/src/rpmi.bib b/src/rpmi.bib index 9c76d3c..4a02f6e 100644 --- a/src/rpmi.bib +++ b/src/rpmi.bib @@ -6,6 +6,10 @@ @electronic{ACPI title = {Advanced Configuration and Power Interface Specification}, url = {https://uefi.org/specifications} } +@electronic{PI, + title = {UEFI Platform Initialization Specification}, + url = {https://uefi.org/specifications} +} @electronic{DT, title = {DeviceTree}, url = {https://www.devicetree.org/} diff --git a/src/srvgrp-base.adoc b/src/srvgrp-base.adoc index 9e184e0..abda6c1 100644 --- a/src/srvgrp-base.adoc +++ b/src/srvgrp-base.adoc @@ -33,7 +33,7 @@ Following table lists the service group | 0x00007 | CLOCK | 0x00008 | DEVICE_POWER | 0x00009 | PERFORMANCE -| 0x0000A | MM_SERVICE +| 0x0000A | MANAGEMENT_MODE | 0x0000B | RAS_AGENT | 0x0000C - 0x7FFFF | _Reserved for Future Use_ | 0x80000 - 0xFFFFF | _Implementation Specific Service Groups_ diff --git a/src/srvgrp-management.adoc b/src/srvgrp-management.adoc index d22288c..11780e0 100644 --- a/src/srvgrp-management.adoc +++ b/src/srvgrp-management.adoc @@ -9,18 +9,19 @@ ifndef::rootpath[] :rootpath: ./../ endif::rootpath[] -=== Service Group - *MANAGEMENT* (servicegroup_id: 0x0000A) -This MANAGEMENT service group is designed to be used for software invocation of -Management Mode (MM) in a secure execution environment. For general background -on Management Mode (MM), review the Platform Initialization (PI) specifications, -Volume 4: Management Mode Core Interface. Management Mode (MM) provides an -environment for implementing OS agnostic services (MM services) like secure -variable storage, and firmware updates in system firmware. The services can be -invoked synchronously and asynchronously. This service group describes the -interfaces for invoking MM services synchronously. +=== Service Group - *MANAGEMENT_MODE* (servicegroup_id: 0x0000A) +This MANAGEMENT_MODE service group is designed to be used for software invocation +of Management Mode (MM) in a secure execution environment. For general background +on Management Mode, refer to the Platform Initialization (PI) specifications +cite:[PI], Volume 4: Management Mode Core Interface. Management Mode provides an +environment for implementing OS agnostic services (MM services) like secure variable +storage, and firmware updates in system firmware. This service group describes the +interfaces for invoking MM services synchronously, the MM_COMMUNICATE serves as the +world-switch synchronous call from the non-secure to the secure world while the +MM_COMPLETE facilitates synchronous call from the secure to the non-secure world. [#table_mm_services] -.MANAGEMENT Services +.MANAGEMENT_MODE Services [cols="1, 3, 2", width=100%, align="center", options="header"] |=== | Service ID | Service Name | Request Type @@ -35,11 +36,11 @@ interfaces for invoking MM services synchronously. This service group does not support any event for notification. ==== Service: *MM_ENABLE_NOTIFICATION* -This service allows AP to subscribe to MANAGEMENT service group notifications. -Platform can optionally support notifications of events which might occur in -the platform. PuC can send these notification messages to AP if they are -implemented and AP has subscribed to these. Events supported are described -in <>. +This service allows the AP to subscribe to MANAGEMENT_MODE service group +notifications. Platform can optionally support notifications of events which +might occur in the platform. PuC can send these notification messages to AP +if they are implemented and AP has subscribed to these. Events supported are +described in <>. [#table_mm_ennotification_request_data] .Request Data @@ -69,7 +70,7 @@ notification. ==== Service: *MM_VERSION* -This service returns the version of a management mode service. +This service returns the version of a Management Mode. [#table_mm_version_request_data] .Request Data @@ -88,7 +89,7 @@ This service returns the version of a management mode service. ! RPMI_ERROR_DENIED ! Denied due to no permission. !=== - Other errors <> -| 1 | MM_VERSION | uint32 | Management mode service version. +| 1 | MM_VERSION | uint32 | Management Mode version. [cols="2,5"] !=== ! *Bits* ! *Description* @@ -102,7 +103,8 @@ This service returns the version of a management mode service. ==== Service: *MM_COMMUNICATE* Calling this MM_COMMUNICATE api invokes a MM service that is implemented in the secure execution environment. The MM_COMM_DATA contains data to identify and -invoke the MM service. This synchronous call is returned by using MM_COMPLETE. +invoke the MM service. The readiness of this synchronous request from the non-secure +world is signaled by the MM_COMPLETE call from the secure world. [#table_mm_communicate_request_data] .Request Data