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