blob: e23cfd8f8778f0f60374524e054fab57398bd608 [file] [log] [blame]
Felix Held4a8cd722020-04-18 22:26:39 +02001# SPDX-License-Identifier: GPL-2.0-only
Martin Roth5c354b92019-04-22 14:55:16 -06002
Martin Roth1f337622019-04-22 16:08:31 -06003config SOC_AMD_PICASSO
Martin Roth5c354b92019-04-22 14:55:16 -06004 bool
5 help
Martin Roth1f337622019-04-22 16:08:31 -06006 AMD Picasso support
Martin Roth5c354b92019-04-22 14:55:16 -06007
Martin Roth1f337622019-04-22 16:08:31 -06008if SOC_AMD_PICASSO
Martin Roth5c354b92019-04-22 14:55:16 -06009
10config CPU_SPECIFIC_OPTIONS
11 def_bool y
12 select ARCH_BOOTBLOCK_X86_32
13 select ARCH_VERSTAGE_X86_32
14 select ARCH_ROMSTAGE_X86_32
15 select ARCH_RAMSTAGE_X86_32
Felix Held46673222020-04-04 02:37:04 +020016 select RESET_VECTOR_IN_RAM
Martin Roth5c354b92019-04-22 14:55:16 -060017 select X86_AMD_FIXED_MTRRS
Marshall Dawson34c30562019-07-16 15:18:00 -060018 select X86_AMD_INIT_SIPI
Martin Roth5c354b92019-04-22 14:55:16 -060019 select ACPI_AMD_HARDWARE_SLEEP_VALUES
Martin Roth5c354b92019-04-22 14:55:16 -060020 select DRIVERS_I2C_DESIGNWARE
21 select GENERIC_GPIO_LIB
Martin Roth5c354b92019-04-22 14:55:16 -060022 select IOAPIC
Furquan Shaikh0eabe132020-04-28 21:57:07 -070023 select HAVE_EM100_SUPPORT
Martin Roth5c354b92019-04-22 14:55:16 -060024 select HAVE_USBDEBUG_OPTIONS
Marshall Dawson80d0b012019-06-19 12:29:23 -060025 select TSC_MONOTONIC_TIMER
Richard Spiegel65562cd652019-08-21 10:27:05 -070026 select SOC_AMD_COMMON_BLOCK_SPI
Martin Roth5c354b92019-04-22 14:55:16 -060027 select TSC_SYNC_LFENCE
Marshall Dawson80d0b012019-06-19 12:29:23 -060028 select UDELAY_TSC
Martin Roth5c354b92019-04-22 14:55:16 -060029 select SOC_AMD_COMMON
30 select SOC_AMD_COMMON_BLOCK
Furquan Shaikh702cf302020-05-09 18:30:51 -070031 select SOC_AMD_COMMON_BLOCK_HAS_ESPI
Martin Roth5c354b92019-04-22 14:55:16 -060032 select SOC_AMD_COMMON_BLOCK_IOMMU
33 select SOC_AMD_COMMON_BLOCK_ACPIMMIO
34 select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS
35 select SOC_AMD_COMMON_BLOCK_ACPI
Furquan Shaikh9e1a49c2020-04-23 14:01:12 -070036 select SOC_AMD_COMMON_BLOCK_GRAPHICS
Martin Roth5c354b92019-04-22 14:55:16 -060037 select SOC_AMD_COMMON_BLOCK_LPC
38 select SOC_AMD_COMMON_BLOCK_PCI
39 select SOC_AMD_COMMON_BLOCK_HDA
40 select SOC_AMD_COMMON_BLOCK_SATA
Aaron Durbin3d2e18a2020-01-28 11:20:05 -070041 select SOC_AMD_COMMON_BLOCK_SMBUS
Marshall Dawson5a73fc32020-01-24 09:42:57 -070042 select SOC_AMD_COMMON_BLOCK_PSP_GEN2
Aaron Durbin1d0b99b2020-04-11 11:58:57 -060043 select PROVIDES_ROM_SHARING
Martin Roth5c354b92019-04-22 14:55:16 -060044 select BOOT_DEVICE_SUPPORTS_WRITES if BOOT_DEVICE_SPI_FLASH
45 select BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY if BOOT_DEVICE_SPI_FLASH
Martin Roth5c354b92019-04-22 14:55:16 -060046 select PARALLEL_MP
47 select PARALLEL_MP_AP_WORK
48 select HAVE_SMI_HANDLER
Martin Roth5c354b92019-04-22 14:55:16 -060049 select SSE2
50 select RTC
Marshall Dawson00a22082020-01-20 23:05:31 -070051 select PLATFORM_USES_FSP2_0
Furquan Shaikhc3063c52020-05-28 11:58:20 -070052 select FSP_COMPRESS_FSP_M_LZMA
53 select FSP_COMPRESS_FSP_S_LZMA
Marshall Dawson00a22082020-01-20 23:05:31 -070054 select FSP_USES_CB_STACK
55 select UDK_2017_BINDING
56 select HAVE_CF9_RESET
Zheng Bao6ba591b2020-06-09 09:47:06 +080057 select SUPPORT_CPU_UCODE_IN_CBFS
Martin Roth5c354b92019-04-22 14:55:16 -060058
Furquan Shaikh3b032062020-06-10 11:52:49 -070059config MEMLAYOUT_LD_FILE
60 string
61 default "src/soc/amd/picasso/memlayout.ld"
62
Furquan Shaikhbc456502020-06-10 16:37:23 -070063config EARLY_RESERVED_DRAM_BASE
64 hex
65 default 0x2000000
66 help
67 This variable defines the base address of the DRAM which is reserved
68 for usage by coreboot in early stages (i.e. before ramstage is up).
69 This memory gets reserved in BIOS tables to ensure that the OS does
70 not use it, thus preventing corruption of OS memory in case of S3
71 resume.
72
73config EARLYRAM_BSP_STACK_SIZE
74 hex
75 default 0x1000
76
77config PSP_APOB_DRAM_ADDRESS
78 hex
79 default 0x2001000
80 help
81 Location in DRAM where the PSP will copy the AGESA PSP Output
82 Block.
83
84config PSP_SHAREDMEM_BASE
85 hex
86 default 0x2011000 if VBOOT
87 default 0x0
88 help
89 This variable defines the base address in DRAM memory where PSP copies
90 vboot workbuf to. This is used in linker script to have a static
91 allocation for the buffer as well as for adding relevant entries in
92 BIOS directory table for the PSP.
93
94config PSP_SHAREDMEM_SIZE
95 hex
96 default 0x8000 if VBOOT
97 default 0x0
98 help
99 Sets the maximum size for the PSP to pass the vboot workbuf and
100 any logs or timestamps back to coreboot. This will be copied
101 into main memory by the PSP and will be available when the x86 is
102 started. The workbuf's base depends on the address of the reset
103 vector.
104
Martin Roth5c354b92019-04-22 14:55:16 -0600105config PRERAM_CBMEM_CONSOLE_SIZE
106 hex
107 default 0x1600
108 help
109 Increase this value if preram cbmem console is getting truncated
110
Furquan Shaikhbc456502020-06-10 16:37:23 -0700111config BOOTBLOCK_ADDR
112 hex
113 default 0x2030000
114 help
115 Sets the address in DRAM where bootblock should be loaded.
116
117config C_ENV_BOOTBLOCK_SIZE
118 hex
119 default 0x10000
120 help
121 Sets the size of the bootblock stage that should be loaded in DRAM.
122 This variable controls the DRAM allocation size in linker script
123 for bootblock stage.
124
125config X86_RESET_VECTOR
126 hex
127 depends on ARCH_X86
128 default 0x203fff0
129 help
130 Sets the reset vector within bootblock where x86 starts execution.
131 Reset vector is supposed to live at offset -0x10 from end of
132 bootblock i.e. BOOTBLOCK_ADDR + C_ENV_BOOTBLOCK_SIZE - 0x10.
133
134config ROMSTAGE_ADDR
135 hex
136 default 0x2040000
137 help
138 Sets the address in DRAM where romstage should be loaded.
139
140config ROMSTAGE_SIZE
141 hex
142 default 0x80000
143 help
144 Sets the size of DRAM allocation for romstage in linker script.
145
146config FSP_M_ADDR
147 hex
148 default 0x20C0000
149 help
150 Sets the address in DRAM where FSP-M should be loaded. cbfstool
151 performs relocation of FSP-M to this address.
152
153config FSP_M_SIZE
154 hex
155 default 0x80000
156 help
157 Sets the size of DRAM allocation for FSP-M in linker script.
158
159config VERSTAGE_ADDR
160 hex
161 depends on VBOOT_SEPARATE_VERSTAGE
162 default 0x2140000
163 help
164 Sets the address in DRAM where verstage should be loaded if running
165 as a separate stage on x86.
166
167config VERSTAGE_SIZE
168 hex
169 depends on VBOOT_SEPARATE_VERSTAGE
170 default 0x80000
171 help
172 Sets the size of DRAM allocation for verstage in linker script if
173 running as a separate stage on x86.
174
175config RAMBASE
176 hex
177 default 0x10000000
178
Martin Roth5c354b92019-04-22 14:55:16 -0600179config CPU_ADDR_BITS
180 int
181 default 48
182
Martin Roth5c354b92019-04-22 14:55:16 -0600183config MMCONF_BASE_ADDRESS
184 hex
185 default 0xF8000000
186
187config MMCONF_BUS_NUMBER
188 int
189 default 64
190
Raul E Rangel5f52c0e2020-05-13 13:22:48 -0600191config VERSTAGE_ADDR
192 hex
193 default 0x4000000
194
Martin Roth5c354b92019-04-22 14:55:16 -0600195config VGA_BIOS_ID
196 string
Martin Roth86ba0d72020-02-05 16:46:30 -0700197 default "1002,15d8,c1"
Martin Roth5c354b92019-04-22 14:55:16 -0600198 help
199 The default VGA BIOS PCI vendor/device ID should be set to the
Martin Roth86ba0d72020-02-05 16:46:30 -0700200 result of the map_oprom_vendev_rev() function in northbridge.c.
Martin Roth5c354b92019-04-22 14:55:16 -0600201
202config VGA_BIOS_FILE
203 string
Raul E Rangelf39dab12020-05-13 16:46:57 -0600204 default "3rdparty/amd_blobs/picasso/PicassoGenericVbios.bin"
Martin Roth5c354b92019-04-22 14:55:16 -0600205
Martin Roth86ba0d72020-02-05 16:46:30 -0700206config VGA_BIOS_SECOND
207 def_bool y
208
209config VGA_BIOS_SECOND_ID
210 string
211 default "1002,15dd,c4"
212 help
213 Because Dali and Picasso need different video BIOSes, but have the
214 same vendor/device IDs, we need an alternate method to determine the
215 correct video BIOS. In map_oprom_vendev_rev(), we look at the cpuid
216 and decide which rom to load.
217
218 Even though the hardware has the same vendor/device IDs, the vBIOS
219 contains a *different* device ID, confusing the situation even more.
220
221config VGA_BIOS_SECOND_FILE
222 string
223 default "3rdparty/amd_blobs/picasso/Raven2GenericVbios.bin"
224
225config CHECK_REV_IN_OPROM_NAME
226 bool
227 default y
228 help
229 Select this in the platform BIOS or chipset if the option rom has a
230 revision that needs to be checked when searching CBFS.
231
Martin Roth5c354b92019-04-22 14:55:16 -0600232config S3_VGA_ROM_RUN
233 bool
234 default n
235
236config HEAP_SIZE
237 hex
238 default 0xc0000
239
240config EHCI_BAR
241 hex
242 default 0xfef00000
243
Martin Roth5c354b92019-04-22 14:55:16 -0600244config SERIRQ_CONTINUOUS_MODE
245 bool
246 default n
247 help
248 Set this option to y for serial IRQ in continuous mode.
249 Otherwise it is in quiet mode.
250
Marshall Dawsonbc4c9032019-06-11 12:18:20 -0600251config PICASSO_ACPI_IO_BASE
Martin Roth5c354b92019-04-22 14:55:16 -0600252 hex
253 default 0x400
254 help
255 Base address for the ACPI registers.
Martin Roth5c354b92019-04-22 14:55:16 -0600256
Marshall Dawsonbc4c9032019-06-11 12:18:20 -0600257config PICASSO_UART
258 bool "UART controller on Picasso"
Martin Roth5c354b92019-04-22 14:55:16 -0600259 default n
260 select DRIVERS_UART_8250MEM
261 select DRIVERS_UART_8250MEM_32
262 select NO_UART_ON_SUPERIO
263 select UART_OVERRIDE_REFCLK
264 help
Marshall Dawsonc0b8d0d2019-06-20 10:29:29 -0600265 There are four memory-mapped UARTs controllers in Picasso at:
266 0: 0xfedc9000
267 1: 0xfedca000
268 2: 0xfedc3000
269 3: 0xfedcf000
270
271choice PICASSO_UART_CLOCK_SOURCE
272 prompt "UART Frequency"
273 depends on PICASSO_UART
274 default PICASSO_UART_48MZ
275
276config PICASSO_UART_48MZ
277 bool "48 MHz clock"
278 help
279 Select this option for the most compatibility.
280
281config PICASSO_UART_1_8MZ
282 bool "1.8432 MHz clock"
283 help
284 Select this option if an old payload or Linux ttyS0 arguments
285 require it.
286
287endchoice
288
289config PICASSO_UART_LEGACY
290 bool "Decode legacy I/O range"
291 depends on PICASSO_UART
292 help
293 Assign I/O 3F8, 2F8, etc. to a Picasso UART. Only a single UART may
294 decode legacy addresses and this option enables the one used for the
295 console. A UART accessed with I/O does not allow all the features
296 of MMIO. The MMIO decode is still present when this option is used.
Martin Roth5c354b92019-04-22 14:55:16 -0600297
298config CONSOLE_UART_BASE_ADDRESS
Marshall Dawsonc0b8d0d2019-06-20 10:29:29 -0600299 depends on CONSOLE_SERIAL && PICASSO_UART
Martin Roth5c354b92019-04-22 14:55:16 -0600300 hex
Marshall Dawsonc0b8d0d2019-06-20 10:29:29 -0600301 default 0xfedc9000 if UART_FOR_CONSOLE = 0
302 default 0xfedca000 if UART_FOR_CONSOLE = 1
303 default 0xfedc3000 if UART_FOR_CONSOLE = 2
304 default 0xfedcf000 if UART_FOR_CONSOLE = 3
Martin Roth5c354b92019-04-22 14:55:16 -0600305
306config SMM_TSEG_SIZE
307 hex
308 default 0x800000 if SMM_TSEG && HAVE_SMI_HANDLER
309 default 0x0
310
311config SMM_RESERVED_SIZE
312 hex
Marshall Dawson3e2fabf2020-06-12 10:28:04 -0600313 default 0x180000
Martin Roth5c354b92019-04-22 14:55:16 -0600314
315config SMM_MODULE_STACK_SIZE
316 hex
317 default 0x800
318
319config ACPI_CPU_STRING
320 string
Marshall Dawson879eba52019-11-22 17:52:39 -0700321 default "\\_PR.C%03d"
Martin Roth5c354b92019-04-22 14:55:16 -0600322
323config ACPI_BERT
324 bool "Build ACPI BERT Table"
325 default y
326 depends on HAVE_ACPI_TABLES
327 help
328 Report Machine Check errors identified in POST to the OS in an
329 ACPI Boot Error Record Table. This option reserves an 8MB region
330 for building the error structures.
331
Marshall Dawson901cb9c2020-01-21 14:53:45 -0700332config ACPI_BERT_SIZE
333 hex
334 default 0x4000
335 help
336 Specify the amount of DRAM reserved for gathering the data used to
337 generate the ACPI table.
338
Furquan Shaikh40a38882020-05-01 10:43:48 -0700339config CHROMEOS
340 select CHROMEOS_RAMOOPS_DYNAMIC
341
Marshall Dawson62611412019-06-19 11:46:06 -0600342config RO_REGION_ONLY
343 string
344 depends on CHROMEOS
345 default "apu/amdfw"
Martin Roth5c354b92019-04-22 14:55:16 -0600346
Marshall Dawson62611412019-06-19 11:46:06 -0600347config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
348 int
Martin Roth4017de02019-12-16 23:21:05 -0700349 default 150
Marshall Dawson62611412019-06-19 11:46:06 -0600350
Marshall Dawson39a4ac12019-06-20 16:28:33 -0600351config PICASSO_LPC_IOMUX
352 bool
353 help
354 Picasso's LPC bus signals are MUXed with some of the EMMC signals.
355 Select this option if LPC signals are required.
356
Aaron Durbin1d0b99b2020-04-11 11:58:57 -0600357config DISABLE_SPI_FLASH_ROM_SHARING
358 def_bool n
359 help
360 Instruct the chipset to not honor the EGPIO67_SPI_ROM_REQ pin
361 which indicates a board level ROM transaction request. This
362 removes arbitration with board and assumes the chipset controls
363 the SPI flash bus entirely.
364
Marshall Dawson62611412019-06-19 11:46:06 -0600365config MAINBOARD_POWER_RESTORE
366 def_bool n
367 help
368 This option determines what state to go to once power is restored
369 after having been lost in S0. Select this option to automatically
370 return to S0. Otherwise the system will remain in S5 once power
371 is restored.
372
Marshall Dawson00a22082020-01-20 23:05:31 -0700373config FSP_TEMP_RAM_SIZE
374 hex
375 depends on FSP_USES_CB_STACK
376 default 0x40000
377 help
378 The amount of coreboot-allocated heap and stack usage by the FSP.
379
Marshall Dawson62611412019-06-19 11:46:06 -0600380menu "PSP Configuration Options"
Martin Roth5c354b92019-04-22 14:55:16 -0600381
Martin Roth5c354b92019-04-22 14:55:16 -0600382config AMDFW_OUTSIDE_CBFS
Furquan Shaikhd4ef9a42020-04-24 11:49:32 -0700383 bool
Martin Roth5c354b92019-04-22 14:55:16 -0600384 default n
385 help
386 The AMDFW (PSP) is typically locatable in cbfs. Select this
387 option to manually attach the generated amdfw.rom outside of
388 cbfs. The location is selected by the FWM position.
389
390config AMD_FWM_POSITION_INDEX
391 int "Firmware Directory Table location (0 to 5)"
392 range 0 5
393 default 0 if BOARD_ROMSIZE_KB_512
394 default 1 if BOARD_ROMSIZE_KB_1024
395 default 2 if BOARD_ROMSIZE_KB_2048
396 default 3 if BOARD_ROMSIZE_KB_4096
397 default 4 if BOARD_ROMSIZE_KB_8192
398 default 5 if BOARD_ROMSIZE_KB_16384
399 help
400 Typically this is calculated by the ROM size, but there may
401 be situations where you want to put the firmware directory
402 table in a different location.
403 0: 512 KB - 0xFFFA0000
404 1: 1 MB - 0xFFF20000
405 2: 2 MB - 0xFFE20000
406 3: 4 MB - 0xFFC20000
407 4: 8 MB - 0xFF820000
408 5: 16 MB - 0xFF020000
409
410comment "AMD Firmware Directory Table set to location for 512KB ROM"
411 depends on AMD_FWM_POSITION_INDEX = 0
412comment "AMD Firmware Directory Table set to location for 1MB ROM"
413 depends on AMD_FWM_POSITION_INDEX = 1
414comment "AMD Firmware Directory Table set to location for 2MB ROM"
415 depends on AMD_FWM_POSITION_INDEX = 2
416comment "AMD Firmware Directory Table set to location for 4MB ROM"
417 depends on AMD_FWM_POSITION_INDEX = 3
418comment "AMD Firmware Directory Table set to location for 8MB ROM"
419 depends on AMD_FWM_POSITION_INDEX = 4
420comment "AMD Firmware Directory Table set to location for 16MB ROM"
421 depends on AMD_FWM_POSITION_INDEX = 5
422
Marshall Dawson62611412019-06-19 11:46:06 -0600423config AMD_PUBKEY_FILE
Furquan Shaikhd4ef9a42020-04-24 11:49:32 -0700424 string
Raul E Rangelf39dab12020-05-13 16:46:57 -0600425 default "3rdparty/amd_blobs/picasso/PSP/AmdPubKeyRV.bin"
Martin Roth5c354b92019-04-22 14:55:16 -0600426
Marshall Dawson62611412019-06-19 11:46:06 -0600427config USE_PSPSCUREOS
Furquan Shaikhd4ef9a42020-04-24 11:49:32 -0700428 bool
Marshall Dawson62611412019-06-19 11:46:06 -0600429 default y
430 help
431 Include the PspSecureOs and PspTrustlet binaries in the PSP build.
432
433 If unsure, answer 'y'
434
435config PSP_LOAD_MP2_FW
Furquan Shaikhd4ef9a42020-04-24 11:49:32 -0700436 bool
Furquan Shaikh47cdf432020-04-23 18:01:34 -0700437 default n
Marshall Dawson62611412019-06-19 11:46:06 -0600438 help
439 Include the MP2 firmwares and configuration into the PSP build.
440
Furquan Shaikh47cdf432020-04-23 18:01:34 -0700441 If unsure, answer 'n'
Marshall Dawson62611412019-06-19 11:46:06 -0600442
443config PSP_LOAD_S0I3_FW
Furquan Shaikhd4ef9a42020-04-24 11:49:32 -0700444 bool
Furquan Shaikh30bc5b32020-04-23 18:02:53 -0700445 default n
Marshall Dawson62611412019-06-19 11:46:06 -0600446 help
447 Select this item to include the S0i3 file into the PSP build.
448
449config HAVE_PSP_WHITELIST_FILE
450 bool "Include a debug whitelist file in PSP build"
451 default n
452 help
453 Support secured unlock prior to reset using a whitelisted
454 number? This feature requires a signed whitelist image and
455 bootloader from AMD.
456
457 If unsure, answer 'n'
458
459config PSP_WHITELIST_FILE
Martin Roth49b09a02020-02-20 13:54:06 -0700460 string "Debug whitelist file path"
Marshall Dawson62611412019-06-19 11:46:06 -0600461 depends on HAVE_PSP_WHITELIST_FILE
Raul E Rangelf39dab12020-05-13 16:46:57 -0600462 default "3rdparty/amd_blobs/picasso/PSP/wtl-rvn.sbin"
Marshall Dawson62611412019-06-19 11:46:06 -0600463
Martin Roth49b09a02020-02-20 13:54:06 -0700464config PSP_BOOTLOADER_FILE
465 string "Specify the PSP Bootloader file path"
466 default "3rdparty/amd_blobs/picasso/PSP/PspBootLoader_WL_RV.sbin" if HAVE_PSP_WHITELIST_FILE
467 default "3rdparty/amd_blobs/picasso/PSP/PspBootLoader_prod_RV.sbin"
468 help
469 Supply the name of the PSP bootloader file.
470
471 Note that this option may conflict with the whitelist file if a
472 different PSP bootloader binary is specified.
473
Furquan Shaikh577db022020-04-24 15:52:04 -0700474config PSP_UNLOCK_SECURE_DEBUG
475 bool "Unlock secure debug"
476 default n
477 help
478 Select this item to enable secure debug options in PSP.
479
Marshall Dawson62611412019-06-19 11:46:06 -0600480endmenu
Martin Roth5c354b92019-04-22 14:55:16 -0600481
Martin Roth1f337622019-04-22 16:08:31 -0600482endif # SOC_AMD_PICASSO