feat(smc): add RMI/RSI commands, data types aligning with 1.1-alp9

This patch adds new RMI/RSI commands and data types  based on RMM
specification 1.1-alp9. And sets RMI_ABI_VERSION_MINOR and
RSI_ABI_VERSION_MINOR to 1 when RMM is build with RMM_V1_1=ON.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I20f4ea342bf941f26d2e93ae2f4d0cf0a6511d19
diff --git a/runtime/core/handler.c b/runtime/core/handler.c
index 7ea3618..2fcb659 100644
--- a/runtime/core/handler.c
+++ b/runtime/core/handler.c
@@ -31,10 +31,13 @@
 	RMI_STATUS_STRING(ERROR_INPUT),
 	RMI_STATUS_STRING(ERROR_REALM),
 	RMI_STATUS_STRING(ERROR_REC),
-	RMI_STATUS_STRING(ERROR_RTT)
+	RMI_STATUS_STRING(ERROR_RTT),
+	RMI_STATUS_STRING(ERROR_DEVICE),
+	RMI_STATUS_STRING(ERROR_NOT_SUPPORTED),
+	RMI_STATUS_STRING(ERROR_RTT_AUX)
 };
 
-COMPILER_ASSERT(ARRAY_SIZE(rmi_status_string) == RMI_ERROR_COUNT);
+COMPILER_ASSERT(ARRAY_SIZE(rmi_status_string) == RMI_ERROR_COUNT_MAX);
 
 /*
  * At this level (in handle_ns_smc) we distinguish the RMI calls only on:
@@ -131,28 +134,60 @@
  */
 static const struct smc_handler smc_handlers[] = {
 	HANDLER(VERSION,		1, 2, smc_version,		 true,  true),
-	HANDLER(FEATURES,		1, 1, smc_read_feature_register, true,  true),
 	HANDLER(GRANULE_DELEGATE,	1, 0, smc_granule_delegate,	 false, true),
 	HANDLER(GRANULE_UNDELEGATE,	1, 0, smc_granule_undelegate,	 false, true),
-	HANDLER(REALM_CREATE,		2, 0, smc_realm_create,		 true,  true),
-	HANDLER(REALM_DESTROY,		1, 0, smc_realm_destroy,	 true,  true),
-	HANDLER(REALM_ACTIVATE,		1, 0, smc_realm_activate,	 true,  true),
-	HANDLER(REC_CREATE,		3, 0, smc_rec_create,		 true,  true),
-	HANDLER(REC_DESTROY,		1, 0, smc_rec_destroy,		 true,  true),
-	HANDLER(REC_ENTER,		2, 0, smc_rec_enter,		 false, true),
 	HANDLER(DATA_CREATE,		5, 0, smc_data_create,		 false, false),
 	HANDLER(DATA_CREATE_UNKNOWN,	3, 0, smc_data_create_unknown,	 false, false),
 	HANDLER(DATA_DESTROY,		2, 2, smc_data_destroy,		 false, true),
+	HANDLER(PDEV_AUX_COUNT,		0, 0, NULL,			 true, true),
+	HANDLER(REALM_ACTIVATE,		1, 0, smc_realm_activate,	 true,  true),
+	HANDLER(REALM_CREATE,		2, 0, smc_realm_create,		 true,  true),
+	HANDLER(REALM_DESTROY,		1, 0, smc_realm_destroy,	 true,  true),
+	HANDLER(REC_CREATE,		3, 0, smc_rec_create,		 true,  true),
+	HANDLER(REC_DESTROY,		1, 0, smc_rec_destroy,		 true,  true),
+	HANDLER(REC_ENTER,		2, 0, smc_rec_enter,		 false, true),
 	HANDLER(RTT_CREATE,		4, 0, smc_rtt_create,		 false, true),
 	HANDLER(RTT_DESTROY,		3, 2, smc_rtt_destroy,		 false, true),
-	HANDLER(RTT_FOLD,		3, 1, smc_rtt_fold,		 false, false),
 	HANDLER(RTT_MAP_UNPROTECTED,	4, 0, smc_rtt_map_unprotected,	 false, false),
-	HANDLER(RTT_UNMAP_UNPROTECTED,	3, 1, smc_rtt_unmap_unprotected, false, false),
+	HANDLER(VDEV_AUX_COUNT,		0, 0, NULL,			 true, true),
 	HANDLER(RTT_READ_ENTRY,		3, 4, smc_rtt_read_entry,	 false, true),
+	HANDLER(RTT_UNMAP_UNPROTECTED,	3, 1, smc_rtt_unmap_unprotected, false, false),
 	HANDLER(PSCI_COMPLETE,		3, 0, smc_psci_complete,	 true,  true),
+	HANDLER(FEATURES,		1, 1, smc_read_feature_register, true,  true),
+	HANDLER(RTT_FOLD,		3, 1, smc_rtt_fold,		 false, false),
 	HANDLER(REC_AUX_COUNT,		1, 1, smc_rec_aux_count,	 true,  true),
 	HANDLER(RTT_INIT_RIPAS,		3, 1, smc_rtt_init_ripas,	 false, true),
-	HANDLER(RTT_SET_RIPAS,		4, 1, smc_rtt_set_ripas,	 false, true)
+	HANDLER(RTT_SET_RIPAS,		4, 1, smc_rtt_set_ripas,	 false, true),
+	HANDLER(GRANULE_DEV_DELEGATE,	0, 0, NULL,			 true, true),
+	HANDLER(GRANULE_DEV_UNDELEGATE,	0, 0, NULL,			 true, true),
+	HANDLER(DEV_MAP,		0, 0, NULL,			 true, true),
+	HANDLER(DEV_UNMAP,		0, 0, NULL,			 true, true),
+	HANDLER(PDEV_ABORT,		0, 0, NULL,			 true, true),
+	HANDLER(PDEV_COMMUNICATE,	2, 0, NULL,			 true, true),
+	HANDLER(PDEV_CREATE,		2, 0, NULL,			 true, true),
+	HANDLER(PDEV_DESTROY,		0, 0, NULL,			 true, true),
+	HANDLER(PDEV_GET_STATE,		1, 1, NULL,			 true, true),
+	HANDLER(PDEV_IDE_RESET,		0, 0, NULL,			 true, true),
+	HANDLER(PDEV_NOTIFY,		0, 0, NULL,			 true, true),
+	HANDLER(PDEV_SET_PUBKEY,	4, 0, NULL,			 true, true),
+	HANDLER(PDEV_STOP,		0, 0, NULL,			 true, true),
+	HANDLER(RTT_AUX_CREATE,		0, 0, NULL,			 true, true),
+	HANDLER(RTT_AUX_DESTROY,	0, 0, NULL,			 true, true),
+	HANDLER(RTT_AUX_FOLD,		0, 0, NULL,			 true, true),
+	HANDLER(RTT_AUX_MAP_PROTECTED,	0, 0, NULL,			 true, true),
+	HANDLER(RTT_AUX_MAP_UNPROTECTED, 0, 0, NULL,			 true, true),
+	HANDLER(RTT_AUX_UNMAP_PROTECTED, 0, 0, NULL,			 true, true),
+	HANDLER(RTT_AUX_UNMAP_UNPROTECTED, 0, 0, NULL,			 true, true),
+	HANDLER(VDEV_ABORT,		0, 0, NULL,			 true, true),
+	HANDLER(VDEV_COMMUNICATE,	0, 0, NULL,			 true, true),
+	HANDLER(VDEV_CREATE,		0, 0, NULL,			 true, true),
+	HANDLER(VDEV_DESTROY,		0, 0, NULL,			 true, true),
+	HANDLER(VDEV_GET_STATE,		0, 0, NULL,			 true, true),
+	HANDLER(VDEV_STOP,		0, 0, NULL,			 true, true),
+	HANDLER(RTT_SET_S2AP,		0, 0, NULL,			 true, true),
+	HANDLER(MEC_SET_SHARED,		0, 0, NULL,			 true, true),
+	HANDLER(MEC_SET_PRIVATE,	0, 0, NULL,			 true, true),
+	HANDLER(VDEV_COMPLETE,		0, 0, NULL,			 true, true)
 };
 
 COMPILER_ASSERT(ARRAY_SIZE(smc_handlers) == SMC64_NUM_FIDS_IN_RANGE(RMI));
@@ -200,7 +235,7 @@
 		}
 
 		/* Print status */
-		if (rc.status >= RMI_ERROR_COUNT) {
+		if (rc.status >= RMI_ERROR_COUNT_MAX) {
 			INFO(" > %lx", res->x[0]);
 		} else {
 			INFO(" > RMI_%s", rmi_status_string[rc.status]);