1 ## SPDX-License-Identifier: GPL-2.0-only
3 config SOC_AMD_COMMON_BLOCK_PSP
6 This option builds in the Platform Security Processor initialization
7 functions. Do not select this directly in SoC code, select
8 SOC_AMD_COMMON_BLOCK_PSP_GENx instead.
10 config SOC_AMD_COMMON_BLOCK_PSP_GEN1
12 select SOC_AMD_COMMON_BLOCK_PSP
14 Used by the PSP in AMD systems before family 17h, e.g. stoneyridge.
16 config SOC_AMD_COMMON_BLOCK_PSP_GEN2
18 select SOC_AMD_COMMON_BLOCK_PSP
19 select SOC_AMD_COMMON_BLOCK_SMN
21 Used by the PSP in AMD family 17h, 19h and possibly newer CPUs.
23 config SOC_AMD_PSP_SELECTABLE_SMU_FW
26 Some PSP implementations allow storing SMU firmware into cbfs and
27 calling the PSP to load the blobs at the proper time.
29 The soc/<codename> should select this if its PSP supports the feature
30 and each mainboard can choose to select an appropriate fanless or
31 fanned set of blobs. Ask your AMD representative whether your APU
32 is considered fanless.
34 config SOC_AMD_COMMON_BLOCK_PSP_RPMC
36 depends on SOC_AMD_COMMON_BLOCK_PSP_GEN2
39 Select this option in the SoC's Kconfig to include the support for
40 the replay-protected monotonic counter (RPMC) feature.
42 config PERFORM_RPMC_PROVISIONING
43 bool "Send RPMC fusing command to PSP"
45 depends on SOC_AMD_COMMON_BLOCK_PSP_RPMC
47 Send the RPMC root key provisioning command to the PSP in case it's
48 not already fused. Sending this command will fuse the silicon which
49 is a permanent change.
51 config SOC_AMD_COMMON_BLOCK_PSP_SPL
54 Select this option in the SoC's Kconfig to include the Security Patch
55 Level (SPL) support code. This code will only send the actual SPL
56 fuse update command to the PSP if the PERFORM_SPL_FUSING option is
59 config PERFORM_SPL_FUSING
60 bool "Send SPL fusing command to PSP"
62 depends on SOC_AMD_COMMON_BLOCK_PSP_SPL
64 Send the Security Patch Level (SPL) fusing command to the PSP in
65 order to update the minimum SPL version to be written to the SoC's
66 fuse bits. This will prevent using any embedded firmware components
67 with lower SPL version.
72 string "SPL table file override"
73 depends on SOC_AMD_COMMON_BLOCK_PSP_SPL
75 Provide a mainboard-specific Security Patch Level (SPL) table file
76 override. The SPL file is required to support PSP FW anti-rollback
77 and needs to be created by AMD. The default SPL file specified in the
78 SoC's fw.cfg is in the corresponding folder of the amd_blobs submodule
79 and applies to all boards that use the SoC without verstage on PSP.
80 In the verstage on PSP case, a different SPL file is specific as an
81 override via this Kconfig option.
83 config HAVE_SPL_RW_AB_FILE
84 bool "Have a separate mainboard-specific SPL file in RW A/B partitions"
85 depends on SOC_AMD_COMMON_BLOCK_PSP_SPL
86 depends on VBOOT_SLOTS_RW_AB
88 Have separate mainboard-specific Security Patch Level (SPL) table
89 file for the RW A/B FMAP partitions.
91 config SPL_RW_AB_TABLE_FILE
92 string "Separate SPL table file override for RW A/B partitions"
93 depends on HAVE_SPL_RW_AB_FILE
95 config PSP_PLATFORM_SECURE_BOOT
96 bool "Platform secure boot enable"
97 depends on SOC_AMD_COMMON_BLOCK_PSP_GEN2
100 Select this config to enable PSP Platform Secure Boot.
102 Platform Secure Boot will automatically be fused on boot if the
103 coreboot ROM is properly signed and can not be disabled once fused.
104 Refer AMD PSB user guide doc# 56654, Revision# 1.00, this document is
105 only available with NDA customers.
107 config SOC_AMD_COMMON_BLOCK_PSP_SMI
109 select SPI_FLASH_SMM if BOOT_DEVICE_SPI_FLASH_RW_NOMMAP
111 Add PSP SMI handler for SPI flash access.
113 When ROM armor isn't enabled, the x86 part owns the SPI controller,
114 so when the PSP wants to access the SPI flash, it sends an SMI to the
115 x86 side and the corresponding SMI handler will do the SPI flash
118 WARNING: Since the flash access in the SMI handler is a blocking
119 operation during which all cores stay in SMM, an erase operation may
120 lock up the system for a long enough time to be noticeable. Reads and
121 writes with small data sizes are less problematic. This is AMD
122 specific design and should be enabled when PSP requires to access the
123 SPI flash after the BOOT_DONE PSP command.
125 config PSP_INCLUDES_HSP
127 depends on SOC_AMD_COMMON_BLOCK_PSP
129 Select this config to indicate SoC includes Hardware Security Processor(HSP).
131 config AMD_FWM_POSITION_20000_DEFAULT
132 # This is the default if nothing else is selected
135 config AMD_FWM_POSITION_420000_DEFAULT
138 config AMD_FWM_POSITION_820000_DEFAULT
141 config AMD_FWM_POSITION_C20000_DEFAULT
144 config AMD_FWM_POSITION_E20000_DEFAULT
147 config AMD_FWM_POSITION_F20000_DEFAULT
150 config AMD_FWM_POSITION_FA0000_DEFAULT
154 prompt "AMD FW position"
155 default AMD_FWM_POSITION_420000 if AMD_FWM_POSITION_420000_DEFAULT
156 default AMD_FWM_POSITION_820000 if AMD_FWM_POSITION_820000_DEFAULT
157 default AMD_FWM_POSITION_C20000 if AMD_FWM_POSITION_C20000_DEFAULT
158 default AMD_FWM_POSITION_E20000 if AMD_FWM_POSITION_E20000_DEFAULT
159 default AMD_FWM_POSITION_F20000 if AMD_FWM_POSITION_F20000_DEFAULT
160 default AMD_FWM_POSITION_FA0000 if AMD_FWM_POSITION_FA0000_DEFAULT
161 default AMD_FWM_POSITION_20000
163 Set the position on flash offset where the AMD FW needs to be.
164 This position is relative to a 16MB flash window. If the flash
165 size is smaller than 16MB it gets mapped at the top of that window.
167 config AMD_FWM_POSITION_20000
170 config AMD_FWM_POSITION_420000
173 config AMD_FWM_POSITION_820000
176 config AMD_FWM_POSITION_C20000
179 config AMD_FWM_POSITION_E20000
182 config AMD_FWM_POSITION_F20000
185 config AMD_FWM_POSITION_FA0000
190 config AMD_FWM_POSITION
192 default 0x20000 if AMD_FWM_POSITION_20000
193 default 0x420000 if AMD_FWM_POSITION_420000
194 default 0x820000 if AMD_FWM_POSITION_820000
195 default 0xc20000 if AMD_FWM_POSITION_C20000
196 default 0xe20000 if AMD_FWM_POSITION_E20000
197 default 0xf20000 if AMD_FWM_POSITION_F20000
198 default 0xfa0000 if AMD_FWM_POSITION_FA0000
202 default y if SOC_AMD_COMMON_BLOCK_PSP
204 Select this if AMDFWTOOL needs to be built