SPCI: SPCI_FEATURES implementation.
Change-Id: I1bb3e32808d503ee75303a5e70b41645b2d7e86b
diff --git a/src/arch/aarch64/hypervisor/handler.c b/src/arch/aarch64/hypervisor/handler.c
index bbb115f..7928f54 100644
--- a/src/arch/aarch64/hypervisor/handler.c
+++ b/src/arch/aarch64/hypervisor/handler.c
@@ -312,6 +312,10 @@
static bool spci_handler(struct spci_value *args, struct vcpu **next)
{
+ /*
+ * NOTE: When adding new methods to this handler update
+ * api_spci_features accordingly.
+ */
switch (args->func & ~SMCCC_CONVENTION_MASK) {
case SPCI_VERSION_32:
*args = api_spci_version();
@@ -319,6 +323,9 @@
case SPCI_ID_GET_32:
*args = api_spci_id_get(current());
return true;
+ case SPCI_FEATURES_32:
+ *args = api_spci_features(args->arg1);
+ return true;
case SPCI_YIELD_32:
api_yield(current(), next);