Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f0b9d5e authored by Amir Samuelov's avatar Amir Samuelov Committed by Gerrit - the friendly Code Review server
Browse files

soc: qcom: add secure processor communication (spcom) driver



This driver supports communication with secure processor subsystem
(SPSS) over rpmsg and ungerlying glink transport layer. The
communication is based on using shared memory and interrupts.

Add snapshot for spcom driver from msm-4.14 commit cff38c326b98
("soc:qcom:spcom: free not consumed packet on rx timeout").

Change-Id: I28d704b18a3b0de9711ff3235c3f5551e7302557
Signed-off-by: default avatarKonstantin Dorfman <kdorfman@codeaurora.org>
Signed-off-by: default avatarAmir Samuelov <amirs@codeaurora.org>
parent 42d5e1c3
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -510,6 +510,19 @@ config QCOM_BUS_CONFIG_RPMH
	  from logical nodes to hardware nodes controlled by the BCM (Bus
	  Clock Manager)

config MSM_SPCOM
	depends on QCOM_GLINK
	bool "Secure Processor Communication over GLINK"
	help
	  spcom driver allows loading Secure Processor Applications and
	  sending messages to Secure Processor Applications.
	  spcom provides interface to both user space app and kernel driver.
	  It is using glink as the transport layer, which provides multiple
	  logical channels over single physical channel.
	  The physical layer is based on shared memory and interrupts.
	  spcom provides clients/server API, although currently only one client
	  or server is allowed per logical channel.

config QSEE_IPC_IRQ
	bool "QSEE interrupt manager"
	help
+1 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ obj-$(CONFIG_MSM_SYSMON_GLINK_COMM) += sysmon-glink.o sysmon-qmi.o
obj-$(CONFIG_MSM_PIL_SSR_GENERIC) += subsys-pil-tz.o
obj-$(CONFIG_MEM_SHARE_QMI_SERVICE)		+= memshare/
obj-$(CONFIG_MSM_PIL)   +=      peripheral-loader.o
obj-$(CONFIG_MSM_SPCOM) += spcom.o
obj-$(CONFIG_MSM_CDSP_LOADER) += qdsp6v2/
obj-$(CONFIG_MSM_JTAGV8) += jtagv8.o jtagv8-etm.o

+2200 −0

File added.

Preview size limit exceeded, changes collapsed.

+3 −0
Original line number Diff line number Diff line
@@ -50,6 +50,9 @@ enum spcom_cmd_id {
	SPCOM_CMD_UNLOCK_ION_BUF = 0x554C434B, /* "ULCK" = 0x4C4F434B */
	SPCOM_CMD_FSSR		= 0x46535352, /* "FSSR" = 0x46535352 */
	SPCOM_CMD_CREATE_CHANNEL = 0x43524554, /* "CRET" = 0x43524554 */
#define SPCOM_CMD_RESTART_SP \
	SPCOM_CMD_RESTART_SP
	SPCOM_CMD_RESTART_SP    = 0x52535452, /* "RSTR" = 0x52535452 */
};

/*