1 # SPDX-License-Identifier: GPL-2.0-only
3 config SOC_AMD_REMBRANDT_BASE
6 select ADD_FSP_BINARIES if USE_AMD_BLOBS
8 select BOOT_DEVICE_SUPPORTS_WRITES if BOOT_DEVICE_SPI_FLASH
9 select CACHE_MRC_SETTINGS
10 select DRIVERS_USB_ACPI
11 select DRIVERS_USB_PCI_XHCI
12 select FSP_COMPRESS_FSP_M_LZMA if !ASYNC_FILE_LOADING
13 select FSP_COMPRESS_FSP_M_LZ4 if ASYNC_FILE_LOADING
14 select FSP_COMPRESS_FSP_S_LZ4
15 select GENERIC_GPIO_LIB
16 select HAVE_ACPI_TABLES
18 select HAVE_EM100_SUPPORT
20 select HAVE_FSP_LOGO_SUPPORT if RUN_FSP_GOP
21 select HAVE_SMI_HANDLER
22 select IDT_IN_EVERY_STAGE
23 select PARALLEL_MP_AP_WORK
24 select PLATFORM_USES_FSP2_0
25 select PROVIDES_ROM_SHARING
26 select PSP_INCLUDES_HSP
27 select PSP_SUPPORTS_EFS2_RELATIVE_ADDR if VBOOT_STARTS_BEFORE_BOOTBLOCK
28 select PSP_VERSTAGE_CCP_DMA if VBOOT_STARTS_BEFORE_BOOTBLOCK
29 select RESET_VECTOR_IN_RAM
32 select SOC_AMD_COMMON_BLOCK_ACP_GEN2
33 select SOC_AMD_COMMON_BLOCK_ACPI
34 select SOC_AMD_COMMON_BLOCK_ACPIMMIO
35 select SOC_AMD_COMMON_BLOCK_ACPIMMIO_PM_IO_ACCESS
36 select SOC_AMD_COMMON_BLOCK_ACPI_ALIB
37 select SOC_AMD_COMMON_BLOCK_ACPI_CPPC
38 select SOC_AMD_COMMON_BLOCK_ACPI_CPU_POWER_STATE
39 select SOC_AMD_COMMON_BLOCK_ACPI_GPIO
40 select SOC_AMD_COMMON_BLOCK_ACPI_IVRS
41 select SOC_AMD_COMMON_BLOCK_ACPI_MADT
42 select SOC_AMD_COMMON_BLOCK_AOAC
43 select SOC_AMD_COMMON_BLOCK_APOB
44 select SOC_AMD_COMMON_BLOCK_APOB_HASH
45 select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS
46 select SOC_AMD_COMMON_BLOCK_CPUFREQ_FAM17H_19H
47 select SOC_AMD_COMMON_BLOCK_CPU_SYNC_PSP_ADDR_MSR
48 select SOC_AMD_COMMON_BLOCK_DATA_FABRIC
49 select SOC_AMD_COMMON_BLOCK_DATA_FABRIC_DOMAIN
50 select SOC_AMD_COMMON_BLOCK_ESPI_EXTENDED_DECODE_RANGES
51 select SOC_AMD_COMMON_BLOCK_GPP_CLK
52 select SOC_AMD_COMMON_BLOCK_GRAPHICS
53 select SOC_AMD_COMMON_BLOCK_HAS_ESPI
54 select SOC_AMD_COMMON_BLOCK_HAS_ESPI_ALERT_ENABLE
55 select SOC_AMD_COMMON_BLOCK_I2C
56 select SOC_AMD_COMMON_BLOCK_I23C_PAD_CTRL
57 select SOC_AMD_COMMON_BLOCK_IOMMU
58 select SOC_AMD_COMMON_BLOCK_LPC
59 select SOC_AMD_COMMON_BLOCK_LPC_SPI_DMA
60 select SOC_AMD_COMMON_BLOCK_MCAX
61 select SOC_AMD_COMMON_BLOCK_NONCAR
62 select SOC_AMD_COMMON_BLOCK_PCI
63 select SOC_AMD_COMMON_BLOCK_PCI_MMCONF
64 select SOC_AMD_COMMON_BLOCK_PCIE_GPP_DRIVER
65 select SOC_AMD_COMMON_BLOCK_PM
66 select SOC_AMD_COMMON_BLOCK_PM_CHIPSET_STATE_SAVE
67 select SOC_AMD_COMMON_BLOCK_PSP_GEN2
68 select SOC_AMD_COMMON_BLOCK_PSP_SPL
69 select SOC_AMD_COMMON_BLOCK_RESET
70 select SOC_AMD_COMMON_BLOCK_SMBUS
71 select SOC_AMD_COMMON_BLOCK_SMI
72 select SOC_AMD_COMMON_BLOCK_SMM
73 select SOC_AMD_COMMON_BLOCK_SMU
74 select SOC_AMD_COMMON_BLOCK_SMU_SX_ENTRY
75 select SOC_AMD_COMMON_BLOCK_SPI
76 select SOC_AMD_COMMON_BLOCK_STB
77 select SOC_AMD_COMMON_BLOCK_SVI3
78 select SOC_AMD_COMMON_BLOCK_TSC
79 select SOC_AMD_COMMON_BLOCK_UART
80 select SOC_AMD_COMMON_BLOCK_UCODE
81 select SOC_AMD_COMMON_BLOCK_XHCI
82 select SOC_AMD_COMMON_FSP_CCX_CPPC_HOB
83 select SOC_AMD_COMMON_FSP_DMI_TABLES
84 select SOC_AMD_COMMON_FSP_PCI
85 select SOC_AMD_COMMON_FSP_PCIE_CLK_REQ
86 select SOC_AMD_COMMON_FSP_PRELOAD_FSPS
87 select SOC_AMD_COMMON_ROMSTAGE_LEGACY_DMA_FIXUP
89 select UDK_2017_BINDING
91 select USE_FSP_NOTIFY_PHASE_POST_PCI_ENUM
92 select USE_FSP_NOTIFY_PHASE_READY_TO_BOOT
93 select USE_FSP_NOTIFY_PHASE_END_OF_FIRMWARE
94 select VBOOT_DEFINE_WIDEVINE_COUNTERS if VBOOT_STARTS_BEFORE_BOOTBLOCK
95 select VBOOT_MUST_REQUEST_DISPLAY if VBOOT
96 select VBOOT_X86_SHA256_ACCELERATION if VBOOT
97 select X86_AMD_FIXED_MTRRS
98 select X86_INIT_NEED_1_SIPI
100 config SOC_AMD_MENDOCINO
102 select SOC_AMD_REMBRANDT_BASE
104 AMD Mendocino support
106 config SOC_AMD_REMBRANDT
108 select SOC_AMD_REMBRANDT_BASE
110 AMD Rembrandt support
113 if SOC_AMD_REMBRANDT_BASE
115 config CHIPSET_DEVICETREE
117 default "soc/amd/mendocino/chipset_mendocino.cb" if SOC_AMD_MENDOCINO
118 default "soc/amd/mendocino/chipset_rembrandt.cb"
121 string "FSP-M (memory init) binary path and filename"
122 depends on ADD_FSP_BINARIES
123 default "3rdparty/amd_blobs/mendocino/MENDOCINO_M.fd" if SOC_AMD_MENDOCINO
125 The path and filename of the FSP-M binary for this platform.
128 string "FSP-S (silicon init) binary path and filename"
129 depends on ADD_FSP_BINARIES
130 default "3rdparty/amd_blobs/mendocino/MENDOCINO_S.fd" if SOC_AMD_MENDOCINO
132 The path and filename of the FSP-S binary for this platform.
134 config EARLY_RESERVED_DRAM_BASE
138 This variable defines the base address of the DRAM which is reserved
139 for usage by coreboot in early stages (i.e. before ramstage is up).
140 This memory gets reserved in BIOS tables to ensure that the OS does
141 not use it, thus preventing corruption of OS memory in case of S3
144 config EARLYRAM_BSP_STACK_SIZE
148 config PSP_APOB_DRAM_ADDRESS
152 Location in DRAM where the PSP will copy the AGESA PSP Output
155 config PSP_APOB_DRAM_SIZE
159 config PSP_SHAREDMEM_BASE
161 default 0x201F000 if VBOOT
164 This variable defines the base address in DRAM memory where PSP copies
165 the vboot workbuf. This is used in the linker script to have a static
166 allocation for the buffer as well as for adding relevant entries in
167 the BIOS directory table for the PSP.
169 config PSP_SHAREDMEM_SIZE
171 default 0x8000 if VBOOT
174 Sets the maximum size for the PSP to pass the vboot workbuf and
175 any logs or timestamps back to coreboot. This will be copied
176 into main memory by the PSP and will be available when the x86 is
177 started. The workbuf's base depends on the address of the reset
180 config PRE_X86_CBMEM_CONSOLE_SIZE
184 Size of the CBMEM console used in PSP verstage.
186 config PRERAM_CBMEM_CONSOLE_SIZE
190 Increase this value if preram cbmem console is getting truncated
192 config CBFS_MCACHE_SIZE
194 default 0x3800 if VBOOT_STARTS_BEFORE_BOOTBLOCK
196 config C_ENV_BOOTBLOCK_SIZE
200 Sets the size of the bootblock stage that should be loaded in DRAM.
201 This variable controls the DRAM allocation size in linker script
208 Sets the address in DRAM where romstage should be loaded.
214 Sets the size of DRAM allocation for romstage in linker script.
220 Sets the address in DRAM where FSP-M should be loaded. cbfstool
221 performs relocation of FSP-M to this address.
227 Sets the size of DRAM allocation for FSP-M in linker script.
229 config FSP_TEMP_RAM_SIZE
233 The amount of coreboot-allocated heap and stack usage by the FSP.
237 depends on VBOOT_SEPARATE_VERSTAGE
240 Sets the address in DRAM where verstage should be loaded if running
241 as a separate stage on x86.
245 depends on VBOOT_SEPARATE_VERSTAGE
248 Sets the size of DRAM allocation for verstage in linker script if
249 running as a separate stage on x86.
251 config ASYNC_FILE_LOADING
252 bool "Loads files from SPI asynchronously"
253 select COOP_MULTITASKING
254 select SOC_AMD_COMMON_BLOCK_LPC_SPI_DMA
257 When enabled, the platform will use the LPC SPI DMA controller to
258 asynchronously load contents from the SPI ROM. This will improve
259 boot time because the CPUs can be performing useful work while the
260 SPI contents are being preloaded.
262 config CBFS_CACHE_SIZE
264 default 0x40000 if CBFS_PRELOAD || SOC_AMD_COMMON_BLOCK_LPC_SPI_DMA
266 config RO_REGION_ONLY
268 depends on VBOOT_SLOTS_RW_AB || VBOOT_SLOTS_RW_A
271 config ECAM_MMCONF_BASE_ADDRESS
274 config ECAM_MMCONF_BUS_NUMBER
279 default 8 if SOC_AMD_MENDOCINO
282 Maximum number of threads the platform can have.
286 default "1002,1506" if SOC_AMD_MENDOCINO
288 The default VGA BIOS PCI vendor/device ID of the GPU and VBIOS.
292 default "3rdparty/amd_blobs/mendocino/MdnGenericVbios.bin" if SOC_AMD_MENDOCINO
294 config CONSOLE_UART_BASE_ADDRESS
295 depends on CONSOLE_SERIAL && AMD_SOC_CONSOLE_UART
297 default 0xfedc9000 if UART_FOR_CONSOLE = 0
298 default 0xfedca000 if UART_FOR_CONSOLE = 1
299 default 0xfedce000 if UART_FOR_CONSOLE = 2
300 default 0xfedcf000 if UART_FOR_CONSOLE = 3
301 default 0xfedd1000 if UART_FOR_CONSOLE = 4
305 default 0x800000 if HAVE_SMI_HANDLER
308 config SMM_RESERVED_SIZE
312 config SMM_MODULE_STACK_SIZE
317 bool "Build ACPI BERT Table"
319 depends on HAVE_ACPI_TABLES
321 Report Machine Check errors identified in POST to the OS in an
322 ACPI Boot Error Record Table.
324 config ACPI_BERT_SIZE
326 default 0x4000 if ACPI_BERT
329 Specify the amount of DRAM reserved for gathering the data used to
330 generate the ACPI table.
332 config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
336 config DISABLE_SPI_FLASH_ROM_SHARING
339 Instruct the chipset to not honor the EGPIO67_SPI_ROM_REQ pin
340 which indicates a board level ROM transaction request. This
341 removes arbitration with board and assumes the chipset controls
342 the SPI flash bus entirely.
344 config DISABLE_KEYBOARD_RESET_PIN
347 Instruct the SoC to not to reset based on the state of GPIO_21, KBDRST_L.
349 config FEATURE_DYNAMIC_DPTC
351 depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
353 Selected by mainboards that implement support for ALIB
354 to enable dynamic DPTC.
356 config FEATURE_TABLET_MODE_DPTC
358 depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
360 Selected by mainboards that implement support for ALIB to
361 switch default and tablet mode.
363 menu "PSP Configuration Options"
365 config AMDFW_CONFIG_FILE
366 string "AMD PSP Firmware config file"
367 default "src/soc/amd/mendocino/fw.cfg"
369 Specify the path/location of AMD PSP Firmware config file.
371 config PSP_DISABLE_POSTCODES
372 bool "Disable PSP post codes"
374 Disables the output of port80 post codes from PSP.
376 config PSP_POSTCODES_ON_ESPI
377 bool "Use eSPI bus for PSP post codes"
379 depends on !PSP_DISABLE_POSTCODES
381 Select to send PSP port80 post codes on eSPI bus.
382 If not selected, PSP port80 codes will be sent on LPC bus.
384 config PSP_LOAD_MP2_FW
388 Include the MP2 firmwares and configuration into the PSP build.
390 If unsure, answer 'n'
392 config PSP_UNLOCK_SECURE_DEBUG
393 bool "Unlock secure debug"
396 Select this item to enable secure debug options in PSP.
398 config HAVE_PSP_WHITELIST_FILE
399 bool "Include a debug whitelist file in PSP build"
402 Support secured unlock prior to reset using a whitelisted
403 serial number. This feature requires a signed whitelist image
404 and bootloader from AMD.
406 If unsure, answer 'n'
408 config PSP_WHITELIST_FILE
409 string "Debug whitelist file path"
410 depends on HAVE_PSP_WHITELIST_FILE
411 default "site-local/3rdparty/amd_blobs/mendocino/PSP/wtl-mdn.sbin"
413 config PSP_SOFTFUSE_BITS
414 string "PSP Soft Fuse bits to enable"
417 Space separated list of Soft Fuse bits to enable.
418 Bit 0: Enable secure debug (Set by PSP_UNLOCK_SECURE_DEBUG)
419 Bit 7: Disable PSP postcodes on Renoir and newer chips only
420 (Set by PSP_DISABLE_PORT80)
421 Bit 15: PSP debug output destination:
422 0=SoC MMIO UART, 1=IO port 0x3F8
423 Bit 29: Disable MP2 firmware loading (Set by PSP_LOAD_MP2_FW)
425 See #55758 (NDA) for additional bit definitions.
427 config PSP_VERSTAGE_FILE
428 string "Specify the PSP_verstage file path"
429 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
430 default "\$(obj)/psp_verstage.bin"
432 Add psp_verstage file to the build & PSP Directory Table
434 config PSP_VERSTAGE_SIGNING_TOKEN
435 string "Specify the PSP_verstage Signature Token file path"
436 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
439 Add psp_verstage signature token to the build & PSP Directory Table
444 select VBOOT_VBNV_CMOS
445 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
447 config VBOOT_STARTS_BEFORE_BOOTBLOCK
450 select ARCH_VERSTAGE_ARMV7
452 Runs verstage on the PSP. Only available on
453 certain ChromeOS branded parts from AMD.
455 config VBOOT_HASH_BLOCK_SIZE
458 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
460 Because the bulk of the time in psp_verstage to hash the RO cbfs is
461 spent in the overhead of doing svc calls, increasing the hash block
462 size significantly cuts the verstage hashing time as seen below.
468 There's actually still room for an even bigger stack, but we've
469 reached a point of diminishing returns.
471 config CMOS_RECOVERY_BYTE
474 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
476 If the workbuf is not passed from the PSP to coreboot, set the
477 recovery flag and reboot. The PSP will read this byte, mark the
478 recovery request in VBNV, and reset the system into recovery mode.
480 This is the byte before the default first byte used by VBNV
483 if VBOOT_SLOTS_RW_A && VBOOT_STARTS_BEFORE_BOOTBLOCK
485 config RWA_REGION_ONLY
487 default "apu/amdfw_a apu/amdfw_a_body"
489 Add a space-delimited list of filenames that should only be in the
492 endif # VBOOT_SLOTS_RW_A && VBOOT_STARTS_BEFORE_BOOTBLOCK
494 if VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
496 config RWB_REGION_ONLY
498 default "apu/amdfw_b apu/amdfw_b_body"
500 Add a space-delimited list of filenames that should only be in the
503 endif # VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
505 endif # SOC_AMD_REMBRANDT_BASE