blob: 1bb9353af48bfbb57b6f70ef1eb2a90deb9d7d78 [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
Felix Held62ef88f2020-12-08 23:18:19 +010043 select SOC_AMD_COMMON_BLOCK_AOAC
Felix Held9a6bc072021-03-05 00:14:08 +010044 select SOC_AMD_COMMON_BLOCK_APOB
Felix Held07462ef2020-12-11 15:55:45 +010045 select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS
Felix Heldea32c522021-02-13 01:42:44 +010046 select SOC_AMD_COMMON_BLOCK_DATA_FABRIC
Nikolai Vyssotski0671d732021-03-11 19:12:38 -060047 select SOC_AMD_COMMON_BLOCK_GRAPHICS
Felix Held28e23532021-02-24 20:52:08 +010048 select SOC_AMD_COMMON_BLOCK_HAS_ESPI
Zheng Baob0f00ed2021-03-16 15:28:49 +080049 select SOC_AMD_COMMON_BLOCK_I2C
Zheng Bao3da55692021-01-26 18:30:18 +080050 select SOC_AMD_COMMON_BLOCK_LPC
Raul E Rangel9942af22021-06-24 17:09:54 -060051 select SOC_AMD_COMMON_BLOCK_LPC_SPI_DMA
Felix Helddc2d3562020-12-02 14:38:53 +010052 select SOC_AMD_COMMON_BLOCK_NONCAR
Raul E Rangela6529e72021-02-09 14:38:36 -070053 select SOC_AMD_COMMON_BLOCK_PCI
Felix Helddc2d3562020-12-02 14:38:53 +010054 select SOC_AMD_COMMON_BLOCK_PCI_MMCONF
Raul E Rangele4f83172021-05-10 14:49:55 -060055 select SOC_AMD_COMMON_BLOCK_PCIE_GPP_DRIVER
Karthikeyan Ramasubramanianf62bbc82021-03-30 15:19:12 -060056 select SOC_AMD_COMMON_BLOCK_PM
Martin Roth31f7a722021-03-23 14:53:58 -060057 select SOC_AMD_COMMON_BLOCK_PM_CHIPSET_STATE_SAVE
Felix Held338d6702021-01-29 23:13:56 +010058 select SOC_AMD_COMMON_BLOCK_PSP_GEN2
Felix Held4be064a2020-12-08 17:21:04 +010059 select SOC_AMD_COMMON_BLOCK_SMBUS
Zheng Bao02a5ddd2020-12-15 22:16:51 +080060 select SOC_AMD_COMMON_BLOCK_SMI
Felix Heldbc134812021-02-10 02:26:10 +010061 select SOC_AMD_COMMON_BLOCK_SMM
Felix Held7f3f52d2021-03-03 18:56:41 +010062 select SOC_AMD_COMMON_BLOCK_SMU
Raul E Rangel54616622021-02-05 17:29:12 -070063 select SOC_AMD_COMMON_BLOCK_SPI
Felix Held65783fb2020-12-04 17:38:46 +010064 select SOC_AMD_COMMON_BLOCK_TSC_FAM17H_19H
Felix Held8a3d4d52021-01-13 03:06:21 +010065 select SOC_AMD_COMMON_BLOCK_UART
Raul E Rangel35dc4b02021-02-12 16:04:27 -070066 select SOC_AMD_COMMON_BLOCK_UCODE
Nikolai Vyssotskicbc7c502021-04-28 18:24:28 -050067 select SOC_AMD_COMMON_FSP_DMI_TABLES
Raul E Rangelfd7ed872021-05-04 15:42:09 -060068 select SOC_AMD_COMMON_FSP_PCI
Felix Heldcc975c52021-01-23 00:18:08 +010069 select SSE2
Felix Held8d0a6092021-01-14 01:40:50 +010070 select UDK_2017_BINDING
Felix Heldf09221c2021-01-22 23:50:54 +010071 select X86_AMD_FIXED_MTRRS
Felix Held7aacdd12021-02-10 23:27:47 +010072 select X86_AMD_INIT_SIPI
Felix Helddc2d3562020-12-02 14:38:53 +010073
Angel Pons6f5a6582021-06-22 15:18:07 +020074config ARCH_ALL_STAGES_X86
75 default n
76
Raul E Rangel35dc4b02021-02-12 16:04:27 -070077config SOC_AMD_COMMON_BLOCK_UCODE_SIZE
78 default 5568
79
Furquan Shaikh696f4ea2021-01-08 11:48:52 -080080config CHIPSET_DEVICETREE
81 string
82 default "soc/amd/cezanne/chipset.cb"
83
Felix Helddc2d3562020-12-02 14:38:53 +010084config EARLY_RESERVED_DRAM_BASE
85 hex
86 default 0x2000000
87 help
88 This variable defines the base address of the DRAM which is reserved
89 for usage by coreboot in early stages (i.e. before ramstage is up).
90 This memory gets reserved in BIOS tables to ensure that the OS does
91 not use it, thus preventing corruption of OS memory in case of S3
92 resume.
93
94config EARLYRAM_BSP_STACK_SIZE
95 hex
96 default 0x1000
97
98config PSP_APOB_DRAM_ADDRESS
99 hex
100 default 0x2001000
101 help
102 Location in DRAM where the PSP will copy the AGESA PSP Output
103 Block.
104
Kangheui Won66c5f252021-04-20 17:30:29 +1000105config PSP_SHAREDMEM_BASE
106 hex
107 default 0x2011000 if VBOOT
108 default 0x0
109 help
110 This variable defines the base address in DRAM memory where PSP copies
111 the vboot workbuf. This is used in the linker script to have a static
112 allocation for the buffer as well as for adding relevant entries in
113 the BIOS directory table for the PSP.
114
115config PSP_SHAREDMEM_SIZE
116 hex
117 default 0x8000 if VBOOT
118 default 0x0
119 help
120 Sets the maximum size for the PSP to pass the vboot workbuf and
121 any logs or timestamps back to coreboot. This will be copied
122 into main memory by the PSP and will be available when the x86 is
123 started. The workbuf's base depends on the address of the reset
124 vector.
125
Felix Helddc2d3562020-12-02 14:38:53 +0100126config PRERAM_CBMEM_CONSOLE_SIZE
127 hex
128 default 0x1600
129 help
130 Increase this value if preram cbmem console is getting truncated
131
Kangheui Won4020aa72021-05-20 09:56:39 +1000132config CBFS_MCACHE_SIZE
133 hex
134 default 0x2000 if VBOOT_STARTS_BEFORE_BOOTBLOCK
135
Felix Helddc2d3562020-12-02 14:38:53 +0100136config C_ENV_BOOTBLOCK_SIZE
137 hex
138 default 0x10000
139 help
140 Sets the size of the bootblock stage that should be loaded in DRAM.
141 This variable controls the DRAM allocation size in linker script
142 for bootblock stage.
143
Felix Helddc2d3562020-12-02 14:38:53 +0100144config ROMSTAGE_ADDR
145 hex
146 default 0x2040000
147 help
148 Sets the address in DRAM where romstage should be loaded.
149
150config ROMSTAGE_SIZE
151 hex
152 default 0x80000
153 help
154 Sets the size of DRAM allocation for romstage in linker script.
155
156config FSP_M_ADDR
157 hex
158 default 0x20C0000
159 help
160 Sets the address in DRAM where FSP-M should be loaded. cbfstool
161 performs relocation of FSP-M to this address.
162
163config FSP_M_SIZE
164 hex
165 default 0x80000
166 help
167 Sets the size of DRAM allocation for FSP-M in linker script.
168
Felix Held8d0a6092021-01-14 01:40:50 +0100169config FSP_TEMP_RAM_SIZE
170 hex
171 default 0x40000
172 help
173 The amount of coreboot-allocated heap and stack usage by the FSP.
174
Raul E Rangel72616b32021-02-05 16:48:42 -0700175config VERSTAGE_ADDR
176 hex
177 depends on VBOOT_SEPARATE_VERSTAGE
178 default 0x2140000
179 help
180 Sets the address in DRAM where verstage should be loaded if running
181 as a separate stage on x86.
182
183config VERSTAGE_SIZE
184 hex
185 depends on VBOOT_SEPARATE_VERSTAGE
186 default 0x80000
187 help
188 Sets the size of DRAM allocation for verstage in linker script if
189 running as a separate stage on x86.
190
Felix Helddc2d3562020-12-02 14:38:53 +0100191config RAMBASE
192 hex
193 default 0x10000000
194
Raul E Rangel72616b32021-02-05 16:48:42 -0700195config RO_REGION_ONLY
196 string
197 depends on VBOOT_SLOTS_RW_AB || VBOOT_SLOTS_RW_A
198 default "apu/amdfw"
199
Felix Helddc2d3562020-12-02 14:38:53 +0100200config CPU_ADDR_BITS
201 int
202 default 48
203
204config MMCONF_BASE_ADDRESS
Felix Helddc2d3562020-12-02 14:38:53 +0100205 default 0xF8000000
206
207config MMCONF_BUS_NUMBER
Felix Helddc2d3562020-12-02 14:38:53 +0100208 default 64
209
Felix Held88615622021-01-19 23:51:45 +0100210config MAX_CPUS
211 int
212 default 16
Felix Heldb77387f2021-04-23 22:16:04 +0200213 help
214 Maximum number of threads the platform can have.
Felix Held88615622021-01-19 23:51:45 +0100215
Felix Held8a3d4d52021-01-13 03:06:21 +0100216config CONSOLE_UART_BASE_ADDRESS
217 depends on CONSOLE_SERIAL && AMD_SOC_CONSOLE_UART
218 hex
219 default 0xfedc9000 if UART_FOR_CONSOLE = 0
220 default 0xfedca000 if UART_FOR_CONSOLE = 1
221
Felix Heldee2a3652021-02-09 23:43:17 +0100222config SMM_TSEG_SIZE
223 hex
Felix Helde22eef72021-02-10 22:22:07 +0100224 default 0x800000 if HAVE_SMI_HANDLER
Felix Heldee2a3652021-02-09 23:43:17 +0100225 default 0x0
226
227config SMM_RESERVED_SIZE
228 hex
229 default 0x180000
230
231config SMM_MODULE_STACK_SIZE
232 hex
233 default 0x800
234
Felix Held90b07012021-04-15 20:23:56 +0200235config ACPI_BERT
236 bool "Build ACPI BERT Table"
237 default y
238 depends on HAVE_ACPI_TABLES
239 help
240 Report Machine Check errors identified in POST to the OS in an
241 ACPI Boot Error Record Table.
242
243config ACPI_BERT_SIZE
244 hex
245 default 0x4000 if ACPI_BERT
246 default 0x0
247 help
248 Specify the amount of DRAM reserved for gathering the data used to
249 generate the ACPI table.
250
Zheng Bao7b13e4e2021-03-16 16:13:56 +0800251config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
252 int
253 default 150
254
Raul E Rangel95b3dc32021-03-24 16:53:37 -0600255config DISABLE_SPI_FLASH_ROM_SHARING
256 def_bool n
257 help
258 Instruct the chipset to not honor the EGPIO67_SPI_ROM_REQ pin
259 which indicates a board level ROM transaction request. This
260 removes arbitration with board and assumes the chipset controls
261 the SPI flash bus entirely.
262
Felix Held27b295b2021-03-25 01:20:41 +0100263config DISABLE_KEYBOARD_RESET_PIN
264 bool
265 help
266 Instruct the SoC to not use the state of GPIO_129 as keyboard reset
267 signal. When this pin is used as GPIO and the keyboard reset
268 functionality isn't disabled, configuring it as an output and driving
269 it as 0 will cause a reset.
270
Jason Glenesk79542fa2021-03-10 03:50:57 -0800271config ACPI_SSDT_PSD_INDEPENDENT
272 bool "Allow core p-state independent transitions"
273 default y
274 help
275 AMD recommends the ACPI _PSD object to be configured to cause
276 cores to transition between p-states independently. A vendor may
277 choose to generate _PSD object to allow cores to transition together.
278
Zheng Baof51738d2021-01-20 16:43:52 +0800279menu "PSP Configuration Options"
280
281config AMD_FWM_POSITION_INDEX
282 int "Firmware Directory Table location (0 to 5)"
283 range 0 5
284 default 0 if BOARD_ROMSIZE_KB_512
285 default 1 if BOARD_ROMSIZE_KB_1024
286 default 2 if BOARD_ROMSIZE_KB_2048
287 default 3 if BOARD_ROMSIZE_KB_4096
288 default 4 if BOARD_ROMSIZE_KB_8192
289 default 5 if BOARD_ROMSIZE_KB_16384
290 help
291 Typically this is calculated by the ROM size, but there may
292 be situations where you want to put the firmware directory
293 table in a different location.
294 0: 512 KB - 0xFFFA0000
295 1: 1 MB - 0xFFF20000
296 2: 2 MB - 0xFFE20000
297 3: 4 MB - 0xFFC20000
298 4: 8 MB - 0xFF820000
299 5: 16 MB - 0xFF020000
300
301comment "AMD Firmware Directory Table set to location for 512KB ROM"
302 depends on AMD_FWM_POSITION_INDEX = 0
303comment "AMD Firmware Directory Table set to location for 1MB ROM"
304 depends on AMD_FWM_POSITION_INDEX = 1
305comment "AMD Firmware Directory Table set to location for 2MB ROM"
306 depends on AMD_FWM_POSITION_INDEX = 2
307comment "AMD Firmware Directory Table set to location for 4MB ROM"
308 depends on AMD_FWM_POSITION_INDEX = 3
309comment "AMD Firmware Directory Table set to location for 8MB ROM"
310 depends on AMD_FWM_POSITION_INDEX = 4
311comment "AMD Firmware Directory Table set to location for 16MB ROM"
312 depends on AMD_FWM_POSITION_INDEX = 5
313
314config AMDFW_CONFIG_FILE
315 string
316 default "src/soc/amd/cezanne/fw.cfg"
317
Rob Barnese09b6812021-04-15 17:21:19 -0600318config PSP_DISABLE_POSTCODES
319 bool "Disable PSP post codes"
320 help
321 Disables the output of port80 post codes from PSP.
322
323config PSP_POSTCODES_ON_ESPI
324 bool "Use eSPI bus for PSP post codes"
325 default y
326 depends on !PSP_DISABLE_POSTCODES
327 help
328 Select to send PSP port80 post codes on eSPI bus.
329 If not selected, PSP port80 codes will be sent on LPC bus.
330
Zheng Baof51738d2021-01-20 16:43:52 +0800331config PSP_LOAD_MP2_FW
332 bool
333 default n
334 help
335 Include the MP2 firmwares and configuration into the PSP build.
336
337 If unsure, answer 'n'
338
Zheng Baof51738d2021-01-20 16:43:52 +0800339config PSP_UNLOCK_SECURE_DEBUG
340 bool "Unlock secure debug"
341 default y
342 help
343 Select this item to enable secure debug options in PSP.
344
Raul E Rangel97b8b172021-02-24 16:59:32 -0700345config HAVE_PSP_WHITELIST_FILE
346 bool "Include a debug whitelist file in PSP build"
347 default n
348 help
349 Support secured unlock prior to reset using a whitelisted
350 serial number. This feature requires a signed whitelist image
351 and bootloader from AMD.
352
353 If unsure, answer 'n'
354
355config PSP_WHITELIST_FILE
356 string "Debug whitelist file path"
357 depends on HAVE_PSP_WHITELIST_FILE
358 default "3rdparty/amd_blobs/cezanne/PSP/wtl-czn.sbin"
359
Martin Rothfdad5ad2021-04-16 11:36:01 -0600360config PSP_SOFTFUSE_BITS
361 string "PSP Soft Fuse bits to enable"
362 default "28 6"
363 help
364 Space separated list of Soft Fuse bits to enable.
365 Bit 0: Enable secure debug (Set by PSP_UNLOCK_SECURE_DEBUG)
366 Bit 7: Disable PSP postcodes on Renoir and newer chips only
367 (Set by PSP_DISABLE_PORT80)
368 Bit 15: PSP post code destination: 0=LPC 1=eSPI
369 (Set by PSP_INITIALIZE_ESPI)
370 Bit 29: Disable MP2 firmware loading (Set by PSP_LOAD_MP2_FW)
371
372 See #55758 (NDA) for additional bit definitions.
373
Kangheui Won66c5f252021-04-20 17:30:29 +1000374config PSP_VERSTAGE_FILE
375 string "Specify the PSP_verstage file path"
376 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
377 default "$(obj)/psp_verstage.bin"
378 help
379 Add psp_verstage file to the build & PSP Directory Table
380
381config PSP_VERSTAGE_SIGNING_TOKEN
382 string "Specify the PSP_verstage Signature Token file path"
383 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
384 default ""
385 help
386 Add psp_verstage signature token to the build & PSP Directory Table
387
Zheng Baof51738d2021-01-20 16:43:52 +0800388endmenu
389
Raul E Rangel06d1e4d2021-04-09 14:42:06 -0600390config VBOOT
391 select VBOOT_VBNV_CMOS
392 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
393
Kangheui Won66c5f252021-04-20 17:30:29 +1000394config VBOOT_STARTS_BEFORE_BOOTBLOCK
395 def_bool n
396 depends on VBOOT
397 select ARCH_VERSTAGE_ARMV7
398 help
399 Runs verstage on the PSP. Only available on
400 certain Chrome OS branded parts from AMD.
401
402config VBOOT_HASH_BLOCK_SIZE
403 hex
404 default 0x9000
405 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
406 help
407 Because the bulk of the time in psp_verstage to hash the RO cbfs is
408 spent in the overhead of doing svc calls, increasing the hash block
409 size significantly cuts the verstage hashing time as seen below.
410
411 4k takes 180ms
412 16k takes 44ms
413 32k takes 33.7ms
414 36k takes 32.5ms
415 There's actually still room for an even bigger stack, but we've
416 reached a point of diminishing returns.
417
418config CMOS_RECOVERY_BYTE
419 hex
420 default 0x51
421 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
422 help
423 If the workbuf is not passed from the PSP to coreboot, set the
424 recovery flag and reboot. The PSP will read this byte, mark the
425 recovery request in VBNV, and reset the system into recovery mode.
426
427 This is the byte before the default first byte used by VBNV
428 (0x26 + 0x0E - 1)
429
Kangheui Won1b2eeb12021-05-06 13:09:12 +1000430if VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
431
432config RWA_REGION_ONLY
433 string
434 default "apu/amdfw_a"
435 help
436 Add a space-delimited list of filenames that should only be in the
437 RW-A section.
438
439config RWB_REGION_ONLY
440 string
441 default "apu/amdfw_b"
442 help
443 Add a space-delimited list of filenames that should only be in the
444 RW-B section.
445
446endif # VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
447
Felix Helddc2d3562020-12-02 14:38:53 +0100448endif # SOC_AMD_CEZANNE