# Select 32 or 64 bit
config 64BIT
	bool
	default ARCH != "arm32"
	help
	  Say yes to build a 64-bit Xen
	  Say no to build a 32-bit Xen

config ARM_32
	def_bool y
	depends on !64BIT

config ARM_64
	def_bool y
	depends on 64BIT
	select HAS_GICV3

config ARM
	def_bool y
	select HAS_ARM_HDLCD
	select HAS_DEVICE_TREE
	select HAS_MEM_ACCESS
	select HAS_PASSTHROUGH
	select HAS_PDX
	select VIDEO

config ARCH_DEFCONFIG
	string
	default "arch/arm/configs/arm32_defconfig" if ARM_32
	default "arch/arm/configs/arm64_defconfig" if ARM_64

menu "Architecture Features"

source "arch/Kconfig"

config ACPI
	bool
	prompt "ACPI (Advanced Configuration and Power Interface) Support" if EXPERT = "y"
	depends on ARM_64
	---help---

	  Advanced Configuration and Power Interface (ACPI) support for Xen is
	  an alternative to device tree on ARM64.

# Select HAS_GICV3 if GICv3 is supported
config HAS_GICV3
	bool

endmenu

config HARDEN_BRANCH_PREDICTOR
	bool "Harden the branch predictor against aliasing attacks" if EXPERT
	default y
	help
	  Speculation attacks against some high-performance processors rely on
	  being able to manipulate the branch predictor for a victim context by
	  executing aliasing branches in the attacker context.  Such attacks
	  can be partially mitigated against by clearing internal branch
	  predictor state and limiting the prediction logic in some situations.

	  This config option will take CPU-specific actions to harden the
	  branch predictor against aliasing attacks and may rely on specific
	  instruction sequences or control bits being set by the system
	  firmware.

	  If unsure, say Y.

config ARM64_HARDEN_BRANCH_PREDICTOR
    def_bool y if ARM_64 && HARDEN_BRANCH_PREDICTOR

config ARM32_HARDEN_BRANCH_PREDICTOR
    def_bool y if ARM_32 && HARDEN_BRANCH_PREDICTOR

source "common/Kconfig"

source "drivers/Kconfig"
