From e1c732d46fa91231b39209621ead1e5a5fb2c497 Mon Sep 17 00:00:00 2001 From: J-Alves Date: Thu, 11 Mar 2021 17:46:47 +0000 Subject: [PATCH] feat(ff-a): update FF-A version to v1.1 Bump the required FF-A version in framework and manifests to v1.1 as upstream feature development goes. Signed-off-by: Olivier Deprez Change-Id: I89b2bd3828a13fc4344ccd53bc3ac9c0c22ab29f --- include/services/ffa_svc.h | 68 +++++++++++-------- .../common/fdts/diphda_spmc_manifest.dts | 2 +- plat/arm/board/fvp/fdts/fvp_spmc_manifest.dts | 2 +- .../fvp/fdts/fvp_spmc_optee_sp_manifest.dts | 2 +- plat/arm/board/tc0/fdts/tc0_spmc_manifest.dts | 2 +- .../tc0/fdts/tc0_spmc_optee_sp_manifest.dts | 4 +- 6 files changed, 46 insertions(+), 34 deletions(-) diff --git a/include/services/ffa_svc.h b/include/services/ffa_svc.h index 5b39c4265..ab36d9e1f 100644 --- a/include/services/ffa_svc.h +++ b/include/services/ffa_svc.h @@ -22,7 +22,7 @@ /* The macros below are used to identify FFA calls from the SMC function ID */ #define FFA_FNUM_MIN_VALUE U(0x60) -#define FFA_FNUM_MAX_VALUE U(0x85) +#define FFA_FNUM_MAX_VALUE U(0x87) #define is_ffa_fid(fid) __extension__ ({ \ __typeof__(fid) _fid = (fid); \ ((GET_SMC_NUM(_fid) >= FFA_FNUM_MIN_VALUE) && \ @@ -32,7 +32,7 @@ #define FFA_VERSION_MAJOR U(1) #define FFA_VERSION_MAJOR_SHIFT 16 #define FFA_VERSION_MAJOR_MASK U(0x7FFF) -#define FFA_VERSION_MINOR U(0) +#define FFA_VERSION_MINOR U(1) #define FFA_VERSION_MINOR_SHIFT 0 #define FFA_VERSION_MINOR_MASK U(0xFFFF) #define FFA_VERSION_BIT31_MASK U(0x1u << 31) @@ -61,32 +61,44 @@ ((func_num) << FUNCID_NUM_SHIFT)) /* FFA function numbers */ -#define FFA_FNUM_ERROR U(0x60) -#define FFA_FNUM_SUCCESS U(0x61) -#define FFA_FNUM_INTERRUPT U(0x62) -#define FFA_FNUM_VERSION U(0x63) -#define FFA_FNUM_FEATURES U(0x64) -#define FFA_FNUM_RX_RELEASE U(0x65) -#define FFA_FNUM_RXTX_MAP U(0x66) -#define FFA_FNUM_RXTX_UNMAP U(0x67) -#define FFA_FNUM_PARTITION_INFO_GET U(0x68) -#define FFA_FNUM_ID_GET U(0x69) -#define FFA_FNUM_MSG_POLL U(0x6A) -#define FFA_FNUM_MSG_WAIT U(0x6B) -#define FFA_FNUM_MSG_YIELD U(0x6C) -#define FFA_FNUM_MSG_RUN U(0x6D) -#define FFA_FNUM_MSG_SEND U(0x6E) -#define FFA_FNUM_MSG_SEND_DIRECT_REQ U(0x6F) -#define FFA_FNUM_MSG_SEND_DIRECT_RESP U(0x70) -#define FFA_FNUM_MEM_DONATE U(0x71) -#define FFA_FNUM_MEM_LEND U(0x72) -#define FFA_FNUM_MEM_SHARE U(0x73) -#define FFA_FNUM_MEM_RETRIEVE_REQ U(0x74) -#define FFA_FNUM_MEM_RETRIEVE_RESP U(0x75) -#define FFA_FNUM_MEM_RELINQUISH U(0x76) -#define FFA_FNUM_MEM_RECLAIM U(0x77) -#define FFA_FNUM_SECONDARY_EP_REGISTER U(0x84) -#define FFA_FNUM_SPM_ID_GET U(0x85) +#define FFA_FNUM_ERROR U(0x60) +#define FFA_FNUM_SUCCESS U(0x61) +#define FFA_FNUM_INTERRUPT U(0x62) +#define FFA_FNUM_VERSION U(0x63) +#define FFA_FNUM_FEATURES U(0x64) +#define FFA_FNUM_RX_RELEASE U(0x65) +#define FFA_FNUM_RXTX_MAP U(0x66) +#define FFA_FNUM_RXTX_UNMAP U(0x67) +#define FFA_FNUM_PARTITION_INFO_GET U(0x68) +#define FFA_FNUM_ID_GET U(0x69) +#define FFA_FNUM_MSG_POLL U(0x6A) /* Legacy FF-A v1.0 */ +#define FFA_FNUM_MSG_WAIT U(0x6B) +#define FFA_FNUM_MSG_YIELD U(0x6C) +#define FFA_FNUM_MSG_RUN U(0x6D) +#define FFA_FNUM_MSG_SEND U(0x6E) /* Legacy FF-A v1.0 */ +#define FFA_FNUM_MSG_SEND_DIRECT_REQ U(0x6F) +#define FFA_FNUM_MSG_SEND_DIRECT_RESP U(0x70) +#define FFA_FNUM_MEM_DONATE U(0x71) +#define FFA_FNUM_MEM_LEND U(0x72) +#define FFA_FNUM_MEM_SHARE U(0x73) +#define FFA_FNUM_MEM_RETRIEVE_REQ U(0x74) +#define FFA_FNUM_MEM_RETRIEVE_RESP U(0x75) +#define FFA_FNUM_MEM_RELINQUISH U(0x76) +#define FFA_FNUM_MEM_RECLAIM U(0x77) +#define FFA_FNUM_NORMAL_WORLD_RESUME U(0x7C) + +/* FF-A v1.1 */ +#define FFA_FNUM_NOTIFICATION_BITMAP_CREATE U(0x7D) +#define FFA_FNUM_NOTIFICATION_BITMAP_DESTROY U(0x7E) +#define FFA_FNUM_NOTIFICATION_BIND U(0x7F) +#define FFA_FNUM_NOTIFICATION_UNBIND U(0x80) +#define FFA_FNUM_NOTIFICATION_SET U(0x81) +#define FFA_FNUM_NOTIFICATION_GET U(0x82) +#define FFA_FNUM_NOTIFICATION_INFO_GET U(0x83) +#define FFA_FNUM_RX_ACQUIRE U(0x84) +#define FFA_FNUM_SPM_ID_GET U(0x85) +#define FFA_FNUM_MSG_SEND2 U(0x86) +#define FFA_FNUM_SECONDARY_EP_REGISTER U(0x87) /* FFA SMC32 FIDs */ #define FFA_ERROR FFA_FID(SMC_32, FFA_FNUM_ERROR) diff --git a/plat/arm/board/diphda/common/fdts/diphda_spmc_manifest.dts b/plat/arm/board/diphda/common/fdts/diphda_spmc_manifest.dts index def04cde1..536bdc39b 100644 --- a/plat/arm/board/diphda/common/fdts/diphda_spmc_manifest.dts +++ b/plat/arm/board/diphda/common/fdts/diphda_spmc_manifest.dts @@ -20,7 +20,7 @@ attribute { spmc_id = <0x8000>; maj_ver = <0x1>; - min_ver = <0x0>; + min_ver = <0x1>; exec_state = <0x0>; load_address = <0x0 0x2002000>; entrypoint = <0x0 0x2002000>; diff --git a/plat/arm/board/fvp/fdts/fvp_spmc_manifest.dts b/plat/arm/board/fvp/fdts/fvp_spmc_manifest.dts index 67e550492..21a6073a3 100644 --- a/plat/arm/board/fvp/fdts/fvp_spmc_manifest.dts +++ b/plat/arm/board/fvp/fdts/fvp_spmc_manifest.dts @@ -20,7 +20,7 @@ attribute { spmc_id = <0x8000>; maj_ver = <0x1>; - min_ver = <0x0>; + min_ver = <0x1>; exec_state = <0x0>; load_address = <0x0 0x6000000>; entrypoint = <0x0 0x6000000>; diff --git a/plat/arm/board/fvp/fdts/fvp_spmc_optee_sp_manifest.dts b/plat/arm/board/fvp/fdts/fvp_spmc_optee_sp_manifest.dts index 088179b61..041dade73 100644 --- a/plat/arm/board/fvp/fdts/fvp_spmc_optee_sp_manifest.dts +++ b/plat/arm/board/fvp/fdts/fvp_spmc_optee_sp_manifest.dts @@ -20,7 +20,7 @@ attribute { spmc_id = <0x8000>; maj_ver = <0x1>; - min_ver = <0x0>; + min_ver = <0x1>; exec_state = <0x0>; load_address = <0x0 0x6000000>; entrypoint = <0x0 0x6000000>; diff --git a/plat/arm/board/tc0/fdts/tc0_spmc_manifest.dts b/plat/arm/board/tc0/fdts/tc0_spmc_manifest.dts index 44c7008a8..7fb1657b1 100644 --- a/plat/arm/board/tc0/fdts/tc0_spmc_manifest.dts +++ b/plat/arm/board/tc0/fdts/tc0_spmc_manifest.dts @@ -13,7 +13,7 @@ attribute { spmc_id = <0x8000>; maj_ver = <0x1>; - min_ver = <0x0>; + min_ver = <0x1>; exec_state = <0x0>; load_address = <0x0 0xfd000000>; entrypoint = <0x0 0xfd000000>; diff --git a/plat/arm/board/tc0/fdts/tc0_spmc_optee_sp_manifest.dts b/plat/arm/board/tc0/fdts/tc0_spmc_optee_sp_manifest.dts index 0830d5cee..8714d4459 100644 --- a/plat/arm/board/tc0/fdts/tc0_spmc_optee_sp_manifest.dts +++ b/plat/arm/board/tc0/fdts/tc0_spmc_optee_sp_manifest.dts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Arm Limited. All rights reserved. + * Copyright (c) 2020-2021, Arm Limited. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -13,7 +13,7 @@ attribute { spmc_id = <0x8000>; maj_ver = <0x1>; - min_ver = <0x0>; + min_ver = <0x1>; exec_state = <0x0>; load_address = <0x0 0xfd000000>; entrypoint = <0x0 0xfd000000>;