mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-05 18:48:45 +00:00

Previously the errata reporting was optional for CPU operation files and this was achieved by making use of weak reference to resolve to 0 if the symbol is not defined. This is error prone when adding new CPU operation files and weak references are problematic when fixing up dynamic relocations. Hence this patch removes the weak reference and makes it mandatory for the CPU operation files to define the errata reporting function. Change-Id: I8af192e19b85b7cd8c7579e52f8f05a4294e5396 Signed-off-by: Soby Mathew <soby.mathew@arm.com>
55 lines
1.3 KiB
ArmAsm
55 lines
1.3 KiB
ArmAsm
/*
|
|
* Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
#include <aem_generic.h>
|
|
#include <arch.h>
|
|
#include <asm_macros.S>
|
|
#include <assert_macros.S>
|
|
#include <cpu_macros.S>
|
|
|
|
func aem_generic_core_pwr_dwn
|
|
/* Assert if cache is enabled */
|
|
#if ENABLE_ASSERTIONS
|
|
ldcopr r0, SCTLR
|
|
tst r0, #SCTLR_C_BIT
|
|
ASM_ASSERT(eq)
|
|
#endif
|
|
/* ---------------------------------------------
|
|
* Flush L1 cache to PoU.
|
|
* ---------------------------------------------
|
|
*/
|
|
mov r0, #DC_OP_CISW
|
|
b dcsw_op_louis
|
|
endfunc aem_generic_core_pwr_dwn
|
|
|
|
|
|
func aem_generic_cluster_pwr_dwn
|
|
/* Assert if cache is enabled */
|
|
#if ENABLE_ASSERTIONS
|
|
ldcopr r0, SCTLR
|
|
tst r0, #SCTLR_C_BIT
|
|
ASM_ASSERT(eq)
|
|
#endif
|
|
/* ---------------------------------------------
|
|
* Flush L1 and L2 caches to PoC.
|
|
* ---------------------------------------------
|
|
*/
|
|
mov r0, #DC_OP_CISW
|
|
b dcsw_op_all
|
|
endfunc aem_generic_cluster_pwr_dwn
|
|
|
|
#if REPORT_ERRATA
|
|
/*
|
|
* Errata printing function for AEM. Must follow AAPCS.
|
|
*/
|
|
func aem_generic_errata_report
|
|
bx lr
|
|
endfunc aem_generic_errata_report
|
|
#endif
|
|
|
|
/* cpu_ops for Base AEM FVP */
|
|
declare_cpu_ops aem_generic, BASE_AEM_MIDR, CPU_NO_RESET_FUNC, \
|
|
aem_generic_core_pwr_dwn, \
|
|
aem_generic_cluster_pwr_dwn
|