blob: 6ed3b77c6d73daf024bf284b3f222683071f310f [file] [log] [blame]
Akshay Belsare909e85c2024-11-09 17:30:48 +05301################################################################################
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
11# 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
21# Openssl binary
22BR2_PACKAGE_LIBOPENSSL_BIN ?= y
23BR2_PACKAGE_LIBP11 ?= y
24
25PLATFORM = AMD Versal Gen 2
26OPTEE_OS_PLATFORM = versal2
27OPTEE_OS_COMMON_EXTRA_FLAGS ?= CFG_PKCS11_TA=y CFG_USER_TA_TARGET_pkcs11=ta_arm64 O=out/arm
28
29################################################################################
30# Paths to git projects and various binaries
31################################################################################
32TF_A_PATH ?= $(ROOT)/arm-trusted-firmware
33U-BOOT_PATH ?= $(ROOT)/u-boot-xlnx
34LINUX_PATH ?= $(ROOT)/linux-xlnx
35
36include common.mk
37
38BINARIES_PATH ?= $(ROOT)/out/bin
39TF_A_ELF ?= $(TF_A_PATH)/build/$(OPTEE_OS_PLATFORM)/release/bl31/bl31.elf
40OPTEE_OS_ELF ?= $(OPTEE_OS_PATH)/out/arm/core/tee.elf
41U-BOOT_ELF ?= $(U-BOOT_PATH)/u-boot.elf
42U-BOOT_DTB ?= $(U-BOOT_PATH)/arch/arm/dts/versal2-*.dtb
43MKIMAGE_PATH ?= $(U-BOOT_PATH)/tools
44LINUX_IMAGE ?= $(LINUX_PATH)/arch/arm64/boot/Image
45ROOTFS_GZ ?= $(ROOT)/out-br/images/rootfs.cpio.gz
46ROOTFS_SIGN ?= $(BINARIES_PATH)/rootfs.cpio.gz.u-boot
47
48################################################################################
49# Targets
50################################################################################
51
Akshay Belsare18be5322025-04-01 11:00:00 +053052all: tfa optee-os u-boot linux dtbo buildroot buildroot_mkimg
53clean: tfa-clean optee-os-clean u-boot-clean linux-clean dtbo-clean buildroot-clean
Akshay Belsare909e85c2024-11-09 17:30:48 +053054
55$(BINARIES_PATH):
56 mkdir -p $@
57
58include toolchain.mk
59
60################################################################################
61# ARM Trusted Firmware
62################################################################################
63
64TF_A_EXPORTS = CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)"
65TF_A_FLAGS = PLAT=versal2 CONSOLE=pl011 RESET_TO_BL31=1 SPD=opteed DEBUG=0 \
66 MEM_BASE=0x1600000 MEM_SIZE=0x200000 \
Akshay Belsare18be5322025-04-01 11:00:00 +053067 XILINX_OF_BOARD_DTB_ADDR=0x1000000 \
Akshay Belsare909e85c2024-11-09 17:30:48 +053068 BL32_MEM_BASE=0x1800000 BL32_MEM_SIZE=0x8000000
69
70tfa:
71 $(TF_A_EXPORTS) $(MAKE) -C $(TF_A_PATH) $(TF_A_FLAGS) bl31
72 mkdir -p $(BINARIES_PATH)
73 cp $(TF_A_ELF) $(BINARIES_PATH)
74
75tfa-clean:
76 $(TF_A_EXPORTS) $(MAKE) -C $(TF_A_PATH) $(TF_A_FLAGS) clean
77
78################################################################################
79# OP-TEE
80################################################################################
81
Akshay Belsare18be5322025-04-01 11:00:00 +053082OPTEE_OS_COMMON_FLAGS += CFG_TEE_CORE_LOG_LEVEL=2 CFG_TEE_TA_LOG_LEVEL=2 \
83 CFG_DT=y
Akshay Belsare909e85c2024-11-09 17:30:48 +053084
85optee-os: optee-os-common
86 mkdir -p $(BINARIES_PATH)
87 cp $(OPTEE_OS_ELF) $(BINARIES_PATH)
88
89optee-os-clean: optee-os-clean-common
90 rm -rf ${OPTEE_OS_PATH}/out/
91
92################################################################################
93# U-Boot
94################################################################################
95
96U-BOOT_EXPORTS = CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)"
97U-BOOT_DEFCONFIG_COMMON_FILES := $(U-BOOT_PATH)/configs/amd_versal2_virt_defconfig \
98 $(BUILD_PATH)/kconfigs/u-boot_versal2.conf
99
100u-boot-defconfig: $(U-BOOT_DEFCONFIG_COMMON_FILES)
101 cd $(U-BOOT_PATH) && \
102 ARCH=arm64 \
103 scripts/kconfig/merge_config.sh $(U-BOOT_DEFCONFIG_COMMON_FILES)
104
105u-boot: u-boot-defconfig
106 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH)
107 mkdir -p $(BINARIES_PATH)
108 cp $(U-BOOT_ELF) $(BINARIES_PATH)
109
110u-boot-defconfig-clean:
111 rm -f $(U-BOOT_PATH)/.config
112
113u-boot-clean: u-boot-defconfig-clean
114 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) clean
115
116###############################################################################
117# Device-Tree
118###############################################################################
Akshay Belsare18be5322025-04-01 11:00:00 +0530119dtbo: linux u-boot
Akshay Belsare909e85c2024-11-09 17:30:48 +0530120 mkdir -p $(BINARIES_PATH)
121 ${LINUX_PATH}/scripts/dtc/dtc -@ -I dts \
122 -O dtb -o $(BINARIES_PATH)/versal2-memory-reservation.dtbo \
123 $(BUILD_PATH)/versal2/versal2-memory-reservation.dtso
124 @$(foreach dtb,$(wildcard $(U-BOOT_DTB)), \
125 ${LINUX_PATH}/scripts/dtc/fdtoverlay -i $(dtb) \
126 -o $(dtb) $(BINARIES_PATH)/versal2-memory-reservation.dtbo ; \
127 echo "Applied overlay to $(dtb)";)
128 cp $(U-BOOT_DTB) $(BINARIES_PATH)
129
130dtbo-clean:
131 rm -f $(BINARIES_PATH)/versal2-memory-reservation.dtbo
132
133################################################################################
134# Linux kernel
135################################################################################
136
137LINUX_DEFCONFIG_COMMON_ARCH := arm64
138LINUX_DEFCONFIG_COMMON_FILES := \
139 $(LINUX_PATH)/arch/arm64/configs/xilinx_defconfig \
140 $(BUILD_PATH)/kconfigs/versal2.conf
141
142linux-defconfig: $(LINUX_PATH)/.config
143
144LINUX_COMMON_FLAGS += ARCH=arm64
145
146linux: linux-common
147 mkdir -p $(BINARIES_PATH)
148 cp $(LINUX_IMAGE) $(BINARIES_PATH)
149
150linux-defconfig-clean: linux-defconfig-clean-common
151
152LINUX_CLEAN_COMMON_FLAGS += ARCH=arm64
153
154linux-clean: linux-clean-common
155
156LINUX_CLEANER_COMMON_FLAGS += ARCH=arm64
157
158linux-cleaner: linux-cleaner-common
159
160################################################################################
161# Buildroot
162################################################################################
163
164BR2_TARGET_GENERIC_ISSUE ?= "OP-TEE embedded distrib for $(PLATFORM)"
165BR2_TARGET_ROOTFS_EXT2 ?= y
166BR2_PACKAGE_BUSYBOX_WATCHDOG ?= y
167
168buildroot_mkimg: buildroot
169 mkdir -p $(BINARIES_PATH)
170 $(MKIMAGE_PATH)/mkimage -A arm \
171 -T ramdisk \
172 -C gzip \
173 -d $(ROOTFS_GZ) $(ROOTFS_SIGN)