From fc2f012eb0d8cae81d0aeb5a53357cae189945af Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 26 Jan 2016 15:15:05 +0100
Subject: [PATCH] fvp: generic driver

Build support for generic driver on FVP.

Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
 common.mk         | 12 ------------
 fvp.mk            | 33 ++++++++++-----------------------
 kconfigs/fvp.conf |  3 ++-
 3 files changed, 12 insertions(+), 36 deletions(-)

diff --git a/common.mk b/common.mk
index af7e801..33379ba 100644
--- a/common.mk
+++ b/common.mk
@@ -11,7 +11,6 @@ GEN_ROOTFS_FILELIST		?= $(GEN_ROOTFS_PATH)/filelist-tee.txt
 OPTEE_OS_PATH			?= $(ROOT)/optee_os
 OPTEE_CLIENT_PATH		?= $(ROOT)/optee_client
 OPTEE_CLIENT_EXPORT		?= $(OPTEE_CLIENT_PATH)/out/export
-OPTEE_LINUXDRIVER_PATH		?= $(ROOT)/optee_linuxdriver
 OPTEE_TEST_PATH			?= $(ROOT)/optee_test
 OPTEE_TEST_OUT_PATH 		?= $(ROOT)/optee_test/out
 
@@ -209,17 +208,6 @@ optee-client-clean-common:
 	$(MAKE) -C $(OPTEE_CLIENT_PATH) $(OPTEE_CLIENT_CLEAN_COMMON_FLAGS) \
 		clean
 
-OPTEE_LINUXDRIVER_COMMON_FLAGS ?= CROSS_COMPILE=$(CROSS_COMPILE_NS_KERNEL) \
-	LOCALVERSION= M=$(OPTEE_LINUXDRIVER_PATH)
-
-optee-linuxdriver-common: linux
-	$(MAKE) -C $(LINUX_PATH) $(OPTEE_LINUXDRIVER_COMMON_FLAGS) modules
-
-OPTEE_LINUXDRIVER_CLEAN_COMMON_FLAGS ?= M=$(OPTEE_LINUXDRIVER_PATH)
-
-optee-linuxdriver-clean-common:
-	$(MAKE) -C $(LINUX_PATH) $(OPTEE_LINUXDRIVER_CLEAN_COMMON_FLAGS) clean
-
 ################################################################################
 # xtest / optee_test
 ################################################################################
diff --git a/fvp.mk b/fvp.mk
index 86ce0a0..0b36b79 100644
--- a/fvp.mk
+++ b/fvp.mk
@@ -27,9 +27,9 @@ endif
 ################################################################################
 # Targets
 ################################################################################
-all: arm-tf edk2 linux optee-os optee-client optee-linuxdriver generate-dtb xtest
+all: arm-tf edk2 linux optee-os optee-client xtest
 all-clean: arm-tf-clean busybox-clean edk2-clean optee-os-clean \
-	optee-client-clean optee-linuxdriver-clean
+	optee-client-clean
 
 
 -include toolchain.mk
@@ -76,7 +76,7 @@ define edk2-call
 	     -f ArmPlatformPkg/Scripts/Makefile EDK2_ARCH=AARCH64 \
 	     EDK2_DSC=ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc \
 	     EDK2_TOOLCHAIN=GCC49 EDK2_BUILD=RELEASE \
-	     EDK2_MACROS="-n 6 -D ARM_FOUNDATION_FVP=1"
+	     EDK2_MACROS="-n 6 -D ARM_FOUNDATION_FVP=1 -D ARM_FVP_BOOT_ANDROID_FROM_SEMIHOSTING=1"
 endef
 
 edk2: edk2-common
@@ -120,19 +120,6 @@ optee-client: optee-client-common
 
 optee-client-clean: optee-client-clean-common
 
-OPTEE_LINUXDRIVER_COMMON_FLAGS += ARCH=arm64
-optee-linuxdriver: optee-linuxdriver-common
-
-OPTEE_LINUXDRIVER_CLEAN_COMMON_FLAGS += ARCH=arm64
-optee-linuxdriver-clean: optee-linuxdriver-clean-common
-
-generate-dtb: linux
-	$(LINUX_PATH)/scripts/dtc/dtc \
-		-O dtb \
-		-o $(FOUNDATION_PATH)/fdt.dtb \
-		-b 0 \
-		-i . $(OPTEE_LINUXDRIVER_PATH)/fdts/fvp-foundation-gicv2-psci.dts
-
 ################################################################################
 # xtest / optee_test
 ################################################################################
@@ -166,8 +153,7 @@ filelist-tee:
 	@echo "# OP-TEE device" >> $(GEN_ROOTFS_FILELIST)
 	@echo "dir /lib/modules 755 0 0" >> $(GEN_ROOTFS_FILELIST)
 	@echo "dir /lib/modules/$(call KERNEL_VERSION) 755 0 0" >> $(GEN_ROOTFS_FILELIST)
-	@echo "file /lib/modules/$(call KERNEL_VERSION)/optee.ko $(OPTEE_LINUXDRIVER_PATH)/core/optee.ko 755 0 0" >> $(GEN_ROOTFS_FILELIST)
-	@echo "file /lib/modules/$(call KERNEL_VERSION)/optee_armtz.ko $(OPTEE_LINUXDRIVER_PATH)/armtz/optee_armtz.ko 755 0 0" >> $(GEN_ROOTFS_FILELIST)
+	@echo "file /lib/modules/$(call KERNEL_VERSION)/optee.ko $(LINUX_PATH)/drivers/tee/optee/optee.ko 755 0 0" >> $(GEN_ROOTFS_FILELIST)
 	@echo "# OP-TEE Client" >> $(GEN_ROOTFS_FILELIST)
 	@echo "file /bin/tee-supplicant $(OPTEE_CLIENT_EXPORT)/bin/tee-supplicant 755 0 0" >> $(GEN_ROOTFS_FILELIST)
 	@echo "dir $(ROOTFS_LIBPATH) 755 0 0" >> $(GEN_ROOTFS_FILELIST)
@@ -175,7 +161,7 @@ filelist-tee:
 	@echo "slink $(ROOTFS_LIBPATH)/libteec.so.1 libteec.so.1.0 755 0 0" >> $(GEN_ROOTFS_FILELIST)
 	@echo "slink $(ROOTFS_LIBPATH)/libteec.so libteec.so.1 755 0 0" >> $(GEN_ROOTFS_FILELIST)
 
-update_rootfs: busybox optee-client optee-linuxdriver xtest filelist-tee
+update_rootfs: busybox optee-client xtest filelist-tee
 	cat $(GEN_ROOTFS_PATH)/filelist-final.txt $(GEN_ROOTFS_PATH)/filelist-tee.txt > $(GEN_ROOTFS_PATH)/filelist.tmp
 	cd $(GEN_ROOTFS_PATH); \
 	        $(LINUX_PATH)/usr/gen_init_cpio $(GEN_ROOTFS_PATH)/filelist.tmp | gzip > $(GEN_ROOTFS_PATH)/filesystem.cpio.gz
@@ -189,13 +175,14 @@ run: all
 	$(MAKE) run-only
 
 run-only:
-	@ln -sf $(LINUX_PATH)/arch/arm64/boot/Image $(FOUNDATION_PATH)
-	@ln -sf $(GEN_ROOTFS_PATH)/filesystem.cpio.gz $(FOUNDATION_PATH)
+	@ln -sf $(LINUX_PATH)/arch/arm64/boot/Image $(FOUNDATION_PATH)/kernel
+	@ln -sf $(GEN_ROOTFS_PATH)/filesystem.cpio.gz $(FOUNDATION_PATH)/ramdisk.img
+	@ln -sf $(LINUX_PATH)/arch/arm64/boot/dts/arm/foundation-v8.dtb $(FOUNDATION_PATH)/fdt.dtb
 	@cd $(FOUNDATION_PATH); \
 	$(FOUNDATION_PATH)/models/Linux64_GCC-4.7/Foundation_Platform \
 	--cores=4 \
 	--secure-memory \
 	--visualization \
 	--gicv3 \
-	--data="$(ARM_TF_PATH)/build/fvp/release/bl1.bin"@0x0 \
-	--data="$(ARM_TF_PATH)/build/fvp/release/fip.bin"@0x8000000
+	--data="$(ARM_TF_PATH)/build/fvp/debug/bl1.bin"@0x0 \
+	--data="$(ARM_TF_PATH)/build/fvp/debug/fip.bin"@0x8000000
diff --git a/kconfigs/fvp.conf b/kconfigs/fvp.conf
index 517f318..07554cf 100644
--- a/kconfigs/fvp.conf
+++ b/kconfigs/fvp.conf
@@ -1 +1,2 @@
-CONFIG_DRM=y
+CONFIG_TEE=y
+CONFIG_OPTEE=y
-- 
GitLab