diff options
author | danh-arm <dan.handley@arm.com> | 2015-01-26 12:52:46 +0000 |
---|---|---|
committer | danh-arm <dan.handley@arm.com> | 2015-01-26 12:52:46 +0000 |
commit | 07ddb33a8e186c0e1daade975e52beba92a266e7 (patch) | |
tree | bf7ceed4223789ef9f83a25a8e1cbd71d3e55c33 /docs/firmware-design.md | |
parent | 126866f0110c6096256cd580bc778539d16b06fd (diff) | |
parent | e8ca7d1e32c04f4a7f9679f7d09dbe0e49baa471 (diff) |
Merge pull request #245 from danh-arm/sm/psci_version
Increment the PSCI VERSION to 1.0 (PR v2)
Diffstat (limited to 'docs/firmware-design.md')
-rw-r--r-- | docs/firmware-design.md | 63 |
1 files changed, 37 insertions, 26 deletions
diff --git a/docs/firmware-design.md b/docs/firmware-design.md index 774ea436..ee76d5c8 100644 --- a/docs/firmware-design.md +++ b/docs/firmware-design.md @@ -734,32 +734,43 @@ restoring the stack and CPU state and returning from the original SMC. TODO: Provide design walkthrough of PSCI implementation. -The complete PSCI API is not yet implemented. The following functions are -currently implemented: - -- `PSCI_VERSION` -- `CPU_OFF` -- `CPU_ON` -- `CPU_SUSPEND` -- `AFFINITY_INFO` -- `SYSTEM_OFF` -- `SYSTEM_RESET` - -The `CPU_ON`, `CPU_OFF` and `CPU_SUSPEND` functions implement the warm boot -path in ARM Trusted Firmware. `CPU_ON` and `CPU_OFF` have undergone testing -on all the supported FVPs. `CPU_SUSPEND` & `AFFINITY_INFO` have undergone -testing only on the AEM v8 Base FVP. Support for `AFFINITY_INFO` is still -experimental. Support for `CPU_SUSPEND` is stable for entry into power down -states. Standby states are currently not supported. `PSCI_VERSION` is -present but completely untested in this version of the software. - -The following unsupported functions return with a error code as documented in -the [Power State Coordination Interface PDD] [PSCI]. - -- `MIGRATE` : -1 (NOT_SUPPORTED) -- `MIGRATE_INFO_TYPE` : 2 (Trusted OS is either not present or does not - require migration) -- `MIGRATE_INFO_UP_CPU` : 0 (Return value is UNDEFINED) +The PSCI v1.0 specification categorizes APIs as optional and mandatory. All the +mandatory APIs in PSCI v1.0 and all the APIs in PSCI v0.2 draft specification +[Power State Coordination Interface PDD] [PSCI] are implemented. The table lists +the PSCI v1.0 APIs and their support in generic code. + +An API implementation might have a dependency on platform code e.g. CPU_SUSPEND +requires the platform to export a part of the implementation. Hence the level +of support of the mandatory APIs depends upon the support exported by the +platform port as well. The Juno and FVP (all variants) platforms export all the +required support. + +| PSCI v1.0 API |Supported| Comments | +|:----------------------|:--------|:------------------------------------------| +|`PSCI_VERSION` | Yes | The version returned is 1.0 | +|`CPU_SUSPEND` | Yes* | The original `power_state` format is used | +|`CPU_OFF` | Yes* | | +|`CPU_ON` | Yes* | | +|`AFFINITY_INFO` | Yes | | +|`MIGRATE` | Yes** | | +|`MIGRATE_INFO_TYPE` | Yes** | | +|`MIGRATE_INFO_CPU` | Yes** | | +|`SYSTEM_OFF` | Yes* | | +|`SYSTEM_RESET` | Yes* | | +|`PSCI_FEATURES` | Yes | | +|`CPU_FREEZE` | No | | +|`CPU_DEFAULT_SUSPEND` | No | | +|`CPU_HW_STATE` | No | | +|`SYSTEM_SUSPEND` | No | | +|`PSCI_SET_SUSPEND_MODE`| No | | +|`PSCI_STAT_RESIDENCY` | No | | +|`PSCI_STAT_COUNT` | No | | + +*Note : These PSCI APIs require platform power management hooks to be +registered with the generic PSCI code to be supported. + +**Note : These PSCI APIs require appropriate Secure Payload Dispatcher +hooks to be registered with the generic PSCI code to be supported. 5. Secure-EL1 Payloads and Dispatchers |