diff --git a/plat/xilinx/versal_net/include/platform_def.h b/plat/xilinx/versal_net/include/platform_def.h index a7ff84ea5..ae4945060 100644 --- a/plat/xilinx/versal_net/include/platform_def.h +++ b/plat/xilinx/versal_net/include/platform_def.h @@ -72,6 +72,12 @@ # define PLAT_ARM_NS_IMAGE_BASE U(PRELOADED_BL33_BASE) #endif +/******************************************************************************* + * HIGH and LOW DDR MAX definitions + ******************************************************************************/ +#define PLAT_DDR_LOWMEM_MAX U(0x80000000) +#define PLAT_DDR_HIGHMEM_MAX U(0x100000000) + /******************************************************************************* * TSP specific defines. ******************************************************************************/ @@ -84,7 +90,6 @@ /******************************************************************************* * Platform specific page table and MMU setup constants ******************************************************************************/ -#define PLAT_DDR_LOWMEM_MAX U(0x80000000) #define PLAT_PHY_ADDR_SPACE_SIZE (1ULL << 32U) #define PLAT_VIRT_ADDR_SPACE_SIZE (1ULL << 32U) diff --git a/plat/xilinx/versal_net/plat_psci_pm.c b/plat/xilinx/versal_net/plat_psci_pm.c index a76832ee5..eb926eec6 100644 --- a/plat/xilinx/versal_net/plat_psci_pm.c +++ b/plat/xilinx/versal_net/plat_psci_pm.c @@ -103,6 +103,18 @@ exit_label: return; } +static int32_t versal_net_validate_ns_entrypoint(uint64_t ns_entrypoint) +{ + int32_t ret = PSCI_E_SUCCESS; + + if (((ns_entrypoint >= PLAT_DDR_LOWMEM_MAX) && (ns_entrypoint <= PLAT_DDR_HIGHMEM_MAX)) || + ((ns_entrypoint >= BL31_BASE) && (ns_entrypoint <= BL31_LIMIT))) { + ret = PSCI_E_INVALID_ADDRESS; + } + + return ret; +} + /** * versal_net_system_reset() - This function sends the reset request to firmware * for the system to reset. This function does not @@ -303,6 +315,7 @@ static const struct plat_psci_ops versal_net_nopmc_psci_ops = { .pwr_domain_suspend_finish = versal_net_pwr_domain_suspend_finish, .system_off = versal_net_system_off, .system_reset = versal_net_system_reset, + .validate_ns_entrypoint = versal_net_validate_ns_entrypoint, .validate_power_state = versal_net_validate_power_state, .get_sys_suspend_power_state = versal_net_get_sys_suspend_power_state, };