blob: 93d64cdd38c8d18381b7c96938d2c712ca177d0d [file] [log] [blame]
Pascal Brandefe56592016-03-03 10:46:52 +01001################################################################################
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
Jens Wiklanderbab50842016-02-17 15:45:10 +010011DEBUG ?= 0
12
Victor Chong7a716512017-09-11 15:18:44 +010013include common.mk
Jens Wiklanderbab50842016-02-17 15:45:10 +010014
15################################################################################
Jens Wiklanderbab50842016-02-17 15:45:10 +010016# Paths to git projects and various binaries
17################################################################################
18ARM_TF_PATH ?= $(ROOT)/arm-trusted-firmware
19
20U-BOOT_PATH ?= $(ROOT)/u-boot
21U-BOOT_BIN ?= $(U-BOOT_PATH)/u-boot.bin
22
23################################################################################
24# Targets
25################################################################################
Igor Opaniuk584efe52017-08-07 01:41:48 +030026all: arm-tf u-boot linux optee-os optee-client xtest optee-examples \
27 update_rootfs
Victor Chong5fc1f852017-05-22 07:30:47 +010028clean: arm-tf-clean busybox-clean u-boot-clean optee-os-clean \
Igor Opaniuk584efe52017-08-07 01:41:48 +030029 optee-client-clean optee-examples-clean
Jens Wiklanderbab50842016-02-17 15:45:10 +010030
31
Victor Chong7a716512017-09-11 15:18:44 +010032include toolchain.mk
Jens Wiklanderbab50842016-02-17 15:45:10 +010033
34################################################################################
35# ARM Trusted Firmware
36################################################################################
37ARM_TF_EXPORTS ?= \
Joakim Bech69a8a372016-04-26 11:05:04 +020038 CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)"
Jens Wiklanderbab50842016-02-17 15:45:10 +010039
40ARM_TF_FLAGS ?= \
Jens Wiklander2f42f802018-04-04 13:46:49 +020041 SCP_BL2=$(ROOT)/vexpress-firmware/SOFTWARE/scp_bl2.bin \
Jens Wiklander7abd3ed2017-09-04 10:22:40 +020042 BL32=$(OPTEE_OS_HEADER_V2_BIN) \
43 BL32_EXTRA1=$(OPTEE_OS_PAGER_V2_BIN) \
44 BL32_EXTRA2=$(OPTEE_OS_PAGEABLE_V2_BIN) \
Jens Wiklanderbab50842016-02-17 15:45:10 +010045 BL33=$(U-BOOT_BIN) \
46 DEBUG=0 \
47 ARM_TSP_RAM_LOCATION=dram \
48 PLAT=juno \
49 SPD=opteed
50
51arm-tf: optee-os u-boot
52 $(ARM_TF_EXPORTS) $(MAKE) -C $(ARM_TF_PATH) $(ARM_TF_FLAGS) all fip
53
54arm-tf-clean:
55 $(ARM_TF_EXPORTS) $(MAKE) -C $(ARM_TF_PATH) $(ARM_TF_FLAGS) clean
56
57################################################################################
58# Busybox
59################################################################################
Pascal Brandefe56592016-03-03 10:46:52 +010060BUSYBOX_COMMON_TARGET = fvp
61BUSYBOX_CLEAN_COMMON_TARGET = fvp clean
Jens Wiklanderbab50842016-02-17 15:45:10 +010062
63busybox: busybox-common
64
65busybox-clean: busybox-clean-common
66
67busybox-cleaner: busybox-cleaner-common
68
69################################################################################
70# Das U-Boot
71################################################################################
72
73U-BOOT_EXPORTS ?= CROSS_COMPILE="$(CCACHE)$(AARCH64_CROSS_COMPILE)"
74
75U-BOOT_DEFCONFIG_FILES := \
76 $(U-BOOT_PATH)/configs/vexpress_aemv8a_juno_defconfig \
77 $(ROOT)/build/kconfigs/u-boot_juno.conf
78
79.PHONY: u-boot
Victor Chong9f0d1202016-04-23 16:28:31 +010080u-boot:
Jens Wiklanderbab50842016-02-17 15:45:10 +010081 cd $(U-BOOT_PATH) && \
82 scripts/kconfig/merge_config.sh $(U-BOOT_DEFCONFIG_FILES)
83 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) all
Victor Chong9f0d1202016-04-23 16:28:31 +010084
Jens Wiklanderbab50842016-02-17 15:45:10 +010085u-boot-clean:
86 $(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) clean
87
88################################################################################
89# Linux kernel
90################################################################################
91LINUX_DEFCONFIG_COMMON_ARCH := arm64
92LINUX_DEFCONFIG_COMMON_FILES := \
93 $(LINUX_PATH)/arch/arm64/configs/defconfig \
94 $(CURDIR)/kconfigs/juno.conf
95
96linux-defconfig: $(LINUX_PATH)/.config
97
98LINUX_COMMON_FLAGS += ARCH=arm64
99
100linux: linux-common
101
102linux-defconfig-clean: linux-defconfig-clean-common
103
104LINUX_CLEAN_COMMON_FLAGS += ARCH=arm64
105
106linux-clean: linux-clean-common
107
108LINUX_CLEANER_COMMON_FLAGS += ARCH=arm64
109
110linux-cleaner: linux-cleaner-common
111
112################################################################################
113# OP-TEE
114################################################################################
Pascal Brandefe56592016-03-03 10:46:52 +0100115OPTEE_OS_COMMON_FLAGS += PLATFORM=vexpress-juno
Jens Wiklanderbab50842016-02-17 15:45:10 +0100116optee-os: optee-os-common
117
118OPTEE_OS_CLEAN_COMMON_FLAGS += PLATFORM=vexpress-juno
119optee-os-clean: optee-os-clean-common
120
121optee-client: optee-client-common
122
123optee-client-clean: optee-client-clean-common
Jens Wiklanderbab50842016-02-17 15:45:10 +0100124################################################################################
125# xtest / optee_test
126################################################################################
127xtest: xtest-common
128
129xtest-clean: xtest-clean-common
130
131xtest-patch: xtest-patch-common
132
133################################################################################
Igor Opaniuk584efe52017-08-07 01:41:48 +0300134# Sample applications / optee_examples
Victor Chong8519bcf2016-07-15 08:43:03 +0100135################################################################################
Igor Opaniuk584efe52017-08-07 01:41:48 +0300136optee-examples: optee-examples-common
Victor Chong8519bcf2016-07-15 08:43:03 +0100137
Igor Opaniuk584efe52017-08-07 01:41:48 +0300138optee-examples-clean: optee-examples-clean-common
Victor Chong8519bcf2016-07-15 08:43:03 +0100139
140################################################################################
Jens Wiklanderbab50842016-02-17 15:45:10 +0100141# Root FS
142################################################################################
Etienne Carriere5e113512016-10-21 10:13:57 +0200143filelist-tee: filelist-tee-common
Jens Wiklanderbab50842016-02-17 15:45:10 +0100144
145.PHONY: update_rootfs
Etienne Carriere5e113512016-10-21 10:13:57 +0200146update_rootfs: u-boot
147update_rootfs: update_rootfs-common
Jens Wiklanderbab50842016-02-17 15:45:10 +0100148 $(U-BOOT_PATH)/tools/mkimage -A arm64 -O linux -T ramdisk -C gzip \
149 -d $(GEN_ROOTFS_PATH)/filesystem.cpio.gz \
150 $(GEN_ROOTFS_PATH)/ramdisk.img
151
152FTP-UPLOAD = ftp-upload -v --host $(JUNO_IP) --dir SOFTWARE
153
154.PHONY: flash
155flash:
156 @test -n "$(JUNO_IP)" || \
157 (echo "JUNO_IP not set" ; exit 1)
Jens Wiklander2f42f802018-04-04 13:46:49 +0200158 $(FTP-UPLOAD) $(ROOT)/vexpress-firmware/SOFTWARE/scp_bl1.bin
Jens Wiklanderbab50842016-02-17 15:45:10 +0100159 $(FTP-UPLOAD) $(ARM_TF_PATH)/build/juno/release/bl1.bin
160 $(FTP-UPLOAD) $(ARM_TF_PATH)/build/juno/release/fip.bin
161 $(FTP-UPLOAD) $(ROOT)/linux/arch/arm64/boot/Image
162 $(FTP-UPLOAD) $(ROOT)/linux/arch/arm64/boot/dts/arm/juno.dtb
Fathi Boudra332f7d32017-10-27 14:49:57 +0300163 $(FTP-UPLOAD) $(ROOT)/linux/arch/arm64/boot/dts/arm/juno-r1.dtb
164 $(FTP-UPLOAD) $(ROOT)/linux/arch/arm64/boot/dts/arm/juno-r2.dtb
Jens Wiklanderbab50842016-02-17 15:45:10 +0100165 $(FTP-UPLOAD) $(ROOT)/gen_rootfs/ramdisk.img