mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-24 13:55:56 +00:00

Cortex A78 erratum 1951500 is a Cat B erratum that applies to revisions r0p0, r1p0, and r1p1. The workaround is to insert a DMB ST before acquire atomic instructions without release semantics. This workaround works on revisions r1p0 and r1p1, in r0p0 there is no workaround. SDEN can be found here: https://documentation-service.arm.com/static/5fb66157ca04df4095c1cc2e Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I47610cee75af6a127ea65edc4d5cffc7e6a2d0a3
36 lines
827 B
C
36 lines
827 B
C
/*
|
|
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef ERRATA_REPORT_H
|
|
#define ERRATA_REPORT_H
|
|
|
|
#ifndef __ASSEMBLER__
|
|
|
|
#include <arch.h>
|
|
#include <arch_helpers.h>
|
|
#include <lib/spinlock.h>
|
|
#include <lib/utils_def.h>
|
|
|
|
#if DEBUG
|
|
void print_errata_status(void);
|
|
#else
|
|
static inline void print_errata_status(void) {}
|
|
#endif
|
|
|
|
void errata_print_msg(unsigned int status, const char *cpu, const char *id);
|
|
int errata_needs_reporting(spinlock_t *lock, uint32_t *reported);
|
|
|
|
#endif /* __ASSEMBLER__ */
|
|
|
|
/* Errata status */
|
|
#define ERRATA_NOT_APPLIES 0
|
|
#define ERRATA_APPLIES 1
|
|
#define ERRATA_MISSING 2
|
|
|
|
/* Macro to get CPU revision code for checking errata version compatibility. */
|
|
#define CPU_REV(r, p) ((r << 4) | p)
|
|
|
|
#endif /* ERRATA_REPORT_H */
|