soc/amd/mendocino/Kconfig: Remove TODO after review
[coreboot.git] / src / soc / amd / mendocino / Kconfig
blob64cec5d030ffd445844b1d198cf7738c40f920f8
1 # SPDX-License-Identifier: GPL-2.0-only
3 config SOC_AMD_REMBRANDT_BASE
4         bool
6 config SOC_AMD_MENDOCINO
7         bool
8         select SOC_AMD_REMBRANDT_BASE
9         help
10           AMD Mendocino support
12 config SOC_AMD_REMBRANDT
13         bool
14         select SOC_AMD_REMBRANDT_BASE
15         help
16           AMD Rembrandt support
19 if SOC_AMD_REMBRANDT_BASE
21 config SOC_SPECIFIC_OPTIONS
22         def_bool y
23         select ACPI_SOC_NVS
24         select ARCH_X86
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
33         select HAVE_CF9_RESET
34         select HAVE_EM100_SUPPORT
35         select HAVE_FSP_GOP
36         select HAVE_SMI_HANDLER
37         select IDT_IN_EVERY_STAGE
38         select NO_DDR4
39         select NO_DDR3
40         select NO_DDR2
41         select NO_LPDDR4
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
48         select RTC
49         select SOC_AMD_COMMON
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
93         select SSE2
94         select UDK_2017_BINDING
95         select USE_DDR5
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
105         string
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
110         hex
111         default 0x2000000
112         help
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
117           resume.
119 config EARLYRAM_BSP_STACK_SIZE
120         hex
121         default 0x1000
123 config PSP_APOB_DRAM_ADDRESS
124         hex
125         default 0x2001000
126         help
127           Location in DRAM where the PSP will copy the AGESA PSP Output
128           Block.
130 config PSP_APOB_DRAM_SIZE
131         hex
132         default 0x1E000
134 config PSP_SHAREDMEM_BASE
135         hex
136         default 0x201F000 if VBOOT
137         default 0x0
138         help
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
145         hex
146         default 0x8000 if VBOOT
147         default 0x0
148         help
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
153           vector.
155 config PRE_X86_CBMEM_CONSOLE_SIZE
156         hex
157         default 0x1000
158         help
159           Size of the CBMEM console used in PSP verstage.
161 config PRERAM_CBMEM_CONSOLE_SIZE
162         hex
163         default 0x1600
164         help
165           Increase this value if preram cbmem console is getting truncated
167 config CBFS_MCACHE_SIZE
168         hex
169         default 0x3800 if VBOOT_STARTS_BEFORE_BOOTBLOCK
171 config C_ENV_BOOTBLOCK_SIZE
172         hex
173         default 0x10000
174         help
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
177           for bootblock stage.
179 config ROMSTAGE_ADDR
180         hex
181         default 0x2040000
182         help
183           Sets the address in DRAM where romstage should be loaded.
185 config ROMSTAGE_SIZE
186         hex
187         default 0x80000
188         help
189           Sets the size of DRAM allocation for romstage in linker script.
191 config FSP_M_ADDR
192         hex
193         default 0x20C0000
194         help
195           Sets the address in DRAM where FSP-M should be loaded. cbfstool
196           performs relocation of FSP-M to this address.
198 config FSP_M_SIZE
199         hex
200         default 0xC0000
201         help
202           Sets the size of DRAM allocation for FSP-M in linker script.
204 config FSP_TEMP_RAM_SIZE
205         hex
206         default 0x40000
207         help
208           The amount of coreboot-allocated heap and stack usage by the FSP.
210 config VERSTAGE_ADDR
211         hex
212         depends on VBOOT_SEPARATE_VERSTAGE
213         default 0x2180000
214         help
215           Sets the address in DRAM where verstage should be loaded if running
216           as a separate stage on x86.
218 config VERSTAGE_SIZE
219         hex
220         depends on VBOOT_SEPARATE_VERSTAGE
221         default 0x80000
222         help
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
230         select CBFS_PRELOAD
231         help
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
238         hex
239         default 0x40000 if CBFS_PRELOAD
241 config RO_REGION_ONLY
242         string
243         depends on VBOOT_SLOTS_RW_AB || VBOOT_SLOTS_RW_A
244         default "apu/amdfw"
246 config ECAM_MMCONF_BASE_ADDRESS
247         default 0xF8000000
249 config ECAM_MMCONF_BUS_NUMBER
250         default 64
252 config MAX_CPUS
253         int
254         default 8 if SOC_AMD_MENDOCINO
255         default 16
256         help
257           Maximum number of threads the platform can have.
259 config CONSOLE_UART_BASE_ADDRESS
260         depends on CONSOLE_SERIAL && AMD_SOC_CONSOLE_UART
261         hex
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
268 config SMM_TSEG_SIZE
269         hex
270         default 0x800000 if HAVE_SMI_HANDLER
271         default 0x0
273 config SMM_RESERVED_SIZE
274         hex
275         default 0x180000
277 config SMM_MODULE_STACK_SIZE
278         hex
279         default 0x800
281 config ACPI_BERT
282         bool "Build ACPI BERT Table"
283         default y
284         depends on HAVE_ACPI_TABLES
285         help
286           Report Machine Check errors identified in POST to the OS in an
287           ACPI Boot Error Record Table.
289 config ACPI_BERT_SIZE
290         hex
291         default 0x4000 if ACPI_BERT
292         default 0x0
293         help
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
298         int
299         default 150
301 config DISABLE_SPI_FLASH_ROM_SHARING
302         def_bool n
303         help
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
310         bool
311         help
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"
319         default y
320         help
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
326         bool
327         depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
328         help
329           Selected by mainboards that implement support for ALIB
330           to enable dynamic DPTC.
332 config FEATURE_TABLET_MODE_DPTC
333         bool
334         depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
335         help
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)"
343         range 0 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
350         help
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
355             1: 1 MB   - 0xFFF20000
356             2: 2 MB   - 0xFFE20000
357             3: 4 MB   - 0xFFC20000
358             4: 8 MB   - 0xFF820000
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"
377         help
378           Specify the path/location of AMD PSP Firmware config file.
380 config PSP_DISABLE_POSTCODES
381         bool "Disable PSP post codes"
382         help
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"
387         default y
388         depends on !PSP_DISABLE_POSTCODES
389         help
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
394         bool
395         default n
396         help
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"
403         default y
404         help
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"
409         default n
410         help
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"
422 config HAVE_SPL_FILE
423         bool "Have a mainboard specific SPL table file"
424         default n
425         help
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"
441         default n
442         depends on HAVE_SPL_FILE
443         depends on VBOOT_SLOTS_RW_AB
444         help
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"
456         default "34 28 6"
457         help
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"
472         help
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
478         default ""
479         help
480           Add psp_verstage signature token to the build & PSP Directory Table
482 endmenu
484 config VBOOT
485         select VBOOT_VBNV_CMOS
486         select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
488 config VBOOT_STARTS_BEFORE_BOOTBLOCK
489         def_bool n
490         depends on VBOOT
491         select ARCH_VERSTAGE_ARMV7
492         help
493           Runs verstage on the PSP.  Only available on
494           certain ChromeOS branded parts from AMD.
496 config VBOOT_HASH_BLOCK_SIZE
497         hex
498         default 0x9000
499         depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
500         help
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.
505           4k takes 180ms
506           16k takes 44ms
507           32k takes 33.7ms
508           36k takes 32.5ms
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
513         hex
514         default 0x51
515         depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
516         help
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
522           (0x26 + 0x0E - 1)
524 if VBOOT_SLOTS_RW_A && VBOOT_STARTS_BEFORE_BOOTBLOCK
526 config RWA_REGION_ONLY
527         string
528         default "apu/amdfw_a apu/amdfw_a_body"
529         help
530           Add a space-delimited list of filenames that should only be in the
531           RW-A section.
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
538         string
539         default "apu/amdfw_b apu/amdfw_b_body"
540         help
541           Add a space-delimited list of filenames that should only be in the
542           RW-B section.
544 endif # VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
546 endif # SOC_AMD_REMBRANDT_BASE