blob: 46e60173c666de394767538d2abc467886e5b61f [file] [log] [blame]
Felix Helddc2d3562020-12-02 14:38:53 +01001# SPDX-License-Identifier: GPL-2.0-only
2
3config SOC_AMD_CEZANNE
4 bool
5 help
6 AMD Cezanne support
7
8if SOC_AMD_CEZANNE
9
10config SOC_SPECIFIC_OPTIONS
11 def_bool y
Raul E Rangel24d024a2021-02-12 16:07:43 -070012 select ACPI_SOC_NVS
Felix Helddc2d3562020-12-02 14:38:53 +010013 select ARCH_BOOTBLOCK_X86_32
Kangheui Won66c5f252021-04-20 17:30:29 +100014 select ARCH_VERSTAGE_X86_32 if !VBOOT_STARTS_BEFORE_BOOTBLOCK
Felix Helddc2d3562020-12-02 14:38:53 +010015 select ARCH_ROMSTAGE_X86_32
16 select ARCH_RAMSTAGE_X86_32
Angel Pons8e035e32021-06-22 12:58:20 +020017 select ARCH_X86
Raul E Rangel54616622021-02-05 17:29:12 -070018 select BOOT_DEVICE_SUPPORTS_WRITES if BOOT_DEVICE_SPI_FLASH
Mathew Kingc519bff2021-03-04 08:26:51 -070019 select DRIVERS_USB_ACPI
Zheng Bao7b13e4e2021-03-16 16:13:56 +080020 select DRIVERS_I2C_DESIGNWARE
Mathew Kingc519bff2021-03-04 08:26:51 -070021 select DRIVERS_USB_PCI_XHCI
Felix Heldc9634992021-01-26 21:35:39 +010022 select FSP_COMPRESS_FSP_M_LZMA
23 select FSP_COMPRESS_FSP_S_LZMA
Raul E Rangele925af22021-03-30 16:32:20 -060024 select GENERIC_GPIO_LIB
Felix Held86024952021-02-03 23:44:28 +010025 select HAVE_ACPI_TABLES
Felix Held44f41532020-12-09 02:01:16 +010026 select HAVE_CF9_RESET
Felix Held227c6492021-03-22 14:44:58 +010027 select HAVE_EM100_SUPPORT
Nikolai Vyssotski0671d732021-03-11 19:12:38 -060028 select HAVE_FSP_GOP
Felix Heldee2a3652021-02-09 23:43:17 +010029 select HAVE_SMI_HANDLER
Felix Heldcb977342021-01-19 20:36:38 +010030 select IDT_IN_EVERY_STAGE
Felix Held4be064a2020-12-08 17:21:04 +010031 select IOAPIC
Felix Held7aacdd12021-02-10 23:27:47 +010032 select PARALLEL_MP_AP_WORK
Felix Held8d0a6092021-01-14 01:40:50 +010033 select PLATFORM_USES_FSP2_0
Raul E Rangel95b3dc32021-03-24 16:53:37 -060034 select PROVIDES_ROM_SHARING
Felix Helddc2d3562020-12-02 14:38:53 +010035 select RESET_VECTOR_IN_RAM
Felix Held7cd81b92021-02-11 14:58:08 +010036 select RTC
Felix Helddc2d3562020-12-02 14:38:53 +010037 select SOC_AMD_COMMON
Karthikeyan Ramasubramanianfbb027e2021-04-23 11:48:06 -060038 select SOC_AMD_COMMON_BLOCK_ACP
Felix Heldbb4bee852021-02-10 16:53:53 +010039 select SOC_AMD_COMMON_BLOCK_ACPI
Felix Held64de2c12020-12-05 20:53:59 +010040 select SOC_AMD_COMMON_BLOCK_ACPIMMIO
Felix Helddd882f32021-05-12 01:23:50 +020041 select SOC_AMD_COMMON_BLOCK_ACPI_ALIB
Eric Lai65b0afe2021-04-09 11:50:48 +080042 select SOC_AMD_COMMON_BLOCK_ACPI_GPIO
Jason Glenesk8d354282021-07-20 05:21:54 -070043 select SOC_AMD_COMMON_BLOCK_ACPI_IVRS
Felix Held62ef88f2020-12-08 23:18:19 +010044 select SOC_AMD_COMMON_BLOCK_AOAC
Felix Held9a6bc072021-03-05 00:14:08 +010045 select SOC_AMD_COMMON_BLOCK_APOB
Felix Held07462ef2020-12-11 15:55:45 +010046 select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS
Felix Heldea32c522021-02-13 01:42:44 +010047 select SOC_AMD_COMMON_BLOCK_DATA_FABRIC
Nikolai Vyssotski0671d732021-03-11 19:12:38 -060048 select SOC_AMD_COMMON_BLOCK_GRAPHICS
Felix Held28e23532021-02-24 20:52:08 +010049 select SOC_AMD_COMMON_BLOCK_HAS_ESPI
Zheng Baob0f00ed2021-03-16 15:28:49 +080050 select SOC_AMD_COMMON_BLOCK_I2C
Raul E Rangel3acc5152021-06-09 13:36:10 -060051 select SOC_AMD_COMMON_BLOCK_IOMMU
Zheng Bao3da55692021-01-26 18:30:18 +080052 select SOC_AMD_COMMON_BLOCK_LPC
Raul E Rangel9942af22021-06-24 17:09:54 -060053 select SOC_AMD_COMMON_BLOCK_LPC_SPI_DMA
Felix Held1e1d4902021-07-14 00:05:39 +020054 select SOC_AMD_COMMON_BLOCK_MCAX
Felix Helddc2d3562020-12-02 14:38:53 +010055 select SOC_AMD_COMMON_BLOCK_NONCAR
Raul E Rangela6529e72021-02-09 14:38:36 -070056 select SOC_AMD_COMMON_BLOCK_PCI
Felix Helddc2d3562020-12-02 14:38:53 +010057 select SOC_AMD_COMMON_BLOCK_PCI_MMCONF
Raul E Rangele4f83172021-05-10 14:49:55 -060058 select SOC_AMD_COMMON_BLOCK_PCIE_GPP_DRIVER
Karthikeyan Ramasubramanianf62bbc82021-03-30 15:19:12 -060059 select SOC_AMD_COMMON_BLOCK_PM
Martin Roth31f7a722021-03-23 14:53:58 -060060 select SOC_AMD_COMMON_BLOCK_PM_CHIPSET_STATE_SAVE
Felix Held338d6702021-01-29 23:13:56 +010061 select SOC_AMD_COMMON_BLOCK_PSP_GEN2
Felix Held4be064a2020-12-08 17:21:04 +010062 select SOC_AMD_COMMON_BLOCK_SMBUS
Zheng Bao02a5ddd2020-12-15 22:16:51 +080063 select SOC_AMD_COMMON_BLOCK_SMI
Felix Heldbc134812021-02-10 02:26:10 +010064 select SOC_AMD_COMMON_BLOCK_SMM
Felix Held7f3f52d2021-03-03 18:56:41 +010065 select SOC_AMD_COMMON_BLOCK_SMU
Raul E Rangel54616622021-02-05 17:29:12 -070066 select SOC_AMD_COMMON_BLOCK_SPI
Felix Held65783fb2020-12-04 17:38:46 +010067 select SOC_AMD_COMMON_BLOCK_TSC_FAM17H_19H
Felix Held8a3d4d52021-01-13 03:06:21 +010068 select SOC_AMD_COMMON_BLOCK_UART
Raul E Rangel35dc4b02021-02-12 16:04:27 -070069 select SOC_AMD_COMMON_BLOCK_UCODE
Nikolai Vyssotskicbc7c502021-04-28 18:24:28 -050070 select SOC_AMD_COMMON_FSP_DMI_TABLES
Raul E Rangelfd7ed872021-05-04 15:42:09 -060071 select SOC_AMD_COMMON_FSP_PCI
Felix Heldcc975c52021-01-23 00:18:08 +010072 select SSE2
Raul E Rangel61f441272021-06-25 11:24:38 -060073 select TIMER_QUEUE
Felix Held8d0a6092021-01-14 01:40:50 +010074 select UDK_2017_BINDING
Felix Heldf09221c2021-01-22 23:50:54 +010075 select X86_AMD_FIXED_MTRRS
Felix Held7aacdd12021-02-10 23:27:47 +010076 select X86_AMD_INIT_SIPI
Felix Helddc2d3562020-12-02 14:38:53 +010077
Angel Pons6f5a6582021-06-22 15:18:07 +020078config ARCH_ALL_STAGES_X86
79 default n
80
Raul E Rangel35dc4b02021-02-12 16:04:27 -070081config SOC_AMD_COMMON_BLOCK_UCODE_SIZE
82 default 5568
83
Furquan Shaikh696f4ea2021-01-08 11:48:52 -080084config CHIPSET_DEVICETREE
85 string
86 default "soc/amd/cezanne/chipset.cb"
87
Felix Helddc2d3562020-12-02 14:38:53 +010088config EARLY_RESERVED_DRAM_BASE
89 hex
90 default 0x2000000
91 help
92 This variable defines the base address of the DRAM which is reserved
93 for usage by coreboot in early stages (i.e. before ramstage is up).
94 This memory gets reserved in BIOS tables to ensure that the OS does
95 not use it, thus preventing corruption of OS memory in case of S3
96 resume.
97
98config EARLYRAM_BSP_STACK_SIZE
99 hex
100 default 0x1000
101
102config PSP_APOB_DRAM_ADDRESS
103 hex
104 default 0x2001000
105 help
106 Location in DRAM where the PSP will copy the AGESA PSP Output
107 Block.
108
Kangheui Won66c5f252021-04-20 17:30:29 +1000109config PSP_SHAREDMEM_BASE
110 hex
111 default 0x2011000 if VBOOT
112 default 0x0
113 help
114 This variable defines the base address in DRAM memory where PSP copies
115 the vboot workbuf. This is used in the linker script to have a static
116 allocation for the buffer as well as for adding relevant entries in
117 the BIOS directory table for the PSP.
118
119config PSP_SHAREDMEM_SIZE
120 hex
121 default 0x8000 if VBOOT
122 default 0x0
123 help
124 Sets the maximum size for the PSP to pass the vboot workbuf and
125 any logs or timestamps back to coreboot. This will be copied
126 into main memory by the PSP and will be available when the x86 is
127 started. The workbuf's base depends on the address of the reset
128 vector.
129
Felix Helddc2d3562020-12-02 14:38:53 +0100130config PRERAM_CBMEM_CONSOLE_SIZE
131 hex
132 default 0x1600
133 help
134 Increase this value if preram cbmem console is getting truncated
135
Kangheui Won4020aa72021-05-20 09:56:39 +1000136config CBFS_MCACHE_SIZE
137 hex
138 default 0x2000 if VBOOT_STARTS_BEFORE_BOOTBLOCK
139
Felix Helddc2d3562020-12-02 14:38:53 +0100140config C_ENV_BOOTBLOCK_SIZE
141 hex
142 default 0x10000
143 help
144 Sets the size of the bootblock stage that should be loaded in DRAM.
145 This variable controls the DRAM allocation size in linker script
146 for bootblock stage.
147
Felix Helddc2d3562020-12-02 14:38:53 +0100148config ROMSTAGE_ADDR
149 hex
150 default 0x2040000
151 help
152 Sets the address in DRAM where romstage should be loaded.
153
154config ROMSTAGE_SIZE
155 hex
156 default 0x80000
157 help
158 Sets the size of DRAM allocation for romstage in linker script.
159
160config FSP_M_ADDR
161 hex
162 default 0x20C0000
163 help
164 Sets the address in DRAM where FSP-M should be loaded. cbfstool
165 performs relocation of FSP-M to this address.
166
167config FSP_M_SIZE
168 hex
Karthikeyan Ramasubramanianc2310a12021-08-31 12:39:47 -0600169 default 0xC0000
Felix Helddc2d3562020-12-02 14:38:53 +0100170 help
171 Sets the size of DRAM allocation for FSP-M in linker script.
172
Felix Held8d0a6092021-01-14 01:40:50 +0100173config FSP_TEMP_RAM_SIZE
174 hex
175 default 0x40000
176 help
177 The amount of coreboot-allocated heap and stack usage by the FSP.
178
Raul E Rangel72616b32021-02-05 16:48:42 -0700179config VERSTAGE_ADDR
180 hex
181 depends on VBOOT_SEPARATE_VERSTAGE
Karthikeyan Ramasubramanianc2310a12021-08-31 12:39:47 -0600182 default 0x2180000
Raul E Rangel72616b32021-02-05 16:48:42 -0700183 help
184 Sets the address in DRAM where verstage should be loaded if running
185 as a separate stage on x86.
186
187config VERSTAGE_SIZE
188 hex
189 depends on VBOOT_SEPARATE_VERSTAGE
190 default 0x80000
191 help
192 Sets the size of DRAM allocation for verstage in linker script if
193 running as a separate stage on x86.
194
Felix Helddc2d3562020-12-02 14:38:53 +0100195config RAMBASE
196 hex
197 default 0x10000000
198
Raul E Rangel72616b32021-02-05 16:48:42 -0700199config RO_REGION_ONLY
200 string
201 depends on VBOOT_SLOTS_RW_AB || VBOOT_SLOTS_RW_A
202 default "apu/amdfw"
203
Felix Helddc2d3562020-12-02 14:38:53 +0100204config CPU_ADDR_BITS
205 int
206 default 48
207
208config MMCONF_BASE_ADDRESS
Felix Helddc2d3562020-12-02 14:38:53 +0100209 default 0xF8000000
210
211config MMCONF_BUS_NUMBER
Felix Helddc2d3562020-12-02 14:38:53 +0100212 default 64
213
Felix Held88615622021-01-19 23:51:45 +0100214config MAX_CPUS
215 int
216 default 16
Felix Heldb77387f2021-04-23 22:16:04 +0200217 help
218 Maximum number of threads the platform can have.
Felix Held88615622021-01-19 23:51:45 +0100219
Felix Held8a3d4d52021-01-13 03:06:21 +0100220config CONSOLE_UART_BASE_ADDRESS
221 depends on CONSOLE_SERIAL && AMD_SOC_CONSOLE_UART
222 hex
223 default 0xfedc9000 if UART_FOR_CONSOLE = 0
224 default 0xfedca000 if UART_FOR_CONSOLE = 1
225
Felix Heldee2a3652021-02-09 23:43:17 +0100226config SMM_TSEG_SIZE
227 hex
Felix Helde22eef72021-02-10 22:22:07 +0100228 default 0x800000 if HAVE_SMI_HANDLER
Felix Heldee2a3652021-02-09 23:43:17 +0100229 default 0x0
230
231config SMM_RESERVED_SIZE
232 hex
233 default 0x180000
234
235config SMM_MODULE_STACK_SIZE
236 hex
237 default 0x800
238
Felix Held90b07012021-04-15 20:23:56 +0200239config ACPI_BERT
240 bool "Build ACPI BERT Table"
241 default y
242 depends on HAVE_ACPI_TABLES
243 help
244 Report Machine Check errors identified in POST to the OS in an
245 ACPI Boot Error Record Table.
246
247config ACPI_BERT_SIZE
248 hex
249 default 0x4000 if ACPI_BERT
250 default 0x0
251 help
252 Specify the amount of DRAM reserved for gathering the data used to
253 generate the ACPI table.
254
Zheng Bao7b13e4e2021-03-16 16:13:56 +0800255config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
256 int
257 default 150
258
Raul E Rangel95b3dc32021-03-24 16:53:37 -0600259config DISABLE_SPI_FLASH_ROM_SHARING
260 def_bool n
261 help
262 Instruct the chipset to not honor the EGPIO67_SPI_ROM_REQ pin
263 which indicates a board level ROM transaction request. This
264 removes arbitration with board and assumes the chipset controls
265 the SPI flash bus entirely.
266
Felix Held27b295b2021-03-25 01:20:41 +0100267config DISABLE_KEYBOARD_RESET_PIN
268 bool
269 help
270 Instruct the SoC to not use the state of GPIO_129 as keyboard reset
271 signal. When this pin is used as GPIO and the keyboard reset
272 functionality isn't disabled, configuring it as an output and driving
273 it as 0 will cause a reset.
274
Jason Glenesk79542fa2021-03-10 03:50:57 -0800275config ACPI_SSDT_PSD_INDEPENDENT
276 bool "Allow core p-state independent transitions"
277 default y
278 help
279 AMD recommends the ACPI _PSD object to be configured to cause
280 cores to transition between p-states independently. A vendor may
281 choose to generate _PSD object to allow cores to transition together.
282
Zheng Baof51738d2021-01-20 16:43:52 +0800283menu "PSP Configuration Options"
284
285config AMD_FWM_POSITION_INDEX
286 int "Firmware Directory Table location (0 to 5)"
287 range 0 5
288 default 0 if BOARD_ROMSIZE_KB_512
289 default 1 if BOARD_ROMSIZE_KB_1024
290 default 2 if BOARD_ROMSIZE_KB_2048
291 default 3 if BOARD_ROMSIZE_KB_4096
292 default 4 if BOARD_ROMSIZE_KB_8192
293 default 5 if BOARD_ROMSIZE_KB_16384
294 help
295 Typically this is calculated by the ROM size, but there may
296 be situations where you want to put the firmware directory
297 table in a different location.
298 0: 512 KB - 0xFFFA0000
299 1: 1 MB - 0xFFF20000
300 2: 2 MB - 0xFFE20000
301 3: 4 MB - 0xFFC20000
302 4: 8 MB - 0xFF820000
303 5: 16 MB - 0xFF020000
304
305comment "AMD Firmware Directory Table set to location for 512KB ROM"
306 depends on AMD_FWM_POSITION_INDEX = 0
307comment "AMD Firmware Directory Table set to location for 1MB ROM"
308 depends on AMD_FWM_POSITION_INDEX = 1
309comment "AMD Firmware Directory Table set to location for 2MB ROM"
310 depends on AMD_FWM_POSITION_INDEX = 2
311comment "AMD Firmware Directory Table set to location for 4MB ROM"
312 depends on AMD_FWM_POSITION_INDEX = 3
313comment "AMD Firmware Directory Table set to location for 8MB ROM"
314 depends on AMD_FWM_POSITION_INDEX = 4
315comment "AMD Firmware Directory Table set to location for 16MB ROM"
316 depends on AMD_FWM_POSITION_INDEX = 5
317
318config AMDFW_CONFIG_FILE
319 string
320 default "src/soc/amd/cezanne/fw.cfg"
321
Rob Barnese09b6812021-04-15 17:21:19 -0600322config PSP_DISABLE_POSTCODES
323 bool "Disable PSP post codes"
324 help
325 Disables the output of port80 post codes from PSP.
326
327config PSP_POSTCODES_ON_ESPI
328 bool "Use eSPI bus for PSP post codes"
329 default y
330 depends on !PSP_DISABLE_POSTCODES
331 help
332 Select to send PSP port80 post codes on eSPI bus.
333 If not selected, PSP port80 codes will be sent on LPC bus.
334
Zheng Baof51738d2021-01-20 16:43:52 +0800335config PSP_LOAD_MP2_FW
336 bool
337 default n
338 help
339 Include the MP2 firmwares and configuration into the PSP build.
340
341 If unsure, answer 'n'
342
Zheng Baof51738d2021-01-20 16:43:52 +0800343config PSP_UNLOCK_SECURE_DEBUG
344 bool "Unlock secure debug"
345 default y
346 help
347 Select this item to enable secure debug options in PSP.
348
Raul E Rangel97b8b172021-02-24 16:59:32 -0700349config HAVE_PSP_WHITELIST_FILE
350 bool "Include a debug whitelist file in PSP build"
351 default n
352 help
353 Support secured unlock prior to reset using a whitelisted
354 serial number. This feature requires a signed whitelist image
355 and bootloader from AMD.
356
357 If unsure, answer 'n'
358
359config PSP_WHITELIST_FILE
360 string "Debug whitelist file path"
361 depends on HAVE_PSP_WHITELIST_FILE
362 default "3rdparty/amd_blobs/cezanne/PSP/wtl-czn.sbin"
363
Martin Rothfdad5ad2021-04-16 11:36:01 -0600364config PSP_SOFTFUSE_BITS
365 string "PSP Soft Fuse bits to enable"
366 default "28 6"
367 help
368 Space separated list of Soft Fuse bits to enable.
369 Bit 0: Enable secure debug (Set by PSP_UNLOCK_SECURE_DEBUG)
370 Bit 7: Disable PSP postcodes on Renoir and newer chips only
371 (Set by PSP_DISABLE_PORT80)
372 Bit 15: PSP post code destination: 0=LPC 1=eSPI
373 (Set by PSP_INITIALIZE_ESPI)
374 Bit 29: Disable MP2 firmware loading (Set by PSP_LOAD_MP2_FW)
375
376 See #55758 (NDA) for additional bit definitions.
377
Kangheui Won66c5f252021-04-20 17:30:29 +1000378config PSP_VERSTAGE_FILE
379 string "Specify the PSP_verstage file path"
380 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
Raul E Rangel21c70b12021-07-16 14:36:01 -0600381 default "\$(obj)/psp_verstage.bin"
Kangheui Won66c5f252021-04-20 17:30:29 +1000382 help
383 Add psp_verstage file to the build & PSP Directory Table
384
385config PSP_VERSTAGE_SIGNING_TOKEN
386 string "Specify the PSP_verstage Signature Token file path"
387 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
388 default ""
389 help
390 Add psp_verstage signature token to the build & PSP Directory Table
391
Zheng Baof51738d2021-01-20 16:43:52 +0800392endmenu
393
Raul E Rangel06d1e4d2021-04-09 14:42:06 -0600394config VBOOT
395 select VBOOT_VBNV_CMOS
396 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
397
Kangheui Won66c5f252021-04-20 17:30:29 +1000398config VBOOT_STARTS_BEFORE_BOOTBLOCK
399 def_bool n
400 depends on VBOOT
401 select ARCH_VERSTAGE_ARMV7
402 help
403 Runs verstage on the PSP. Only available on
404 certain Chrome OS branded parts from AMD.
405
406config VBOOT_HASH_BLOCK_SIZE
407 hex
408 default 0x9000
409 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
410 help
411 Because the bulk of the time in psp_verstage to hash the RO cbfs is
412 spent in the overhead of doing svc calls, increasing the hash block
413 size significantly cuts the verstage hashing time as seen below.
414
415 4k takes 180ms
416 16k takes 44ms
417 32k takes 33.7ms
418 36k takes 32.5ms
419 There's actually still room for an even bigger stack, but we've
420 reached a point of diminishing returns.
421
422config CMOS_RECOVERY_BYTE
423 hex
424 default 0x51
425 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
426 help
427 If the workbuf is not passed from the PSP to coreboot, set the
428 recovery flag and reboot. The PSP will read this byte, mark the
429 recovery request in VBNV, and reset the system into recovery mode.
430
431 This is the byte before the default first byte used by VBNV
432 (0x26 + 0x0E - 1)
433
Kangheui Won1b2eeb12021-05-06 13:09:12 +1000434if VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
435
436config RWA_REGION_ONLY
437 string
438 default "apu/amdfw_a"
439 help
440 Add a space-delimited list of filenames that should only be in the
441 RW-A section.
442
443config RWB_REGION_ONLY
444 string
445 default "apu/amdfw_b"
446 help
447 Add a space-delimited list of filenames that should only be in the
448 RW-B section.
449
450endif # VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
451
Felix Helddc2d3562020-12-02 14:38:53 +0100452endif # SOC_AMD_CEZANNE