arm-trusted-firmware/make_helpers
Soby Mathew c97cba4ea4 Fix the CAS spinlock implementation
Make the spinlock implementation use ARMv8.1-LSE CAS instruction based
on a platform build option. The CAS-based implementation used to be
unconditionally selected for all ARM8.1+ platforms.

The previous CAS spinlock implementation had a bug wherein the spin_unlock()
implementation had an `sev` after `stlr` which is not sufficient. A dsb is
needed to ensure that the stlr completes prior to the sev. Having a dsb is
heavyweight and a better solution would be to use load exclusive semantics
to monitor the lock and wake up from wfe when a store happens to the lock.
The patch implements the same.

Change-Id: I5283ce4a889376e4cc01d1b9d09afa8229a2e522
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
2019-10-04 10:19:35 +02:00
..
tbbr Add cert_create tool support for RSA key sizes 2019-09-12 15:27:41 +01:00
armv7-a-cpus.mk plat/arm: Support for Cortex A5 in FVP Versatile Express platform 2019-02-19 17:07:48 +00:00
build_env.mk Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
build_macros.mk Switch AARCH32/AARCH64 to __aarch64__ 2019-08-01 13:45:03 -07:00
cygwin.mk Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
defaults.mk Fix the CAS spinlock implementation 2019-10-04 10:19:35 +02:00
msys.mk Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
plat_helpers.mk Change PLATFORM_ROOT to TF_PLATFORM_ROOT 2018-03-05 14:18:04 +08:00
unix.mk Makefile: Fix verbose builds on Windows 2018-10-19 15:54:27 +01:00
windows.mk Makefile: Fix verbose builds on Windows 2018-10-19 15:54:27 +01:00