blob: a09e9f9b8b200f4d71ae7268cbc7b843f7cdeaeb [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
Raul E Rangel968f1402021-08-18 11:06:57 -060019 select CPU_INFO_V2
Mathew Kingc519bff2021-03-04 08:26:51 -070020 select DRIVERS_USB_ACPI
Zheng Bao7b13e4e2021-03-16 16:13:56 +080021 select DRIVERS_I2C_DESIGNWARE
Mathew Kingc519bff2021-03-04 08:26:51 -070022 select DRIVERS_USB_PCI_XHCI
Felix Heldc9634992021-01-26 21:35:39 +010023 select FSP_COMPRESS_FSP_M_LZMA
24 select FSP_COMPRESS_FSP_S_LZMA
Raul E Rangele925af22021-03-30 16:32:20 -060025 select GENERIC_GPIO_LIB
Felix Held86024952021-02-03 23:44:28 +010026 select HAVE_ACPI_TABLES
Felix Held44f41532020-12-09 02:01:16 +010027 select HAVE_CF9_RESET
Felix Held227c6492021-03-22 14:44:58 +010028 select HAVE_EM100_SUPPORT
Nikolai Vyssotski0671d732021-03-11 19:12:38 -060029 select HAVE_FSP_GOP
Felix Heldee2a3652021-02-09 23:43:17 +010030 select HAVE_SMI_HANDLER
Felix Heldcb977342021-01-19 20:36:38 +010031 select IDT_IN_EVERY_STAGE
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
Karthikeyan Ramasubramanian1140b7c2021-09-17 16:33:35 -060035 select PSP_VERSTAGE_CCP_DMA if VBOOT_STARTS_BEFORE_BOOTBLOCK
Felix Helddc2d3562020-12-02 14:38:53 +010036 select RESET_VECTOR_IN_RAM
Felix Held7cd81b92021-02-11 14:58:08 +010037 select RTC
Felix Helddc2d3562020-12-02 14:38:53 +010038 select SOC_AMD_COMMON
Karthikeyan Ramasubramanianfbb027e2021-04-23 11:48:06 -060039 select SOC_AMD_COMMON_BLOCK_ACP
Felix Heldbb4bee852021-02-10 16:53:53 +010040 select SOC_AMD_COMMON_BLOCK_ACPI
Felix Held64de2c12020-12-05 20:53:59 +010041 select SOC_AMD_COMMON_BLOCK_ACPIMMIO
Felix Helddd882f32021-05-12 01:23:50 +020042 select SOC_AMD_COMMON_BLOCK_ACPI_ALIB
Eric Lai65b0afe2021-04-09 11:50:48 +080043 select SOC_AMD_COMMON_BLOCK_ACPI_GPIO
Jason Glenesk8d354282021-07-20 05:21:54 -070044 select SOC_AMD_COMMON_BLOCK_ACPI_IVRS
Felix Held62ef88f2020-12-08 23:18:19 +010045 select SOC_AMD_COMMON_BLOCK_AOAC
Felix Held9a6bc072021-03-05 00:14:08 +010046 select SOC_AMD_COMMON_BLOCK_APOB
Felix Held07462ef2020-12-11 15:55:45 +010047 select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS
Felix Heldea32c522021-02-13 01:42:44 +010048 select SOC_AMD_COMMON_BLOCK_DATA_FABRIC
Nikolai Vyssotski0671d732021-03-11 19:12:38 -060049 select SOC_AMD_COMMON_BLOCK_GRAPHICS
Felix Held28e23532021-02-24 20:52:08 +010050 select SOC_AMD_COMMON_BLOCK_HAS_ESPI
Zheng Baob0f00ed2021-03-16 15:28:49 +080051 select SOC_AMD_COMMON_BLOCK_I2C
Raul E Rangel3acc5152021-06-09 13:36:10 -060052 select SOC_AMD_COMMON_BLOCK_IOMMU
Zheng Bao3da55692021-01-26 18:30:18 +080053 select SOC_AMD_COMMON_BLOCK_LPC
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
Felix Held8d0a6092021-01-14 01:40:50 +010073 select UDK_2017_BINDING
Felix Heldf09221c2021-01-22 23:50:54 +010074 select X86_AMD_FIXED_MTRRS
Felix Held7aacdd12021-02-10 23:27:47 +010075 select X86_AMD_INIT_SIPI
Felix Helddc2d3562020-12-02 14:38:53 +010076
Angel Pons6f5a6582021-06-22 15:18:07 +020077config ARCH_ALL_STAGES_X86
78 default n
79
Raul E Rangel35dc4b02021-02-12 16:04:27 -070080config SOC_AMD_COMMON_BLOCK_UCODE_SIZE
81 default 5568
82
Furquan Shaikh696f4ea2021-01-08 11:48:52 -080083config CHIPSET_DEVICETREE
84 string
85 default "soc/amd/cezanne/chipset.cb"
86
Felix Helddc2d3562020-12-02 14:38:53 +010087config EARLY_RESERVED_DRAM_BASE
88 hex
89 default 0x2000000
90 help
91 This variable defines the base address of the DRAM which is reserved
92 for usage by coreboot in early stages (i.e. before ramstage is up).
93 This memory gets reserved in BIOS tables to ensure that the OS does
94 not use it, thus preventing corruption of OS memory in case of S3
95 resume.
96
97config EARLYRAM_BSP_STACK_SIZE
98 hex
99 default 0x1000
100
101config PSP_APOB_DRAM_ADDRESS
102 hex
103 default 0x2001000
104 help
105 Location in DRAM where the PSP will copy the AGESA PSP Output
106 Block.
107
Kangheui Won66c5f252021-04-20 17:30:29 +1000108config PSP_SHAREDMEM_BASE
109 hex
110 default 0x2011000 if VBOOT
111 default 0x0
112 help
113 This variable defines the base address in DRAM memory where PSP copies
114 the vboot workbuf. This is used in the linker script to have a static
115 allocation for the buffer as well as for adding relevant entries in
116 the BIOS directory table for the PSP.
117
118config PSP_SHAREDMEM_SIZE
119 hex
120 default 0x8000 if VBOOT
121 default 0x0
122 help
123 Sets the maximum size for the PSP to pass the vboot workbuf and
124 any logs or timestamps back to coreboot. This will be copied
125 into main memory by the PSP and will be available when the x86 is
126 started. The workbuf's base depends on the address of the reset
127 vector.
128
Felix Helddc2d3562020-12-02 14:38:53 +0100129config PRERAM_CBMEM_CONSOLE_SIZE
130 hex
131 default 0x1600
132 help
133 Increase this value if preram cbmem console is getting truncated
134
Kangheui Won4020aa72021-05-20 09:56:39 +1000135config CBFS_MCACHE_SIZE
136 hex
137 default 0x2000 if VBOOT_STARTS_BEFORE_BOOTBLOCK
138
Felix Helddc2d3562020-12-02 14:38:53 +0100139config C_ENV_BOOTBLOCK_SIZE
140 hex
141 default 0x10000
142 help
143 Sets the size of the bootblock stage that should be loaded in DRAM.
144 This variable controls the DRAM allocation size in linker script
145 for bootblock stage.
146
Felix Helddc2d3562020-12-02 14:38:53 +0100147config ROMSTAGE_ADDR
148 hex
149 default 0x2040000
150 help
151 Sets the address in DRAM where romstage should be loaded.
152
153config ROMSTAGE_SIZE
154 hex
155 default 0x80000
156 help
157 Sets the size of DRAM allocation for romstage in linker script.
158
159config FSP_M_ADDR
160 hex
161 default 0x20C0000
162 help
163 Sets the address in DRAM where FSP-M should be loaded. cbfstool
164 performs relocation of FSP-M to this address.
165
166config FSP_M_SIZE
167 hex
Karthikeyan Ramasubramanianc2310a12021-08-31 12:39:47 -0600168 default 0xC0000
Felix Helddc2d3562020-12-02 14:38:53 +0100169 help
170 Sets the size of DRAM allocation for FSP-M in linker script.
171
Felix Held8d0a6092021-01-14 01:40:50 +0100172config FSP_TEMP_RAM_SIZE
173 hex
174 default 0x40000
175 help
176 The amount of coreboot-allocated heap and stack usage by the FSP.
177
Raul E Rangel72616b32021-02-05 16:48:42 -0700178config VERSTAGE_ADDR
179 hex
180 depends on VBOOT_SEPARATE_VERSTAGE
Karthikeyan Ramasubramanianc2310a12021-08-31 12:39:47 -0600181 default 0x2180000
Raul E Rangel72616b32021-02-05 16:48:42 -0700182 help
183 Sets the address in DRAM where verstage should be loaded if running
184 as a separate stage on x86.
185
186config VERSTAGE_SIZE
187 hex
188 depends on VBOOT_SEPARATE_VERSTAGE
189 default 0x80000
190 help
191 Sets the size of DRAM allocation for verstage in linker script if
192 running as a separate stage on x86.
193
Raul E Rangel61c9cd92021-11-02 11:51:48 -0600194config ASYNC_FILE_LOADING
195 bool "Loads files from SPI asynchronously"
196 select COOP_MULTITASKING
197 select SOC_AMD_COMMON_BLOCK_LPC_SPI_DMA
198 select PAYLOAD_PRELOAD
199 help
200 When enabled, the platform will use the LPC SPI DMA controller to
201 asynchronously load contents from the SPI ROM. This will improve
202 boot time because the CPUs can be performing useful work while the
203 SPI contents are being preloaded.
204
Felix Helddc2d3562020-12-02 14:38:53 +0100205config RAMBASE
206 hex
207 default 0x10000000
208
Raul E Rangel72616b32021-02-05 16:48:42 -0700209config RO_REGION_ONLY
210 string
211 depends on VBOOT_SLOTS_RW_AB || VBOOT_SLOTS_RW_A
212 default "apu/amdfw"
213
Felix Helddc2d3562020-12-02 14:38:53 +0100214config MMCONF_BASE_ADDRESS
Felix Helddc2d3562020-12-02 14:38:53 +0100215 default 0xF8000000
216
217config MMCONF_BUS_NUMBER
Felix Helddc2d3562020-12-02 14:38:53 +0100218 default 64
219
Felix Held88615622021-01-19 23:51:45 +0100220config MAX_CPUS
221 int
222 default 16
Felix Heldb77387f2021-04-23 22:16:04 +0200223 help
224 Maximum number of threads the platform can have.
Felix Held88615622021-01-19 23:51:45 +0100225
Felix Held8a3d4d52021-01-13 03:06:21 +0100226config CONSOLE_UART_BASE_ADDRESS
227 depends on CONSOLE_SERIAL && AMD_SOC_CONSOLE_UART
228 hex
229 default 0xfedc9000 if UART_FOR_CONSOLE = 0
230 default 0xfedca000 if UART_FOR_CONSOLE = 1
231
Felix Heldee2a3652021-02-09 23:43:17 +0100232config SMM_TSEG_SIZE
233 hex
Felix Helde22eef72021-02-10 22:22:07 +0100234 default 0x800000 if HAVE_SMI_HANDLER
Felix Heldee2a3652021-02-09 23:43:17 +0100235 default 0x0
236
237config SMM_RESERVED_SIZE
238 hex
239 default 0x180000
240
241config SMM_MODULE_STACK_SIZE
242 hex
243 default 0x800
244
Felix Held90b07012021-04-15 20:23:56 +0200245config ACPI_BERT
246 bool "Build ACPI BERT Table"
247 default y
248 depends on HAVE_ACPI_TABLES
249 help
250 Report Machine Check errors identified in POST to the OS in an
251 ACPI Boot Error Record Table.
252
253config ACPI_BERT_SIZE
254 hex
255 default 0x4000 if ACPI_BERT
256 default 0x0
257 help
258 Specify the amount of DRAM reserved for gathering the data used to
259 generate the ACPI table.
260
Zheng Bao7b13e4e2021-03-16 16:13:56 +0800261config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
262 int
263 default 150
264
Raul E Rangel95b3dc32021-03-24 16:53:37 -0600265config DISABLE_SPI_FLASH_ROM_SHARING
266 def_bool n
267 help
268 Instruct the chipset to not honor the EGPIO67_SPI_ROM_REQ pin
269 which indicates a board level ROM transaction request. This
270 removes arbitration with board and assumes the chipset controls
271 the SPI flash bus entirely.
272
Felix Held27b295b2021-03-25 01:20:41 +0100273config DISABLE_KEYBOARD_RESET_PIN
274 bool
275 help
276 Instruct the SoC to not use the state of GPIO_129 as keyboard reset
277 signal. When this pin is used as GPIO and the keyboard reset
278 functionality isn't disabled, configuring it as an output and driving
279 it as 0 will cause a reset.
280
Jason Glenesk79542fa2021-03-10 03:50:57 -0800281config ACPI_SSDT_PSD_INDEPENDENT
282 bool "Allow core p-state independent transitions"
283 default y
284 help
285 AMD recommends the ACPI _PSD object to be configured to cause
286 cores to transition between p-states independently. A vendor may
287 choose to generate _PSD object to allow cores to transition together.
288
Zheng Baof51738d2021-01-20 16:43:52 +0800289menu "PSP Configuration Options"
290
291config AMD_FWM_POSITION_INDEX
292 int "Firmware Directory Table location (0 to 5)"
293 range 0 5
294 default 0 if BOARD_ROMSIZE_KB_512
295 default 1 if BOARD_ROMSIZE_KB_1024
296 default 2 if BOARD_ROMSIZE_KB_2048
297 default 3 if BOARD_ROMSIZE_KB_4096
298 default 4 if BOARD_ROMSIZE_KB_8192
299 default 5 if BOARD_ROMSIZE_KB_16384
300 help
301 Typically this is calculated by the ROM size, but there may
302 be situations where you want to put the firmware directory
303 table in a different location.
304 0: 512 KB - 0xFFFA0000
305 1: 1 MB - 0xFFF20000
306 2: 2 MB - 0xFFE20000
307 3: 4 MB - 0xFFC20000
308 4: 8 MB - 0xFF820000
309 5: 16 MB - 0xFF020000
310
311comment "AMD Firmware Directory Table set to location for 512KB ROM"
312 depends on AMD_FWM_POSITION_INDEX = 0
313comment "AMD Firmware Directory Table set to location for 1MB ROM"
314 depends on AMD_FWM_POSITION_INDEX = 1
315comment "AMD Firmware Directory Table set to location for 2MB ROM"
316 depends on AMD_FWM_POSITION_INDEX = 2
317comment "AMD Firmware Directory Table set to location for 4MB ROM"
318 depends on AMD_FWM_POSITION_INDEX = 3
319comment "AMD Firmware Directory Table set to location for 8MB ROM"
320 depends on AMD_FWM_POSITION_INDEX = 4
321comment "AMD Firmware Directory Table set to location for 16MB ROM"
322 depends on AMD_FWM_POSITION_INDEX = 5
323
324config AMDFW_CONFIG_FILE
325 string
326 default "src/soc/amd/cezanne/fw.cfg"
327
Rob Barnese09b6812021-04-15 17:21:19 -0600328config PSP_DISABLE_POSTCODES
329 bool "Disable PSP post codes"
330 help
331 Disables the output of port80 post codes from PSP.
332
333config PSP_POSTCODES_ON_ESPI
334 bool "Use eSPI bus for PSP post codes"
335 default y
336 depends on !PSP_DISABLE_POSTCODES
337 help
338 Select to send PSP port80 post codes on eSPI bus.
339 If not selected, PSP port80 codes will be sent on LPC bus.
340
Zheng Baof51738d2021-01-20 16:43:52 +0800341config PSP_LOAD_MP2_FW
342 bool
343 default n
344 help
345 Include the MP2 firmwares and configuration into the PSP build.
346
347 If unsure, answer 'n'
348
Zheng Baof51738d2021-01-20 16:43:52 +0800349config PSP_UNLOCK_SECURE_DEBUG
350 bool "Unlock secure debug"
351 default y
352 help
353 Select this item to enable secure debug options in PSP.
354
Raul E Rangel97b8b172021-02-24 16:59:32 -0700355config HAVE_PSP_WHITELIST_FILE
356 bool "Include a debug whitelist file in PSP build"
357 default n
358 help
359 Support secured unlock prior to reset using a whitelisted
360 serial number. This feature requires a signed whitelist image
361 and bootloader from AMD.
362
363 If unsure, answer 'n'
364
365config PSP_WHITELIST_FILE
366 string "Debug whitelist file path"
367 depends on HAVE_PSP_WHITELIST_FILE
368 default "3rdparty/amd_blobs/cezanne/PSP/wtl-czn.sbin"
369
Martin Rothfdad5ad2021-04-16 11:36:01 -0600370config PSP_SOFTFUSE_BITS
371 string "PSP Soft Fuse bits to enable"
372 default "28 6"
373 help
374 Space separated list of Soft Fuse bits to enable.
375 Bit 0: Enable secure debug (Set by PSP_UNLOCK_SECURE_DEBUG)
376 Bit 7: Disable PSP postcodes on Renoir and newer chips only
377 (Set by PSP_DISABLE_PORT80)
378 Bit 15: PSP post code destination: 0=LPC 1=eSPI
379 (Set by PSP_INITIALIZE_ESPI)
380 Bit 29: Disable MP2 firmware loading (Set by PSP_LOAD_MP2_FW)
381
382 See #55758 (NDA) for additional bit definitions.
383
Kangheui Won66c5f252021-04-20 17:30:29 +1000384config PSP_VERSTAGE_FILE
385 string "Specify the PSP_verstage file path"
386 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
Raul E Rangel21c70b12021-07-16 14:36:01 -0600387 default "\$(obj)/psp_verstage.bin"
Kangheui Won66c5f252021-04-20 17:30:29 +1000388 help
389 Add psp_verstage file to the build & PSP Directory Table
390
391config PSP_VERSTAGE_SIGNING_TOKEN
392 string "Specify the PSP_verstage Signature Token file path"
393 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
394 default ""
395 help
396 Add psp_verstage signature token to the build & PSP Directory Table
397
Zheng Baof51738d2021-01-20 16:43:52 +0800398endmenu
399
Raul E Rangel06d1e4d2021-04-09 14:42:06 -0600400config VBOOT
401 select VBOOT_VBNV_CMOS
402 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
403
Kangheui Won66c5f252021-04-20 17:30:29 +1000404config VBOOT_STARTS_BEFORE_BOOTBLOCK
405 def_bool n
406 depends on VBOOT
407 select ARCH_VERSTAGE_ARMV7
408 help
409 Runs verstage on the PSP. Only available on
410 certain Chrome OS branded parts from AMD.
411
412config VBOOT_HASH_BLOCK_SIZE
413 hex
414 default 0x9000
415 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
416 help
417 Because the bulk of the time in psp_verstage to hash the RO cbfs is
418 spent in the overhead of doing svc calls, increasing the hash block
419 size significantly cuts the verstage hashing time as seen below.
420
421 4k takes 180ms
422 16k takes 44ms
423 32k takes 33.7ms
424 36k takes 32.5ms
425 There's actually still room for an even bigger stack, but we've
426 reached a point of diminishing returns.
427
428config CMOS_RECOVERY_BYTE
429 hex
430 default 0x51
431 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
432 help
433 If the workbuf is not passed from the PSP to coreboot, set the
434 recovery flag and reboot. The PSP will read this byte, mark the
435 recovery request in VBNV, and reset the system into recovery mode.
436
437 This is the byte before the default first byte used by VBNV
438 (0x26 + 0x0E - 1)
439
Kangheui Won1b2eeb12021-05-06 13:09:12 +1000440if VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
441
442config RWA_REGION_ONLY
443 string
444 default "apu/amdfw_a"
445 help
446 Add a space-delimited list of filenames that should only be in the
447 RW-A section.
448
449config RWB_REGION_ONLY
450 string
451 default "apu/amdfw_b"
452 help
453 Add a space-delimited list of filenames that should only be in the
454 RW-B section.
455
456endif # VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
457
Felix Helddc2d3562020-12-02 14:38:53 +0100458endif # SOC_AMD_CEZANNE