blob: cbf88df902a7901a618a38a6275c2a4284bb8da2 [file] [log] [blame]
Marc Jones24484842017-05-04 21:17:45 -06001##
2## This file is part of the coreboot project.
3##
4## Copyright (C) 2017 Advanced Micro Devices, Inc.
5##
6## This program is free software; you can redistribute it and/or modify
7## it under the terms of the GNU General Public License as published by
8## the Free Software Foundation; version 2 of the License.
9##
10## This program is distributed in the hope that it will be useful,
11## but WITHOUT ANY WARRANTY; without even the implied warranty of
12## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13## GNU General Public License for more details.
14##
15
Marc Jones21cde8b2017-05-07 16:47:36 -060016config SOC_AMD_STONEYRIDGE_FP4
Marc Jones24484842017-05-04 21:17:45 -060017 bool
Marc Jones21cde8b2017-05-07 16:47:36 -060018 help
19 AMD Stoney Ridge FP4 support
20
21config SOC_AMD_STONEYRIDGE_FT4
22 bool
23 help
24 AMD Stoney Ridge FT4 support
25
Richard Spiegel1bc578a2019-06-18 18:19:47 -070026config SOC_AMD_MERLINFALCON
27 bool
28 help
29 AMD Merlin Falcon FP4 support
30
31config HAVE_MERLINFALCON_BINARIES
32 depends on SOC_AMD_MERLINFALCON
33 bool "Merlinfalcon binaries are present"
34 default n
35 help
36 This config option will be removed once the binaries are merged
37 to the blobs repo. See 33615.
38
39if SOC_AMD_STONEYRIDGE_FP4 || SOC_AMD_STONEYRIDGE_FT4 || SOC_AMD_MERLINFALCON
Marc Jones21cde8b2017-05-07 16:47:36 -060040
41config CPU_SPECIFIC_OPTIONS
42 def_bool y
43 select ARCH_BOOTBLOCK_X86_32
44 select ARCH_VERSTAGE_X86_32
45 select ARCH_ROMSTAGE_X86_32
46 select ARCH_RAMSTAGE_X86_32
Marshall Dawson82145a12017-10-20 12:36:35 -060047 select X86_AMD_FIXED_MTRRS
Marshall Dawson68592c32017-11-06 10:56:52 -070048 select ACPI_AMD_HARDWARE_SLEEP_VALUES
Aaron Durbin51e4c1a2018-01-24 17:42:51 -070049 select COLLECT_TIMESTAMPS_NO_TSC
Chris Ching6fc39d42017-12-20 16:06:03 -070050 select DRIVERS_I2C_DESIGNWARE
Marc Jones9156cac2017-07-12 11:05:38 -060051 select GENERIC_GPIO_LIB
Aaron Durbin51e4c1a2018-01-24 17:42:51 -070052 select GENERIC_UDELAY
Marc Jones24484842017-05-04 21:17:45 -060053 select IOAPIC
54 select HAVE_USBDEBUG_OPTIONS
Richard Spiegelbf171242019-08-21 10:09:51 -070055 select SOC_AMD_COMMON_BLOCK_SPI
Marc Jones21cde8b2017-05-07 16:47:36 -060056 select TSC_SYNC_LFENCE
Marc Jones1587dc82017-05-15 18:55:11 -060057 select SOC_AMD_PI
Marshall Dawson68243a52017-06-15 16:59:20 -060058 select SOC_AMD_COMMON
59 select SOC_AMD_COMMON_BLOCK
Marshall Dawsonec63a712019-05-03 12:55:16 -060060 select SOC_AMD_COMMON_BLOCK_IOMMU
Marshall Dawson69486ca2019-05-02 12:03:45 -060061 select SOC_AMD_COMMON_BLOCK_ACPIMMIO
Marshall Dawson251d3052019-05-02 17:27:57 -060062 select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS
Marshall Dawson3ce03602019-05-03 10:20:44 -060063 select SOC_AMD_COMMON_BLOCK_ACPI
Marshall Dawson6ab5ed32019-05-29 09:24:18 -060064 select SOC_AMD_COMMON_BLOCK_LPC
Richard Spiegel2bbc3dc2017-12-06 16:14:58 -070065 select SOC_AMD_COMMON_BLOCK_PCI
Marshall Dawson43c26cb2019-05-03 12:42:29 -060066 select SOC_AMD_COMMON_BLOCK_HDA
Marshall Dawsonaa67def2019-05-03 16:10:34 -060067 select SOC_AMD_COMMON_BLOCK_SATA
Richard Spiegel19f67a32017-12-08 18:16:02 -070068 select SOC_AMD_COMMON_BLOCK_PI
Marshall Dawson68243a52017-06-15 16:59:20 -060069 select SOC_AMD_COMMON_BLOCK_PSP
Marshall Dawson9df969a2017-07-25 18:46:46 -060070 select SOC_AMD_COMMON_BLOCK_CAR
Kyösti Mälkkia8eb4772018-06-28 17:23:27 +030071 select SOC_AMD_COMMON_BLOCK_S3
John E. Kabat Jraf327702017-11-29 18:49:37 -070072 select BOOT_DEVICE_SUPPORTS_WRITES if BOOT_DEVICE_SPI_FLASH
Marc Jones4c887ea2018-04-25 16:43:18 -060073 select BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY if BOOT_DEVICE_SPI_FLASH
Marshall Dawsona7bfbbe2017-09-13 17:24:53 -060074 select PARALLEL_MP
Marc Jones33eef132017-10-26 16:50:42 -060075 select PARALLEL_MP_AP_WORK
Marshall Dawsonb6172112017-09-13 17:47:31 -060076 select HAVE_SMI_HANDLER
Martin Roth37b8bde2017-09-26 09:41:10 -060077 select SSE2
Marc Jones17e85ad2017-12-20 16:21:25 -070078 select RTC
Marc Jones24484842017-05-04 21:17:45 -060079
Marshall Dawsone7557de2017-06-09 16:35:14 -060080config VBOOT
Marshall Dawsone7557de2017-06-09 16:35:14 -060081 select VBOOT_SEPARATE_VERSTAGE
82 select VBOOT_STARTS_IN_BOOTBLOCK
83 select VBOOT_SAVE_RECOVERY_REASON_ON_REBOOT
Marc Jones4c887ea2018-04-25 16:43:18 -060084 select VBOOT_VBNV_CMOS
85 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
Marshall Dawsone7557de2017-06-09 16:35:14 -060086
Marc Jones21cde8b2017-05-07 16:47:36 -060087# TODO: Sync these with definitions in PI vendorcode.
88# DCACHE_RAM_BASE must equal BSP_STACK_BASE_ADDR.
89# DCACHE_RAM_SIZE must equal BSP_STACK_SIZE.
90
91config DCACHE_RAM_BASE
92 hex
93 default 0x30000
94
95config DCACHE_RAM_SIZE
96 hex
97 default 0x10000
98
Marshall Dawson9df969a2017-07-25 18:46:46 -060099config DCACHE_BSP_STACK_SIZE
Marshall Dawson9df969a2017-07-25 18:46:46 -0600100 hex
101 default 0x4000
102 help
103 The amount of anticipated stack usage in CAR by bootblock and
104 other stages.
105
Marshall Dawson7c3f1e72017-08-24 09:59:10 -0600106config PRERAM_CBMEM_CONSOLE_SIZE
107 hex
Marshall Dawson1df6bc62017-12-19 20:41:29 -0700108 default 0x1600
Marshall Dawson7c3f1e72017-08-24 09:59:10 -0600109 help
110 Increase this value if preram cbmem console is getting truncated
111
Marc Jones21cde8b2017-05-07 16:47:36 -0600112config CPU_ADDR_BITS
113 int
114 default 48
115
Marc Jones1587dc82017-05-15 18:55:11 -0600116config BOTTOMIO_POSITION
117 hex "Bottom of 32-bit IO space"
118 default 0xD0000000
119 help
120 If PCI peripherals with big BARs are connected to the system
121 the bottom of the IO must be decreased to allocate such
122 devices.
123
124 Declare the beginning of the 128MB-aligned MMIO region. This
125 option is useful when PCI peripherals requesting large address
126 ranges are present.
127
Marc Jones1587dc82017-05-15 18:55:11 -0600128config MMCONF_BASE_ADDRESS
129 hex
130 default 0xF8000000
131
132config MMCONF_BUS_NUMBER
133 int
134 default 64
135
136config VGA_BIOS_ID
137 string
Richard Spiegel1bc578a2019-06-18 18:19:47 -0700138 default "1002,9874" if SOC_AMD_MERLINFALCON
Marc Jones1587dc82017-05-15 18:55:11 -0600139 default "1002,98e4"
140 help
141 The default VGA BIOS PCI vendor/device ID should be set to the
142 result of the map_oprom_vendev() function in northbridge.c.
143
144config VGA_BIOS_FILE
145 string
Richard Spiegel1bc578a2019-06-18 18:19:47 -0700146 default "3rdparty/blobs/soc/amd/merlinfalcon/VBIOS.bin" if SOC_AMD_MERLINFALCON && HAVE_MERLINFALCON_BINARIES
Richard Spiegel4eaf0fa2018-01-23 15:51:57 -0700147 default "3rdparty/blobs/soc/amd/stoneyridge/VBIOS.bin"
Marc Jones1587dc82017-05-15 18:55:11 -0600148
Marshall Dawson668dea02017-11-29 09:57:15 -0700149config S3_VGA_ROM_RUN
150 bool
151 default n
152
Marc Jones1587dc82017-05-15 18:55:11 -0600153config HEAP_SIZE
154 hex
155 default 0xc0000
156
Marc Jones24484842017-05-04 21:17:45 -0600157config EHCI_BAR
158 hex
159 default 0xfef00000
160
161config STONEYRIDGE_XHCI_ENABLE
162 bool "Enable Stoney Ridge XHCI Controller"
163 default y
164 help
165 The XHCI controller must be enabled and the XHCI firmware
166 must be added in order to have USB 3.0 support configured
167 by coreboot. The OS will be responsible for enabling the XHCI
Jonathan Neuschäfer45e6c822018-12-11 17:53:07 +0100168 controller if the XHCI firmware is available but the
Marc Jones24484842017-05-04 21:17:45 -0600169 XHCI controller is not enabled by coreboot.
170
171config STONEYRIDGE_XHCI_FWM
172 bool "Add xhci firmware"
173 default y
174 help
175 Add Stoney Ridge XHCI Firmware to support the onboard USB 3.0
176
Marc Jones24484842017-05-04 21:17:45 -0600177config STONEYRIDGE_GEC_FWM
178 bool
179 default n
180 help
181 Add Stoney Ridge GEC Firmware to support the onboard gigabit Ethernet MAC.
182 Must be connected to a Broadcom B50610 or B50610M PHY on the motherboard.
183
184config STONEYRIDGE_XHCI_FWM_FILE
185 string "XHCI firmware path and filename"
Richard Spiegela9872782018-01-04 17:26:54 -0700186 default "3rdparty/blobs/soc/amd/stoneyridge/xhci.bin"
Marc Jones24484842017-05-04 21:17:45 -0600187 depends on STONEYRIDGE_XHCI_FWM
188
Marc Jones24484842017-05-04 21:17:45 -0600189config STONEYRIDGE_GEC_FWM_FILE
190 string "GEC firmware path and filename"
191 depends on STONEYRIDGE_GEC_FWM
192
193config AMD_PUBKEY_FILE
194 string "AMD public Key"
Richard Spiegel1bc578a2019-06-18 18:19:47 -0700195 default "3rdparty/blobs/soc/amd/merlinfalcon/PSP/AmdPubKeyCZ.bin" if SOC_AMD_MERLINFALCON && HAVE_MERLINFALCON_BINARIES
Richard Spiegela9872782018-01-04 17:26:54 -0700196 default "3rdparty/blobs/soc/amd/stoneyridge/PSP/AmdPubKeyST.bin"
Marc Jones24484842017-05-04 21:17:45 -0600197
198config STONEYRIDGE_SATA_MODE
199 int "SATA Mode"
200 default 0
201 range 0 6
202 help
203 Select the mode in which SATA should be driven.
204 The default is NATIVE.
205 0: NATIVE mode does not require a ROM.
206 2: AHCI may work with or without AHCI ROM. It depends on the payload support.
207 For example, seabios does not require the AHCI ROM.
208 3: LEGACY IDE
209 4: IDE to AHCI
210 5: AHCI7804: ROM Required, and AMD driver required in the OS.
211 6: IDE to AHCI7804: ROM Required, and AMD driver required in the OS.
212
213comment "NATIVE"
214 depends on STONEYRIDGE_SATA_MODE = 0
215
216comment "AHCI"
217 depends on STONEYRIDGE_SATA_MODE = 2
218
219comment "LEGACY IDE"
220 depends on STONEYRIDGE_SATA_MODE = 3
221
222comment "IDE to AHCI"
223 depends on STONEYRIDGE_SATA_MODE = 4
224
225comment "AHCI7804"
226 depends on STONEYRIDGE_SATA_MODE = 5
227
228comment "IDE to AHCI7804"
229 depends on STONEYRIDGE_SATA_MODE = 6
230
231if STONEYRIDGE_SATA_MODE = 2 || STONEYRIDGE_SATA_MODE = 5
232
233config AHCI_ROM_ID
234 string "AHCI device PCI IDs"
235 default "1022,7801" if STONEYRIDGE_SATA_MODE = 2
236 default "1022,7804" if STONEYRIDGE_SATA_MODE = 5
237
238endif # STONEYRIDGE_SATA_MODE = 2 || STONEYRIDGE_SATA_MODE = 5
239
240config STONEYRIDGE_LEGACY_FREE
241 bool "System is legacy free"
242 help
243 Select y if there is no keyboard controller in the system.
244 This sets variables in AGESA and ACPI.
245
Marc Jones24484842017-05-04 21:17:45 -0600246config SERIRQ_CONTINUOUS_MODE
247 bool
248 default n
249 help
250 Set this option to y for serial IRQ in continuous mode.
251 Otherwise it is in quiet mode.
252
253config STONEYRIDGE_ACPI_IO_BASE
254 hex
255 default 0x400
256 help
257 Base address for the ACPI registers.
258 This value must match the hardcoded value of AGESA.
259
260config STONEYRIDGE_UART
261 bool "UART controller on Stoney Ridge"
262 default n
263 select DRIVERS_UART_8250MEM
264 select DRIVERS_UART_8250MEM_32
265 select NO_UART_ON_SUPERIO
266 select UART_OVERRIDE_REFCLK
267 help
268 There are two UART controllers in Stoney Ridge.
269 The UART registers are memory-mapped. UART
270 controller 0 registers range from FEDC_6000h
271 to FEDC_6FFFh. UART controller 1 registers
272 range from FEDC_8000h to FEDC_8FFFh.
273
Arthur Heymansb5e72b62018-01-02 23:41:24 +0100274config CONSOLE_UART_BASE_ADDRESS
275 depends on CONSOLE_SERIAL
276 hex
277 default 0xfedc6000
278
Marshall Dawsonc6ef9db2017-05-14 14:16:56 -0600279config SMM_TSEG_SIZE
280 hex
Marshall Dawson0801b332017-08-25 15:29:45 -0600281 default 0x800000 if SMM_TSEG && HAVE_SMI_HANDLER
Marshall Dawsonc6ef9db2017-05-14 14:16:56 -0600282 default 0x0
283
Marshall Dawsonb6172112017-09-13 17:47:31 -0600284config SMM_RESERVED_SIZE
285 hex
Marshall Dawsonfceac7e2018-05-18 14:40:53 -0600286 default 0x150000
Marshall Dawsonb6172112017-09-13 17:47:31 -0600287
Raul E Rangel846b4942018-06-12 10:43:09 -0600288config SMM_MODULE_STACK_SIZE
289 hex
290 default 0x800
291
Marc Jonese013df92017-08-23 16:28:02 -0600292config ACPI_CPU_STRING
293 string
294 default "\\_PR.P%03d"
295
Marshall Dawson9a32c412018-09-04 13:29:12 -0600296config ACPI_BERT
297 bool "Build ACPI BERT Table"
298 default y
299 depends on HAVE_ACPI_TABLES
300 help
301 Report Machine Check errors identified in POST to the OS in an
302 ACPI Boot Error Record Table. This option reserves an 8MB region
303 for building the error structures.
304
Marshall Dawson25eb2bc2019-03-14 12:42:46 -0600305config USE_PSPSECUREOS
Martin Rothb617e322017-09-07 13:23:55 -0600306 bool "Include PSP SecureOS blobs in AMD firmware"
307 default y
308 help
309 Include the PspSecureOs, PspTrustlet and TrustletKey binaries
310 in the amdfw section.
311
312 If unsure, answer 'y'
313
Richard Spiegel1bc578a2019-06-18 18:19:47 -0700314config SOC_AMD_PSP_SELECTABLE_SMU_FW
315 bool
316 default n if SOC_AMD_MERLINFALCON
317 default y
318 help
319 Some ST implementations allow storing SMU firmware into cbfs and
320 calling the PSP to load the blobs at the proper time.
321
322 Merlin Falcon does not support it. If you are using 00670F00 SOC,
323 ask your AMD representative if it supports it or not.
324
Marshall Dawson5f0520a2017-10-30 16:11:45 -0600325config SOC_AMD_SMU_FANLESS
326 bool
327 depends on SOC_AMD_PSP_SELECTABLE_SMU_FW
328 default n if SOC_AMD_SMU_NOTFANLESS
329 default y
330
331config SOC_AMD_SMU_FANNED
332 bool
333 depends on SOC_AMD_PSP_SELECTABLE_SMU_FW
334 default n
335 select SOC_AMD_SMU_NOTFANLESS
336
337config SOC_AMD_SMU_NOTFANLESS # helper symbol - do not use
338 bool
339 depends on SOC_AMD_PSP_SELECTABLE_SMU_FW
340
Martin Roth30f9b952017-10-03 15:54:45 -0600341config AMDFW_OUTSIDE_CBFS
342 bool "The AMD firmware is outside CBFS"
343 default n
344 help
345 The AMDFW (PSP) is typically locatable in cbfs. Select this
346 option to manually attach the generated amdfw.rom outside of
347 cbfs. The location is selected by the FWM position.
348
Martin Roth6d8ef242017-09-08 14:39:35 -0600349config AMD_FWM_POSITION_INDEX
350 int "Firmware Directory Table location (0 to 5)"
351 range 0 5
352 default 0 if BOARD_ROMSIZE_KB_512
353 default 1 if BOARD_ROMSIZE_KB_1024
354 default 2 if BOARD_ROMSIZE_KB_2048
355 default 3 if BOARD_ROMSIZE_KB_4096
356 default 4 if BOARD_ROMSIZE_KB_8192
357 default 5 if BOARD_ROMSIZE_KB_16384
358 help
359 Typically this is calculated by the ROM size, but there may
360 be situations where you want to put the firmware directory
361 table in a different location.
362 0: 512 KB - 0xFFFA0000
363 1: 1 MB - 0xFFF20000
364 2: 2 MB - 0xFFE20000
365 3: 4 MB - 0xFFC20000
366 4: 8 MB - 0xFF820000
367 5: 16 MB - 0xFF020000
368
369comment "AMD Firmware Directory Table set to location for 512KB ROM"
370 depends on AMD_FWM_POSITION_INDEX = 0
371comment "AMD Firmware Directory Table set to location for 1MB ROM"
372 depends on AMD_FWM_POSITION_INDEX = 1
373comment "AMD Firmware Directory Table set to location for 2MB ROM"
374 depends on AMD_FWM_POSITION_INDEX = 2
375comment "AMD Firmware Directory Table set to location for 4MB ROM"
376 depends on AMD_FWM_POSITION_INDEX = 3
377comment "AMD Firmware Directory Table set to location for 8MB ROM"
378 depends on AMD_FWM_POSITION_INDEX = 4
379comment "AMD Firmware Directory Table set to location for 16MB ROM"
380 depends on AMD_FWM_POSITION_INDEX = 5
381
Marc Jones17431ab2017-11-16 15:26:00 -0700382config DIMM_SPD_SIZE
383 int
384 default 512 # DDR4
385
Marc Jones578a79d2017-12-06 16:27:04 -0700386config RO_REGION_ONLY
387 string
388 depends on CHROMEOS
389 default "apu/amdfw"
390
Chris Ching6fc39d42017-12-20 16:06:03 -0700391config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
392 int
393 default 133
394
Richard Spiegel6a389142018-03-05 14:28:10 -0700395config MAINBOARD_POWER_RESTORE
396 def_bool n
397 help
398 This option determines what state to go to once power is restored
399 after having been lost in S0. Select this option to automatically
400 return to S0. Otherwise the system will remain in S5 once power
401 is restored.
402
Richard Spiegel1bc578a2019-06-18 18:19:47 -0700403endif # SOC_AMD_STONEYRIDGE_FP4 || SOC_AMD_STONEYRIDGE_FT4 || SOC_AMD_MERLINFALCON