soc/intel/pantherlake: Add core scaling factors read support
[coreboot2.git] / src / soc / amd / mendocino / Kconfig
blobee6c968d2ee1919b32e2aacb45ec708f40609c1f
1 # SPDX-License-Identifier: GPL-2.0-only
3 config SOC_AMD_REMBRANDT_BASE
4         bool
5         select ACPI_SOC_NVS
6         select ADD_FSP_BINARIES if USE_AMD_BLOBS
7         select ARCH_X86
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
17         select HAVE_CF9_RESET
18         select HAVE_EM100_SUPPORT
19         select HAVE_FSP_GOP
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
30         select RTC
31         select SOC_AMD_COMMON
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
88         select SSE2
89         select UDK_2017_BINDING
90         select USE_DDR5
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
101         bool
102         select SOC_AMD_REMBRANDT_BASE
103         help
104           AMD Mendocino support
106 config SOC_AMD_REMBRANDT
107         bool
108         select SOC_AMD_REMBRANDT_BASE
109         help
110           AMD Rembrandt support
113 if SOC_AMD_REMBRANDT_BASE
115 config CHIPSET_DEVICETREE
116         string
117         default "soc/amd/mendocino/chipset_mendocino.cb" if SOC_AMD_MENDOCINO
118         default "soc/amd/mendocino/chipset_rembrandt.cb"
120 config FSP_M_FILE
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
124         help
125           The path and filename of the FSP-M binary for this platform.
127 config FSP_S_FILE
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
131         help
132           The path and filename of the FSP-S binary for this platform.
134 config EARLY_RESERVED_DRAM_BASE
135         hex
136         default 0x2000000
137         help
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
142           resume.
144 config EARLYRAM_BSP_STACK_SIZE
145         hex
146         default 0x1000
148 config PSP_APOB_DRAM_ADDRESS
149         hex
150         default 0x2001000
151         help
152           Location in DRAM where the PSP will copy the AGESA PSP Output
153           Block.
155 config PSP_APOB_DRAM_SIZE
156         hex
157         default 0x1E000
159 config PSP_SHAREDMEM_BASE
160         hex
161         default 0x201F000 if VBOOT
162         default 0x0
163         help
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
170         hex
171         default 0x8000 if VBOOT
172         default 0x0
173         help
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
178           vector.
180 config PRE_X86_CBMEM_CONSOLE_SIZE
181         hex
182         default 0x1000
183         help
184           Size of the CBMEM console used in PSP verstage.
186 config PRERAM_CBMEM_CONSOLE_SIZE
187         hex
188         default 0x1600
189         help
190           Increase this value if preram cbmem console is getting truncated
192 config CBFS_MCACHE_SIZE
193         hex
194         default 0x3800 if VBOOT_STARTS_BEFORE_BOOTBLOCK
196 config C_ENV_BOOTBLOCK_SIZE
197         hex
198         default 0x20000
199         help
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
202           for bootblock stage.
204 config ROMSTAGE_ADDR
205         hex
206         default 0x2050000
207         help
208           Sets the address in DRAM where romstage should be loaded.
210 config ROMSTAGE_SIZE
211         hex
212         default 0x70000
213         help
214           Sets the size of DRAM allocation for romstage in linker script.
216 config FSP_M_ADDR
217         hex
218         default 0x20C0000
219         help
220           Sets the address in DRAM where FSP-M should be loaded. cbfstool
221           performs relocation of FSP-M to this address.
223 config FSP_M_SIZE
224         hex
225         default 0xC0000
226         help
227           Sets the size of DRAM allocation for FSP-M in linker script.
229 config FSP_TEMP_RAM_SIZE
230         hex
231         default 0x40000
232         help
233           The amount of coreboot-allocated heap and stack usage by the FSP.
235 config VERSTAGE_ADDR
236         hex
237         depends on VBOOT_SEPARATE_VERSTAGE
238         default 0x2180000
239         help
240           Sets the address in DRAM where verstage should be loaded if running
241           as a separate stage on x86.
243 config VERSTAGE_SIZE
244         hex
245         depends on VBOOT_SEPARATE_VERSTAGE
246         default 0x80000
247         help
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
255         select CBFS_PRELOAD
256         help
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
263         hex
264         default 0x40000 if CBFS_PRELOAD || SOC_AMD_COMMON_BLOCK_LPC_SPI_DMA
266 config RO_REGION_ONLY
267         string
268         depends on VBOOT_SLOTS_RW_AB || VBOOT_SLOTS_RW_A
269         default "apu/amdfw"
271 config ECAM_MMCONF_BASE_ADDRESS
272         default 0xF8000000
274 config ECAM_MMCONF_BUS_NUMBER
275         default 64
277 config MAX_CPUS
278         int
279         default 8 if SOC_AMD_MENDOCINO
280         default 16
281         help
282           Maximum number of threads the platform can have.
284 config VGA_BIOS_ID
285         string
286         default "1002,1506" if SOC_AMD_MENDOCINO
287         help
288           The default VGA BIOS PCI vendor/device ID of the GPU and VBIOS.
290 config VGA_BIOS_FILE
291         string
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
296         hex
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
303 config SMM_TSEG_SIZE
304         hex
305         default 0x800000 if HAVE_SMI_HANDLER
306         default 0x0
308 config SMM_RESERVED_SIZE
309         hex
310         default 0x180000
312 config SMM_MODULE_STACK_SIZE
313         hex
314         default 0x800
316 config ACPI_BERT
317         bool "Build ACPI BERT Table"
318         default y
319         depends on HAVE_ACPI_TABLES
320         help
321           Report Machine Check errors identified in POST to the OS in an
322           ACPI Boot Error Record Table.
324 config ACPI_BERT_SIZE
325         hex
326         default 0x4000 if ACPI_BERT
327         default 0x0
328         help
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
333         int
334         default 150
336 config DISABLE_SPI_FLASH_ROM_SHARING
337         def_bool n
338         help
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
345         bool
346         help
347           Instruct the SoC to not to reset based on the state of GPIO_21, KBDRST_L.
349 config FEATURE_DYNAMIC_DPTC
350         bool
351         depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
352         help
353           Selected by mainboards that implement support for ALIB
354           to enable dynamic DPTC.
356 config FEATURE_TABLET_MODE_DPTC
357         bool
358         depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
359         help
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"
368         help
369           Specify the path/location of AMD PSP Firmware config file.
371 config PSP_DISABLE_POSTCODES
372         bool "Disable PSP post codes"
373         help
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"
378         default y
379         depends on !PSP_DISABLE_POSTCODES
380         help
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
385         bool
386         default n
387         help
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"
394         default y
395         help
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"
400         default n
401         help
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"
415         default "34 28 6"
416         help
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"
431         help
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
437         default ""
438         help
439           Add psp_verstage signature token to the build & PSP Directory Table
441 endmenu
443 config VBOOT
444         select VBOOT_VBNV_CMOS
445         select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
447 config VBOOT_STARTS_BEFORE_BOOTBLOCK
448         def_bool n
449         depends on VBOOT
450         select ARCH_VERSTAGE_ARMV7
451         help
452           Runs verstage on the PSP.  Only available on
453           certain ChromeOS branded parts from AMD.
455 config VBOOT_HASH_BLOCK_SIZE
456         hex
457         default 0x9000
458         depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
459         help
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.
464           4k takes 180ms
465           16k takes 44ms
466           32k takes 33.7ms
467           36k takes 32.5ms
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
472         hex
473         default 0x51
474         depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
475         help
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
481           (0x26 + 0x0E - 1)
483 if VBOOT_SLOTS_RW_A && VBOOT_STARTS_BEFORE_BOOTBLOCK
485 config RWA_REGION_ONLY
486         string
487         default "apu/amdfw_a apu/amdfw_a_body"
488         help
489           Add a space-delimited list of filenames that should only be in the
490           RW-A section.
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
497         string
498         default "apu/amdfw_b apu/amdfw_b_body"
499         help
500           Add a space-delimited list of filenames that should only be in the
501           RW-B section.
503 endif # VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
505 endif # SOC_AMD_REMBRANDT_BASE