mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 10:04:26 +00:00
feat(versal): add support to reset SGI
Add "reset" parameter in pm_register_sgi() to reset SGI number. This will be required if OS wants to reset SGI number to default state. Caller can reset param to 1 to reset SGI in ATF. Change-Id: If485ff275df884f74eb67671cac7fa953458afe9 Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com> Signed-off-by: Tanmay Shah <tanmay.shah@xilinx.com>
This commit is contained in:
parent
15e498de74
commit
bf70449ba2
3 changed files with 12 additions and 5 deletions
|
@ -496,7 +496,8 @@ enum pm_ret_status pm_api_ioctl(uint32_t device_id, uint32_t ioctl_id,
|
|||
break;
|
||||
case IOCTL_SET_SGI:
|
||||
/* Get the sgi number */
|
||||
if (pm_register_sgi(arg1) != 0) {
|
||||
ret = pm_register_sgi(arg1, arg2);
|
||||
if (ret != 0) {
|
||||
return PM_RET_ERROR_ARGS;
|
||||
}
|
||||
gicd_write_irouter(gicv3_driver_data->gicd_base,
|
||||
|
|
|
@ -51,6 +51,7 @@ static uint64_t ipi_fiq_handler(uint32_t id, uint32_t flags, void *handle,
|
|||
* pm_register_sgi() - PM register the IPI interrupt
|
||||
*
|
||||
* @sgi - SGI number to be used for communication.
|
||||
* @reset - Reset to invalid SGI when reset=1.
|
||||
* @return On success, the initialization function must return 0.
|
||||
* Any other return value will cause the framework to ignore
|
||||
* the service
|
||||
|
@ -58,9 +59,14 @@ static uint64_t ipi_fiq_handler(uint32_t id, uint32_t flags, void *handle,
|
|||
* Update the SGI number to be used.
|
||||
*
|
||||
*/
|
||||
int pm_register_sgi(unsigned int sgi_num)
|
||||
int pm_register_sgi(unsigned int sgi_num, unsigned int reset)
|
||||
{
|
||||
if ((unsigned int)sgi != (unsigned int)INVALID_SGI) {
|
||||
if (reset == 1U) {
|
||||
sgi = INVALID_SGI;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (sgi != INVALID_SGI) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2019, Xilinx, Inc. All rights reserved.
|
||||
* Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -14,5 +14,5 @@ uint64_t pm_smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2, uint64_t x3,
|
|||
uint64_t x4, void *cookie, void *handle,
|
||||
uint64_t flags);
|
||||
|
||||
int pm_register_sgi(unsigned int sgi_num);
|
||||
int pm_register_sgi(unsigned int sgi_num, unsigned int reset);
|
||||
#endif /* PM_SVC_MAIN_H */
|
||||
|
|
Loading…
Add table
Reference in a new issue