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