blob: 3c359486e93b0f9ef5231309fc85657ae3b71645 [file] [log] [blame]
Govindraj Rajade6b79d2024-02-23 16:50:52 -06001Vendor Specific EL3 Monitor Service Calls
2=========================================
3
4This document enumerates and describes the Vendor Specific EL3 Monitor Service
5Calls.
6
7These are Service Calls defined by the vendor of the EL3 Monitor.
8They are accessed via ``SMC`` ("SMC calls") instruction executed from Exception
9Levels 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 Raja273b8982024-03-07 15:24:19 -060022Vendor-specific EL3 monitor services are as follows:
23
24+-----------------------------------+-----------------------+---------------------------------------------+
25| SMC Function Identifier | Service Type | FID's Usage |
26+===================================+=======================+=============================================+
Govindraj Rajaf7679d42024-04-15 12:42:13 -050027| 0x87000010 - 0x8700001F (SMC32) | DebugFS Interface | | 0 - 11 are in use. |
28+-----------------------------------+ | | 12 - 15 are reserved for future expansion.|
Govindraj Raja273b8982024-03-07 15:24:19 -060029| 0xC7000010 - 0xC700001F (SMC64) | | |
30+-----------------------------------+-----------------------+---------------------------------------------+
Govindraj Raja42cbefc2024-04-23 11:48:48 -050031| 0x87000020 - 0x8700002F (SMC32) | Performance | | 0,1 is in use. |
32+-----------------------------------+ Measurement Framework | | 2 - 15 are reserved for future expansion. |
Govindraj Rajaf7679d42024-04-15 12:42:13 -050033| 0xC7000020 - 0xC700002F (SMC64) | (PMF) | |
34+-----------------------------------+-----------------------+---------------------------------------------+
Nandan Jf69f5512025-04-30 06:42:40 +000035| 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 Pandey96546b52024-12-02 15:21:35 +000039| 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 Raja320fb292024-03-19 17:46:22 -050044+-----------------------------------+ | |
Manish Pandey96546b52024-12-02 15:21:35 +000045| 0xC7000050 - 0xC700FFFF (SMC64) | | |
Govindraj Raja320fb292024-03-19 17:46:22 -050046+-----------------------------------+-----------------------+---------------------------------------------+
Govindraj Raja273b8982024-03-07 15:24:19 -060047
Govindraj Raja320fb292024-03-19 17:46:22 -050048Source definitions for vendor-specific EL3 Monitor Service Calls used by TF-A are located in
Govindraj Rajade6b79d2024-02-23 16:50:52 -060049the ``ven_el3_svc.h`` header file.
50
Govindraj Raja320fb292024-03-19 17:46:22 -050051+----------------------------+----------------------------+--------------------------------+
52| VEN_EL3_SVC_VERSION_MAJOR | VEN_EL3_SVC_VERSION_MINOR | Changes |
53+============================+============================+================================+
54| 1 | 0 | Added Debugfs and PMF services.|
55+----------------------------+----------------------------+--------------------------------+
Nandan Jf69f5512025-04-30 06:42:40 +000056| 1 | 1 | Added ACS SMC handler services.|
Manish Pandey96546b52024-12-02 15:21:35 +000057+------------------------------------------------------------------------------------------+
58| 1 | 2 | Added TPM Start method. |
Nandan Jf69f5512025-04-30 06:42:40 +000059+----------------------------+----------------------------+--------------------------------+
Govindraj Raja320fb292024-03-19 17:46:22 -050060
61*Table 1: Showing different versions of Vendor-specific service and changes done with each version*
62
63Each sub service will have its own version, one FID allocated for sub service version.
64
65Some 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 Raja273b8982024-03-07 15:24:19 -060072
Govindraj Rajaf7679d42024-04-15 12:42:13 -050073Performance Measurement Framework (PMF)
74---------------------------------------
75
76The :ref:`Performance Measurement Framework <firmware_design_pmf>`
77allows callers to retrieve timestamps captured at various paths in TF-A
78execution.
79
Govindraj Raja273b8982024-03-07 15:24:19 -060080DebugFS interface
81-----------------
82
83The optional DebugFS interface is accessed through Vendor specific EL3 service. Refer
84to :ref:`DebugFS interface` documentation for further details and usage.
85
Nandan Jf69f5512025-04-30 06:42:40 +000086Architecture Compliance Suite (ACS) SMC handler
87-----------------------------------------------
88
89The Architecture Compliance Suite (ACS) SMC handler allows callers to branch
90to their ACS EL3 code based on their respective use-cases.
91For more details on System ACS, `System ACS`_.
92
Manish Pandey96546b52024-12-02 15:21:35 +000093TPM Start method
94----------------
95
96TPM start method as mentioned in `TCG ACPI specification`_ section 3.3.1.
97
Govindraj Rajade6b79d2024-02-23 16:50:52 -060098--------------
99
Nandan Jf69f5512025-04-30 06:42:40 +0000100*Copyright (c) 2024-2025, Arm Limited and Contributors. All rights reserved.*
Govindraj Rajade6b79d2024-02-23 16:50:52 -0600101
Nandan Jf69f5512025-04-30 06:42:40 +0000102.. _System ACS: https://developer.arm.com/Architectures/Architectural%20Compliance%20Suite
Govindraj Rajade6b79d2024-02-23 16:50:52 -0600103.. _SMC Calling Convention: https://developer.arm.com/docs/den0028/latest
Manish Pandey96546b52024-12-02 15:21:35 +0000104.. _TCG ACPI specification: https://trustedcomputinggroup.org/wp-content/uploads/TCG-ACPI-Specification-Version-1.4-Revision-15_pub.pdf