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

config SOC_INTEL_SAPPHIRERAPIDS_SP
	bool
	select MICROCODE_BLOB_NOT_HOOKED_UP
	select SAVE_MRC_AFTER_FSPS
	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
	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 HEAP_SIZE
	hex
	default 0x80000

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_HAS_CXL
	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 400 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.
endif
