@@ -16,6 +16,7 @@ CONFIG_EFI_CAPSULE_LOADER=y
CONFIG_EFI_TEST=y
CONFIG_RESET_ATTACK_MITIGATION=y
# CONFIG_STACKPROTECTOR is not set
+CONFIG_MODULES=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_NET=y
new file mode 100644
@@ -0,0 +1,29 @@
+SUMMARY = "FF-A Debugfs Linux kernel module"
+DESCRIPTION = "This out-of-tree kernel module exposes FF-A operations to user space \
+used for development purposes"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://arm_ffa_user.c;beginline=1;endline=1;md5=fcab174c20ea2e2bc0be64b493708266"
+
+SRC_URI = "git://git.gitlab.arm.com/linux-arm/linux-trusted-services.git;branch=main;protocol=https"
+
+# ffa-debugfs v2.1.0
+SRCREV = "77967912d033144aff2695cecbd52d3be450deaa"
+
+S = "${WORKDIR}/git"
+
+inherit module
+
+SRC_URI:append = " \
+ file://0001-build-add-Yocto-support.patch \
+ file://0002-script-loading-the-driver-in-a-generic-way.patch \
+ "
+
+FILES:${PN} += "${bindir}/load_ffa_debugfs.sh"
+FILES:${PN}-dev += "${includedir}/arm_ffa_user.h"
+
+RPROVIDES:${PN} += "kernel-module-arm-ffa-user"
+
+do_install:append() {
+ install -D -p -m 0755 ${B}/load_ffa_debugfs.sh ${D}/${bindir}/load_ffa_debugfs.sh
+ install -m 0644 ${S}/arm_ffa_user.h ${D}/${includedir}/arm_ffa_user.h
+}
new file mode 100644
@@ -0,0 +1,79 @@
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Arpita S.K <arpita.s.k@arm.com>
+
+From 8a7bea4e7d08395036ffc2fde57c4fb44315e181 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Mon, 25 Oct 2021 13:12:11 +0100
+Subject: [PATCH 1/2] build: add Yocto support
+
+This commit allows to build the driver under Yocto
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+---
+ Kbuild | 4 ----
+ Makefile | 40 +++++++++++-----------------------------
+ 2 files changed, 11 insertions(+), 33 deletions(-)
+ delete mode 100644 Kbuild
+
+diff --git a/Kbuild b/Kbuild
+deleted file mode 100644
+index 330b019..0000000
+--- a/Kbuild
++++ /dev/null
+@@ -1,4 +0,0 @@
+-# SPDX-License-Identifier: GPL-2.0-only
+-
+-arm-ffa-user-objs := arm_ffa_user.o
+-obj-m := arm-ffa-user.o
+diff --git a/Makefile b/Makefile
+index 62dbfb1..90dfaef 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,33 +1,15 @@
+-# SPDX-License-Identifier: GPL-2.0-only
++arm-ffa-user-objs := arm_ffa_user.o
++obj-m := arm-ffa-user.o
+
+-ARCH := arm64
+-CROSS_COMPILE ?= aarch64-linux-gnu-
++SRC := $(shell pwd)
+
+-ROOT ?= $(CURDIR)/..
+-KDIR ?= $(ROOT)/linux
+-TARGET_DIR ?= $(ROOT)/shared
+-BUILD_DIR ?= $(CURDIR)/build
+-BUILD_DIR_MAKEFILE ?= $(BUILD_DIR)/Makefile
++all:
++ $(MAKE) -C $(KERNEL_SRC) M=$(SRC)
+
+-all: module
++modules_install:
++ $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install
+
+-clean: module-clean
+-
+-install: all
+- cp $(BUILD_DIR)/arm-ffa-user.ko $(TARGET_DIR)/
+- cp load_module.sh $(TARGET_DIR)/
+-
+-module: $(BUILD_DIR_MAKEFILE)
+- $(MAKE) -C $(KDIR) M=$(BUILD_DIR) src=$(CURDIR) modules \
+- ARCH=$(ARCH) CROSS_COMPILE="$(CROSS_COMPILE)"
+-
+-module-clean:
+- $(MAKE) -C $(KDIR) M=$(BUILD_DIR) src=$(CURDIR) clean \
+- ARCH=$(ARCH) CROSS_COMPILE="$(CROSS_COMPILE)"
+- rm $(BUILD_DIR_MAKEFILE)
+-
+-$(BUILD_DIR):
+- mkdir -p "$@"
+-
+-$(BUILD_DIR_MAKEFILE): $(BUILD_DIR)
+- touch "$@"
++clean:
++ rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
++ rm -f Module.markers Module.symvers modules.order
++ rm -rf .tmp_versions Modules.symvers
+--
+2.17.1
+
new file mode 100644
@@ -0,0 +1,46 @@
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Arpita S.K <arpita.s.k@arm.com>
+
+From e5d9dfa703a5a57e535b5dab4eda47a9707972d3 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Mon, 25 Oct 2021 12:51:37 +0100
+Subject: [PATCH 2/2] script: loading the driver in a generic way
+
+Use the kernel module from the modules path.
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+---
+ load_module.sh => load_ffa_debugfs.sh | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+ rename load_module.sh => load_ffa_debugfs.sh (50%)
+ mode change 100755 => 100644
+
+diff --git a/load_module.sh b/load_ffa_debugfs.sh
+old mode 100755
+new mode 100644
+similarity index 50%
+rename from load_module.sh
+rename to load_ffa_debugfs.sh
+index 2137245..4f31ff3
+--- a/load_module.sh
++++ b/load_ffa_debugfs.sh
+@@ -1,10 +1,14 @@
+ #!/bin/sh
++#
++# Use:
++# load_ffa_debugfs.sh <folder containing sp_uuid_list.txt>
++#
+
+-[ ! -f $(dirname "$0")/sp_uuid_list.txt ] && \
++[ ! -f "$1"/sp_uuid_list.txt ] && \
+ { echo "Error: missing SP UUID list"; exit 1; }
+
+ if ! grep -qs 'arm-ffa-user' /proc/modules; then
+- insmod $(dirname "$0")/arm-ffa-user.ko uuid_str_list=$(cat $(dirname "$0")/sp_uuid_list.txt)
++ insmod /lib/modules/$(uname -r)/extra/arm-ffa-user.ko uuid_str_list=$(cat "$1"/sp_uuid_list.txt)
+ fi
+
+ if ! grep -qs 'debugfs' /proc/mounts; then
+--
+2.17.1
+