73a1608d91
Once all CPUs are online, determine if they all support LSE atomics and set lse_supported to indicate this. For now the atomic(9) implementations are still always inlined, though it would be preferable to create out-of-line functions to avoid text bloat. This was not done here since big.little systems exist in which some CPUs implement LSE while others do not, and ifunc resolution must occur well before this scenario can be detected. It does seem unlikely that FreeBSD will ever run on such platforms, however, so converting atomic(9) to use ifuncs is probably a good next step. Add a LSE_ATOMICS arm64 kernel configuration option to unconditionally select LSE-based atomic(9) implementations when the target system is known. Reviewed by: andrew, kib MFC after: 1 month Sponsored by: The FreeBSD Foundation, Amazon (hardware) Differential Revision: https://reviews.freebsd.org/D23325
31 lines
692 B
Plaintext
31 lines
692 B
Plaintext
# $FreeBSD$
|
|
|
|
ARM64 opt_global.h
|
|
INTRNG opt_global.h
|
|
SOCDEV_PA opt_global.h
|
|
SOCDEV_VA 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
|
|
|
|
# Binary compatibility
|
|
COMPAT_FREEBSD32 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_CAVM_THUNDERX opt_soc.h
|
|
SOC_HISI_HI6220 opt_soc.h
|
|
SOC_INTEL_STRATIX10 opt_soc.h
|
|
SOC_MARVELL_8K opt_soc.h
|
|
SOC_ROCKCHIP_RK3328 opt_soc.h
|
|
SOC_ROCKCHIP_RK3399 opt_soc.h
|
|
SOC_XILINX_ZYNQ opt_soc.h
|