blob: 725d1880d11c0dfad0f66ef63443579e9831f11b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
|
## @file
#
# Copyright (C) 2022-2025 Advanced Micro Devices, Inc. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
##############################################################################
#
# Turin reference board - 2 SPI FLash devices accessible by x86 (selected by DIP-switch):
# 1) 32MB Flash with 10-pin header next to the VGA connector.
# 2) 64MB Flash with 10-pin header at 90-degrees from VGA connector, and also accessible by the BMC.
#
################################################################################
################################################################################
#
# BIOS image layout
#
################################################################################
### Flash layout, 16MB and 32MB iamge size with ROM3_FLASH_ENABLE = FALSE
################################################################################
# Start End Size FV Name
################################################################################
# 0x00000000 0x0001ffff 0x00020000 None Unused
# 0x00020000 0x00020fff 0x00001000 DATA EFS
# 0x00021000 0x0005efff 0x0003e000 DATA NVRAM
# 0x0005f000 0x0005ffff 0x00001000 DATA NVRAM FTW
# 0x00060000 0x000a0fff 0x00041000 None NVRAM Reserved
# 0x000a1000 0x002e2fff 0x00242000 None PSPDirectory
# 0x002e3000 0x0033efff 0x0005c000 None BIOSDirectory
# 0x0033f000 0x005adfff 0x0026f000 None PSPDirectory
# 0x005ae000 0x006fffff 0x00152000 None BIOSDirectory
# 0x00700000 0x007d7fff 0x000d8000 FV FVADVANCED
# 0x007d8000 0x0085ffff 0x00088000 FV FVADVANCEDSECURITY
# 0x00860000 0x0090dfff 0x000ae000 FV FVOSBOOT
# 0x0090e000 0x00bfbfff 0x002ee000 FV FVUEFIBOOT
# 0x00bfc000 0x00c27fff 0x0002c000 FV FVSECURITY
# 0x00c28000 0x00c37fff 0x00010000 FV FVPOSTMEMORY
# 0x00c38000 0x00c3ffff 0x00008000 FV FVADVANCEDPREMEMORY
# 0x00c40000 0x00ffffff 0x003c0000 FV FVPREMEMORY
################################################################################
# Extra padding for 32MB image size
# 0x01000000 0x01ffffff 0x01000000 None unused
################################################################################
### Flash layout, 32MB with ROM3_FLASH_ENABLE = TRUE
################################################################################
# Start End Size FV Name
################################################################################
# 0x00000000 0x0001ffff 0x00020000 None Unused
# 0x00020000 0x00020fff 0x00001000 DATA EFS
# 0x00021000 0x0005efff 0x0003e000 DATA NVRAM
# 0x0005f000 0x0005ffff 0x00001000 DATA NVRAM FTW
# 0x00060000 0x000a0fff 0x00041000 None NVRAM Reserved
# 0x000a1000 0x002e2fff 0x00242000 None PSPDirectory
# 0x002e3000 0x0033efff 0x0005c000 None BIOSDirectory
# 0x0033f000 0x005adfff 0x0026f000 None PSPDirectory
# 0x005ae000 0x006fffff 0x00152000 None BIOSDirectory
# 0x00bec000 0x00c17fff 0x0002c000 FV FVSECURITY
# 0x00c18000 0x00c37fff 0x00020000 FV FVPOSTMEMORY
# 0x00c38000 0x00c3ffff 0x00008000 FV FVADVANCEDPREMEMORY
# 0x00c40000 0x00ffffff 0x003c0000 FV FVPREMEMORY
# 0x01000000 0x010d7fff 0x000d8000 FV FVADVANCED
# 0x010d8000 0x0115ffff 0x00088000 FV FVADVANCEDSECURITY
# 0x01160000 0x0120dfff 0x000ae000 FV FVOSBOOT
# 0x0120e000 0x014fbfff 0x002ee000 FV FVUEFIBOOT
# 0x01fff000 0x01ffffff 0x00001000 None Unused
################################################################################
DEFINE ROM2_FLASH_BASE = 0xFF000000
DEFINE ROM2_FLASH_SIZE = 0x01000000
DEFINE ROM3_FLASH_SIZE = 0x02000000
DEFINE SPI_BLOCK_SIZE = 0x1000
!ifndef BUILD_16MB_IMAGE
DEFINE BUILD_16MB_IMAGE = FALSE
!endif
!ifndef ROM3_FLASH_ENABLE
DEFINE ROM3_FLASH_ENABLE = FALSE
!endif
!ifndef ROM3_FLASH_BASE
DEFINE ROM3_FLASH_BASE = 0xFD02000000
!endif
!if $(BUILD_16MB_IMAGE) == TRUE
DEFINE SPI_NUM_BLOCKS = 0x1000
!else
DEFINE SPI_NUM_BLOCKS = 0x2000
!endif
!if ($(ROM3_FLASH_ENABLE) == TRUE) && ($(BUILD_16MB_IMAGE) == TRUE)
!error "ROM3 cannot be enabled on 16MB image"
!endif
!ifndef FV_PRE_MEMORY_SIZE
# requires changes in PspData<SoC> also
DEFINE FV_PRE_MEMORY_SIZE = 0x003C0000
!endif
!ifndef FV_ADVANCED_PRE_MEMORY_SIZE
DEFINE FV_ADVANCED_PRE_MEMORY_SIZE = 0x00008000
!endif
!ifndef FV_POST_MEMORY_SIZE
!if ($(ROM3_FLASH_ENABLE) == TRUE)
# Need extra space for DxeMain
DEFINE FV_POST_MEMORY_SIZE = 0x00020000
!else
DEFINE FV_POST_MEMORY_SIZE = 0x00010000
!endif
!endif
!ifndef FV_SECURITY_SIZE
DEFINE FV_SECURITY_SIZE = 0x0002C000
!endif
!ifndef FV_UEFI_BOOT_SIZE
DEFINE FV_UEFI_BOOT_SIZE = 0x002EE000
!endif
!ifndef FV_OS_BOOT_SIZE
DEFINE FV_OS_BOOT_SIZE = 0x000AE000
!endif
!ifndef FV_ADVANCED_SECURITY_SIZE
DEFINE FV_ADVANCED_SECURITY_SIZE = 0x00088000
!endif
!ifndef FV_ADVANCED_SIZE
DEFINE FV_ADVANCED_SIZE = 0x000D8000
!endif
DEFINE FV_FW_SIG_OFFSET = 0x00020000
DEFINE FV_FW_SIG_SIZE = 0x00001000
DEFINE NVRAM_AREA_VAR_OFFSET = 0x00021000
DEFINE NVRAM_AREA_VAR_SIZE = 0x0003E000
DEFINE NVRAM_AREA_SIZE = 0x00080000
DEFINE FTW_WORKING_OFFSET = $(NVRAM_AREA_VAR_OFFSET) + $(NVRAM_AREA_VAR_SIZE)
DEFINE FTW_WORKING_SIZE = $(SPI_BLOCK_SIZE)
DEFINE FTW_SPARE_OFFSET = $(FTW_WORKING_OFFSET) + $(FTW_WORKING_SIZE)
DEFINE FTW_SPARE_SIZE = $(NVRAM_AREA_SIZE) - $(NVRAM_AREA_VAR_SIZE) - $(FTW_WORKING_SIZE)
# NOTE:
#
# BOOT_FV_BASE value should match with the PspData<SoC>.xml ResetImage address
# e.g.
# <POINT_ENTRY Type="0x62" Address="0xC40000" Destination="0x76C40000" Size="0x3C0000">
# <TypeAttrib Compressed="0x0" Copy="0x1" ReadOnly="0x0" RegionType="0x0" ResetImage="0x1" />
# </POINT_ENTRY>
#
# Also note that C40000 from 0x76C40000 came from PcdFlashFvPreMemoryOffset
# if PcdFlashFvPreMemoryOffset gets changed then the below value should also
# need to be change.
#
!ifndef BOOT_FV_BASE
DEFINE BOOT_FV_BASE = 0x76C40000
!endif
SET gEfiAmdAgesaPkgTokenSpaceGuid.PcdAgesaFlashNvStorageBlockSize = $(SPI_BLOCK_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaBaseAddress = 0xFF000000
SET gEfiAmdAgesaPkgTokenSpaceGuid.PcdAgesaFlashAreaBaseAddress = gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaBaseAddress
# SET gMinPlatformPkgTokenSpaceGuid.PcdFlashNvStorageOffset = 0x00000000
# SET gMinPlatformPkgTokenSpaceGuid.PcdFlashNvStorageSize = 0x00040000
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashNvStorageVariableOffset = $(NVRAM_AREA_VAR_OFFSET)
SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize = $(NVRAM_AREA_VAR_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingOffset = $(FTW_WORKING_OFFSET)
SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize = $(FTW_WORKING_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareOffset = $(FTW_SPARE_OFFSET)
SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize = $(FTW_SPARE_SIZE)
#
# FV offset and size assignment
#
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPreMemorySize = $(FV_PRE_MEMORY_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPreMemoryOffset = ($(ROM2_FLASH_SIZE) - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPreMemorySize)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedPreMemorySize = $(FV_ADVANCED_PRE_MEMORY_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedPreMemoryOffset = (gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPreMemoryOffset - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedPreMemorySize)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPostMemorySize = $(FV_POST_MEMORY_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPostMemoryOffset = (gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedPreMemoryOffset - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPostMemorySize)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvSecuritySize = $(FV_SECURITY_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvSecurityOffset = gMinPlatformPkgTokenSpaceGuid.PcdFlashFvPostMemoryOffset - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvSecuritySize
!if $(ROM3_FLASH_ENABLE) == FALSE
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvUefiBootSize = $(FV_UEFI_BOOT_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvUefiBootOffset = (gMinPlatformPkgTokenSpaceGuid.PcdFlashFvSecurityOffset - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvUefiBootSize)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootSize = $(FV_OS_BOOT_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootOffset = (gMinPlatformPkgTokenSpaceGuid.PcdFlashFvUefiBootOffset - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootSize)
SET gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecuritySize = $(FV_ADVANCED_SECURITY_SIZE)
SET gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecurityOffset = (gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootOffset - gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecuritySize)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedSize = $(FV_ADVANCED_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedOffset = (gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecurityOffset - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedSize)
# NOTE:
# for ROM3_FLASH_ENABLE disabled BIOS image max address (PcdFlashFvAdvancedSize + PcdFlashFvAdvancedOffset)
# should not overlap with BIOS DIR2 offset + size in PspData<SoC>.xml
# e.g
# <BIOS_DIR Level="2" Base="0x5CB000" Size="0x120000" SpiBlockSize=" 0x1000">
#
!endif
!if $(ROM3_FLASH_ENABLE) == TRUE
# if ROM3 is enabled then continue the offset update
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedOffset = $(ROM2_FLASH_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedSize = $(FV_ADVANCED_SIZE)
SET gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecurityOffset = (gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedOffset + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedSize)
SET gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecuritySize = $(FV_ADVANCED_SECURITY_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootOffset = (gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecurityOffset + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecuritySize)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootSize = $(FV_OS_BOOT_SIZE)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvUefiBootOffset = (gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootOffset + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootSize)
SET gMinPlatformPkgTokenSpaceGuid.PcdFlashFvUefiBootSize = $(FV_UEFI_BOOT_SIZE)
# NOTE:
# for ROM3_FLASH_ENABLE enabled BIOS image max address (PcdFlashFvSecuritySize + PcdFlashFvSecurityOffset)
# should not overlap with BIOS DIR2 offset + size in PspData<SoC>.xml
# e.g
# <BIOS_DIR Level="2" Base="0x5CB000" Size="0x120000" SpiBlockSize=" 0x1000">
!endif
SET gAmdMinBoardPkgTokenSpaceGuid.PcdBootFvBase = $(BOOT_FV_BASE)
!if $(ROM3_FLASH_ENABLE) == TRUE
SET gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedBase = $(ROM3_FLASH_BASE)
SET gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecurityBase = (gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedBase + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvAdvancedSize)
SET gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvOsBootBase = (gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecurityBase + gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvAdvancedSecuritySize)
SET gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvUefiBootBase = (gAmdMinBoardPkgTokenSpaceGuid.PcdAmdFlashFvOsBootBase + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvOsBootSize)
!endif
|