blob: 69b94685dec0062bc3b29bce2d5214c95288b013 [file] [log] [blame]
Jorge Ramirez-Ortiz853b7142022-09-12 19:23:45 +02001################################################################################
2# Following variables defines how the NS_USER (Non Secure User - Client
3# Application), NS_KERNEL (Non Secure Kernel), S_KERNEL (Secure Kernel) and
4# S_USER (Secure User - TA) are compiled
5################################################################################
6override COMPILE_NS_USER := 64
7override COMPILE_NS_KERNEL := 64
8override COMPILE_S_USER := 64
9override COMPILE_S_KERNEL := 64
10
11PLATFORM = versal-vck190
12OPTEE_OS_PLATFORM = versal
13
14################################################################################
15# Paths to git projects and various binaries
16################################################################################
17TF_A_PATH ?= $(ROOT)/arm-trusted-firmware
18U-BOOT_PATH ?= $(ROOT)/u-boot
19BOOTGEN_PATH ?= $(ROOT)/bootgen
20LINUX_PATH ?= $(ROOT)/linux
21
22include common.mk
23
24################################################################################
25# Targets
26################################################################################
27
28all: tfa optee-os u-boot linux dtbo buildroot
29clean: tfa-clean optee-os-clean u-boot-clean linux-clean dtbo-clean buildroot-clean
30
31include toolchain.mk
32
33################################################################################
34# ARM Trusted Firmware
35################################################################################
36
37TF_A_EXPORTS = CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)"
38TF_A_FLAGS = PLAT=versal VERSAL_CONSOLE=pl011 RESET_TO_BL31=1 SPD=opteed DEBUG=1
39
40tfa:
41 $(TF_A_EXPORTS) $(MAKE) -C $(TF_A_PATH) $(TF_A_FLAGS) bl31
42
43tfa-clean:
44 $(TF_A_EXPORTS) $(MAKE) -C $(TF_A_PATH) $(TF_A_FLAGS) clean
45
46################################################################################
47# OP-TEE
48#################################################################################
49
50optee-os: optee-os-common
51
52optee-os-clean: optee-os-clean-common
53 rm -f ${OPTEE_OS_PATH}/out/arm/core/tee_raw.bin
54
55################################################################################
56# U-Boot
57################################################################################
58
59U-BOOT_EXPORTS = CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)"
60U-BOOT_CONFIG = xilinx_versal_virt_defconfig
61U-BOOT_DTS = versal-vck190-revA
62
63u-boot:
64 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) $(U-BOOT_CONFIG)
65 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) DEVICE_TREE=$(U-BOOT_DTS) DTC_FLAGS="-@"
66
67u-boot-clean:
68 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) clean
69
70###############################################################################
71# Device-Tree
72###############################################################################
73dtbo: linux
74 ${LINUX_PATH}/scripts/dtc/dtc -@ -I dts -O dtb -o versal/versal-optee.dtbo versal/versal-optee.dtso
75
76dtbo-clean:
77 rm -f versal/versal-optee.dtbo
78
79################################################################################
80# Linux kernel
81################################################################################
82
83LINUX_DEFCONFIG_COMMON_ARCH := arm64
84LINUX_DEFCONFIG_COMMON_FILES := \
85 $(LINUX_PATH)/arch/arm64/configs/xilinx_versal_defconfig \
86 $(CURDIR)/kconfigs/versal.conf
87
88linux-defconfig: $(LINUX_PATH)/.config
89
90LINUX_COMMON_FLAGS += ARCH=arm64 -j8
91
92linux: linux-common
93
94linux-defconfig-clean: linux-defconfig-clean-common
95
96LINUX_CLEAN_COMMON_FLAGS += ARCH=arm64
97
98linux-clean: linux-clean-common
99
100LINUX_CLEANER_COMMON_FLAGS += ARCH=arm64
101
102linux-cleaner: linux-cleaner-common
103
104###############################################################################
105# Bouildroot
106###############################################################################
107
108BR2_TARGET_GENERIC_ISSUE="OP-TEE embedded distrib for $(PLATFORM)"
109BR2_TARGET_ROOTFS_EXT2=y
110BR2_PACKAGE_BUSYBOX_WATCHDOG=y
111
112# TF-A, Linux kernel, U-Boot and OP-TEE OS/Client/... are not built from their
113# related Buildroot native package.
114BR2_TARGET_ARM_TRUSTED_FIRMWARE=n
115BR2_LINUX_KERNEL=n
116BR2_TARGET_OPTEE_OS=n
117BR2_TARGET_UBOOT=n
118BR2_PACKAGE_OPTEE_CLIENT=n
119BR2_PACKAGE_OPTEE_TEST=n
120BR2_PACKAGE_OPTEE_EXAMPLES=n
121BR2_PACKAGE_OPTEE_BENCHMARK=n
122
123
124###############################################################################
125# Images
126###############################################################################
127image: bootimage fitimage
128image-clean: bootimage-clean fitimage-clean
129
130###############################################################################
131# Boot Image
132###############################################################################
133
134bootimage: bootgen tfa optee-os u-boot
135 $(BOOTGEN_PATH)/bootgen -arch versal -image versal/bootImage-${PLATFORM}.bif -w -o versal/BOOT.BIN
136
137bootimage-clean: bootgen-clean tfa-clean optee-os-clean u-boot-clean
138 rm -f versal/BOOT.BIN
139
140
141###############################################################################
142# Bootgen
143###############################################################################
144
145bootgen:
146 make -C $(BOOTGEN_PATH)
147
148bootgen-clean:
149 make -C $(BOOTGEN_PATH) clean
150
151
152###############################################################################
153# FIT Image
154###############################################################################
155
156fitimage: linux dtbo buildroot
157 ${U-BOOT_PATH}/tools/mkimage -f versal/fitImage-${PLATFORM}.its versal/${PLATFORM}.ub
158
159fitimage-clean: linux-clean dtbo-clean buildroot-clean
160 rm -f versal/${PLATFORM}.ub
161