Akshay Belsare | 909e85c | 2024-11-09 17:30:48 +0530 | [diff] [blame] | 1 | ################################################################################ |
| 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 | ################################################################################ |
| 6 | override COMPILE_NS_USER := 64 |
| 7 | override COMPILE_NS_KERNEL := 64 |
| 8 | override COMPILE_S_USER := 64 |
| 9 | override COMPILE_S_KERNEL := 64 |
| 10 | |
Akshay Belsare | 0b465bd | 2025-06-06 06:36:41 +0000 | [diff] [blame] | 11 | PLATFORM = AMD Versal Gen 2 |
| 12 | |
Akshay Belsare | 909e85c | 2024-11-09 17:30:48 +0530 | [diff] [blame] | 13 | # Network support related packages: |
| 14 | BR2_PACKAGE_DHCPCD ?= y |
| 15 | BR2_PACKAGE_ETHTOOL ?= y |
| 16 | BR2_PACKAGE_XINETD ?= y |
| 17 | |
| 18 | # SSH Packages : |
| 19 | BR2_PACKAGE_OPENSSH ?= y |
| 20 | BR2_PACKAGE_OPENSSH_SERVER ?= y |
| 21 | BR2_PACKAGE_OPENSSH_KEY_UTILS ?= y |
| 22 | |
| 23 | # Openssl binary |
| 24 | BR2_PACKAGE_LIBOPENSSL_BIN ?= y |
| 25 | BR2_PACKAGE_LIBP11 ?= y |
| 26 | |
Akshay Belsare | 0b465bd | 2025-06-06 06:36:41 +0000 | [diff] [blame] | 27 | # Busybox |
| 28 | BR2_PACKAGE_BUSYBOX_WATCHDOG ?= y |
| 29 | |
| 30 | # Target specific |
| 31 | BR2_TARGET_GENERIC_ISSUE ?= "OP-TEE embedded distrib for $(PLATFORM)" |
| 32 | BR2_TARGET_GENERIC_GETTY_PORT ?= "console" |
| 33 | BR2_TARGET_ROOTFS_EXT2 ?= y |
| 34 | |
| 35 | # OP-TEE |
Akshay Belsare | 909e85c | 2024-11-09 17:30:48 +0530 | [diff] [blame] | 36 | OPTEE_OS_PLATFORM = versal2 |
| 37 | OPTEE_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 | ################################################################################ |
| 42 | TF_A_PATH ?= $(ROOT)/arm-trusted-firmware |
| 43 | U-BOOT_PATH ?= $(ROOT)/u-boot-xlnx |
| 44 | LINUX_PATH ?= $(ROOT)/linux-xlnx |
| 45 | |
| 46 | include common.mk |
| 47 | |
| 48 | BINARIES_PATH ?= $(ROOT)/out/bin |
| 49 | TF_A_ELF ?= $(TF_A_PATH)/build/$(OPTEE_OS_PLATFORM)/release/bl31/bl31.elf |
| 50 | OPTEE_OS_ELF ?= $(OPTEE_OS_PATH)/out/arm/core/tee.elf |
| 51 | U-BOOT_ELF ?= $(U-BOOT_PATH)/u-boot.elf |
| 52 | U-BOOT_DTB ?= $(U-BOOT_PATH)/arch/arm/dts/versal2-*.dtb |
| 53 | MKIMAGE_PATH ?= $(U-BOOT_PATH)/tools |
| 54 | LINUX_IMAGE ?= $(LINUX_PATH)/arch/arm64/boot/Image |
| 55 | ROOTFS_GZ ?= $(ROOT)/out-br/images/rootfs.cpio.gz |
| 56 | ROOTFS_SIGN ?= $(BINARIES_PATH)/rootfs.cpio.gz.u-boot |
| 57 | |
| 58 | ################################################################################ |
| 59 | # Targets |
| 60 | ################################################################################ |
| 61 | |
Akshay Belsare | 18be532 | 2025-04-01 11:00:00 +0530 | [diff] [blame] | 62 | all: tfa optee-os u-boot linux dtbo buildroot buildroot_mkimg |
| 63 | clean: tfa-clean optee-os-clean u-boot-clean linux-clean dtbo-clean buildroot-clean |
Akshay Belsare | 909e85c | 2024-11-09 17:30:48 +0530 | [diff] [blame] | 64 | |
| 65 | $(BINARIES_PATH): |
| 66 | mkdir -p $@ |
| 67 | |
| 68 | include toolchain.mk |
| 69 | |
| 70 | ################################################################################ |
| 71 | # ARM Trusted Firmware |
| 72 | ################################################################################ |
| 73 | |
| 74 | TF_A_EXPORTS = CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)" |
| 75 | TF_A_FLAGS = PLAT=versal2 CONSOLE=pl011 RESET_TO_BL31=1 SPD=opteed DEBUG=0 \ |
| 76 | MEM_BASE=0x1600000 MEM_SIZE=0x200000 \ |
Akshay Belsare | 18be532 | 2025-04-01 11:00:00 +0530 | [diff] [blame] | 77 | XILINX_OF_BOARD_DTB_ADDR=0x1000000 \ |
Akshay Belsare | 909e85c | 2024-11-09 17:30:48 +0530 | [diff] [blame] | 78 | BL32_MEM_BASE=0x1800000 BL32_MEM_SIZE=0x8000000 |
| 79 | |
| 80 | tfa: |
| 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 | |
| 85 | tfa-clean: |
| 86 | $(TF_A_EXPORTS) $(MAKE) -C $(TF_A_PATH) $(TF_A_FLAGS) clean |
| 87 | |
| 88 | ################################################################################ |
| 89 | # OP-TEE |
| 90 | ################################################################################ |
| 91 | |
Akshay Belsare | 18be532 | 2025-04-01 11:00:00 +0530 | [diff] [blame] | 92 | OPTEE_OS_COMMON_FLAGS += CFG_TEE_CORE_LOG_LEVEL=2 CFG_TEE_TA_LOG_LEVEL=2 \ |
| 93 | CFG_DT=y |
Akshay Belsare | 909e85c | 2024-11-09 17:30:48 +0530 | [diff] [blame] | 94 | |
| 95 | optee-os: optee-os-common |
| 96 | mkdir -p $(BINARIES_PATH) |
| 97 | cp $(OPTEE_OS_ELF) $(BINARIES_PATH) |
| 98 | |
| 99 | optee-os-clean: optee-os-clean-common |
| 100 | rm -rf ${OPTEE_OS_PATH}/out/ |
| 101 | |
| 102 | ################################################################################ |
| 103 | # U-Boot |
| 104 | ################################################################################ |
| 105 | |
| 106 | U-BOOT_EXPORTS = CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)" |
| 107 | U-BOOT_DEFCONFIG_COMMON_FILES := $(U-BOOT_PATH)/configs/amd_versal2_virt_defconfig \ |
| 108 | $(BUILD_PATH)/kconfigs/u-boot_versal2.conf |
| 109 | |
| 110 | u-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 | |
| 115 | u-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 | |
| 120 | u-boot-defconfig-clean: |
| 121 | rm -f $(U-BOOT_PATH)/.config |
| 122 | |
| 123 | u-boot-clean: u-boot-defconfig-clean |
| 124 | $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) clean |
| 125 | |
| 126 | ############################################################################### |
| 127 | # Device-Tree |
| 128 | ############################################################################### |
Akshay Belsare | 18be532 | 2025-04-01 11:00:00 +0530 | [diff] [blame] | 129 | dtbo: linux u-boot |
Akshay Belsare | 909e85c | 2024-11-09 17:30:48 +0530 | [diff] [blame] | 130 | 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 | |
| 140 | dtbo-clean: |
| 141 | rm -f $(BINARIES_PATH)/versal2-memory-reservation.dtbo |
| 142 | |
| 143 | ################################################################################ |
| 144 | # Linux kernel |
| 145 | ################################################################################ |
| 146 | |
| 147 | LINUX_DEFCONFIG_COMMON_ARCH := arm64 |
| 148 | LINUX_DEFCONFIG_COMMON_FILES := \ |
| 149 | $(LINUX_PATH)/arch/arm64/configs/xilinx_defconfig \ |
| 150 | $(BUILD_PATH)/kconfigs/versal2.conf |
| 151 | |
| 152 | linux-defconfig: $(LINUX_PATH)/.config |
| 153 | |
| 154 | LINUX_COMMON_FLAGS += ARCH=arm64 |
| 155 | |
| 156 | linux: linux-common |
| 157 | mkdir -p $(BINARIES_PATH) |
| 158 | cp $(LINUX_IMAGE) $(BINARIES_PATH) |
| 159 | |
| 160 | linux-defconfig-clean: linux-defconfig-clean-common |
| 161 | |
| 162 | LINUX_CLEAN_COMMON_FLAGS += ARCH=arm64 |
| 163 | |
| 164 | linux-clean: linux-clean-common |
| 165 | |
| 166 | LINUX_CLEANER_COMMON_FLAGS += ARCH=arm64 |
| 167 | |
| 168 | linux-cleaner: linux-cleaner-common |
| 169 | |
| 170 | ################################################################################ |
| 171 | # Buildroot |
| 172 | ################################################################################ |
| 173 | |
Akshay Belsare | 909e85c | 2024-11-09 17:30:48 +0530 | [diff] [blame] | 174 | buildroot_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) |