blob: 3d9945f2b7c7ea162d83e5700d79f80f11810fe9 [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
Jorge Ramirez-Ortizceb72632023-01-26 21:39:23 +010011# Network support related packages:
12BR2_PACKAGE_DHCPCD ?= y
13BR2_PACKAGE_ETHTOOL ?= y
14BR2_PACKAGE_XINETD ?= y
15
16# SSH Packages :
17BR2_PACKAGE_OPENSSH ?= y
18BR2_PACKAGE_OPENSSH_SERVER ?= y
19BR2_PACKAGE_OPENSSH_KEY_UTILS ?= y
20
Jorge Ramirez-Ortiza24372c2023-01-30 18:30:56 +010021# Openssl binary
22BR2_PACKAGE_LIBOPENSSL_BIN ?= y
23
Jorge Ramirez-Ortiz853b7142022-09-12 19:23:45 +020024PLATFORM = versal-vck190
25OPTEE_OS_PLATFORM = versal
Jorge Ramirez-Ortiz11e6bcf2023-01-27 13:03:21 +010026OPTEE_OS_COMMON_EXTRA_FLAGS = CFG_PKCS11_TA=y CFG_USER_TA_TARGET_pkcs11=ta_arm64 O=out/arm
Jorge Ramirez-Ortiz853b7142022-09-12 19:23:45 +020027
28################################################################################
29# Paths to git projects and various binaries
30################################################################################
31TF_A_PATH ?= $(ROOT)/arm-trusted-firmware
32U-BOOT_PATH ?= $(ROOT)/u-boot
33BOOTGEN_PATH ?= $(ROOT)/bootgen
34LINUX_PATH ?= $(ROOT)/linux
35
36include common.mk
37
38################################################################################
39# Targets
40################################################################################
41
42all: tfa optee-os u-boot linux dtbo buildroot
43clean: tfa-clean optee-os-clean u-boot-clean linux-clean dtbo-clean buildroot-clean
44
45include toolchain.mk
46
47################################################################################
48# ARM Trusted Firmware
49################################################################################
50
51TF_A_EXPORTS = CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)"
52TF_A_FLAGS = PLAT=versal VERSAL_CONSOLE=pl011 RESET_TO_BL31=1 SPD=opteed DEBUG=1
53
54tfa:
55 $(TF_A_EXPORTS) $(MAKE) -C $(TF_A_PATH) $(TF_A_FLAGS) bl31
56
57tfa-clean:
58 $(TF_A_EXPORTS) $(MAKE) -C $(TF_A_PATH) $(TF_A_FLAGS) clean
59
60################################################################################
61# OP-TEE
62#################################################################################
63
64optee-os: optee-os-common
65
66optee-os-clean: optee-os-clean-common
67 rm -f ${OPTEE_OS_PATH}/out/arm/core/tee_raw.bin
68
69################################################################################
70# U-Boot
71################################################################################
72
73U-BOOT_EXPORTS = CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)"
74U-BOOT_CONFIG = xilinx_versal_virt_defconfig
75U-BOOT_DTS = versal-vck190-revA
76
77u-boot:
78 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) $(U-BOOT_CONFIG)
79 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) DEVICE_TREE=$(U-BOOT_DTS) DTC_FLAGS="-@"
80
81u-boot-clean:
82 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) clean
83
84###############################################################################
85# Device-Tree
86###############################################################################
87dtbo: linux
88 ${LINUX_PATH}/scripts/dtc/dtc -@ -I dts -O dtb -o versal/versal-optee.dtbo versal/versal-optee.dtso
89
90dtbo-clean:
91 rm -f versal/versal-optee.dtbo
92
93################################################################################
94# Linux kernel
95################################################################################
96
97LINUX_DEFCONFIG_COMMON_ARCH := arm64
98LINUX_DEFCONFIG_COMMON_FILES := \
99 $(LINUX_PATH)/arch/arm64/configs/xilinx_versal_defconfig \
100 $(CURDIR)/kconfigs/versal.conf
101
102linux-defconfig: $(LINUX_PATH)/.config
103
104LINUX_COMMON_FLAGS += ARCH=arm64 -j8
105
106linux: linux-common
107
108linux-defconfig-clean: linux-defconfig-clean-common
109
110LINUX_CLEAN_COMMON_FLAGS += ARCH=arm64
111
112linux-clean: linux-clean-common
113
114LINUX_CLEANER_COMMON_FLAGS += ARCH=arm64
115
116linux-cleaner: linux-cleaner-common
117
118###############################################################################
119# Bouildroot
120###############################################################################
121
122BR2_TARGET_GENERIC_ISSUE="OP-TEE embedded distrib for $(PLATFORM)"
123BR2_TARGET_ROOTFS_EXT2=y
124BR2_PACKAGE_BUSYBOX_WATCHDOG=y
125
126# TF-A, Linux kernel, U-Boot and OP-TEE OS/Client/... are not built from their
127# related Buildroot native package.
128BR2_TARGET_ARM_TRUSTED_FIRMWARE=n
129BR2_LINUX_KERNEL=n
130BR2_TARGET_OPTEE_OS=n
131BR2_TARGET_UBOOT=n
132BR2_PACKAGE_OPTEE_CLIENT=n
133BR2_PACKAGE_OPTEE_TEST=n
134BR2_PACKAGE_OPTEE_EXAMPLES=n
135BR2_PACKAGE_OPTEE_BENCHMARK=n
136
137
138###############################################################################
139# Images
140###############################################################################
141image: bootimage fitimage
142image-clean: bootimage-clean fitimage-clean
143
144###############################################################################
145# Boot Image
146###############################################################################
147
148bootimage: bootgen tfa optee-os u-boot
149 $(BOOTGEN_PATH)/bootgen -arch versal -image versal/bootImage-${PLATFORM}.bif -w -o versal/BOOT.BIN
150
151bootimage-clean: bootgen-clean tfa-clean optee-os-clean u-boot-clean
152 rm -f versal/BOOT.BIN
153
154
155###############################################################################
156# Bootgen
157###############################################################################
158
159bootgen:
160 make -C $(BOOTGEN_PATH)
161
162bootgen-clean:
163 make -C $(BOOTGEN_PATH) clean
164
165
166###############################################################################
167# FIT Image
168###############################################################################
169
170fitimage: linux dtbo buildroot
171 ${U-BOOT_PATH}/tools/mkimage -f versal/fitImage-${PLATFORM}.its versal/${PLATFORM}.ub
172
173fitimage-clean: linux-clean dtbo-clean buildroot-clean
174 rm -f versal/${PLATFORM}.ub
175