feat(versal): add SMCCC call TF_A_PM_REGISTER_SGI

This call is used to register and reset SGI interrupt.
Before this functionality was performed using IOCTL_REGISTER_SGI
pm_ioctl EEMI call. It's not correct use of PM_IOCTL as it is
not EEMI functionality. Instead this new SMCCC call will be
handled by TF-A specific handler.

Change-Id: If2408af38b889d29a5c584e8eec5f1672eab4fb5
Signed-off-by: Tanmay Shah <tanmay.shah@xilinx.com>
This commit is contained in:
Tanmay Shah 2021-12-14 04:53:40 -08:00 committed by Tanmay
parent bf70449ba2
commit fcf6f46931
2 changed files with 13 additions and 0 deletions

View File

@ -35,6 +35,7 @@
#define PM_GET_CALLBACK_DATA 0xa01U
#define PM_GET_TRUSTZONE_VERSION 0xa03U
#define TF_A_PM_REGISTER_SGI 0xa04U
/* PM API Versions */
#define PM_API_BASE_VERSION 1U

View File

@ -237,6 +237,18 @@ static uintptr_t TF_A_specific_handler(uint32_t api_id, uint32_t *pm_arg,
{
switch (api_id) {
case TF_A_PM_REGISTER_SGI:
{
int ret;
ret = pm_register_sgi(pm_arg[0], pm_arg[1]);
if (ret != 0) {
SMC_RET1(handle, (uint32_t)PM_RET_ERROR_ARGS);
}
SMC_RET1(handle, (uint32_t)PM_RET_SUCCESS);
}
case PM_GET_CALLBACK_DATA:
{
uint32_t result[4] = {0};