fix(qemu): remove validate_ns_entrypoint

QEMU has dynamic memory configuration based on -m parameter. The
hard-coded values in TF-A are not accurate when starting the model with
this parameter. This is not a problem when loading boot images as the
lower addresses are the same. However, it can be a problem when starting
up the secondary CPUs with a rather high non-secure entry point. So fix
this by removing the plat_psci_ops_t validate_ns_entrypoint assignment
to allow any non-secure entry point.

Change-Id: I95e92b71e0f4fa5f94444ea0cd2cb42e56faa472
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
This commit is contained in:
Jens Wiklander 2024-05-29 16:30:53 +02:00
parent 278b0885eb
commit e5362e29d5

View file

@ -101,22 +101,6 @@ static int qemu_validate_power_state(unsigned int power_state,
return PSCI_E_SUCCESS;
}
/*******************************************************************************
* Platform handler called to check the validity of the non secure
* entrypoint.
******************************************************************************/
static int qemu_validate_ns_entrypoint(uintptr_t entrypoint)
{
/*
* Check if the non secure entrypoint lies within the non
* secure DRAM.
*/
if ((entrypoint >= NS_DRAM0_BASE) &&
(entrypoint < (NS_DRAM0_BASE + NS_DRAM0_SIZE)))
return PSCI_E_SUCCESS;
return PSCI_E_INVALID_ADDRESS;
}
/*******************************************************************************
* Platform handler called when a CPU is about to enter standby.
******************************************************************************/
@ -241,7 +225,6 @@ static const plat_psci_ops_t plat_qemu_psci_pm_ops = {
.system_off = qemu_system_off,
.system_reset = qemu_system_reset,
.validate_power_state = qemu_validate_power_state,
.validate_ns_entrypoint = qemu_validate_ns_entrypoint
};
int plat_setup_psci_ops(uintptr_t sec_entrypoint,