# SPDX-License-Identifier: GPL-2.0-or-later

source "src/soc/intel/xeon_sp/*/Kconfig"

config XEON_SP_COMMON_BASE
	bool
	select ACPI_INTEL_HARDWARE_SLEEP_VALUES
	select ARCH_X86
	select BOOT_DEVICE_SUPPORTS_WRITES
	select CPU_INTEL_COMMON
	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
	select FSP_CAR
	select FSP_M_XIP
	select FSP_PLATFORM_MEMORY_SETTINGS_VERSIONS
	select FSP_T_XIP
	select HAVE_SMI_HANDLER
	select INTEL_CAR_NEM # For postcar only now
	select INTEL_DESCRIPTOR_MODE_CAPABLE
	select PARALLEL_MP_AP_WORK
	select PMC_GLOBAL_RESET_ENABLE_LOCK
	select POSTCAR_STAGE
	select REG_SCRIPT
	select SMM_TSEG
	select SOC_INTEL_COMMON
	select SOC_INTEL_COMMON_RESET
	select SOC_INTEL_COMMON_BLOCK
	select SOC_INTEL_COMMON_BLOCK_ACPI
	select SOC_INTEL_COMMON_BLOCK_CPU
	select SOC_INTEL_COMMON_BLOCK_GPIO_DUAL_ROUTE_SUPPORT
	select SOC_INTEL_COMMON_BLOCK_GPIO_PADCFG_PADTOL
	select SOC_INTEL_COMMON_BLOCK_PMC_DISCOVERABLE
	select SOC_INTEL_COMMON_BLOCK_SMM
	select SOC_INTEL_COMMON_BLOCK_TCO
	select SOC_INTEL_COMMON_PCH_SERVER
	select SUPPORT_CPU_UCODE_IN_CBFS
	select TSC_MONOTONIC_TIMER
	select TPM_STARTUP_IGNORE_POSTINIT if INTEL_TXT
	select UDELAY_TSC
	select USE_FSP_NOTIFY_PHASE_POST_PCI_ENUM
	select USE_FSP_NOTIFY_PHASE_READY_TO_BOOT
	select USE_FSP_NOTIFY_PHASE_END_OF_FIRMWARE

if XEON_SP_COMMON_BASE

config MAINBOARD_USES_FSP2_0
	  bool
	  default y
	  select PLATFORM_USES_FSP2_0
	  select UDK_202005_BINDING
	  select POSTCAR_STAGE

config MAX_SOCKET
	int
	default 2

config MAX_HECI_DEVICES
	int
	default 5

# For 2S config, the number of cpus could be as high as
# 2 threads * 20 cores * 2 sockets
config MAX_CPUS
	int
	default 80

config INTEL_ACPI_BASE_ADDRESS
	hex
	default 0x500
	help
	  IO Address of ACPI.

config INTEL_PCH_PWRM_BASE_ADDRESS
	hex
	default 0xfe000000
	help
	  PCH PWRM Base address.

config PCR_BASE_ADDRESS
	hex
	default 0xfd000000
	help
	  This option allows you to select MMIO Base Address of sideband bus.

config DCACHE_BSP_STACK_SIZE
	hex
	default 0x10000

config ECAM_MMCONF_BASE_ADDRESS
	default 0x80000000

config ECAM_MMCONF_BUS_NUMBER
	default 256

config HEAP_SIZE
	hex
	default 0x80000

config HPET_MIN_TICKS
	hex
	default 0x80

config SOC_INTEL_XEON_RAS
	bool
	select SOC_ACPI_HEST
	select SOC_RAS_ELOG

endif ## SOC_INTEL_XEON_SP
