freebsd-dev/sys/conf/options.arm64
Kyle Evans 4b500174dd arm64: emulate swp/swpb instructions
Add another undefined instruction handler for compat32 and watch out for
SWP/SWPB instructions.

SWP/SWPB were deprecated in ARMv6 and declared obsolete in ARMv7, but
this implementation is motivated by some proprietary software that still
uses SWP/SWPB. Because it's deprecated, emulation is pushed back behind
a sysctl that defaults to OFF in GENERIC so that it doesn't potentially
adversely affect package builds; it's unknown whether software may test
for a functional swp/swpb instruction with the desire of using it later,
so we err on the side of caution to ensure we don't end up with swp/swpb
use in freebsd/arm packages (which are built on aarch64).

The EMUL_SWP config option may be used to enable emulation by default in
environments where emulation is desired and won't really be turned off.

Reviewed by:	andrew, mmel (both earlier version)
Sponsored by:   Stormshield
Sponsored by:   Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D39667
2023-05-15 10:42:10 -05:00

41 lines
993 B
Plaintext

# $FreeBSD$
ARM64 opt_global.h # for cpu ARM64 to work
INTRNG opt_global.h
SOCDEV_PA opt_global.h
THUNDERX_PASS_1_1_ERRATA opt_global.h
VFP opt_global.h
LINUX_BOOT_ABI opt_global.h
LSE_ATOMICS opt_global.h
# Per-thread stack smashing protection support
# Needs clang >= 13
PERTHREAD_SSP opt_global.h
# Binary compatibility
COMPAT_FREEBSD32 opt_global.h
# Emulate SWP/SWPB for COMPAT_FREEBSD32
EMUL_SWP opt_global.h
# EFI Runtime services support
EFIRT opt_efirt.h
# SoC Support
SOC_ALLWINNER_A64 opt_soc.h
SOC_ALLWINNER_H5 opt_soc.h
SOC_ALLWINNER_H6 opt_soc.h
SOC_BRCM_BCM2837 opt_soc.h
SOC_BRCM_BCM2838 opt_soc.h
SOC_BRCM_NS2 opt_soc.h
SOC_CAVM_THUNDERX opt_soc.h
SOC_FREESCALE_IMX8 opt_soc.h
SOC_HISI_HI6220 opt_soc.h
SOC_INTEL_STRATIX10 opt_soc.h
SOC_MARVELL_8K opt_soc.h
SOC_NVIDIA_TEGRA210 opt_soc.h
SOC_NXP_LS opt_soc.h
SOC_ROCKCHIP_RK3328 opt_soc.h
SOC_ROCKCHIP_RK3399 opt_soc.h
SOC_ROCKCHIP_RK3568 opt_soc.h
SOC_XILINX_ZYNQ opt_soc.h