blob: 7b07d9fb24bd7bc28719bf4860e91fd1a614cfd3 [file] [log] [blame]
Michael Grandb76287b2019-02-24 23:38:57 +01001ROOT = $(PWD)/..
2PLATFORM ?= zcu102
3PETALINUX_PATH ?= /opt/Xilinx/petalinx_2018_2
4BSP_PATH ?= ./xilinx-${PLATFORM}-v2018.2-final.bsp
5PRJ_PATH ?= $(ROOT)/xilinx-${PLATFORM}-2018.2
6PETALINUX_CFG_PATH ?= $(ROOT)/build/zynqmp
7OPTEE_VER ?= latest
8
9define set_cfg
10 @sed -i 's/$(1)=.*/$(1)=$(2)/' $(3)
11endef
12
13define set_optee_version
14 @if [ "$(1)" != "latest" ]; then \
15 echo 'OPTEE_VERSION ?= "$(1)"' > $(2); \
16 echo 'SRCREV ?= "$(1)"' >> $(2); \
17 else \
18 echo 'OPTEE_VERSION ?= "latest"' > $(2); \
19 echo 'SRCREV ?= "$${AUTOREV}"' >> $(2); \
20 fi
21endef
22
23.PHONY: check-petalinux
24
25check-petalinux:
26ifndef PETALINUX_VER
27 $(error You have to source Petalinux settings)
28endif
29ifneq ($(PETALINUX_VER),2018.2)
30 $(error This makefile only support Petalinux 2018.2)
31endif
32
33petalinux-create: check-petalinux
34 @cd $(ROOT) && petalinux-create -t project -s $(BSP_PATH)
35 @cd $(PRJ_PATH) && petalinux-create -t apps --template install -n optee-client --enable
36 @cd $(PRJ_PATH) && petalinux-create -t apps --template install -n optee-test --enable
37 @#
38 $(call set_cfg,CONFIG_SUBSYSTEM_ATF_COMPILE_EXTRA_SETTINGS,"SPD=opteed ZYNQMP_BL32_MEM_BASE=0x60000000 ZYNQMP_BL32_MEM_SIZE=0x80000",$(PRJ_PATH)/project-spec/configs/config)
39 $(call set_cfg,CONFIG_SUBSYSTEM_ZYNQMP_ATF_MEM_SIZE,0x16001,$(PRJ_PATH)/project-spec/configs/config)
40 @#
41 @cp $(PETALINUX_CFG_PATH)/kernel_optee.cfg $(PRJ_PATH)/project-spec/meta-user/recipes-kernel/linux/linux-xlnx/
42 @cp $(PETALINUX_CFG_PATH)/linux-xlnx_%.bbappend $(PRJ_PATH)/project-spec/meta-user/recipes-kernel/linux/linux-xlnx_%.bbappend
43 @cp $(PETALINUX_CFG_PATH)/system-user.dtsi $(PRJ_PATH)/project-spec/meta-user/recipes-bsp/device-tree/files/
44 @#
45 @mkdir -p $(PRJ_PATH)/project-spec/meta-user/recipes-bsp/arm-trusted-firmware/
46 @cp -r $(PETALINUX_CFG_PATH)/arm-trusted-firmware/* $(PRJ_PATH)/project-spec/meta-user/recipes-bsp/arm-trusted-firmware/
47 @#
48 @mkdir -p $(PRJ_PATH)/project-spec/meta-user/recipes-bsp/optee-os
49 @cp -r $(PETALINUX_CFG_PATH)/optee-os/* $(PRJ_PATH)/project-spec/meta-user/recipes-bsp/optee-os/
50 @cp -r $(PETALINUX_CFG_PATH)/optee-client/* $(PRJ_PATH)/project-spec/meta-user/recipes-apps/optee-client/
51 @cp -r $(PETALINUX_CFG_PATH)/optee-test/* $(PRJ_PATH)/project-spec/meta-user/recipes-apps/optee-test/
52
53petalinux-config:
54 $(call set_optee_version,$(OPTEE_VER),$(PRJ_PATH)/project-spec/meta-user/recipes-apps/optee-test/optee-test.bbappend)
55 $(call set_optee_version,$(OPTEE_VER),$(PRJ_PATH)/project-spec/meta-user/recipes-apps/optee-client/optee-client.bbappend)
56 $(call set_optee_version,$(OPTEE_VER),$(PRJ_PATH)/project-spec/meta-user/recipes-bsp/optee-os/optee-os.bbappend)
57 @cd $(PRJ_PATH) && petalinux-config --oldconfig
58
59petalinux-build:
60 @cd $(PRJ_PATH) && petalinux-build
61
62qemu:
63 @cd $(PRJ_PATH) && petalinux-boot --qemu --qemu-args "-device loader,file=${PRJ_PATH}/images/linux/bl32.elf" --kernel