## SPDX-License-Identifier: GPL-2.0-only

config SOC_INTEL_SAPPHIRERAPIDS_SP
	bool
	select FSP_NVS_DATA_POST_SILICON_INIT
	select MICROCODE_BLOB_NOT_HOOKED_UP
	select SOC_INTEL_MEM_MAPPED_PM_CONFIGURATION
	select DISABLE_ACPI_HIBERNATE
	select DEFAULT_X2APIC_RUNTIME
	select CACHE_MRC_SETTINGS
	select CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED
	select PLATFORM_USES_FSP2_3
	select SOC_INTEL_CSE_SERVER_SKU
	select XEON_SP_COMMON_BASE
	select HAVE_IOAT_DOMAINS
	select FSP_SPEC_VIOLATION_XEON_SP_HEAP_WORKAROUND
	select UDK_202005_BINDING
	select SOC_INTEL_HAS_CXL
	select HAVE_X86_64_SUPPORT
	help
	  Intel Sapphire Rapids-SP support

if SOC_INTEL_SAPPHIRERAPIDS_SP

config CHIPSET_DEVICETREE
	string
	default "soc/intel/xeon_sp/spr/chipset.cb"

config FSP_HEADER_PATH
	string "Location of FSP headers"
	depends on MAINBOARD_USES_FSP2_0
	default "src/vendorcode/intel/fsp/fsp2_0/sapphirerapids_sp"

config MAX_CPUS
	int
	default 255

config ACPI_CPU_STRING
	string
	default "C%03X"

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

config DCACHE_RAM_BASE
	hex
	default 0xfe800000

config DCACHE_RAM_SIZE
	hex
	default 0x1fff00
	help
	  The size of the cache-as-ram region required during bootblock
	  and/or romstage. FSP-T reserves the upper 0x100 for
	  FspReservedBuffer.

config DCACHE_BSP_STACK_SIZE
	hex
	default 0x40000
	help
	  The amount of anticipated stack usage in CAR by bootblock and
	  other stages. It needs to include FSP-M stack requirement and
	  CB romstage stack requirement. The integration documentation
	  says this needs to be 256KiB.

config FSP_M_RC_HEAP_SIZE
	hex
	default 0x150000
	help
	  On xeon_sp/spr FSP-M has two separate heap managers, one regular
	  whose size and base are controllable via the StackBase and
	  StackSize UPDs and a 'rc' heap manager that is statically
	  allocated at 0xfe800000 (the CAR base) and consumes about 0x150000
	  bytes of memory.

config CPU_MICROCODE_CBFS_LOC
	hex
	default 0xffe0fdc0

config CPU_MICROCODE_CBFS_LEN
	hex
	default 0x8c00

config STACK_SIZE
	hex
	default 0x4000

config FSP_TEMP_RAM_SIZE
	hex
	depends on FSP_USES_CB_STACK
	default 0x60000
	help
	  The amount of anticipated heap usage in CAR by FSP.
	  Refer to Platform FSP integration guide document to know
	  the exact FSP requirement for Heap setup.  The FSP integration
	  documentation says this needs to be at least 128KiB, but practice
	  show this needs to be 256KiB or more.

config IED_REGION_SIZE
	hex
	default 0x400000

config IFD_CHIPSET
	string
	default "lbg"

config SOC_INTEL_COMMON_BLOCK_P2SB
	def_bool y

config SOC_INTEL_HAS_BIOS_DONE_MSR
	def_bool y

config SOC_INTEL_HAS_NCMEM
	def_bool y

config SOC_INTEL_PCIE_64BIT_ALLOC
	def_bool y

config SOC_INTEL_MMAPVTD_ONLY_FOR_DPR
	def_bool y

config CPU_BCLK_MHZ
	int
	default 100

# SPR-SP has 4 IMCs, 2 channels per IMC, 2 DIMMs per channel
# Default value is set to two sockets, full config.
config MAX_IMC
	int
	default 4

config DIMM_MAX
	int
	default 32

# DDR4
config DIMM_SPD_SIZE
	int
	default 1024

config MAX_ACPI_TABLE_SIZE_KB
	int
	default 512 if MAX_SOCKET = 4
	default 224

config FIXED_SMBUS_IO_BASE
	default 0x780

config DISPLAY_UPD_IIO_DATA
	def_bool n
	depends on DISPLAY_UPD_DATA

if INTEL_TXT

config INTEL_TXT_SINIT_SIZE
	hex
	default 0x50000
	help
	  According to document number 572782 this needs to be 256KiB
	  for the SINIT module and 64KiB for SINIT data.

config INTEL_TXT_HEAP_SIZE
	hex
	default 0xf0000
	help
	  This must be 960KiB according to 572782.

endif # INTEL_TXT

config ENABLE_IO_MARGINING
	bool "Enable IO Margining"
	default n
	depends on !PCIEXP_ASPM
	help
	  Enable support for I/O margining. This is mutually exclusive with
	  ASPM. This option is intended for debugging and validation and
	  should normally be disabled.

config ENABLE_RMT
	bool "Enable RMT"
	default n
	help
	  Enable Rank Margining Tool. This option is intended for debugging and
	  validation and should normally be disabled.

config RMT_MEM_POR_FREQ
	bool "Enforce Plan Of Record restrictions for DDR5 frequency and voltage"
	default n
	depends on ENABLE_RMT
	help
	  When RMT is enabled. Select this option to enforce Intel Plan Of Record(POR)
	  restriction on DDR5 frequency & voltage settings.
endif
