mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 17:44:19 +00:00
feat(ethos-n): add check for NPU in SiP setup
The SiP service in the Arm(R) Ethos(TM)-N NPU driver requires that there is at least one NPU available. If there is no NPU available, the driver is either used incorrectly or the HW config is incorrect. To ensure that the SiP service is not incorrectly used, a setup handler has been added to the service that will validate that there is at least one NPU available. Signed-off-by: Mikael Olsson <mikael.olsson@arm.com> Change-Id: I8139a652f265cfc0db4a37464f39f1fb92868e10
This commit is contained in:
parent
33bcaed121
commit
a2cdbb1df0
3 changed files with 21 additions and 1 deletions
|
@ -286,3 +286,13 @@ uintptr_t ethosn_smc_handler(uint32_t smc_fid,
|
|||
SMC_RET1(handle, SMC_UNK);
|
||||
}
|
||||
}
|
||||
|
||||
int ethosn_smc_setup(void)
|
||||
{
|
||||
if (ETHOSN_NUM_DEVICES == 0U) {
|
||||
ERROR("ETHOSN: No NPU found\n");
|
||||
return ETHOSN_FAILURE;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -58,6 +58,8 @@
|
|||
#define ETHOSN_RESET_TYPE_FULL U(0)
|
||||
#define ETHOSN_RESET_TYPE_HALT U(1)
|
||||
|
||||
int ethosn_smc_setup(void);
|
||||
|
||||
uintptr_t ethosn_smc_handler(uint32_t smc_fid,
|
||||
u_register_t core_addr,
|
||||
u_register_t asset_alloc_idx,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2019,2021, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2016-2023, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -34,6 +34,14 @@ static int arm_sip_setup(void)
|
|||
|
||||
#endif /* USE_DEBUGFS */
|
||||
|
||||
#if ARM_ETHOSN_NPU_DRIVER
|
||||
|
||||
if (ethosn_smc_setup() != 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
#endif /* ARM_ETHOSN_NPU_DRIVER */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue