xref: /OK3568_Linux_fs/buildroot/boot/arm-trusted-firmware/Config.in (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE
2*4882a593Smuzhiyun	bool "ARM Trusted Firmware (ATF)"
3*4882a593Smuzhiyun	depends on (BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A) && \
4*4882a593Smuzhiyun		   (BR2_TARGET_UBOOT || BR2_TARGET_EDK2)
5*4882a593Smuzhiyun	help
6*4882a593Smuzhiyun	  Enable this option if you want to build the ATF for your ARM
7*4882a593Smuzhiyun	  based embedded device.
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun	  https://github.com/ARM-software/arm-trusted-firmware
10*4882a593Smuzhiyun
11*4882a593Smuzhiyunif BR2_TARGET_ARM_TRUSTED_FIRMWARE
12*4882a593Smuzhiyunchoice
13*4882a593Smuzhiyun	prompt "ATF Version"
14*4882a593Smuzhiyun	help
15*4882a593Smuzhiyun	  Select the specific ATF version you want to use
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION
18*4882a593Smuzhiyun	bool "v2.5"
19*4882a593Smuzhiyun
20*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION
21*4882a593Smuzhiyun	bool "Custom version"
22*4882a593Smuzhiyun	help
23*4882a593Smuzhiyun	  This option allows to use a specific official versions
24*4882a593Smuzhiyun
25*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL
26*4882a593Smuzhiyun	bool "Custom tarball"
27*4882a593Smuzhiyun
28*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT
29*4882a593Smuzhiyun	bool "Custom Git repository"
30*4882a593Smuzhiyun
31*4882a593Smuzhiyunendchoice
32*4882a593Smuzhiyun
33*4882a593Smuzhiyunif BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION
36*4882a593Smuzhiyun	string "URL of custom ATF tarball"
37*4882a593Smuzhiyun
38*4882a593Smuzhiyunendif
39*4882a593Smuzhiyun
40*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE
41*4882a593Smuzhiyun	string "ATF version"
42*4882a593Smuzhiyun	depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION
43*4882a593Smuzhiyun
44*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION
45*4882a593Smuzhiyun	string
46*4882a593Smuzhiyun	default "v2.5"		if BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION
47*4882a593Smuzhiyun	default "custom"	if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL
48*4882a593Smuzhiyun	default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION \
49*4882a593Smuzhiyun				if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT
50*4882a593Smuzhiyun	default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE \
51*4882a593Smuzhiyun				if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION
52*4882a593Smuzhiyun
53*4882a593Smuzhiyunif BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL
56*4882a593Smuzhiyun	string "URL of custom repository"
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION
59*4882a593Smuzhiyun	string "Custom repository version"
60*4882a593Smuzhiyun	help
61*4882a593Smuzhiyun	  Revision to use in the typical format used by Git
62*4882a593Smuzhiyun	  E.G. a sha id, a tag, ..
63*4882a593Smuzhiyun
64*4882a593Smuzhiyunendif
65*4882a593Smuzhiyun
66*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM
67*4882a593Smuzhiyun	string "ATF platform"
68*4882a593Smuzhiyun	help
69*4882a593Smuzhiyun	  Target plaform to build for.
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_DTS_PATH
72*4882a593Smuzhiyun	string "Device Tree Source file paths"
73*4882a593Smuzhiyun	help
74*4882a593Smuzhiyun	  Space-separated list of paths to device tree source files
75*4882a593Smuzhiyun	  that will be copied to fdts/ before starting the build.
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun	  To use this device tree source file, the ATF configuration
78*4882a593Smuzhiyun	  file must refer to it.
79*4882a593Smuzhiyun
80*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP
81*4882a593Smuzhiyun	bool "Build FIP image"
82*4882a593Smuzhiyun	help
83*4882a593Smuzhiyun	  This option enables building the FIP image (Firmware Image
84*4882a593Smuzhiyun	  Package). This is typically the image format used by
85*4882a593Smuzhiyun	  platforms were ATF encapsulates the second stage bootloader
86*4882a593Smuzhiyun	  (such as U-Boot).
87*4882a593Smuzhiyun
88*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31
89*4882a593Smuzhiyun	bool "Build BL31 image"
90*4882a593Smuzhiyun	help
91*4882a593Smuzhiyun	  This option enables building the BL31 image. This is
92*4882a593Smuzhiyun	  typically used on platforms where another bootloader (e.g
93*4882a593Smuzhiyun	  U-Boot) encapsulates ATF BL31.
94*4882a593Smuzhiyun
95*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT
96*4882a593Smuzhiyun	bool "Build BL31 U-Boot image"
97*4882a593Smuzhiyun	select BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31
98*4882a593Smuzhiyun	help
99*4882a593Smuzhiyun	  Generates a U-Boot image named atf-uboot.ub containing
100*4882a593Smuzhiyun	  bl31.bin.  This is used for example by the Xilinx version of
101*4882a593Smuzhiyun	  U-Boot SPL to load ATF on the ZynqMP SoC.
102*4882a593Smuzhiyun
103*4882a593Smuzhiyunchoice
104*4882a593Smuzhiyun	prompt "BL32"
105*4882a593Smuzhiyun	default BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT
106*4882a593Smuzhiyun	help
107*4882a593Smuzhiyun	  Select BL32 stage for the trusted firmware
108*4882a593Smuzhiyun
109*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT
110*4882a593Smuzhiyun	bool "Default"
111*4882a593Smuzhiyun	help
112*4882a593Smuzhiyun	  With this option selected, ATF will not use any BL32 stage,
113*4882a593Smuzhiyun	  unless if one is explicitly chosen using the SPD (for
114*4882a593Smuzhiyun	  AArch64) or AARCH32_SP (for AArch32) variables, which can be
115*4882a593Smuzhiyun	  passed through
116*4882a593Smuzhiyun	  BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES.
117*4882a593Smuzhiyun
118*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE
119*4882a593Smuzhiyun	bool "OP-TEE OS"
120*4882a593Smuzhiyun	depends on BR2_TARGET_OPTEE_OS
121*4882a593Smuzhiyun	help
122*4882a593Smuzhiyun	  This option allows to embed OP-TEE OS as the BL32 part of
123*4882a593Smuzhiyun	  the ARM Trusted Firmware boot sequence.
124*4882a593Smuzhiyun
125*4882a593Smuzhiyunendchoice
126*4882a593Smuzhiyun
127*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33
128*4882a593Smuzhiyun	bool "Use U-Boot as BL33"
129*4882a593Smuzhiyun	depends on BR2_TARGET_UBOOT
130*4882a593Smuzhiyun	help
131*4882a593Smuzhiyun	  This option allows to embed u-boot.bin as the BL33 part of
132*4882a593Smuzhiyun	  the ARM Trusted Firmware. It ensures that the u-boot package
133*4882a593Smuzhiyun	  gets built before ATF, and that the appropriate BL33
134*4882a593Smuzhiyun	  variable pointing to u-boot.bin is passed when building ATF.
135*4882a593Smuzhiyun
136*4882a593Smuzhiyunif BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33
137*4882a593Smuzhiyun
138*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE
139*4882a593Smuzhiyun	string "U-Boot BL33 image name"
140*4882a593Smuzhiyun	default "u-boot.bin"
141*4882a593Smuzhiyun	help
142*4882a593Smuzhiyun	  Name of the U-Boot BL33 image to include in ATF, it must
143*4882a593Smuzhiyun	  have been installed to BINARIES_DIR by the U-Boot package.
144*4882a593Smuzhiyun
145*4882a593Smuzhiyunendif
146*4882a593Smuzhiyun
147*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_EDK2_AS_BL33
148*4882a593Smuzhiyun	bool "Use EDK2 as BL33"
149*4882a593Smuzhiyun	depends on BR2_TARGET_EDK2
150*4882a593Smuzhiyun	help
151*4882a593Smuzhiyun	  This option allows to embed EDK2 as the BL33 part of
152*4882a593Smuzhiyun	  the ARM Trusted Firmware. It ensures that the EDK2 package
153*4882a593Smuzhiyun	  gets built before ATF, and that the appropriate BL33
154*4882a593Smuzhiyun	  variable pointing to the EDK2 is passed when building ATF.
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun	  Do not choose this option if you intend to build ATF and EDK2
157*4882a593Smuzhiyun	  for the 'qemu_sbsa' platform. In this case, due to the EDK2
158*4882a593Smuzhiyun	  build system, the dependency between ATF and EDK is reversed.
159*4882a593Smuzhiyun
160*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS
161*4882a593Smuzhiyun	string "Additional ATF make targets"
162*4882a593Smuzhiyun	help
163*4882a593Smuzhiyun	  Additional targets for the ATF build
164*4882a593Smuzhiyun	  E.G. When using the QorIQ custom ATF repository from NXP,
165*4882a593Smuzhiyun	  the target 'pbl' can be used to build the pbl binary.
166*4882a593Smuzhiyun
167*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES
168*4882a593Smuzhiyun	string "Additional ATF build variables"
169*4882a593Smuzhiyun	help
170*4882a593Smuzhiyun	  Additional parameters for the ATF build
171*4882a593Smuzhiyun	  E.G. 'DEBUG=1 LOG_LEVEL=20'
172*4882a593Smuzhiyun
173*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG
174*4882a593Smuzhiyun	bool "Build in debug mode"
175*4882a593Smuzhiyun	help
176*4882a593Smuzhiyun	  Enable this option to build ATF with DEBUG=1.
177*4882a593Smuzhiyun
178*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES
179*4882a593Smuzhiyun	string "Binary boot images"
180*4882a593Smuzhiyun	default "*.bin"
181*4882a593Smuzhiyun	help
182*4882a593Smuzhiyun	  Names of generated image files that are installed in the
183*4882a593Smuzhiyun	  output images/ directory.
184*4882a593Smuzhiyun
185*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC
186*4882a593Smuzhiyun	bool "Needs dtc"
187*4882a593Smuzhiyun	select BR2_PACKAGE_HOST_DTC
188*4882a593Smuzhiyun	help
189*4882a593Smuzhiyun	  Select this option if your ATF board configuration
190*4882a593Smuzhiyun	  requires the Device Tree compiler to be available.
191*4882a593Smuzhiyun
192*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN
193*4882a593Smuzhiyun	bool "Needs arm-none-eabi toolchain"
194*4882a593Smuzhiyun	depends on BR2_aarch64
195*4882a593Smuzhiyun	depends on BR2_HOSTARCH = "x86_64"
196*4882a593Smuzhiyun	help
197*4882a593Smuzhiyun	  Select this option if your ATF board configuration requires
198*4882a593Smuzhiyun	  an ARM32 bare metal toolchain to be available.
199*4882a593Smuzhiyun
200*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP
201*4882a593Smuzhiyun	bool "Build with SSP"
202*4882a593Smuzhiyun	default y
203*4882a593Smuzhiyun	depends on BR2_TOOLCHAIN_HAS_SSP
204*4882a593Smuzhiyun	depends on !BR2_SSP_NONE
205*4882a593Smuzhiyun	help
206*4882a593Smuzhiyun	  Say 'y' here if you want to build ATF with SSP.
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun	  Your board must have SSP support in ATF: it must have an
209*4882a593Smuzhiyun	  implementation for plat_get_stack_protector_canary().
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun	  If you say 'y', the SSP level will be the level selected
212*4882a593Smuzhiyun	  by the global SSP setting.
213*4882a593Smuzhiyun
214*4882a593Smuzhiyunconfig BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP_LEVEL
215*4882a593Smuzhiyun	string
216*4882a593Smuzhiyun	# While newer versions of TF-A support "none" as
217*4882a593Smuzhiyun	# ENABLE_STACK_PROTECTOR value, older versions (e.g 2.0) only
218*4882a593Smuzhiyun	# supported "0" to disable SSP.
219*4882a593Smuzhiyun	default "0"    	  if !BR2_TARGET_ARM_TRUSTED_FIRMWARE_SSP
220*4882a593Smuzhiyun	default "default" if BR2_SSP_REGULAR
221*4882a593Smuzhiyun	default "strong"  if BR2_SSP_STRONG
222*4882a593Smuzhiyun	default "all"     if BR2_SSP_ALL
223*4882a593Smuzhiyun
224*4882a593Smuzhiyunendif
225