blob: 0e80f14fc418ab922cb7902ec444cc6cf649b65f [file] [log] [blame]
Felix Held4a8cd722020-04-18 22:26:39 +02001# SPDX-License-Identifier: GPL-2.0-only
Marc Jones24484842017-05-04 21:17:45 -06002
Marshall Dawson68519222019-11-25 11:36:15 -07003config SOC_AMD_STONEYRIDGE
4 bool
5 help
6 AMD support for SOCs in Family 15h Models 60h-6Fh and Models 70h-7Fh.
7
8if SOC_AMD_STONEYRIDGE
9
Marc Jones21cde8b2017-05-07 16:47:36 -060010config CPU_SPECIFIC_OPTIONS
11 def_bool y
Kyösti Mälkki3139c8d2020-06-28 16:33:33 +030012 select ACPI_SOC_NVS
Felix Heldc07c7c92020-12-04 18:50:53 +010013 select ARCH_ALL_STAGES_X86_32
Angel Pons8e035e32021-06-22 12:58:20 +020014 select ARCH_X86
Felix Heldc07c7c92020-12-04 18:50:53 +010015 select BOOT_DEVICE_SUPPORTS_WRITES if BOOT_DEVICE_SPI_FLASH
Aaron Durbin51e4c1a2018-01-24 17:42:51 -070016 select COLLECT_TIMESTAMPS_NO_TSC
Chris Ching6fc39d42017-12-20 16:06:03 -070017 select DRIVERS_I2C_DESIGNWARE
Marc Jones9156cac2017-07-12 11:05:38 -060018 select GENERIC_GPIO_LIB
Aaron Durbin51e4c1a2018-01-24 17:42:51 -070019 select GENERIC_UDELAY
Angel Ponsb74975e2020-07-13 01:12:57 +020020 select HAVE_CF9_RESET
Felix Heldc07c7c92020-12-04 18:50:53 +010021 select HAVE_SMI_HANDLER
Marc Jones24484842017-05-04 21:17:45 -060022 select HAVE_USBDEBUG_OPTIONS
Felix Heldc07c7c92020-12-04 18:50:53 +010023 select IOAPIC
Marc Jones33eef132017-10-26 16:50:42 -060024 select PARALLEL_MP_AP_WORK
Marc Jones17e85ad2017-12-20 16:21:25 -070025 select RTC
Felix Heldc07c7c92020-12-04 18:50:53 +010026 select SOC_AMD_PI
27 select SOC_AMD_COMMON
28 select SOC_AMD_COMMON_BLOCK_ACPI
29 select SOC_AMD_COMMON_BLOCK_ACPIMMIO
30 select SOC_AMD_COMMON_BLOCK_AOAC
31 select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS
32 select SOC_AMD_COMMON_BLOCK_CAR
33 select SOC_AMD_COMMON_BLOCK_HDA
Karthikeyan Ramasubramanian0dbea482021-03-08 23:23:50 -070034 select SOC_AMD_COMMON_BLOCK_I2C
Felix Heldc07c7c92020-12-04 18:50:53 +010035 select SOC_AMD_COMMON_BLOCK_IOMMU
36 select SOC_AMD_COMMON_BLOCK_LPC
37 select SOC_AMD_COMMON_BLOCK_PCI
38 select SOC_AMD_COMMON_BLOCK_PI
Felix Heldc0538d42021-04-13 19:56:10 +020039 select SOC_AMD_COMMON_BLOCK_PM
Felix Heldc07c7c92020-12-04 18:50:53 +010040 select SOC_AMD_COMMON_BLOCK_PSP_GEN1
41 select SOC_AMD_COMMON_BLOCK_S3
42 select SOC_AMD_COMMON_BLOCK_SATA
43 select SOC_AMD_COMMON_BLOCK_SMBUS
44 select SOC_AMD_COMMON_BLOCK_SMI
Felix Heldbc134812021-02-10 02:26:10 +010045 select SOC_AMD_COMMON_BLOCK_SMM
Felix Heldc07c7c92020-12-04 18:50:53 +010046 select SOC_AMD_COMMON_BLOCK_SPI
Felix Held91ef9252021-01-12 23:44:05 +010047 select SOC_AMD_COMMON_BLOCK_UART
Felix Heldc07c7c92020-12-04 18:50:53 +010048 select SSE2
49 select TSC_SYNC_LFENCE
50 select X86_AMD_FIXED_MTRRS
Marc Jones24484842017-05-04 21:17:45 -060051
Marshall Dawson12294d02019-11-25 07:21:18 -070052config AMD_APU_STONEYRIDGE
53 bool
54 help
55 AMD Stoney Ridge APU
56
Marshall Dawsone1988f52019-11-25 11:15:35 -070057config AMD_APU_PRAIRIEFALCON
58 bool
59 help
60 AMD Embedded Prairie Falcon APU
61
Marshall Dawson12294d02019-11-25 07:21:18 -070062config AMD_APU_MERLINFALCON
63 bool
64 help
Marshall Dawsone1988f52019-11-25 11:15:35 -070065 AMD Embedded Merlin Falcon APU
Marshall Dawson12294d02019-11-25 07:21:18 -070066
Marshall Dawson3ac0ab52019-11-24 19:03:56 -070067config AMD_APU_PKG_FP4
68 bool
69 help
70 AMD FP4 package
71
72config AMD_APU_PKG_FT4
73 bool
74 help
75 AMD FT4 package
76
77config AMD_SOC_PACKAGE
78 string
79 default "FP4" if AMD_APU_PKG_FP4
80 default "FT4" if AMD_APU_PKG_FT4
81
Marshall Dawsone7557de2017-06-09 16:35:14 -060082config VBOOT
Marshall Dawsone7557de2017-06-09 16:35:14 -060083 select VBOOT_SEPARATE_VERSTAGE
84 select VBOOT_STARTS_IN_BOOTBLOCK
Marc Jones4c887ea2018-04-25 16:43:18 -060085 select VBOOT_VBNV_CMOS
86 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
Marshall Dawsone7557de2017-06-09 16:35:14 -060087
Marc Jones21cde8b2017-05-07 16:47:36 -060088# TODO: Sync these with definitions in PI vendorcode.
89# DCACHE_RAM_BASE must equal BSP_STACK_BASE_ADDR.
90# DCACHE_RAM_SIZE must equal BSP_STACK_SIZE.
91
92config DCACHE_RAM_BASE
93 hex
94 default 0x30000
95
96config DCACHE_RAM_SIZE
97 hex
98 default 0x10000
99
Marshall Dawson9df969a2017-07-25 18:46:46 -0600100config DCACHE_BSP_STACK_SIZE
Marshall Dawson9df969a2017-07-25 18:46:46 -0600101 hex
102 default 0x4000
103 help
104 The amount of anticipated stack usage in CAR by bootblock and
105 other stages.
106
Marshall Dawson7c3f1e72017-08-24 09:59:10 -0600107config PRERAM_CBMEM_CONSOLE_SIZE
108 hex
Marshall Dawson1df6bc62017-12-19 20:41:29 -0700109 default 0x1600
Marshall Dawson7c3f1e72017-08-24 09:59:10 -0600110 help
111 Increase this value if preram cbmem console is getting truncated
112
Marc Jones21cde8b2017-05-07 16:47:36 -0600113config CPU_ADDR_BITS
114 int
115 default 48
116
Marc Jones1587dc82017-05-15 18:55:11 -0600117config BOTTOMIO_POSITION
118 hex "Bottom of 32-bit IO space"
119 default 0xD0000000
120 help
121 If PCI peripherals with big BARs are connected to the system
122 the bottom of the IO must be decreased to allocate such
123 devices.
124
125 Declare the beginning of the 128MB-aligned MMIO region. This
126 option is useful when PCI peripherals requesting large address
127 ranges are present.
128
Marc Jones1587dc82017-05-15 18:55:11 -0600129config MMCONF_BASE_ADDRESS
Marc Jones1587dc82017-05-15 18:55:11 -0600130 default 0xF8000000
131
132config MMCONF_BUS_NUMBER
Marc Jones1587dc82017-05-15 18:55:11 -0600133 default 64
134
135config VGA_BIOS_ID
136 string
Marshall Dawson12294d02019-11-25 07:21:18 -0700137 default "1002,9874" if AMD_APU_MERLINFALCON
Marc Jones1587dc82017-05-15 18:55:11 -0600138 default "1002,98e4"
139 help
140 The default VGA BIOS PCI vendor/device ID should be set to the
141 result of the map_oprom_vendev() function in northbridge.c.
142
143config VGA_BIOS_FILE
144 string
Marshall Dawson7987c1c2019-11-25 08:29:28 -0700145 default "3rdparty/amd_blobs/stoneyridge/CarrizoGenericVbios.bin" if AMD_APU_MERLINFALCON
Marshall Dawsone1988f52019-11-25 11:15:35 -0700146 default "3rdparty/amd_blobs/stoneyridge/StoneyGenericVbios.bin" if AMD_APU_PRAIRIEFALCON
147 default "3rdparty/amd_blobs/stoneyridge/StoneyGenericVbios.bin" if AMD_APU_STONEYRIDGE
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"
Marshall Dawson7987c1c2019-11-25 08:29:28 -0700186 default "3rdparty/amd_blobs/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
Zheng Baoc5e28ab2020-10-28 11:38:09 +0800193config AMDFW_CONFIG_FILE
194 string
195 string "AMD PSP Firmware config file"
Zheng Baoc5e28ab2020-10-28 11:38:09 +0800196 default "src/soc/amd/stoneyridge/fw_cz.cfg" if AMD_APU_MERLINFALCON
197 default "src/soc/amd/stoneyridge/fw_st.cfg" if AMD_APU_PRAIRIEFALCON
198 default "src/soc/amd/stoneyridge/fw_st.cfg" if AMD_APU_STONEYRIDGE
Marc Jones24484842017-05-04 21:17:45 -0600199
200config STONEYRIDGE_SATA_MODE
201 int "SATA Mode"
202 default 0
203 range 0 6
204 help
205 Select the mode in which SATA should be driven.
206 The default is NATIVE.
207 0: NATIVE mode does not require a ROM.
208 2: AHCI may work with or without AHCI ROM. It depends on the payload support.
209 For example, seabios does not require the AHCI ROM.
210 3: LEGACY IDE
211 4: IDE to AHCI
212 5: AHCI7804: ROM Required, and AMD driver required in the OS.
213 6: IDE to AHCI7804: ROM Required, and AMD driver required in the OS.
214
215comment "NATIVE"
216 depends on STONEYRIDGE_SATA_MODE = 0
217
218comment "AHCI"
219 depends on STONEYRIDGE_SATA_MODE = 2
220
221comment "LEGACY IDE"
222 depends on STONEYRIDGE_SATA_MODE = 3
223
224comment "IDE to AHCI"
225 depends on STONEYRIDGE_SATA_MODE = 4
226
227comment "AHCI7804"
228 depends on STONEYRIDGE_SATA_MODE = 5
229
230comment "IDE to AHCI7804"
231 depends on STONEYRIDGE_SATA_MODE = 6
232
233if STONEYRIDGE_SATA_MODE = 2 || STONEYRIDGE_SATA_MODE = 5
234
235config AHCI_ROM_ID
236 string "AHCI device PCI IDs"
237 default "1022,7801" if STONEYRIDGE_SATA_MODE = 2
238 default "1022,7804" if STONEYRIDGE_SATA_MODE = 5
239
240endif # STONEYRIDGE_SATA_MODE = 2 || STONEYRIDGE_SATA_MODE = 5
241
242config STONEYRIDGE_LEGACY_FREE
243 bool "System is legacy free"
244 help
245 Select y if there is no keyboard controller in the system.
246 This sets variables in AGESA and ACPI.
247
Marc Jones24484842017-05-04 21:17:45 -0600248config SERIRQ_CONTINUOUS_MODE
249 bool
250 default n
251 help
252 Set this option to y for serial IRQ in continuous mode.
253 Otherwise it is in quiet mode.
254
Arthur Heymansb5e72b62018-01-02 23:41:24 +0100255config CONSOLE_UART_BASE_ADDRESS
256 depends on CONSOLE_SERIAL
257 hex
258 default 0xfedc6000
259
Marshall Dawsonc6ef9db2017-05-14 14:16:56 -0600260config SMM_TSEG_SIZE
261 hex
Felix Helde22eef72021-02-10 22:22:07 +0100262 default 0x800000 if HAVE_SMI_HANDLER
Marshall Dawsonc6ef9db2017-05-14 14:16:56 -0600263 default 0x0
264
Marshall Dawsonb6172112017-09-13 17:47:31 -0600265config SMM_RESERVED_SIZE
266 hex
Marshall Dawsonfceac7e2018-05-18 14:40:53 -0600267 default 0x150000
Marshall Dawsonb6172112017-09-13 17:47:31 -0600268
Raul E Rangel846b4942018-06-12 10:43:09 -0600269config SMM_MODULE_STACK_SIZE
270 hex
271 default 0x800
272
Marc Jonese013df92017-08-23 16:28:02 -0600273config ACPI_CPU_STRING
274 string
Matt DeVillierc08d4c52020-06-20 23:45:30 -0500275 default "\\_SB.P%03d"
Marc Jonese013df92017-08-23 16:28:02 -0600276
Marshall Dawson9a32c412018-09-04 13:29:12 -0600277config ACPI_BERT
278 bool "Build ACPI BERT Table"
279 default y
280 depends on HAVE_ACPI_TABLES
281 help
282 Report Machine Check errors identified in POST to the OS in an
283 ACPI Boot Error Record Table. This option reserves an 8MB region
284 for building the error structures.
285
Marshall Dawson25eb2bc2019-03-14 12:42:46 -0600286config USE_PSPSECUREOS
Martin Rothb617e322017-09-07 13:23:55 -0600287 bool "Include PSP SecureOS blobs in AMD firmware"
288 default y
289 help
290 Include the PspSecureOs, PspTrustlet and TrustletKey binaries
291 in the amdfw section.
292
293 If unsure, answer 'y'
294
Richard Spiegel1bc578a2019-06-18 18:19:47 -0700295config SOC_AMD_PSP_SELECTABLE_SMU_FW
296 bool
Marshall Dawson12294d02019-11-25 07:21:18 -0700297 default y if AMD_APU_STONEYRIDGE
Richard Spiegel1bc578a2019-06-18 18:19:47 -0700298 help
299 Some ST implementations allow storing SMU firmware into cbfs and
300 calling the PSP to load the blobs at the proper time.
301
302 Merlin Falcon does not support it. If you are using 00670F00 SOC,
303 ask your AMD representative if it supports it or not.
304
Marshall Dawson5f0520a2017-10-30 16:11:45 -0600305config SOC_AMD_SMU_FANLESS
306 bool
307 depends on SOC_AMD_PSP_SELECTABLE_SMU_FW
308 default n if SOC_AMD_SMU_NOTFANLESS
309 default y
310
311config SOC_AMD_SMU_FANNED
312 bool
313 depends on SOC_AMD_PSP_SELECTABLE_SMU_FW
314 default n
315 select SOC_AMD_SMU_NOTFANLESS
316
317config SOC_AMD_SMU_NOTFANLESS # helper symbol - do not use
318 bool
319 depends on SOC_AMD_PSP_SELECTABLE_SMU_FW
320
Martin Roth30f9b952017-10-03 15:54:45 -0600321config AMDFW_OUTSIDE_CBFS
322 bool "The AMD firmware is outside CBFS"
323 default n
324 help
325 The AMDFW (PSP) is typically locatable in cbfs. Select this
326 option to manually attach the generated amdfw.rom outside of
327 cbfs. The location is selected by the FWM position.
328
Martin Roth6d8ef242017-09-08 14:39:35 -0600329config AMD_FWM_POSITION_INDEX
330 int "Firmware Directory Table location (0 to 5)"
331 range 0 5
332 default 0 if BOARD_ROMSIZE_KB_512
333 default 1 if BOARD_ROMSIZE_KB_1024
334 default 2 if BOARD_ROMSIZE_KB_2048
335 default 3 if BOARD_ROMSIZE_KB_4096
336 default 4 if BOARD_ROMSIZE_KB_8192
337 default 5 if BOARD_ROMSIZE_KB_16384
338 help
339 Typically this is calculated by the ROM size, but there may
340 be situations where you want to put the firmware directory
341 table in a different location.
342 0: 512 KB - 0xFFFA0000
343 1: 1 MB - 0xFFF20000
344 2: 2 MB - 0xFFE20000
345 3: 4 MB - 0xFFC20000
346 4: 8 MB - 0xFF820000
347 5: 16 MB - 0xFF020000
348
349comment "AMD Firmware Directory Table set to location for 512KB ROM"
350 depends on AMD_FWM_POSITION_INDEX = 0
351comment "AMD Firmware Directory Table set to location for 1MB ROM"
352 depends on AMD_FWM_POSITION_INDEX = 1
353comment "AMD Firmware Directory Table set to location for 2MB ROM"
354 depends on AMD_FWM_POSITION_INDEX = 2
355comment "AMD Firmware Directory Table set to location for 4MB ROM"
356 depends on AMD_FWM_POSITION_INDEX = 3
357comment "AMD Firmware Directory Table set to location for 8MB ROM"
358 depends on AMD_FWM_POSITION_INDEX = 4
359comment "AMD Firmware Directory Table set to location for 16MB ROM"
360 depends on AMD_FWM_POSITION_INDEX = 5
361
Marc Jones17431ab2017-11-16 15:26:00 -0700362config DIMM_SPD_SIZE
363 int
364 default 512 # DDR4
365
Marc Jones578a79d2017-12-06 16:27:04 -0700366config RO_REGION_ONLY
367 string
368 depends on CHROMEOS
369 default "apu/amdfw"
370
Chris Ching6fc39d42017-12-20 16:06:03 -0700371config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
372 int
373 default 133
374
Felix Held27b295b2021-03-25 01:20:41 +0100375config DISABLE_KEYBOARD_RESET_PIN
376 bool
377 help
378 Instruct the SoC to not use the state of GPIO_129 as keyboard reset
379 signal. When this pin is used as GPIO and the keyboard reset
380 functionality isn't disabled, configuring it as an output and driving
381 it as 0 will cause a reset.
382
Marshall Dawson68519222019-11-25 11:36:15 -0700383endif # SOC_AMD_STONEYRIDGE