4b500174dd
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
41 lines
993 B
Plaintext
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
|