From 7bc05f52ddf7ebef9dda595117893b4267a2f84e Mon Sep 17 00:00:00 2001 From: Mihir Joshi Date: Mon, 22 Jan 2018 14:02:16 -0800 Subject: tlkd: support new TLK SMCs This patch adds support to handle following TLK SMCs: {TLK_SS_REGISTER_HANDLER, TLK_REGISTER_NS_DRAM_RANGES, TLK_SET_ROOT_OF_TRUST} These SMCs need to be supported in ATF in order to forward them to TLK. Otherwise, these functionalities won't work. Brief: TLK_SS_REGISTER_HANDLER: This SMC is issued by TLK Linux Driver to set up secure storage buffers. TLK_REGISTER_NS_DRAM_RANGES: Cboot performs this SMC during boot to pass NS memory ranges to TLK. TLK_SET_ROOT_OF_TRUST: Cboot performs this SMC during boot to pass Verified Boot parameters to TLK. Change-Id: I18af35f6dd6f510dfc22c1d1d1d07f643c7b82bc Reviewed-on: https://git-master.nvidia.com/r/1643851 Signed-off-by: Mihir Joshi --- services/spd/tlkd/tlkd_main.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'services') diff --git a/services/spd/tlkd/tlkd_main.c b/services/spd/tlkd/tlkd_main.c index b1a04776..f6f2af52 100644 --- a/services/spd/tlkd/tlkd_main.c +++ b/services/spd/tlkd/tlkd_main.c @@ -195,14 +195,18 @@ static uintptr_t tlkd_smc_handler(uint32_t smc_fid, * b. register shared memory with the SP for passing args * required for maintaining sessions with the Trusted * Applications. - * c. register non-secure world's memory map with the OS - * d. open/close sessions - * e. issue commands to the Trusted Apps - * f. resume the preempted yielding SMC call. + * c. register shared persistent buffers for secure storage + * d. register NS DRAM ranges passed by Cboot + * e. register Root of Trust parameters from Cboot for Verified Boot + * f. open/close sessions + * g. issue commands to the Trusted Apps + * h. resume the preempted yielding SMC call. */ case TLK_REGISTER_LOGBUF: case TLK_REGISTER_REQBUF: - case TLK_REGISTER_NS_DRAM: + case TLK_SS_REGISTER_HANDLER: + case TLK_REGISTER_NS_DRAM_RANGES: + case TLK_SET_ROOT_OF_TRUST: case TLK_OPEN_TA_SESSION: case TLK_CLOSE_TA_SESSION: case TLK_TA_LAUNCH_OP: @@ -400,6 +404,7 @@ static uintptr_t tlkd_smc_handler(uint32_t smc_fid, SMC_RET2(handle, TLK_VERSION_MAJOR, TLK_VERSION_MINOR); default: + WARN("%s: Unhandled SMC: 0x%x\n", __func__, smc_fid); break; } -- cgit v1.2.3