1 # SPDX-License-Identifier: GPL-2.0-only
6 select ADD_FSP_BINARIES if USE_AMD_BLOBS
8 select BOOT_DEVICE_SUPPORTS_WRITES if BOOT_DEVICE_SPI_FLASH
9 select DRIVERS_USB_ACPI
10 select DRIVERS_USB_PCI_XHCI
11 select FSP_COMPRESS_FSP_M_LZMA if !ASYNC_FILE_LOADING
12 select FSP_COMPRESS_FSP_M_LZ4 if ASYNC_FILE_LOADING
13 select FSP_COMPRESS_FSP_S_LZ4
14 select GENERIC_GPIO_LIB
15 select HAVE_ACPI_TABLES
17 select HAVE_EM100_SUPPORT
19 select HAVE_SMI_HANDLER
20 select IDT_IN_EVERY_STAGE
21 select PARALLEL_MP_AP_WORK
22 select PLATFORM_USES_FSP2_0
23 select PROVIDES_ROM_SHARING
24 select PSP_VERSTAGE_CCP_DMA if VBOOT_STARTS_BEFORE_BOOTBLOCK
25 select PSP_VERSTAGE_MAP_ENTIRE_SPIROM if VBOOT_STARTS_BEFORE_BOOTBLOCK
26 select RESET_VECTOR_IN_RAM
29 select SOC_AMD_COMMON_BLOCK_ACP_GEN1
30 select SOC_AMD_COMMON_BLOCK_ACPI
31 select SOC_AMD_COMMON_BLOCK_ACPIMMIO
32 select SOC_AMD_COMMON_BLOCK_ACPIMMIO_PM_IO_ACCESS
33 select SOC_AMD_COMMON_BLOCK_ACPI_ALIB
34 select SOC_AMD_COMMON_BLOCK_ACPI_CPPC
35 select SOC_AMD_COMMON_BLOCK_ACPI_CPU_POWER_STATE
36 select SOC_AMD_COMMON_BLOCK_ACPI_GPIO
37 select SOC_AMD_COMMON_BLOCK_ACPI_IVRS
38 select SOC_AMD_COMMON_BLOCK_ACPI_MADT
39 select SOC_AMD_COMMON_BLOCK_AOAC
40 select SOC_AMD_COMMON_BLOCK_APOB
41 select SOC_AMD_COMMON_BLOCK_APOB_HASH
42 select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS
43 select SOC_AMD_COMMON_BLOCK_CPUFREQ_FAM17H_19H
44 select SOC_AMD_COMMON_BLOCK_DATA_FABRIC
45 select SOC_AMD_COMMON_BLOCK_DATA_FABRIC_DOMAIN
46 select SOC_AMD_COMMON_BLOCK_EMMC
47 select SOC_AMD_COMMON_BLOCK_GPP_CLK
48 select SOC_AMD_COMMON_BLOCK_GRAPHICS
49 select SOC_AMD_COMMON_BLOCK_HAS_ESPI
50 select SOC_AMD_COMMON_BLOCK_I2C
51 select SOC_AMD_COMMON_BLOCK_I2C_PAD_CTRL
52 select SOC_AMD_COMMON_BLOCK_IOMMU
53 select SOC_AMD_COMMON_BLOCK_LPC
54 select SOC_AMD_COMMON_BLOCK_MCAX
55 select SOC_AMD_COMMON_BLOCK_NONCAR
56 select SOC_AMD_COMMON_BLOCK_PCI
57 select SOC_AMD_COMMON_BLOCK_PCI_MMCONF
58 select SOC_AMD_COMMON_BLOCK_PCIE_GPP_DRIVER
59 select SOC_AMD_COMMON_BLOCK_PM
60 select SOC_AMD_COMMON_BLOCK_PM_CHIPSET_STATE_SAVE
61 select SOC_AMD_COMMON_BLOCK_PSP_GEN2
62 select SOC_AMD_COMMON_BLOCK_PSP_SPL
63 select SOC_AMD_COMMON_BLOCK_RESET
64 select SOC_AMD_COMMON_BLOCK_SMBUS
65 select SOC_AMD_COMMON_BLOCK_SMI
66 select SOC_AMD_COMMON_BLOCK_SMM
67 select SOC_AMD_COMMON_BLOCK_SMU
68 select SOC_AMD_COMMON_BLOCK_SMU_SX_ENTRY
69 select SOC_AMD_COMMON_BLOCK_SPI
70 select SOC_AMD_COMMON_BLOCK_SVI2
71 select SOC_AMD_COMMON_BLOCK_TSC
72 select SOC_AMD_COMMON_BLOCK_UART
73 select SOC_AMD_COMMON_BLOCK_UCODE
74 select SOC_AMD_COMMON_FSP_CCX_CPPC_HOB
75 select SOC_AMD_COMMON_FSP_DMI_TABLES
76 select SOC_AMD_COMMON_FSP_PCI
77 select SOC_AMD_COMMON_FSP_PCIE_CLK_REQ
78 select SOC_AMD_COMMON_FSP_PRELOAD_FSPS
79 select SOC_AMD_COMMON_BLOCK_XHCI
80 select SOC_AMD_COMMON_ROMSTAGE_LEGACY_DMA_FIXUP
82 select UDK_2017_BINDING
85 select USE_FSP_NOTIFY_PHASE_POST_PCI_ENUM
86 select USE_FSP_NOTIFY_PHASE_READY_TO_BOOT
87 select USE_FSP_NOTIFY_PHASE_END_OF_FIRMWARE
88 select VBOOT_DEFINE_WIDEVINE_COUNTERS if VBOOT_STARTS_BEFORE_BOOTBLOCK
89 select X86_AMD_FIXED_MTRRS
90 select X86_INIT_NEED_1_SIPI
96 config CHIPSET_DEVICETREE
98 default "soc/amd/cezanne/chipset.cb"
101 string "FSP-M (memory init) binary path and filename"
102 depends on ADD_FSP_BINARIES
103 default "3rdparty/amd_blobs/cezanne/CEZANNE_M.fd"
105 The path and filename of the FSP-M binary for this platform.
108 string "FSP-S (silicon init) binary path and filename"
109 depends on ADD_FSP_BINARIES
110 default "3rdparty/amd_blobs/cezanne/CEZANNE_S.fd"
112 The path and filename of the FSP-S binary for this platform.
114 config EARLY_RESERVED_DRAM_BASE
118 This variable defines the base address of the DRAM which is reserved
119 for usage by coreboot in early stages (i.e. before ramstage is up).
120 This memory gets reserved in BIOS tables to ensure that the OS does
121 not use it, thus preventing corruption of OS memory in case of S3
124 config EARLYRAM_BSP_STACK_SIZE
128 config PSP_APOB_DRAM_ADDRESS
132 Location in DRAM where the PSP will copy the AGESA PSP Output
135 config PSP_APOB_DRAM_SIZE
139 config PSP_SHAREDMEM_BASE
141 default 0x2011000 if VBOOT
144 This variable defines the base address in DRAM memory where PSP copies
145 the vboot workbuf. This is used in the linker script to have a static
146 allocation for the buffer as well as for adding relevant entries in
147 the BIOS directory table for the PSP.
149 config PSP_SHAREDMEM_SIZE
151 default 0x8000 if VBOOT
154 Sets the maximum size for the PSP to pass the vboot workbuf and
155 any logs or timestamps back to coreboot. This will be copied
156 into main memory by the PSP and will be available when the x86 is
157 started. The workbuf's base depends on the address of the reset
160 config PRE_X86_CBMEM_CONSOLE_SIZE
164 Size of the CBMEM console used in PSP verstage.
166 config PRERAM_CBMEM_CONSOLE_SIZE
170 Increase this value if preram cbmem console is getting truncated
172 config CBFS_MCACHE_SIZE
174 default 0x2000 if VBOOT_STARTS_BEFORE_BOOTBLOCK
176 config C_ENV_BOOTBLOCK_SIZE
180 Sets the size of the bootblock stage that should be loaded in DRAM.
181 This variable controls the DRAM allocation size in linker script
188 Sets the address in DRAM where romstage should be loaded.
194 Sets the size of DRAM allocation for romstage in linker script.
200 Sets the address in DRAM where FSP-M should be loaded. cbfstool
201 performs relocation of FSP-M to this address.
207 Sets the size of DRAM allocation for FSP-M in linker script.
209 config FSP_TEMP_RAM_SIZE
213 The amount of coreboot-allocated heap and stack usage by the FSP.
217 depends on VBOOT_SEPARATE_VERSTAGE
220 Sets the address in DRAM where verstage should be loaded if running
221 as a separate stage on x86.
225 depends on VBOOT_SEPARATE_VERSTAGE
228 Sets the size of DRAM allocation for verstage in linker script if
229 running as a separate stage on x86.
231 config ASYNC_FILE_LOADING
232 bool "Loads files from SPI asynchronously"
233 select COOP_MULTITASKING
234 select SOC_AMD_COMMON_BLOCK_LPC_SPI_DMA
237 When enabled, the platform will use the LPC SPI DMA controller to
238 asynchronously load contents from the SPI ROM. This will improve
239 boot time because the CPUs can be performing useful work while the
240 SPI contents are being preloaded.
242 config CBFS_CACHE_SIZE
244 default 0x40000 if CBFS_PRELOAD
246 config RO_REGION_ONLY
248 depends on VBOOT_SLOTS_RW_AB || VBOOT_SLOTS_RW_A
251 config ECAM_MMCONF_BASE_ADDRESS
254 config ECAM_MMCONF_BUS_NUMBER
261 Maximum number of threads the platform can have.
267 The default VGA BIOS PCI vendor/device ID should be set to the
268 result of the map_oprom_vendev() function in grapthics.c.
272 default "3rdparty/amd_blobs/cezanne/CezanneGenericVbios.bin"
274 config CONSOLE_UART_BASE_ADDRESS
275 depends on CONSOLE_SERIAL && AMD_SOC_CONSOLE_UART
277 default 0xfedc9000 if UART_FOR_CONSOLE = 0
278 default 0xfedca000 if UART_FOR_CONSOLE = 1
282 default 0x800000 if HAVE_SMI_HANDLER
285 config SMM_RESERVED_SIZE
289 config SMM_MODULE_STACK_SIZE
294 bool "Build ACPI BERT Table"
296 depends on HAVE_ACPI_TABLES
298 Report Machine Check errors identified in POST to the OS in an
299 ACPI Boot Error Record Table.
301 config ACPI_BERT_SIZE
303 default 0x4000 if ACPI_BERT
306 Specify the amount of DRAM reserved for gathering the data used to
307 generate the ACPI table.
309 config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
313 config DISABLE_SPI_FLASH_ROM_SHARING
316 Instruct the chipset to not honor the EGPIO67_SPI_ROM_REQ pin
317 which indicates a board level ROM transaction request. This
318 removes arbitration with board and assumes the chipset controls
319 the SPI flash bus entirely.
321 config DISABLE_KEYBOARD_RESET_PIN
324 Instruct the SoC to not use the state of GPIO_129 as keyboard reset
325 signal. When this pin is used as GPIO and the keyboard reset
326 functionality isn't disabled, configuring it as an output and driving
327 it as 0 will cause a reset.
329 menu "PSP Configuration Options"
331 config AMDFW_CONFIG_FILE
333 default "src/soc/amd/cezanne/fw.cfg"
335 config PSP_DISABLE_POSTCODES
336 bool "Disable PSP post codes"
338 Disables the output of port80 post codes from PSP.
340 config PSP_POSTCODES_ON_ESPI
341 bool "Use eSPI bus for PSP post codes"
342 depends on !PSP_DISABLE_POSTCODES
345 Select to send PSP port80 post codes on eSPI bus.
346 If not selected, PSP port80 codes will be sent on LPC bus.
349 bool "Initialize eSPI in PSP Stage 2 Boot Loader"
351 Select to initialize the eSPI controller in the PSP Stage 2 Boot
354 config PSP_LOAD_MP2_FW
358 Include the MP2 firmwares and configuration into the PSP build.
360 If unsure, answer 'n'
362 config PSP_UNLOCK_SECURE_DEBUG
363 bool "Unlock secure debug"
366 Select this item to enable secure debug options in PSP.
368 config HAVE_PSP_WHITELIST_FILE
369 bool "Include a debug whitelist file in PSP build"
372 Support secured unlock prior to reset using a whitelisted
373 serial number. This feature requires a signed whitelist image
374 and bootloader from AMD.
376 If unsure, answer 'n'
378 config PSP_WHITELIST_FILE
379 string "Debug whitelist file path"
380 depends on HAVE_PSP_WHITELIST_FILE
381 default "3rdparty/amd_blobs/cezanne/PSP/wtl-czn.sbin"
383 config PSP_SOFTFUSE_BITS
384 string "PSP Soft Fuse bits to enable"
387 Space separated list of Soft Fuse bits to enable.
388 Bit 0: Enable secure debug (Set by PSP_UNLOCK_SECURE_DEBUG)
389 Bit 7: Disable PSP postcodes on Renoir and newer chips only
390 (Set by PSP_DISABLE_PORT80)
391 Bit 15: PSP post code destination: 0=LPC 1=eSPI
392 (Set by PSP_INITIALIZE_ESPI)
393 Bit 29: Disable MP2 firmware loading (Set by PSP_LOAD_MP2_FW)
395 See #55758 (NDA) for additional bit definitions.
397 config PSP_VERSTAGE_FILE
398 string "Specify the PSP_verstage file path"
399 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
400 default "\$(obj)/psp_verstage.bin"
402 Add psp_verstage file to the build & PSP Directory Table
404 config PSP_VERSTAGE_SIGNING_TOKEN
405 string "Specify the PSP_verstage Signature Token file path"
406 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
409 Add psp_verstage signature token to the build & PSP Directory Table
411 config PSP_RECOVERY_AB
412 bool "Use A/B Recovery scheme"
415 Enable the PSP A/B Recovery mechanism
420 select VBOOT_VBNV_CMOS
421 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
423 config VBOOT_STARTS_BEFORE_BOOTBLOCK
426 select ARCH_VERSTAGE_ARMV7
428 Runs verstage on the PSP. Only available on
429 certain ChromeOS branded parts from AMD.
431 config VBOOT_HASH_BLOCK_SIZE
434 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
436 Because the bulk of the time in psp_verstage to hash the RO cbfs is
437 spent in the overhead of doing svc calls, increasing the hash block
438 size significantly cuts the verstage hashing time as seen below.
444 There's actually still room for an even bigger stack, but we've
445 reached a point of diminishing returns.
447 config CMOS_RECOVERY_BYTE
450 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
452 If the workbuf is not passed from the PSP to coreboot, set the
453 recovery flag and reboot. The PSP will read this byte, mark the
454 recovery request in VBNV, and reset the system into recovery mode.
456 This is the byte before the default first byte used by VBNV
459 if VBOOT_SLOTS_RW_A && VBOOT_STARTS_BEFORE_BOOTBLOCK
461 config RWA_REGION_ONLY
463 default "apu/amdfw_a"
465 Add a space-delimited list of filenames that should only be in the
468 endif # VBOOT_SLOTS_RW_A && VBOOT_STARTS_BEFORE_BOOTBLOCK
470 if VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
472 config RWB_REGION_ONLY
474 default "apu/amdfw_b"
476 Add a space-delimited list of filenames that should only be in the
479 endif # VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
481 endif # SOC_AMD_CEZANNE