1 # SPDX-License-Identifier: GPL-2.0-only
3 config SOC_AMD_REMBRANDT_BASE
6 config SOC_AMD_MENDOCINO
8 select SOC_AMD_REMBRANDT_BASE
12 config SOC_AMD_REMBRANDT
14 select SOC_AMD_REMBRANDT_BASE
19 if SOC_AMD_REMBRANDT_BASE
21 config SOC_SPECIFIC_OPTIONS
25 select BOOT_DEVICE_SUPPORTS_WRITES if BOOT_DEVICE_SPI_FLASH
26 select DRIVERS_USB_ACPI
27 select DRIVERS_USB_PCI_XHCI
28 select FSP_COMPRESS_FSP_M_LZMA if !ASYNC_FILE_LOADING
29 select FSP_COMPRESS_FSP_M_LZ4 if ASYNC_FILE_LOADING
30 select FSP_COMPRESS_FSP_S_LZ4
31 select GENERIC_GPIO_LIB
32 select HAVE_ACPI_TABLES
34 select HAVE_EM100_SUPPORT
36 select HAVE_SMI_HANDLER
37 select IDT_IN_EVERY_STAGE
42 select PARALLEL_MP_AP_WORK
43 select PLATFORM_USES_FSP2_0
44 select PROVIDES_ROM_SHARING
45 select PSP_SUPPORTS_EFS2_RELATIVE_ADDR if VBOOT_STARTS_BEFORE_BOOTBLOCK
46 select PSP_VERSTAGE_CCP_DMA if VBOOT_STARTS_BEFORE_BOOTBLOCK
47 select RESET_VECTOR_IN_RAM
50 select SOC_AMD_COMMON_BLOCK_ACP_GEN2
51 select SOC_AMD_COMMON_BLOCK_ACPI
52 select SOC_AMD_COMMON_BLOCK_ACPIMMIO
53 select SOC_AMD_COMMON_BLOCK_ACPI_ALIB
54 select SOC_AMD_COMMON_BLOCK_ACPI_CPPC
55 select SOC_AMD_COMMON_BLOCK_ACPI_GPIO
56 select SOC_AMD_COMMON_BLOCK_ACPI_IVRS
57 select SOC_AMD_COMMON_BLOCK_AOAC
58 select SOC_AMD_COMMON_BLOCK_APOB
59 select SOC_AMD_COMMON_BLOCK_APOB_HASH
60 select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS
61 select SOC_AMD_COMMON_BLOCK_DATA_FABRIC
62 select SOC_AMD_COMMON_BLOCK_EMMC
63 select SOC_AMD_COMMON_BLOCK_ESPI_EXTENDED_DECODE_RANGES
64 select SOC_AMD_COMMON_BLOCK_GRAPHICS
65 select SOC_AMD_COMMON_BLOCK_HAS_ESPI
66 select SOC_AMD_COMMON_BLOCK_HAS_ESPI_ALERT_ENABLE
67 select SOC_AMD_COMMON_BLOCK_I2C
68 select SOC_AMD_COMMON_BLOCK_I23C_PAD_CTRL
69 select SOC_AMD_COMMON_BLOCK_IOMMU
70 select SOC_AMD_COMMON_BLOCK_LPC
71 select SOC_AMD_COMMON_BLOCK_LPC_SPI_DMA
72 select SOC_AMD_COMMON_BLOCK_MCAX
73 select SOC_AMD_COMMON_BLOCK_NONCAR
74 select SOC_AMD_COMMON_BLOCK_PCI
75 select SOC_AMD_COMMON_BLOCK_PCI_MMCONF
76 select SOC_AMD_COMMON_BLOCK_PCIE_GPP_DRIVER
77 select SOC_AMD_COMMON_BLOCK_PCIE_CLK_REQ
78 select SOC_AMD_COMMON_BLOCK_PM
79 select SOC_AMD_COMMON_BLOCK_PM_CHIPSET_STATE_SAVE
80 select SOC_AMD_COMMON_BLOCK_PSP_GEN2
81 select SOC_AMD_COMMON_BLOCK_SMBUS
82 select SOC_AMD_COMMON_BLOCK_SMI
83 select SOC_AMD_COMMON_BLOCK_SMM
84 select SOC_AMD_COMMON_BLOCK_SMU
85 select SOC_AMD_COMMON_BLOCK_SPI
86 select SOC_AMD_COMMON_BLOCK_STB
87 select SOC_AMD_COMMON_BLOCK_TSC_FAM17H_19H
88 select SOC_AMD_COMMON_BLOCK_UART
89 select SOC_AMD_COMMON_BLOCK_UCODE
90 select SOC_AMD_COMMON_FSP_CCX_CPPC_HOB
91 select SOC_AMD_COMMON_FSP_DMI_TABLES
92 select SOC_AMD_COMMON_FSP_PCI
94 select UDK_2017_BINDING
96 select USE_FSP_NOTIFY_PHASE_POST_PCI_ENUM
97 select USE_FSP_NOTIFY_PHASE_READY_TO_BOOT
98 select USE_FSP_NOTIFY_PHASE_END_OF_FIRMWARE
99 select VBOOT_DEFINE_WIDEVINE_COUNTERS if VBOOT_STARTS_BEFORE_BOOTBLOCK
100 select VBOOT_X86_SHA256_ACCELERATION if VBOOT
101 select X86_AMD_FIXED_MTRRS
102 select X86_INIT_NEED_1_SIPI
104 config CHIPSET_DEVICETREE
106 default "soc/amd/mendocino/chipset_mendocino.cb" if SOC_AMD_MENDOCINO
107 default "soc/amd/mendocino/chipset_rembrandt.cb"
109 config EARLY_RESERVED_DRAM_BASE
113 This variable defines the base address of the DRAM which is reserved
114 for usage by coreboot in early stages (i.e. before ramstage is up).
115 This memory gets reserved in BIOS tables to ensure that the OS does
116 not use it, thus preventing corruption of OS memory in case of S3
119 config EARLYRAM_BSP_STACK_SIZE
123 config PSP_APOB_DRAM_ADDRESS
127 Location in DRAM where the PSP will copy the AGESA PSP Output
130 config PSP_APOB_DRAM_SIZE
134 config PSP_SHAREDMEM_BASE
136 default 0x201F000 if VBOOT
139 This variable defines the base address in DRAM memory where PSP copies
140 the vboot workbuf. This is used in the linker script to have a static
141 allocation for the buffer as well as for adding relevant entries in
142 the BIOS directory table for the PSP.
144 config PSP_SHAREDMEM_SIZE
146 default 0x8000 if VBOOT
149 Sets the maximum size for the PSP to pass the vboot workbuf and
150 any logs or timestamps back to coreboot. This will be copied
151 into main memory by the PSP and will be available when the x86 is
152 started. The workbuf's base depends on the address of the reset
155 config PRE_X86_CBMEM_CONSOLE_SIZE
159 Size of the CBMEM console used in PSP verstage.
161 config PRERAM_CBMEM_CONSOLE_SIZE
165 Increase this value if preram cbmem console is getting truncated
167 config CBFS_MCACHE_SIZE
169 default 0x3800 if VBOOT_STARTS_BEFORE_BOOTBLOCK
171 config C_ENV_BOOTBLOCK_SIZE
175 Sets the size of the bootblock stage that should be loaded in DRAM.
176 This variable controls the DRAM allocation size in linker script
183 Sets the address in DRAM where romstage should be loaded.
189 Sets the size of DRAM allocation for romstage in linker script.
195 Sets the address in DRAM where FSP-M should be loaded. cbfstool
196 performs relocation of FSP-M to this address.
202 Sets the size of DRAM allocation for FSP-M in linker script.
204 config FSP_TEMP_RAM_SIZE
208 The amount of coreboot-allocated heap and stack usage by the FSP.
212 depends on VBOOT_SEPARATE_VERSTAGE
215 Sets the address in DRAM where verstage should be loaded if running
216 as a separate stage on x86.
220 depends on VBOOT_SEPARATE_VERSTAGE
223 Sets the size of DRAM allocation for verstage in linker script if
224 running as a separate stage on x86.
226 config ASYNC_FILE_LOADING
227 bool "Loads files from SPI asynchronously"
228 select COOP_MULTITASKING
229 select SOC_AMD_COMMON_BLOCK_LPC_SPI_DMA
232 When enabled, the platform will use the LPC SPI DMA controller to
233 asynchronously load contents from the SPI ROM. This will improve
234 boot time because the CPUs can be performing useful work while the
235 SPI contents are being preloaded.
237 config CBFS_CACHE_SIZE
239 default 0x40000 if CBFS_PRELOAD
241 config RO_REGION_ONLY
243 depends on VBOOT_SLOTS_RW_AB || VBOOT_SLOTS_RW_A
246 config ECAM_MMCONF_BASE_ADDRESS
249 config ECAM_MMCONF_BUS_NUMBER
254 default 8 if SOC_AMD_MENDOCINO
257 Maximum number of threads the platform can have.
259 config CONSOLE_UART_BASE_ADDRESS
260 depends on CONSOLE_SERIAL && AMD_SOC_CONSOLE_UART
262 default 0xfedc9000 if UART_FOR_CONSOLE = 0
263 default 0xfedca000 if UART_FOR_CONSOLE = 1
264 default 0xfedce000 if UART_FOR_CONSOLE = 2
265 default 0xfedcf000 if UART_FOR_CONSOLE = 3
266 default 0xfedd1000 if UART_FOR_CONSOLE = 4
270 default 0x800000 if HAVE_SMI_HANDLER
273 config SMM_RESERVED_SIZE
277 config SMM_MODULE_STACK_SIZE
282 bool "Build ACPI BERT Table"
284 depends on HAVE_ACPI_TABLES
286 Report Machine Check errors identified in POST to the OS in an
287 ACPI Boot Error Record Table.
289 config ACPI_BERT_SIZE
291 default 0x4000 if ACPI_BERT
294 Specify the amount of DRAM reserved for gathering the data used to
295 generate the ACPI table.
297 config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
301 config DISABLE_SPI_FLASH_ROM_SHARING
304 Instruct the chipset to not honor the EGPIO67_SPI_ROM_REQ pin
305 which indicates a board level ROM transaction request. This
306 removes arbitration with board and assumes the chipset controls
307 the SPI flash bus entirely.
309 config DISABLE_KEYBOARD_RESET_PIN
312 Instruct the SoC to not use the state of GPIO_129 as keyboard reset
313 signal. When this pin is used as GPIO and the keyboard reset
314 functionality isn't disabled, configuring it as an output and driving
315 it as 0 will cause a reset.
317 config ACPI_SSDT_PSD_INDEPENDENT
318 bool "Allow core p-state independent transitions"
321 AMD recommends the ACPI _PSD object to be configured to cause
322 cores to transition between p-states independently. A vendor may
323 choose to generate _PSD object to allow cores to transition together.
325 config FEATURE_DYNAMIC_DPTC
327 depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
329 Selected by mainboards that implement support for ALIB
330 to enable dynamic DPTC.
332 config FEATURE_TABLET_MODE_DPTC
334 depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
336 Selected by mainboards that implement support for ALIB to
337 switch default and tablet mode.
339 menu "PSP Configuration Options"
341 config AMD_FWM_POSITION_INDEX
342 int "Firmware Directory Table location (0 to 5)"
344 default 0 if BOARD_ROMSIZE_KB_512
345 default 1 if BOARD_ROMSIZE_KB_1024
346 default 2 if BOARD_ROMSIZE_KB_2048
347 default 3 if BOARD_ROMSIZE_KB_4096
348 default 4 if BOARD_ROMSIZE_KB_8192
349 default 5 if BOARD_ROMSIZE_KB_16384
351 Typically this is calculated by the ROM size, but there may
352 be situations where you want to put the firmware directory
353 table in a different location.
354 0: 512 KB - 0xFFFA0000
359 5: 16 MB - 0xFF020000
361 comment "AMD Firmware Directory Table set to location for 512KB ROM"
362 depends on AMD_FWM_POSITION_INDEX = 0
363 comment "AMD Firmware Directory Table set to location for 1MB ROM"
364 depends on AMD_FWM_POSITION_INDEX = 1
365 comment "AMD Firmware Directory Table set to location for 2MB ROM"
366 depends on AMD_FWM_POSITION_INDEX = 2
367 comment "AMD Firmware Directory Table set to location for 4MB ROM"
368 depends on AMD_FWM_POSITION_INDEX = 3
369 comment "AMD Firmware Directory Table set to location for 8MB ROM"
370 depends on AMD_FWM_POSITION_INDEX = 4
371 comment "AMD Firmware Directory Table set to location for 16MB ROM"
372 depends on AMD_FWM_POSITION_INDEX = 5
374 config AMDFW_CONFIG_FILE
375 string "AMD PSP Firmware config file"
376 default "src/soc/amd/mendocino/fw.cfg"
378 Specify the path/location of AMD PSP Firmware config file.
380 config PSP_DISABLE_POSTCODES
381 bool "Disable PSP post codes"
383 Disables the output of port80 post codes from PSP.
385 config PSP_POSTCODES_ON_ESPI
386 bool "Use eSPI bus for PSP post codes"
388 depends on !PSP_DISABLE_POSTCODES
390 Select to send PSP port80 post codes on eSPI bus.
391 If not selected, PSP port80 codes will be sent on LPC bus.
393 config PSP_LOAD_MP2_FW
397 Include the MP2 firmwares and configuration into the PSP build.
399 If unsure, answer 'n'
401 config PSP_UNLOCK_SECURE_DEBUG
402 bool "Unlock secure debug"
405 Select this item to enable secure debug options in PSP.
407 config HAVE_PSP_WHITELIST_FILE
408 bool "Include a debug whitelist file in PSP build"
411 Support secured unlock prior to reset using a whitelisted
412 serial number. This feature requires a signed whitelist image
413 and bootloader from AMD.
415 If unsure, answer 'n'
417 config PSP_WHITELIST_FILE
418 string "Debug whitelist file path"
419 depends on HAVE_PSP_WHITELIST_FILE
420 default "site-local/3rdparty/amd_blobs/mendocino/PSP/wtl-mdn.sbin"
423 bool "Have a mainboard specific SPL table file"
426 Have a mainboard specific Security Patch Level (SPL) table file. SPL file
427 is required to support PSP FW anti-rollback and needs to be created by AMD.
428 The default SPL file applies to all boards that use the concerned SoC and
429 is dropped under 3rdparty/blobs. The mainboard specific SPL file override
430 can be applied through SPL_TABLE_FILE config.
432 If unsure, answer 'n'
434 config SPL_TABLE_FILE
435 string "SPL table file"
436 depends on HAVE_SPL_FILE
437 default "3rdparty/blobs/mainboard/\$(CONFIG_MAINBOARD_DIR)/TypeId0x55_SplTableBl_MDN.sbin"
439 config HAVE_SPL_RW_AB_FILE
440 bool "Have a separate mainboard-specific SPL file in RW A/B partitions"
442 depends on HAVE_SPL_FILE
443 depends on VBOOT_SLOTS_RW_AB
445 Have separate mainboard-specific Security Patch Level (SPL) table
446 file for the RW A/B FMAP partitions. See the help text of
447 HAVE_SPL_FILE for a more detailed description.
449 config SPL_RW_AB_TABLE_FILE
450 string "Separate SPL table file for RW A/B partitions"
451 depends on HAVE_SPL_RW_AB_FILE
452 default "3rdparty/blobs/mainboard/\$(CONFIG_MAINBOARD_DIR)/TypeId0x55_SplTableBl_MDN.sbin"
454 config PSP_SOFTFUSE_BITS
455 string "PSP Soft Fuse bits to enable"
458 Space separated list of Soft Fuse bits to enable.
459 Bit 0: Enable secure debug (Set by PSP_UNLOCK_SECURE_DEBUG)
460 Bit 7: Disable PSP postcodes on Renoir and newer chips only
461 (Set by PSP_DISABLE_PORT80)
462 Bit 15: PSP debug output destination:
463 0=SoC MMIO UART, 1=IO port 0x3F8
464 Bit 29: Disable MP2 firmware loading (Set by PSP_LOAD_MP2_FW)
466 See #55758 (NDA) for additional bit definitions.
468 config PSP_VERSTAGE_FILE
469 string "Specify the PSP_verstage file path"
470 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
471 default "\$(obj)/psp_verstage.bin"
473 Add psp_verstage file to the build & PSP Directory Table
475 config PSP_VERSTAGE_SIGNING_TOKEN
476 string "Specify the PSP_verstage Signature Token file path"
477 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
480 Add psp_verstage signature token to the build & PSP Directory Table
485 select VBOOT_VBNV_CMOS
486 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
488 config VBOOT_STARTS_BEFORE_BOOTBLOCK
491 select ARCH_VERSTAGE_ARMV7
493 Runs verstage on the PSP. Only available on
494 certain ChromeOS branded parts from AMD.
496 config VBOOT_HASH_BLOCK_SIZE
499 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
501 Because the bulk of the time in psp_verstage to hash the RO cbfs is
502 spent in the overhead of doing svc calls, increasing the hash block
503 size significantly cuts the verstage hashing time as seen below.
509 There's actually still room for an even bigger stack, but we've
510 reached a point of diminishing returns.
512 config CMOS_RECOVERY_BYTE
515 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
517 If the workbuf is not passed from the PSP to coreboot, set the
518 recovery flag and reboot. The PSP will read this byte, mark the
519 recovery request in VBNV, and reset the system into recovery mode.
521 This is the byte before the default first byte used by VBNV
524 if VBOOT_SLOTS_RW_A && VBOOT_STARTS_BEFORE_BOOTBLOCK
526 config RWA_REGION_ONLY
528 default "apu/amdfw_a apu/amdfw_a_body"
530 Add a space-delimited list of filenames that should only be in the
533 endif # VBOOT_SLOTS_RW_A && VBOOT_STARTS_BEFORE_BOOTBLOCK
535 if VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
537 config RWB_REGION_ONLY
539 default "apu/amdfw_b apu/amdfw_b_body"
541 Add a space-delimited list of filenames that should only be in the
544 endif # VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
546 endif # SOC_AMD_REMBRANDT_BASE