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

Commit 232738f7 authored by Amit Blay's avatar Amit Blay Committed by Gerrit - the friendly Code Review server
Browse files

soc: qcom: SCM front-end over QCPE



This is an implementation of para-virtualized SCM driver.
This driver is the FE. The BE is QCPE running in an hypervisor.
The FE driver forwards SCM calls over HAB to the BE.

Change-Id: I88c269e856b0a6cc20b9ab8bf10110842d90a382
Signed-off-by: default avatarAmit Blay <ablay@codeaurora.org>
parent d6f171ce
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ obj-$(CONFIG_MACH_DOVE) += dove/
obj-$(CONFIG_ARCH_MEDIATEK)	+= mediatek/
obj-$(CONFIG_ARCH_QCOM)		+= qcom/
obj-$(CONFIG_ARCH_ROCKCHIP)		+= rockchip/
obj-$(CONFIG_QCOM_SCM_QCPE)	+= qcom/
obj-$(CONFIG_ARCH_SUNXI)	+= sunxi/
obj-$(CONFIG_ARCH_TEGRA)	+= tegra/
obj-$(CONFIG_SOC_TI)		+= ti/
+4 −0
Original line number Diff line number Diff line
@@ -379,6 +379,10 @@ config QCOM_SCM
       bool "Secure Channel Manager (SCM) support"
       default n

config QCOM_SCM_QCPE
       bool "Para-Virtualized Secure Channel Manager (SCM) support over QCPE"
       default n

menuconfig QCOM_SCM_XPU
	bool "Qualcomm XPU configuration driver"
	depends on QCOM_SCM
+1 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ CFLAGS_scm.o :=$(call as-instr,.arch_extension sec,-DREQUIRES_SEC=1)

obj-$(CONFIG_QCOM_SCM_ERRATA) += scm-errata.o
obj-$(CONFIG_QCOM_SCM)  +=      scm.o scm-boot.o
obj-$(CONFIG_QCOM_SCM_QCPE)  += scm_qcpe.o
obj-$(CONFIG_QCOM_SCM_XPU) += scm-xpu.o
obj-$(CONFIG_QCOM_WATCHDOG_V2) += watchdog_v2.o
obj-$(CONFIG_QCOM_MEMORY_DUMP) += memory_dump.o
+1137 −0

File added.

Preview size limit exceeded, changes collapsed.

+2 −2
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ struct scm_desc {
	u64 x5;
};

#ifdef CONFIG_QCOM_SCM
#if defined(CONFIG_QCOM_SCM) || defined(CONFIG_QCOM_SCM_QCPE)
extern int scm_call(u32 svc_id, u32 cmd_id, const void *cmd_buf, size_t cmd_len,
		void *resp_buf, size_t resp_len);

@@ -230,7 +230,7 @@ static inline int scm_io_write(phys_addr_t address, u32 val)
	return 0;
}

inline bool scm_is_secure_device(void)
static inline bool scm_is_secure_device(void)
{
	return false;
}