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

Commit 9f0809bb authored by Elliot Berman's avatar Elliot Berman
Browse files

firmware: qcom: Migrate SCM calls in tz_log



Migrate SCM call to register qsee log buffer to new SCM driver.

Change-Id: Ic9c700f5324f1a5d5a9ce28ab95cc55fed9c692e
Signed-off-by: default avatarElliot Berman <eberman@codeaurora.org>
parent 7729d81d
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -1510,6 +1510,26 @@ int __qcom_scm_ice_restore_cfg(struct device *dev)
	return qcom_scm_call(dev, &desc);
}

int __qcom_scm_register_qsee_log_buf(struct device *dev, phys_addr_t buf,
				     size_t len)
{
	int ret;
	struct qcom_scm_desc desc = {
		.svc = QCOM_SCM_SVC_QSEELOG,
		.cmd = QCOM_SCM_QSEELOG_REGISTER,
		.owner = ARM_SMCCC_OWNER_TRUSTED_OS
	};


	desc.args[0] = buf;
	desc.args[1] = len;
	desc.arginfo = QCOM_SCM_ARGS(2, QCOM_SCM_RW);

	ret = qcom_scm_call(dev, &desc);

	return ret ? : desc.res[0];
}

void __qcom_scm_init(void)
{
	__query_convention();
+13 −0
Original line number Diff line number Diff line
@@ -678,6 +678,19 @@ int qcom_scm_ice_restore_cfg(void)
}
EXPORT_SYMBOL(qcom_scm_ice_restore_cfg);

int qcom_scm_get_tz_log_feat_id(u64 *version)
{
	return __qcom_scm_get_feat_version(__scm->dev, QCOM_SCM_FEAT_LOG_ID,
					   version);
}
EXPORT_SYMBOL(qcom_scm_get_tz_log_feat_id);

int qcom_scm_register_qsee_log_buf(phys_addr_t buf, size_t len)
{
	return __qcom_scm_register_qsee_log_buf(__scm->dev, buf, len);
}
EXPORT_SYMBOL(qcom_scm_register_qsee_log_buf);

/**
 * qcom_scm_is_available() - Checks if SCM is available
 */
+6 −0
Original line number Diff line number Diff line
@@ -162,6 +162,12 @@ extern int __qcom_scm_qsmmu500_wait_safe_toggle(struct device *dev,
#define QCOM_SCM_SMMU_CONFIG_ERRATA1_CLIENT_ALL	0x2

// TOS Services and Function IDs
#define QCOM_SCM_SVC_QSEELOG		0x01
#define QCOM_SCM_QSEELOG_REGISTER	0x06
extern int __qcom_scm_register_qsee_log_buf(struct device *dev, phys_addr_t buf,
					   size_t len);
#define QCOM_SCM_FEAT_LOG_ID		0x0a

#define QCOM_SCM_SVC_KEYSTORE		0x05
#define QCOM_SCM_ICE_RESTORE_KEY_ID	0x06
extern int __qcom_scm_ice_restore_cfg(struct device *dev);
+6 −0
Original line number Diff line number Diff line
@@ -98,6 +98,8 @@ extern int qcom_scm_create_shm_bridge(u64 pfn_and_ns_perm_flags,
extern int qcom_scm_smmu_change_pgtbl_format(u64 dev_id, int cbndx);
extern int qcom_scm_qsmmu500_wait_safe_toggle(bool en);
extern int qcom_scm_ice_restore_cfg(void);
extern int qcom_scm_get_tz_log_feat_id(u64 *version);
extern int qcom_scm_register_qsee_log_buf(phys_addr_t buf, size_t len);
extern bool qcom_scm_is_available(void);
#else

@@ -188,6 +190,10 @@ static inline int qcom_scm_smmu_change_pgtbl_format(u64 dev_id, int cbndx)
static inline int qcom_scm_qsmmu500_wait_safe_toggle(bool en)
		{ return -ENODEV; }
static inline int qcom_scm_ice_restore_cfg(void) { return -ENODEV; }
static inline int qcom_scm_get_tz_log_feat_id(u64 *version)
		{ return -ENODEV; }
static inline int qcom_scm_register_qsee_log_buf(phys_addr_t buf, size_t len)
		{ return -ENODEV; }
static inline bool qcom_scm_is_available(void) { return false; }
#endif
#endif