Govindraj Raja | de6b79d | 2024-02-23 16:50:52 -0600 | [diff] [blame] | 1 | Vendor Specific EL3 Monitor Service Calls |
| 2 | ========================================= |
| 3 | |
| 4 | This document enumerates and describes the Vendor Specific EL3 Monitor Service |
| 5 | Calls. |
| 6 | |
| 7 | These are Service Calls defined by the vendor of the EL3 Monitor. |
| 8 | They are accessed via ``SMC`` ("SMC calls") instruction executed from Exception |
| 9 | Levels below EL3. SMC calls for Vendor Specific EL3 Monitor Services: |
| 10 | |
| 11 | - Follow `SMC Calling Convention`_; |
| 12 | - Use SMC function IDs that fall in the vendor-specific EL3 range, which are |
| 13 | |
| 14 | +---------------------------+--------------------------------------------------+ |
| 15 | | SMC Function Identifier | Service Type | |
| 16 | +===========================+==================================================+ |
| 17 | | 0x87000000 - 0x8700FFFF | SMC32: Vendor Specific EL3 Monitor Service Calls | |
| 18 | +---------------------------+--------------------------------------------------+ |
| 19 | | 0xC7000000 - 0xC700FFFF | SMC64: Vendor Specific EL3 Monitor Service Calls | |
| 20 | +---------------------------+--------------------------------------------------+ |
| 21 | |
Govindraj Raja | 273b898 | 2024-03-07 15:24:19 -0600 | [diff] [blame] | 22 | Vendor-specific EL3 monitor services are as follows: |
| 23 | |
| 24 | +-----------------------------------+-----------------------+---------------------------------------------+ |
| 25 | | SMC Function Identifier | Service Type | FID's Usage | |
| 26 | +===================================+=======================+=============================================+ |
Govindraj Raja | f7679d4 | 2024-04-15 12:42:13 -0500 | [diff] [blame] | 27 | | 0x87000010 - 0x8700001F (SMC32) | DebugFS Interface | | 0 - 11 are in use. | |
| 28 | +-----------------------------------+ | | 12 - 15 are reserved for future expansion.| |
Govindraj Raja | 273b898 | 2024-03-07 15:24:19 -0600 | [diff] [blame] | 29 | | 0xC7000010 - 0xC700001F (SMC64) | | | |
| 30 | +-----------------------------------+-----------------------+---------------------------------------------+ |
Govindraj Raja | 42cbefc | 2024-04-23 11:48:48 -0500 | [diff] [blame] | 31 | | 0x87000020 - 0x8700002F (SMC32) | Performance | | 0,1 is in use. | |
| 32 | +-----------------------------------+ Measurement Framework | | 2 - 15 are reserved for future expansion. | |
Govindraj Raja | f7679d4 | 2024-04-15 12:42:13 -0500 | [diff] [blame] | 33 | | 0xC7000020 - 0xC700002F (SMC64) | (PMF) | | |
| 34 | +-----------------------------------+-----------------------+---------------------------------------------+ |
Nandan J | f69f551 | 2025-04-30 06:42:40 +0000 | [diff] [blame] | 35 | | 0x87000030 - 0x8700003F (SMC32) | ACS (Architecture | | 0 in use. | |
| 36 | +-----------------------------------+ Compliance Suite) SMC | | 1 - 15 are reserved for future expansion. | |
| 37 | | 0xC7000030 - 0xC700003F (SMC64) | handler | | |
| 38 | +-----------------------------------+-----------------------+---------------------------------------------+ |
Manish Pandey | 96546b5 | 2024-12-02 15:21:35 +0000 | [diff] [blame^] | 39 | | 0x87000040 - 0x8700004F (SMC32) | TPM Start method | | 0 is in use. | |
| 40 | +-----------------------------------+ | | 1 - 15 are reserved for future expansion. | |
| 41 | | 0xC7000040 - 0xC700004F (SMC64) | | | |
| 42 | +-----------------------------------+-----------------------+---------------------------------------------+ |
| 43 | | 0x87000050 - 0x8700FFFF (SMC32) | Reserved | | reserved for future expansion | |
Govindraj Raja | 320fb29 | 2024-03-19 17:46:22 -0500 | [diff] [blame] | 44 | +-----------------------------------+ | | |
Manish Pandey | 96546b5 | 2024-12-02 15:21:35 +0000 | [diff] [blame^] | 45 | | 0xC7000050 - 0xC700FFFF (SMC64) | | | |
Govindraj Raja | 320fb29 | 2024-03-19 17:46:22 -0500 | [diff] [blame] | 46 | +-----------------------------------+-----------------------+---------------------------------------------+ |
Govindraj Raja | 273b898 | 2024-03-07 15:24:19 -0600 | [diff] [blame] | 47 | |
Govindraj Raja | 320fb29 | 2024-03-19 17:46:22 -0500 | [diff] [blame] | 48 | Source definitions for vendor-specific EL3 Monitor Service Calls used by TF-A are located in |
Govindraj Raja | de6b79d | 2024-02-23 16:50:52 -0600 | [diff] [blame] | 49 | the ``ven_el3_svc.h`` header file. |
| 50 | |
Govindraj Raja | 320fb29 | 2024-03-19 17:46:22 -0500 | [diff] [blame] | 51 | +----------------------------+----------------------------+--------------------------------+ |
| 52 | | VEN_EL3_SVC_VERSION_MAJOR | VEN_EL3_SVC_VERSION_MINOR | Changes | |
| 53 | +============================+============================+================================+ |
| 54 | | 1 | 0 | Added Debugfs and PMF services.| |
| 55 | +----------------------------+----------------------------+--------------------------------+ |
Nandan J | f69f551 | 2025-04-30 06:42:40 +0000 | [diff] [blame] | 56 | | 1 | 1 | Added ACS SMC handler services.| |
Manish Pandey | 96546b5 | 2024-12-02 15:21:35 +0000 | [diff] [blame^] | 57 | +------------------------------------------------------------------------------------------+ |
| 58 | | 1 | 2 | Added TPM Start method. | |
Nandan J | f69f551 | 2025-04-30 06:42:40 +0000 | [diff] [blame] | 59 | +----------------------------+----------------------------+--------------------------------+ |
Govindraj Raja | 320fb29 | 2024-03-19 17:46:22 -0500 | [diff] [blame] | 60 | |
| 61 | *Table 1: Showing different versions of Vendor-specific service and changes done with each version* |
| 62 | |
| 63 | Each sub service will have its own version, one FID allocated for sub service version. |
| 64 | |
| 65 | Some ground rules when one should update top level version. |
| 66 | - VEN_EL3_SVC_VERSION_MAJOR is incremented when any of the sub service version discovery |
| 67 | FID changes or the FID that was allocated for discovery changes. So any breaking subfeature |
| 68 | discovery changes will lead to major version update. |
| 69 | - VEN_EL3_SVC_VERSION_MINOR is incremented when we add a new FID or a new sub service. |
| 70 | For example adding an new monitor service at 0x30, Debugfs starts at 0x10 and PMF |
| 71 | starts at 0x20 next one will start at 0x30, this will need a update to minor version. |
Govindraj Raja | 273b898 | 2024-03-07 15:24:19 -0600 | [diff] [blame] | 72 | |
Govindraj Raja | f7679d4 | 2024-04-15 12:42:13 -0500 | [diff] [blame] | 73 | Performance Measurement Framework (PMF) |
| 74 | --------------------------------------- |
| 75 | |
| 76 | The :ref:`Performance Measurement Framework <firmware_design_pmf>` |
| 77 | allows callers to retrieve timestamps captured at various paths in TF-A |
| 78 | execution. |
| 79 | |
Govindraj Raja | 273b898 | 2024-03-07 15:24:19 -0600 | [diff] [blame] | 80 | DebugFS interface |
| 81 | ----------------- |
| 82 | |
| 83 | The optional DebugFS interface is accessed through Vendor specific EL3 service. Refer |
| 84 | to :ref:`DebugFS interface` documentation for further details and usage. |
| 85 | |
Nandan J | f69f551 | 2025-04-30 06:42:40 +0000 | [diff] [blame] | 86 | Architecture Compliance Suite (ACS) SMC handler |
| 87 | ----------------------------------------------- |
| 88 | |
| 89 | The Architecture Compliance Suite (ACS) SMC handler allows callers to branch |
| 90 | to their ACS EL3 code based on their respective use-cases. |
| 91 | For more details on System ACS, `System ACS`_. |
| 92 | |
Manish Pandey | 96546b5 | 2024-12-02 15:21:35 +0000 | [diff] [blame^] | 93 | TPM Start method |
| 94 | ---------------- |
| 95 | |
| 96 | TPM start method as mentioned in `TCG ACPI specification`_ section 3.3.1. |
| 97 | |
Govindraj Raja | de6b79d | 2024-02-23 16:50:52 -0600 | [diff] [blame] | 98 | -------------- |
| 99 | |
Nandan J | f69f551 | 2025-04-30 06:42:40 +0000 | [diff] [blame] | 100 | *Copyright (c) 2024-2025, Arm Limited and Contributors. All rights reserved.* |
Govindraj Raja | de6b79d | 2024-02-23 16:50:52 -0600 | [diff] [blame] | 101 | |
Nandan J | f69f551 | 2025-04-30 06:42:40 +0000 | [diff] [blame] | 102 | .. _System ACS: https://developer.arm.com/Architectures/Architectural%20Compliance%20Suite |
Govindraj Raja | de6b79d | 2024-02-23 16:50:52 -0600 | [diff] [blame] | 103 | .. _SMC Calling Convention: https://developer.arm.com/docs/den0028/latest |
Manish Pandey | 96546b5 | 2024-12-02 15:21:35 +0000 | [diff] [blame^] | 104 | .. _TCG ACPI specification: https://trustedcomputinggroup.org/wp-content/uploads/TCG-ACPI-Specification-Version-1.4-Revision-15_pub.pdf |