blob: 2cedf8c2d0081e76416e66338ce170ba58dec297 [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
Raul E Rangel54616622021-02-05 17:29:12 -070017 select BOOT_DEVICE_SUPPORTS_WRITES if BOOT_DEVICE_SPI_FLASH
Mathew Kingc519bff2021-03-04 08:26:51 -070018 select DRIVERS_USB_ACPI
Zheng Bao7b13e4e2021-03-16 16:13:56 +080019 select DRIVERS_I2C_DESIGNWARE
Mathew Kingc519bff2021-03-04 08:26:51 -070020 select DRIVERS_USB_PCI_XHCI
Felix Heldc9634992021-01-26 21:35:39 +010021 select FSP_COMPRESS_FSP_M_LZMA
22 select FSP_COMPRESS_FSP_S_LZMA
Raul E Rangele925af22021-03-30 16:32:20 -060023 select GENERIC_GPIO_LIB
Felix Held86024952021-02-03 23:44:28 +010024 select HAVE_ACPI_TABLES
Felix Held44f41532020-12-09 02:01:16 +010025 select HAVE_CF9_RESET
Felix Held227c6492021-03-22 14:44:58 +010026 select HAVE_EM100_SUPPORT
Nikolai Vyssotski0671d732021-03-11 19:12:38 -060027 select HAVE_FSP_GOP
Felix Heldee2a3652021-02-09 23:43:17 +010028 select HAVE_SMI_HANDLER
Felix Heldcb977342021-01-19 20:36:38 +010029 select IDT_IN_EVERY_STAGE
Felix Held4be064a2020-12-08 17:21:04 +010030 select IOAPIC
Felix Held7aacdd12021-02-10 23:27:47 +010031 select PARALLEL_MP
32 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
Felix Helddc2d3562020-12-02 14:38:53 +010051 select SOC_AMD_COMMON_BLOCK_NONCAR
Raul E Rangela6529e72021-02-09 14:38:36 -070052 select SOC_AMD_COMMON_BLOCK_PCI
Felix Helddc2d3562020-12-02 14:38:53 +010053 select SOC_AMD_COMMON_BLOCK_PCI_MMCONF
Raul E Rangele4f83172021-05-10 14:49:55 -060054 select SOC_AMD_COMMON_BLOCK_PCIE_GPP_DRIVER
Karthikeyan Ramasubramanianf62bbc82021-03-30 15:19:12 -060055 select SOC_AMD_COMMON_BLOCK_PM
Martin Roth31f7a722021-03-23 14:53:58 -060056 select SOC_AMD_COMMON_BLOCK_PM_CHIPSET_STATE_SAVE
Felix Held338d6702021-01-29 23:13:56 +010057 select SOC_AMD_COMMON_BLOCK_PSP_GEN2
Felix Held4be064a2020-12-08 17:21:04 +010058 select SOC_AMD_COMMON_BLOCK_SMBUS
Zheng Bao02a5ddd2020-12-15 22:16:51 +080059 select SOC_AMD_COMMON_BLOCK_SMI
Felix Heldbc134812021-02-10 02:26:10 +010060 select SOC_AMD_COMMON_BLOCK_SMM
Felix Held7f3f52d2021-03-03 18:56:41 +010061 select SOC_AMD_COMMON_BLOCK_SMU
Raul E Rangel54616622021-02-05 17:29:12 -070062 select SOC_AMD_COMMON_BLOCK_SPI
Felix Held65783fb2020-12-04 17:38:46 +010063 select SOC_AMD_COMMON_BLOCK_TSC_FAM17H_19H
Felix Held8a3d4d52021-01-13 03:06:21 +010064 select SOC_AMD_COMMON_BLOCK_UART
Raul E Rangel35dc4b02021-02-12 16:04:27 -070065 select SOC_AMD_COMMON_BLOCK_UCODE
Raul E Rangelfd7ed872021-05-04 15:42:09 -060066 select SOC_AMD_COMMON_FSP_PCI
Felix Heldcc975c52021-01-23 00:18:08 +010067 select SSE2
Felix Held8d0a6092021-01-14 01:40:50 +010068 select UDK_2017_BINDING
Felix Heldf09221c2021-01-22 23:50:54 +010069 select X86_AMD_FIXED_MTRRS
Felix Held7aacdd12021-02-10 23:27:47 +010070 select X86_AMD_INIT_SIPI
Felix Helddc2d3562020-12-02 14:38:53 +010071
Raul E Rangel35dc4b02021-02-12 16:04:27 -070072config SOC_AMD_COMMON_BLOCK_UCODE_SIZE
73 default 5568
74
Furquan Shaikh696f4ea2021-01-08 11:48:52 -080075config CHIPSET_DEVICETREE
76 string
77 default "soc/amd/cezanne/chipset.cb"
78
Felix Helddc2d3562020-12-02 14:38:53 +010079config EARLY_RESERVED_DRAM_BASE
80 hex
81 default 0x2000000
82 help
83 This variable defines the base address of the DRAM which is reserved
84 for usage by coreboot in early stages (i.e. before ramstage is up).
85 This memory gets reserved in BIOS tables to ensure that the OS does
86 not use it, thus preventing corruption of OS memory in case of S3
87 resume.
88
89config EARLYRAM_BSP_STACK_SIZE
90 hex
91 default 0x1000
92
93config PSP_APOB_DRAM_ADDRESS
94 hex
95 default 0x2001000
96 help
97 Location in DRAM where the PSP will copy the AGESA PSP Output
98 Block.
99
Kangheui Won66c5f252021-04-20 17:30:29 +1000100config PSP_SHAREDMEM_BASE
101 hex
102 default 0x2011000 if VBOOT
103 default 0x0
104 help
105 This variable defines the base address in DRAM memory where PSP copies
106 the vboot workbuf. This is used in the linker script to have a static
107 allocation for the buffer as well as for adding relevant entries in
108 the BIOS directory table for the PSP.
109
110config PSP_SHAREDMEM_SIZE
111 hex
112 default 0x8000 if VBOOT
113 default 0x0
114 help
115 Sets the maximum size for the PSP to pass the vboot workbuf and
116 any logs or timestamps back to coreboot. This will be copied
117 into main memory by the PSP and will be available when the x86 is
118 started. The workbuf's base depends on the address of the reset
119 vector.
120
Felix Helddc2d3562020-12-02 14:38:53 +0100121config PRERAM_CBMEM_CONSOLE_SIZE
122 hex
123 default 0x1600
124 help
125 Increase this value if preram cbmem console is getting truncated
126
Felix Helddc2d3562020-12-02 14:38:53 +0100127config C_ENV_BOOTBLOCK_SIZE
128 hex
129 default 0x10000
130 help
131 Sets the size of the bootblock stage that should be loaded in DRAM.
132 This variable controls the DRAM allocation size in linker script
133 for bootblock stage.
134
Felix Helddc2d3562020-12-02 14:38:53 +0100135config ROMSTAGE_ADDR
136 hex
137 default 0x2040000
138 help
139 Sets the address in DRAM where romstage should be loaded.
140
141config ROMSTAGE_SIZE
142 hex
143 default 0x80000
144 help
145 Sets the size of DRAM allocation for romstage in linker script.
146
147config FSP_M_ADDR
148 hex
149 default 0x20C0000
150 help
151 Sets the address in DRAM where FSP-M should be loaded. cbfstool
152 performs relocation of FSP-M to this address.
153
154config FSP_M_SIZE
155 hex
156 default 0x80000
157 help
158 Sets the size of DRAM allocation for FSP-M in linker script.
159
Felix Held8d0a6092021-01-14 01:40:50 +0100160config FSP_TEMP_RAM_SIZE
161 hex
162 default 0x40000
163 help
164 The amount of coreboot-allocated heap and stack usage by the FSP.
165
Raul E Rangel72616b32021-02-05 16:48:42 -0700166config VERSTAGE_ADDR
167 hex
168 depends on VBOOT_SEPARATE_VERSTAGE
169 default 0x2140000
170 help
171 Sets the address in DRAM where verstage should be loaded if running
172 as a separate stage on x86.
173
174config VERSTAGE_SIZE
175 hex
176 depends on VBOOT_SEPARATE_VERSTAGE
177 default 0x80000
178 help
179 Sets the size of DRAM allocation for verstage in linker script if
180 running as a separate stage on x86.
181
Felix Helddc2d3562020-12-02 14:38:53 +0100182config RAMBASE
183 hex
184 default 0x10000000
185
Raul E Rangel72616b32021-02-05 16:48:42 -0700186config RO_REGION_ONLY
187 string
188 depends on VBOOT_SLOTS_RW_AB || VBOOT_SLOTS_RW_A
189 default "apu/amdfw"
190
Felix Helddc2d3562020-12-02 14:38:53 +0100191config CPU_ADDR_BITS
192 int
193 default 48
194
195config MMCONF_BASE_ADDRESS
Felix Helddc2d3562020-12-02 14:38:53 +0100196 default 0xF8000000
197
198config MMCONF_BUS_NUMBER
Felix Helddc2d3562020-12-02 14:38:53 +0100199 default 64
200
Felix Held88615622021-01-19 23:51:45 +0100201config MAX_CPUS
202 int
203 default 16
Felix Heldb77387f2021-04-23 22:16:04 +0200204 help
205 Maximum number of threads the platform can have.
Felix Held88615622021-01-19 23:51:45 +0100206
Felix Held8a3d4d52021-01-13 03:06:21 +0100207config CONSOLE_UART_BASE_ADDRESS
208 depends on CONSOLE_SERIAL && AMD_SOC_CONSOLE_UART
209 hex
210 default 0xfedc9000 if UART_FOR_CONSOLE = 0
211 default 0xfedca000 if UART_FOR_CONSOLE = 1
212
Felix Heldee2a3652021-02-09 23:43:17 +0100213config SMM_TSEG_SIZE
214 hex
Felix Helde22eef72021-02-10 22:22:07 +0100215 default 0x800000 if HAVE_SMI_HANDLER
Felix Heldee2a3652021-02-09 23:43:17 +0100216 default 0x0
217
218config SMM_RESERVED_SIZE
219 hex
220 default 0x180000
221
222config SMM_MODULE_STACK_SIZE
223 hex
224 default 0x800
225
Felix Held90b07012021-04-15 20:23:56 +0200226config ACPI_BERT
227 bool "Build ACPI BERT Table"
228 default y
229 depends on HAVE_ACPI_TABLES
230 help
231 Report Machine Check errors identified in POST to the OS in an
232 ACPI Boot Error Record Table.
233
234config ACPI_BERT_SIZE
235 hex
236 default 0x4000 if ACPI_BERT
237 default 0x0
238 help
239 Specify the amount of DRAM reserved for gathering the data used to
240 generate the ACPI table.
241
Zheng Bao7b13e4e2021-03-16 16:13:56 +0800242config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
243 int
244 default 150
245
Raul E Rangel95b3dc32021-03-24 16:53:37 -0600246config DISABLE_SPI_FLASH_ROM_SHARING
247 def_bool n
248 help
249 Instruct the chipset to not honor the EGPIO67_SPI_ROM_REQ pin
250 which indicates a board level ROM transaction request. This
251 removes arbitration with board and assumes the chipset controls
252 the SPI flash bus entirely.
253
Felix Held27b295b2021-03-25 01:20:41 +0100254config DISABLE_KEYBOARD_RESET_PIN
255 bool
256 help
257 Instruct the SoC to not use the state of GPIO_129 as keyboard reset
258 signal. When this pin is used as GPIO and the keyboard reset
259 functionality isn't disabled, configuring it as an output and driving
260 it as 0 will cause a reset.
261
Jason Glenesk79542fa2021-03-10 03:50:57 -0800262config ACPI_SSDT_PSD_INDEPENDENT
263 bool "Allow core p-state independent transitions"
264 default y
265 help
266 AMD recommends the ACPI _PSD object to be configured to cause
267 cores to transition between p-states independently. A vendor may
268 choose to generate _PSD object to allow cores to transition together.
269
Zheng Baof51738d2021-01-20 16:43:52 +0800270menu "PSP Configuration Options"
271
272config AMD_FWM_POSITION_INDEX
273 int "Firmware Directory Table location (0 to 5)"
274 range 0 5
275 default 0 if BOARD_ROMSIZE_KB_512
276 default 1 if BOARD_ROMSIZE_KB_1024
277 default 2 if BOARD_ROMSIZE_KB_2048
278 default 3 if BOARD_ROMSIZE_KB_4096
279 default 4 if BOARD_ROMSIZE_KB_8192
280 default 5 if BOARD_ROMSIZE_KB_16384
281 help
282 Typically this is calculated by the ROM size, but there may
283 be situations where you want to put the firmware directory
284 table in a different location.
285 0: 512 KB - 0xFFFA0000
286 1: 1 MB - 0xFFF20000
287 2: 2 MB - 0xFFE20000
288 3: 4 MB - 0xFFC20000
289 4: 8 MB - 0xFF820000
290 5: 16 MB - 0xFF020000
291
292comment "AMD Firmware Directory Table set to location for 512KB ROM"
293 depends on AMD_FWM_POSITION_INDEX = 0
294comment "AMD Firmware Directory Table set to location for 1MB ROM"
295 depends on AMD_FWM_POSITION_INDEX = 1
296comment "AMD Firmware Directory Table set to location for 2MB ROM"
297 depends on AMD_FWM_POSITION_INDEX = 2
298comment "AMD Firmware Directory Table set to location for 4MB ROM"
299 depends on AMD_FWM_POSITION_INDEX = 3
300comment "AMD Firmware Directory Table set to location for 8MB ROM"
301 depends on AMD_FWM_POSITION_INDEX = 4
302comment "AMD Firmware Directory Table set to location for 16MB ROM"
303 depends on AMD_FWM_POSITION_INDEX = 5
304
305config AMDFW_CONFIG_FILE
306 string
307 default "src/soc/amd/cezanne/fw.cfg"
308
Rob Barnese09b6812021-04-15 17:21:19 -0600309config PSP_DISABLE_POSTCODES
310 bool "Disable PSP post codes"
311 help
312 Disables the output of port80 post codes from PSP.
313
314config PSP_POSTCODES_ON_ESPI
315 bool "Use eSPI bus for PSP post codes"
316 default y
317 depends on !PSP_DISABLE_POSTCODES
318 help
319 Select to send PSP port80 post codes on eSPI bus.
320 If not selected, PSP port80 codes will be sent on LPC bus.
321
Zheng Baof51738d2021-01-20 16:43:52 +0800322config PSP_LOAD_MP2_FW
323 bool
324 default n
325 help
326 Include the MP2 firmwares and configuration into the PSP build.
327
328 If unsure, answer 'n'
329
Zheng Baof51738d2021-01-20 16:43:52 +0800330config PSP_UNLOCK_SECURE_DEBUG
331 bool "Unlock secure debug"
332 default y
333 help
334 Select this item to enable secure debug options in PSP.
335
Raul E Rangel97b8b172021-02-24 16:59:32 -0700336config HAVE_PSP_WHITELIST_FILE
337 bool "Include a debug whitelist file in PSP build"
338 default n
339 help
340 Support secured unlock prior to reset using a whitelisted
341 serial number. This feature requires a signed whitelist image
342 and bootloader from AMD.
343
344 If unsure, answer 'n'
345
346config PSP_WHITELIST_FILE
347 string "Debug whitelist file path"
348 depends on HAVE_PSP_WHITELIST_FILE
349 default "3rdparty/amd_blobs/cezanne/PSP/wtl-czn.sbin"
350
Martin Rothfdad5ad2021-04-16 11:36:01 -0600351config PSP_SOFTFUSE_BITS
352 string "PSP Soft Fuse bits to enable"
353 default "28 6"
354 help
355 Space separated list of Soft Fuse bits to enable.
356 Bit 0: Enable secure debug (Set by PSP_UNLOCK_SECURE_DEBUG)
357 Bit 7: Disable PSP postcodes on Renoir and newer chips only
358 (Set by PSP_DISABLE_PORT80)
359 Bit 15: PSP post code destination: 0=LPC 1=eSPI
360 (Set by PSP_INITIALIZE_ESPI)
361 Bit 29: Disable MP2 firmware loading (Set by PSP_LOAD_MP2_FW)
362
363 See #55758 (NDA) for additional bit definitions.
364
Kangheui Won66c5f252021-04-20 17:30:29 +1000365config PSP_VERSTAGE_FILE
366 string "Specify the PSP_verstage file path"
367 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
368 default "$(obj)/psp_verstage.bin"
369 help
370 Add psp_verstage file to the build & PSP Directory Table
371
372config PSP_VERSTAGE_SIGNING_TOKEN
373 string "Specify the PSP_verstage Signature Token file path"
374 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
375 default ""
376 help
377 Add psp_verstage signature token to the build & PSP Directory Table
378
Zheng Baof51738d2021-01-20 16:43:52 +0800379endmenu
380
Raul E Rangel06d1e4d2021-04-09 14:42:06 -0600381config VBOOT
382 select VBOOT_VBNV_CMOS
383 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
384
Kangheui Won66c5f252021-04-20 17:30:29 +1000385config VBOOT_STARTS_BEFORE_BOOTBLOCK
386 def_bool n
387 depends on VBOOT
388 select ARCH_VERSTAGE_ARMV7
389 help
390 Runs verstage on the PSP. Only available on
391 certain Chrome OS branded parts from AMD.
392
393config VBOOT_HASH_BLOCK_SIZE
394 hex
395 default 0x9000
396 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
397 help
398 Because the bulk of the time in psp_verstage to hash the RO cbfs is
399 spent in the overhead of doing svc calls, increasing the hash block
400 size significantly cuts the verstage hashing time as seen below.
401
402 4k takes 180ms
403 16k takes 44ms
404 32k takes 33.7ms
405 36k takes 32.5ms
406 There's actually still room for an even bigger stack, but we've
407 reached a point of diminishing returns.
408
409config CMOS_RECOVERY_BYTE
410 hex
411 default 0x51
412 depends on VBOOT_STARTS_BEFORE_BOOTBLOCK
413 help
414 If the workbuf is not passed from the PSP to coreboot, set the
415 recovery flag and reboot. The PSP will read this byte, mark the
416 recovery request in VBNV, and reset the system into recovery mode.
417
418 This is the byte before the default first byte used by VBNV
419 (0x26 + 0x0E - 1)
420
Kangheui Won1b2eeb12021-05-06 13:09:12 +1000421if VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
422
423config RWA_REGION_ONLY
424 string
425 default "apu/amdfw_a"
426 help
427 Add a space-delimited list of filenames that should only be in the
428 RW-A section.
429
430config RWB_REGION_ONLY
431 string
432 default "apu/amdfw_b"
433 help
434 Add a space-delimited list of filenames that should only be in the
435 RW-B section.
436
437endif # VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
438
Felix Helddc2d3562020-12-02 14:38:53 +0100439endif # SOC_AMD_CEZANNE