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

if BOARD_FACEBOOK_FBG1701

config BOARD_SPECIFIC_OPTIONS
	def_bool y
	select BOARD_ROMSIZE_KB_8192
	select DISABLE_ACPI_HIBERNATE
	select HAVE_ACPI_TABLES
	select HAVE_IFD_BIN
	select HAVE_ME_BIN
	select HAVE_OPTION_TABLE
	select MAINBOARD_HAS_LPC_TPM
	select MAINBOARD_HAS_TPM2
	select SOC_INTEL_BRASWELL
	select SOC_INTEL_COMMON_BLOCK_HDA_VERB
	select PCIEXP_L1_SUB_STATE
	select HAVE_FSP_BIN
	select DISABLE_HPET
	select INTEL_GMA_HAVE_VBT
	select HAVE_SPD_IN_CBFS

config USE_VENDORCODE_ELTAN
	default y

if VBOOT

config VBOOT_VBNV_CMOS
	default y

config VBOOT_SLOTS_RW_A
	default y

config VBOOT_NO_BOARD_SUPPORT
	default y

config VBOOT_ENABLE_CBFS_FALLBACK
	default y

config FMDFILE
	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/vboot-rw.fmd"

config RW_REGION_ONLY
	default "%/payload logo.bmp %/ramstage vbt.bin %/dsdt.aml config %/postcar"

config RO_REGION_ONLY
	default "spd.bin fsp.bin cpu_microcode_blob.bin"

endif # VBOOT

config ONBOARD_SAMSUNG_MEM
	bool "Onboard memory manufacturer Samsung"
	default n
	help
	  Samsung K4B8G1646D memory

config MAINBOARD_DIR
	string
	default "facebook/fbg1701"

config MAINBOARD_PART_NUMBER
	string
	default "FBG-1701"

config CBFS_SIZE
	hex
	default 0x00600000

config MRC_SETTINGS_CACHE_SIZE
	hex
	default 0x08000

config FSP_LOC
	hex
	default 0xfff9c000

config VENDORCODE_ELTAN_OEM_MANIFEST_LOC
	depends on USE_VENDORCODE_ELTAN
	hex
	default 0xFFFE9000

config SPI_FLASH_INCLUDE_ALL_DRIVERS
	bool
	default n

config SPI_FLASH_WINBOND
	bool
	default y

config TPM_INIT
	bool "TPM Setup in RAMSTAGE"
	default n

config VENDORCODE_ELTAN_VBOOT_SIGNED_MANIFEST
	depends on USE_VENDORCODE_ELTAN
	bool
	default y

config VENDORCODE_ELTAN_VBOOT_MANIFEST
	depends on USE_VENDORCODE_ELTAN
	string
	default "mainboard/facebook/fbg1701/manifest.h"

config VENDORCODE_ELTAN_VBOOT_KEY_LOCATION
	depends on USE_VENDORCODE_ELTAN
	hex
	default 0xFFFF9C00

config DRIVERS_INTEL_WIFI
	bool
	default n

endif # BOARD_FACEBOOK_FBG1701
