1# Platform build configurations for Linaro EDK2 builds
2# ====================================================
3# The configuration file format is extremely simplistic:
4# - Each platform has a short name.
5# - A platform entry starts by the short name held in square brackets, '[]'
6# - Within each entry, all options are described in a NAME=VALUE scheme,
7#   with the name being whatever comes before the first '=' on the line,
8#   and the value being everything that comes after it.
9#
10# Mandatory options:
11# - LONGNAME		A more descriptive name of the platform.
12# - DSC			Pointer to the EDK2 build description file. (The
13#			pandaboard is excused, all other ports must have this.)
14# - ARCH		String describing the architecture to build for.
15#			Currently supported are AARCH32 and AARCH64.
16# - UEFI_BIN		Name of executable image produced.
17# - UEFI_IMAGE_DIR	Build output directory name, relative to 'Build'.
18#
19# Options for Trusted OS
20# Note that OP-TEE (https://github.com/OP-TEE/optee_os) is the only currently
21# supported Trusted OS
22# - BUILD_TOS		Set to "yes" if the build should automatically build
23#   			Trusted OS, mainly for ARM Trusted Firmware.
24#			If this is set, you must also set ATF_SPD!
25#			Else we will not know which specific Trusted OS to
26#			build.
27#			Set to "debug" to create a debug build.
28# - TOS_PLATFORM	Platform name for Trusted OS build, if
29#   			different from ARM Trusted Firmware platform
30#			or UEFI platform name.
31# - TOS_PLATFORM_FLAVOR	If a core platform has multiple flavors, specify which
32#			flavor here.
33#
34# Options for ARM Trusted Firmware platforms
35# - BUILD_ATF		Set to "yes" if the build should automatically build
36#   			ARM Trusted Firmware and a fip containing UEFI image.
37#			Set to "debug" to create a debug build.
38# - ATF_PLATFORM	Platform name for ARM Trusted Firmware build, if
39#   			different from UEFI platform name.
40# - SCP_BIN		SCP image to pass to ARM Trusted Firmware.
41# - TOS_BIN		Trusted OS image to pass to ARM Trusted Firmware.
42#			The path is relative to
43#			$EDK2_DIR/Build/$PLATFORM_IMAGE_DIR/$BUILD_PROFILE/FV/.
44#			To actually build the Trusted OS, you must also set
45#			ATF_SPD.
46# - ATF_SPD		Name of Secure Payload Dispatcher
47#			To actually build the Trusted OS, you must also set
48#			TOS_BIN.
49# - SPM_BIN		Prebuilt Secure Partition image to pass to ARM Trusted Firmware.
50#			The path is relative to
51#			$EDK2_DIR/Build/StandaloneSmmPkg/$BUILD_PROFILE/FV/.
52#
53# Optional options:
54# - BUILDFLAGS		Any special flags you want to pass to the build command.
55# - ATF_BUILDFLAGS	Any special flags you want to pass to the ARM Trusted
56#			Firmware build command.
57# - TOS_BUILDFLAGS	Any special flags you want to pass to the Trusted OS
58#			build command.
59# - EXTRA_FILES		Any additional files to be copied to output dir.
60# - PREBUILD_CMDS	Any commands you want to execute before the build step.
61# - POSTBUILD_CMDS	Any commands you want to execute after the build step.
62# - PACKAGES_PATH	Additional directories to search for packages under.
63# - INF                 Point to a .inf (in addition to a .dsc) in order to
64#                       build a single component (standalone driver/app).
65#
66
67[juno]
68LONGNAME=aarch64 Juno
69DSC=OpenPlatformPkg/Platforms/ARM/Juno/ArmJuno.dsc
70BUILDFLAGS=
71ARCH=AARCH64
72BUILD_ATF=yes
73UEFI_BIN=BL33_AP_UEFI.fd
74UEFI_IMAGE_DIR=ArmJuno
75SCP_BIN=OpenPlatformPkg/Platforms/ARM/Juno/Binary/bl30.bin
76EXTRA_FILES=../../../../OpenPlatformPkg/Platforms/ARM/Juno/Binary/bl0.bin ../../../../OpenPlatformPkg/Platforms/ARM/Juno/Binary/Copying.txt
77
78# ARM FVP BASE AEMv8-A model
79[fvp_full]
80LONGNAME=aarch64 FVP RTSM with full perhiperhal set
81DSC=OpenPlatformPkg/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc
82BUILDFLAGS=-D EDK2_OUT_DIR=Build/ArmVExpress-FVP-AArch64-Full -D EDK2_ENABLE_SMSC_91X=1 -D EDK2_ENABLE_PL111=1
83ARCH=AARCH64
84UEFI_BIN=FVP_AARCH64_EFI.fd
85UEFI_IMAGE_DIR=ArmVExpress-FVP-AArch64-Full
86
87[fvp]
88LONGNAME=aarch64 FVP RTSM
89DSC=OpenPlatformPkg/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc
90BUILDFLAGS=-D EDK2_ENABLE_SMSC_91X=1
91ARCH=AARCH64
92BUILD_ATF=yes
93UEFI_BIN=FVP_AARCH64_EFI.fd
94UEFI_IMAGE_DIR=ArmVExpress-FVP-AArch64
95
96# ARM FVP BASE AEMv8-A model
97[fvp_mm_standalone]
98LONGNAME=FVP Base for MM Standalone image in secure world
99DSC=StandaloneSmmPkg/StandaloneSmmPkg.dsc
100ARCH=AARCH64
101UEFI_BIN=FVP_AARCH64_EFI_MM_STANDALONE.fd
102UEFI_IMAGE_DIR=ArmVExpress-FVP-AArch64-MM-Standalone
103
104[fvp_mm_normal]
105LONGNAME=FVP Base for UEFI image with MM support in normal world
106DSC=OpenPlatformPkg/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc
107BUILDFLAGS=-D EDK2_OUT_DIR=Build/ArmVExpress-FVP-AArch64-MM-Normal -D ARM_STANDALONE_MM_ENABLE=TRUE
108ARCH=AARCH64
109BUILD_ATF=debug
110UEFI_BIN=FVP_AARCH64_EFI.fd
111UEFI_IMAGE_DIR=ArmVExpress-FVP-AArch64-MM-Normal
112ATF_PLATFORM=fvp
113SPM_BIN=STANDALONESMM.fd
114ATF_BUILDFLAGS=ARM_BL31_IN_DRAM=1
115
116[tc2]
117LONGNAME=Versatile Express TC2
118BUILDFLAGS=-D ARM_BIGLITTLE_TC2=1
119DSC=OpenPlatformPkg/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc
120ARCH=ARM
121UEFI_BIN=ARM_VEXPRESS_CTA15A7_EFI.fd
122UEFI_IMAGE_DIR=ArmVExpress-CTA15-A7
123
124[beagle]
125LONGNAME=BeagleBoard
126BUILDFLAGS=
127DSC=BeagleBoardPkg/BeagleBoardPkg.dsc
128ARCH=ARM
129
130[d01]
131LONGNAME=HiSilicon D01 Cortex-A15 16-cores
132BUILDFLAGS=-D EDK2_ARMVE_STANDALONE=1
133DSC=HisiPkg/D01BoardPkg/D01BoardPkg.dsc
134ARCH=ARM
135UEFI_BIN=D01.fd
136UEFI_IMAGE_DIR=D01
137
138[d01-intelbds]
139LONGNAME=HiSilicon D01 Cortex-A15 16-cores Intel Bds
140BUILDFLAGS=-D EDK2_ARMVE_STANDALONE=1 -D INTEL_BDS -D NO_LINUX_LOADER -D EDK2_OUT_DIR=Build/D01-IntelBds
141DSC=HisiPkg/D01BoardPkg/D01BoardPkg.dsc
142ARCH=ARM
143UEFI_BIN=D01.fd
144UEFI_IMAGE_DIR=D01
145
146[qemu]
147LONGNAME=QEMU ARM Emulator
148BUILDFLAGS=-D INTEL_BDS
149DSC=ArmVirtPkg/ArmVirtQemu.dsc
150ARCH=ARM
151UEFI_BIN=QEMU_EFI.fd
152UEFI_IMAGE_DIR=ArmVirtQemu-ARM
153
154[qemu64]
155LONGNAME=QEMU AArch64 Emulator
156BUILDFLAGS=-D INTEL_BDS
157DSC=ArmVirtPkg/ArmVirtQemu.dsc
158ARCH=AARCH64
159UEFI_BIN=QEMU_EFI.fd
160UEFI_IMAGE_DIR=ArmVirtQemu-AARCH64
161
162[mustang]
163LONGNAME=APM XGene Mustang
164BUILDFLAGS=
165DSC=ArmPlatformPkg/APMXGenePkg/APMXGene-Mustang.dsc
166ARCH=AARCH64
167UEFI_BIN=APMXGENE-MUSTANG.fd SEC_APMXGENE-MUSTANG.fd
168UEFI_IMAGE_DIR=APMXGene-Mustang
169
170[overdrive]
171LONGNAME=AMD Overdrive
172BUILDFLAGS=-D INTEL_BDS
173DSC=OpenPlatformPkg/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc
174ARCH=AARCH64
175PACKAGES_PATH=OpenPlatformPkg/Platforms/AMD/Styx/Binary
176UEFI_BIN=STYX_ROM.fd
177UEFI_IMAGE_DIR=Overdrive
178
179[overdrive1000]
180LONGNAME=SoftIron Overdrive 1000
181BUILDFLAGS=-D INTEL_BDS
182DSC=OpenPlatformPkg/Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.dsc
183ARCH=AARCH64
184PACKAGES_PATH=OpenPlatformPkg/Platforms/AMD/Styx/Binary
185UEFI_BIN=OVERDRIVE1000_ROM.fd
186UEFI_IMAGE_DIR=Overdrive1000Board
187
188[cello]
189LONGNAME=LeMaker Cello
190BUILDFLAGS=-D INTEL_BDS
191DSC=OpenPlatformPkg/Platforms/AMD/Styx/CelloBoard/CelloBoard.dsc
192ARCH=AARCH64
193PACKAGES_PATH=OpenPlatformPkg/Platforms/AMD/Styx/Binary
194UEFI_BIN=STYX_ROM.fd
195UEFI_IMAGE_DIR=Cello
196
197# NOTE: If using upstream ATF, i.e.
198# https://github.com/ARM-software/arm-trusted-firmware
199# please set TOS_BIN=tee-pager.bin
200[hikey]
201LONGNAME=CircuitCo HiKey
202DSC=OpenPlatformPkg/Platforms/Hisilicon/HiKey/HiKey.dsc
203ARCH=AARCH64
204UEFI_BIN=BL33_AP_UEFI.fd
205UEFI_IMAGE_DIR=HiKey
206BUILD_ATF=yes
207ATF_SPD=opteed
208TOS_BIN=tee.bin
209TOS_PLATFORM_FLAVOR=hikey
210BUILD_TOS=yes
211SCP_BIN=OpenPlatformPkg/Platforms/Hisilicon/HiKey/Binary/mcuimage.bin
212# Uncomment this to use UART0 as the EDK2 console
213#BUILDFLAGS=-DSERIAL_BASE=0xF8015000
214# Uncomment this to use UART0 as the ARM Trusted Firmware console
215#ATF_BUILDFLAGS=CONSOLE_BASE=PL011_UART0_BASE CRASH_CONSOLE_BASE=PL011_UART0_BASE
216# Uncomment this to use UART0 as the OP-TEE Trusted OS console
217#TOS_BUILDFLAGS=CFG_CONSOLE_UART=0
218
219[hikey960]
220LONGNAME=Hikey960
221DSC=OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960.dsc
222ARCH=AARCH64
223UEFI_BIN=BL33_AP_UEFI.fd
224UEFI_IMAGE_DIR=HiKey960
225BUILD_ATF=yes
226ATF_SPD=opteed
227TOS_BIN=tee-pager.bin
228TOS_PLATFORM=hikey
229TOS_PLATFORM_FLAVOR=hikey960
230BUILD_TOS=yes
231SCP_BIN=OpenPlatformPkg/Platforms/Hisilicon/HiKey960/Binary/lpm3.img
232# Uncomment this to use UART5 as the EDK2 console for v1 hardware
233#BUILDFLAGS=-DSERIAL_BASE=0xFDF05000
234
235[xen64]
236LONGNAME=AArch64 Xen guest
237BUILDFLAGS=
238DSC=ArmVirtPkg/ArmVirtXen.dsc
239ARCH=AARCH64
240UEFI_BIN=XEN_EFI.fd
241UEFI_IMAGE_DIR=ArmVirtXen-AARCH64
242
243[aarch64-shell]
244LONGNAME=AArch64 EFI Shell
245BUILDFLAGS=-D INCLUDE_TFTP_COMMAND
246DSC=ShellPkg/ShellPkg.dsc
247ARCH=AARCH64
248
249[aarch64-shell-minimal]
250LONGNAME=AArch64 EFI Shell (Minimal)
251BUILDFLAGS=-D NO_SHELL_PROFILES
252DSC=ShellPkg/ShellPkg.dsc
253ARCH=AARCH64
254
255[arm-shell]
256LONGNAME=ARM EFI Shell
257BUILDFLAGS=-D INCLUDE_TFTP_COMMAND
258DSC=ShellPkg/ShellPkg.dsc
259ARCH=ARM
260
261[arm-shell-minimal]
262LONGNAME=ARM EFI Shell (Minimal)
263BUILDFLAGS=-D NO_SHELL_PROFILES
264DSC=ShellPkg/ShellPkg.dsc
265ARCH=ARM
266
267[d02]
268LONGNAME=Hisilicon D02
269DSC=OpenPlatformPkg/Platforms/Hisilicon/D02/Pv660D02.dsc
270ARCH=AARCH64
271UEFI_BIN=PV660D02.fd
272UEFI_IMAGE_DIR=Pv660D02
273
274[d03]
275LONGNAME=Hisilicon D03
276DSC=OpenPlatformPkg/Platforms/Hisilicon/D03/D03.dsc
277ARCH=AARCH64
278UEFI_BIN=D03.fd
279UEFI_IMAGE_DIR=D03
280
281[d05]
282LONGNAME=HiSilicon D05
283DSC=OpenPlatformPkg/Platforms/Hisilicon/D05/D05.dsc
284ARCH=AARCH64
285UEFI_BIN=D05.fd
286UEFI_IMAGE_DIR=D05
287
288[armada70x0]
289LONGNAME=Marvell Armada 70x0
290DSC=OpenPlatformPkg/Platforms/Marvell/Armada/Armada70x0.dsc
291ARCH=AARCH64
292
293[ovmfx64]
294LONGNAME=OVMF Qemu X64
295DSC=OvmfPkg/OvmfPkgX64.dsc
296ARCH=X64
297
298[hello]
299LONGNAME=EDK2 Hello World Example
300DSC=MdeModulePkg/MdeModulePkg.dsc
301INF=MdeModulePkg/Application/HelloWorld/HelloWorld.inf
302
303[chaoskey]
304LONGNAME=Altus Metrum ChaosKey Driver
305DSC=OptionRomPkg/OptionRomPkg.dsc
306INF=OpenPlatformPkg/Drivers/Usb/Misc/ChaosKeyDxe/ChaosKeyDxe.inf
307