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:
parent
bf70449ba2
commit
fcf6f46931
|
@ -35,6 +35,7 @@
|
||||||
|
|
||||||
#define PM_GET_CALLBACK_DATA 0xa01U
|
#define PM_GET_CALLBACK_DATA 0xa01U
|
||||||
#define PM_GET_TRUSTZONE_VERSION 0xa03U
|
#define PM_GET_TRUSTZONE_VERSION 0xa03U
|
||||||
|
#define TF_A_PM_REGISTER_SGI 0xa04U
|
||||||
|
|
||||||
/* PM API Versions */
|
/* PM API Versions */
|
||||||
#define PM_API_BASE_VERSION 1U
|
#define PM_API_BASE_VERSION 1U
|
||||||
|
|
|
@ -237,6 +237,18 @@ static uintptr_t TF_A_specific_handler(uint32_t api_id, uint32_t *pm_arg,
|
||||||
{
|
{
|
||||||
switch (api_id) {
|
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:
|
case PM_GET_CALLBACK_DATA:
|
||||||
{
|
{
|
||||||
uint32_t result[4] = {0};
|
uint32_t result[4] = {0};
|
||||||
|
|
Loading…
Reference in New Issue