mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-25 06:19:56 +00:00
Merge pull request #438 from soby-mathew/sm/error_deprecate
Replace build macro WARN_DEPRECATED with ERROR_DEPRECATED
This commit is contained in:
commit
5b33041c89
5 changed files with 40 additions and 31 deletions
13
Makefile
13
Makefile
|
@ -87,8 +87,8 @@ TRUSTED_BOARD_BOOT := 0
|
||||||
# By default, consider that the platform's reset address is not programmable.
|
# By default, consider that the platform's reset address is not programmable.
|
||||||
# The platform Makefile is free to override this value.
|
# The platform Makefile is free to override this value.
|
||||||
PROGRAMMABLE_RESET_ADDRESS := 0
|
PROGRAMMABLE_RESET_ADDRESS := 0
|
||||||
# Build flag to warn about usage of deprecated platform and framework APIs
|
# Build flag to treat usage of deprecated platform and framework APIs as error.
|
||||||
WARN_DEPRECATED := 0
|
ERROR_DEPRECATED := 0
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -346,7 +346,7 @@ $(eval $(call assert_boolean,SAVE_KEYS))
|
||||||
$(eval $(call assert_boolean,TRUSTED_BOARD_BOOT))
|
$(eval $(call assert_boolean,TRUSTED_BOARD_BOOT))
|
||||||
$(eval $(call assert_boolean,PROGRAMMABLE_RESET_ADDRESS))
|
$(eval $(call assert_boolean,PROGRAMMABLE_RESET_ADDRESS))
|
||||||
$(eval $(call assert_boolean,PSCI_EXTENDED_STATE_ID))
|
$(eval $(call assert_boolean,PSCI_EXTENDED_STATE_ID))
|
||||||
$(eval $(call assert_boolean,WARN_DEPRECATED))
|
$(eval $(call assert_boolean,ERROR_DEPRECATED))
|
||||||
$(eval $(call assert_boolean,ENABLE_PLAT_COMPAT))
|
$(eval $(call assert_boolean,ENABLE_PLAT_COMPAT))
|
||||||
|
|
||||||
|
|
||||||
|
@ -368,7 +368,7 @@ $(eval $(call add_define,USE_COHERENT_MEM))
|
||||||
$(eval $(call add_define,TRUSTED_BOARD_BOOT))
|
$(eval $(call add_define,TRUSTED_BOARD_BOOT))
|
||||||
$(eval $(call add_define,PROGRAMMABLE_RESET_ADDRESS))
|
$(eval $(call add_define,PROGRAMMABLE_RESET_ADDRESS))
|
||||||
$(eval $(call add_define,PSCI_EXTENDED_STATE_ID))
|
$(eval $(call add_define,PSCI_EXTENDED_STATE_ID))
|
||||||
$(eval $(call add_define,WARN_DEPRECATED))
|
$(eval $(call add_define,ERROR_DEPRECATED))
|
||||||
$(eval $(call add_define,ENABLE_PLAT_COMPAT))
|
$(eval $(call add_define,ENABLE_PLAT_COMPAT))
|
||||||
|
|
||||||
|
|
||||||
|
@ -404,6 +404,11 @@ all: msg_start
|
||||||
msg_start:
|
msg_start:
|
||||||
@echo "Building ${PLAT}"
|
@echo "Building ${PLAT}"
|
||||||
|
|
||||||
|
# Check if deprecated declarations should be treated as error or not.
|
||||||
|
ifeq (${ERROR_DEPRECATED},0)
|
||||||
|
CFLAGS += -Wno-error=deprecated-declarations
|
||||||
|
endif
|
||||||
|
|
||||||
# Expand build macros for the different images
|
# Expand build macros for the different images
|
||||||
ifeq (${NEED_BL1},yes)
|
ifeq (${NEED_BL1},yes)
|
||||||
$(eval $(call MAKE_BL,1))
|
$(eval $(call MAKE_BL,1))
|
||||||
|
|
|
@ -90,6 +90,14 @@ void cm_set_context_by_index(unsigned int cpu_idx, void *context,
|
||||||
set_cpu_data_by_index(cpu_idx, cpu_context[security_state], context);
|
set_cpu_data_by_index(cpu_idx, cpu_context[security_state], context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !ERROR_DEPRECATED
|
||||||
|
/*
|
||||||
|
* These context management helpers are deprecated but are maintained for use
|
||||||
|
* by SPDs which have not migrated to the new API. If ERROR_DEPRECATED
|
||||||
|
* is enabled, these are excluded from the build so as to force users to
|
||||||
|
* migrate to the new API.
|
||||||
|
*/
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* This function returns a pointer to the most recent 'cpu_context' structure
|
* This function returns a pointer to the most recent 'cpu_context' structure
|
||||||
* for the CPU identified by MPIDR that was set as the context for the specified
|
* for the CPU identified by MPIDR that was set as the context for the specified
|
||||||
|
@ -114,6 +122,21 @@ void cm_set_context_by_mpidr(uint64_t mpidr, void *context, uint32_t security_st
|
||||||
context, security_state);
|
context, security_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* The following function provides a compatibility function for SPDs using the
|
||||||
|
* existing cm library routines. This function is expected to be invoked for
|
||||||
|
* initializing the cpu_context for the CPU specified by MPIDR for first use.
|
||||||
|
******************************************************************************/
|
||||||
|
void cm_init_context(unsigned long mpidr, const entry_point_info_t *ep)
|
||||||
|
{
|
||||||
|
if ((mpidr & MPIDR_AFFINITY_MASK) ==
|
||||||
|
(read_mpidr_el1() & MPIDR_AFFINITY_MASK))
|
||||||
|
cm_init_my_context(ep);
|
||||||
|
else
|
||||||
|
cm_init_context_by_index(platform_get_core_pos(mpidr), ep);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* This function is used to program the context that's used for exception
|
* This function is used to program the context that's used for exception
|
||||||
* return. This initializes the SP_EL3 to a pointer to a 'cpu_context' set for
|
* return. This initializes the SP_EL3 to a pointer to a 'cpu_context' set for
|
||||||
|
@ -260,20 +283,6 @@ void cm_init_my_context(const entry_point_info_t *ep)
|
||||||
cm_init_context_common(ctx, ep);
|
cm_init_context_common(ctx, ep);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* The following function provides a compatibility function for SPDs using the
|
|
||||||
* existing cm library routines. This function is expected to be invoked for
|
|
||||||
* initializing the cpu_context for the CPU specified by MPIDR for first use.
|
|
||||||
******************************************************************************/
|
|
||||||
void cm_init_context(unsigned long mpidr, const entry_point_info_t *ep)
|
|
||||||
{
|
|
||||||
if ((mpidr & MPIDR_AFFINITY_MASK) ==
|
|
||||||
(read_mpidr_el1() & MPIDR_AFFINITY_MASK))
|
|
||||||
cm_init_my_context(ep);
|
|
||||||
else
|
|
||||||
cm_init_context_by_index(platform_get_core_pos(mpidr), ep);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Prepare the CPU system registers for first entry into secure or normal world
|
* Prepare the CPU system registers for first entry into secure or normal world
|
||||||
*
|
*
|
||||||
|
|
|
@ -367,10 +367,10 @@ performed.
|
||||||
and it governs the return value of PSCI_FEATURES API for CPU_SUSPEND
|
and it governs the return value of PSCI_FEATURES API for CPU_SUSPEND
|
||||||
smc function id.
|
smc function id.
|
||||||
|
|
||||||
* `WARN_DEPRECATED`: This option decides whether to warn the usage of
|
* `ERROR_DEPRECATED`: This option decides whether to treat the usage of
|
||||||
deprecated platform APIs and context management helpers within Trusted
|
deprecated platform APIs, helper functions or drivers within Trusted
|
||||||
Firmware. It can take the value 1 (warn the use of deprecated APIs) or
|
Firmware as error. It can take the value 1 (flag the use of deprecated
|
||||||
0. The default is 0.
|
APIs as error) or 0. The default is 0.
|
||||||
|
|
||||||
#### ARM development platform specific build options
|
#### ARM development platform specific build options
|
||||||
|
|
||||||
|
|
|
@ -101,10 +101,10 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Theses macros are used to create function labels for deprecated
|
* Theses macros are used to create function labels for deprecated
|
||||||
* APIs. If WARN_DEPRECATED is non zero, the callers of these APIs
|
* APIs. If ERROR_DEPRECATED is non zero, the callers of these APIs
|
||||||
* will fail to link and cause build failure.
|
* will fail to link and cause build failure.
|
||||||
*/
|
*/
|
||||||
#if WARN_DEPRECATED
|
#if ERROR_DEPRECATED
|
||||||
.macro func_deprecated _name
|
.macro func_deprecated _name
|
||||||
func deprecated\_name
|
func deprecated\_name
|
||||||
.endm
|
.endm
|
||||||
|
|
|
@ -69,15 +69,10 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Macros to wrap declarations of deprecated APIs within Trusted Firmware.
|
* Macros to wrap declarations of deprecated APIs within Trusted Firmware.
|
||||||
* The callers of these APIs will continue to compile as long as the build
|
* The callers of these APIs will continue to compile with a warning as long
|
||||||
* flag WARN_DEPRECATED is zero. Else the compiler will emit a warning
|
* as the build flag ERROR_DEPRECATED is zero.
|
||||||
* when the callers of these APIs are compiled.
|
|
||||||
*/
|
*/
|
||||||
#if WARN_DEPRECATED
|
|
||||||
#define __warn_deprecated __attribute__ ((deprecated))
|
#define __warn_deprecated __attribute__ ((deprecated))
|
||||||
#else
|
|
||||||
#define __warn_deprecated
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __COMMON_DEF_H__ */
|
#endif /* __COMMON_DEF_H__ */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue