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: Elliot Berman <eberman@codeaurora.org>
This commit is contained in:
Elliot Berman
2019-10-11 12:09:49 -07:00
parent 7729d81d86
commit 9f0809bb26
4 changed files with 45 additions and 0 deletions

View File

@@ -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();

View File

@@ -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
*/

View File

@@ -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);

View File

@@ -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