mirror of
https://github.com/CTCaer/switch-l4t-atf.git
synced 2024-12-13 21:58:51 +00:00
ARM platforms: Make arm_validate_ns_entrypoint() common
The function arm_validate_ns_entrypoint() validates a given non-secure physical address. This function however specifically returns PSCI error codes. Non-secure physical address validation is potentially useful across ARM platforms, even for non-PSCI use cases. Therefore make this function common by returning 0 for success or -1 otherwise. Having made the function common, make arm_validate_psci_entrypoint() a wrapper around arm_validate_ns_entrypoint() which only translates return value into PSCI error codes. This wrapper is now used where arm_validate_ns_entrypoint() was currently used for PSCI entry point validation. Change-Id: Ic781fc3105d6d199fd8f53f01aba5baea0ebc310 Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
This commit is contained in:
parent
b7cb133e5c
commit
71e7a4e568
@ -119,6 +119,7 @@ void arm_configure_sys_timer(void);
|
||||
/* PM utility functions */
|
||||
int arm_validate_power_state(unsigned int power_state,
|
||||
psci_power_state_t *req_state);
|
||||
int arm_validate_psci_entrypoint(uintptr_t entrypoint);
|
||||
int arm_validate_ns_entrypoint(uintptr_t entrypoint);
|
||||
void arm_system_pwr_domain_save(void);
|
||||
void arm_system_pwr_domain_resume(void);
|
||||
|
@ -398,7 +398,7 @@ plat_psci_ops_t plat_arm_psci_pm_ops = {
|
||||
.system_off = fvp_system_off,
|
||||
.system_reset = fvp_system_reset,
|
||||
.validate_power_state = fvp_validate_power_state,
|
||||
.validate_ns_entrypoint = arm_validate_ns_entrypoint,
|
||||
.validate_ns_entrypoint = arm_validate_psci_entrypoint,
|
||||
.translate_power_state_by_mpidr = fvp_translate_power_state_by_mpidr,
|
||||
.get_node_hw_state = fvp_node_hw_state,
|
||||
.get_sys_suspend_power_state = fvp_get_sys_suspend_power_state,
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
@ -112,7 +112,7 @@ int arm_validate_power_state(unsigned int power_state,
|
||||
|
||||
/*******************************************************************************
|
||||
* ARM standard platform handler called to check the validity of the non secure
|
||||
* entrypoint.
|
||||
* entrypoint. Returns 0 if the entrypoint is valid, or -1 otherwise.
|
||||
******************************************************************************/
|
||||
int arm_validate_ns_entrypoint(uintptr_t entrypoint)
|
||||
{
|
||||
@ -121,15 +121,23 @@ int arm_validate_ns_entrypoint(uintptr_t entrypoint)
|
||||
* secure DRAM.
|
||||
*/
|
||||
if ((entrypoint >= ARM_NS_DRAM1_BASE) && (entrypoint <
|
||||
(ARM_NS_DRAM1_BASE + ARM_NS_DRAM1_SIZE)))
|
||||
return PSCI_E_SUCCESS;
|
||||
(ARM_NS_DRAM1_BASE + ARM_NS_DRAM1_SIZE))) {
|
||||
return 0;
|
||||
}
|
||||
#ifndef AARCH32
|
||||
if ((entrypoint >= ARM_DRAM2_BASE) && (entrypoint <
|
||||
(ARM_DRAM2_BASE + ARM_DRAM2_SIZE)))
|
||||
return PSCI_E_SUCCESS;
|
||||
(ARM_DRAM2_BASE + ARM_DRAM2_SIZE))) {
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
return PSCI_E_INVALID_ADDRESS;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int arm_validate_psci_entrypoint(uintptr_t entrypoint)
|
||||
{
|
||||
return arm_validate_ns_entrypoint(entrypoint) == 0 ? PSCI_E_SUCCESS :
|
||||
PSCI_E_INVALID_ADDRESS;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -299,7 +299,7 @@ plat_psci_ops_t plat_arm_psci_pm_ops = {
|
||||
.system_off = css_system_off,
|
||||
.system_reset = css_system_reset,
|
||||
.validate_power_state = css_validate_power_state,
|
||||
.validate_ns_entrypoint = arm_validate_ns_entrypoint,
|
||||
.validate_ns_entrypoint = arm_validate_psci_entrypoint,
|
||||
.translate_power_state_by_mpidr = css_translate_power_state_by_mpidr,
|
||||
.get_node_hw_state = css_node_hw_state,
|
||||
.get_sys_suspend_power_state = css_get_sys_suspend_power_state,
|
||||
|
Loading…
Reference in New Issue
Block a user