Commit e7818584 authored by Sudeep Holla's avatar Sudeep Holla
Browse files

firmware: arm_ffa: Add initial FFA bus support for device enumeration

The Arm FF for Armv8-A specification has concept of endpoints or
partitions. In the Normal world, a partition could be a VM when
the Virtualization extension is enabled or the kernel itself.

In order to handle multiple partitions, we can create a FFA device for
each such partition on a dedicated FFA bus. Similarly, different drivers
requiring FFA transport can be registered on the same bus. We can match
the device and drivers using UUID. This is mostly for the in-kernel
users with FFA drivers.

Link: https://lore.kernel.org/r/20210521151033.181846-2-sudeep.holla@arm.com


Tested-by: default avatarJens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
parent 3fdc0cb5
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -7069,6 +7069,13 @@ F: include/linux/firewire.h
F:	include/uapi/linux/firewire*.h
F:	tools/firewire/
FIRMWARE FRAMEWORK FOR ARMV8-A
M:	Sudeep Holla <sudeep.holla@arm.com>
L:	linux-arm-kernel@lists.infradead.org
S:	Maintained
F:	drivers/firmware/arm_ffa/
F:	include/linux/arm_ffa.h
FIRMWARE LOADER (request_firmware)
M:	Luis Chamberlain <mcgrof@kernel.org>
L:	linux-kernel@vger.kernel.org
+1 −0
Original line number Diff line number Diff line
@@ -296,6 +296,7 @@ config TURRIS_MOX_RWTM
	  other manufacturing data and also utilize the Entropy Bit Generator
	  for hardware random number generation.

source "drivers/firmware/arm_ffa/Kconfig"
source "drivers/firmware/broadcom/Kconfig"
source "drivers/firmware/google/Kconfig"
source "drivers/firmware/efi/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ obj-$(CONFIG_TI_SCI_PROTOCOL) += ti_sci.o
obj-$(CONFIG_TRUSTED_FOUNDATIONS) += trusted_foundations.o
obj-$(CONFIG_TURRIS_MOX_RWTM)	+= turris-mox-rwtm.o

obj-y				+= arm_ffa/
obj-y				+= arm_scmi/
obj-y				+= broadcom/
obj-y				+= meson/
+16 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
config ARM_FFA_TRANSPORT
	tristate "Arm Firmware Framework for Armv8-A"
	depends on OF
	depends on ARM64
	default n
	help
	  This Firmware Framework(FF) for Arm A-profile processors describes
	  interfaces that standardize communication between the various
	  software images which includes communication between images in
	  the Secure world and Normal world. It also leverages the
	  virtualization extension to isolate software images provided
	  by an ecosystem of vendors from each other.

	  This driver provides interface for all the client drivers making
	  use of the features offered by ARM FF-A.
+4 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
ffa-bus-y = bus.o
ffa-module-objs := $(ffa-bus-y)
obj-$(CONFIG_ARM_FFA_TRANSPORT) = ffa-module.o
Loading