On 5/14/2026 12:48 AM, Dmitry Baryshkov wrote:
On Thu, May 14, 2026 at 12:17:31AM +0530, Komal Bajaj wrote:
From: Bibek Kumar Patro <[email protected]>
Add the CDSP, LPAICP and MPSS Peripheral Authentication Service support
for the Qualcomm Shikra SoC.
Signed-off-by: Bibek Kumar Patro <[email protected]>
Signed-off-by: Komal Bajaj <[email protected]>
---
drivers/remoteproc/qcom_q6v5_pas.c | 51 ++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/drivers/remoteproc/qcom_q6v5_pas.c
b/drivers/remoteproc/qcom_q6v5_pas.c
index da27d1d3c9da..4d43201b9ada 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -1457,6 +1457,54 @@ static const struct qcom_pas_data sc7280_wpss_resource =
{
.ssctl_id = 0x19,
};
+static const struct qcom_pas_data shikra_cdsp_resource = {
+ .crash_reason_smem = 601,
+ .firmware_name = "cdsp.mbn",
+ .pas_id = 18,
+ .minidump_id = 7,
+ .auto_boot = false,
Why? It should be true for CDSP.
Missed this, will mark it as true in next series.
+ .proxy_pd_names = (char *[]){
+ "cx",
+ NULL
+ },
Hmm, SM6115 didn't have proxy votes here. Is it requried?
If we refer to sm6115 remoteproc-specific DT entries, there is a
power-domain entry (CX only). So we would need to fix this by adding a
proxy_pd entry for the sm6115 CDSP PAS resource. Would you prefer this
to be done as part of this series?
In newer Qualcomm targets, the corresponding CDSP PAS entries include a
proxy_pd vote for the power-domain in DT [1][2].
Therefore, it should be safe to add proxy votes in Shikra’s CDSP PAS
data as well.
[1]:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm64/boot/dts/qcom/sm8550.dtsi?h=next-20260518#n6002
[2]:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/remoteproc/qcom_q6v5_pas.c?h=next-20260518#n1406
+ .load_state = "cdsp",
+ .ssr_name = "cdsp",
+ .sysmon_name = "cdsp",
+ .ssctl_id = 0x17,
+ .smem_host_id = 5,
+ .region_assign_vmid = QCOM_SCM_VMID_CDSP,
This makes no sense without region_assign_count
Ack, Would address this in next revision. it would be NOP in this case
without region_assign_count and region_assign_idx.
+};
+
+static const struct qcom_pas_data shikra_lpaicp_resource = {
+ .crash_reason_smem = 682,
+ .firmware_name = "lpaicp.mbn",
+ .dtb_firmware_name = "lpaicp_dtb.mbn",
+ .pas_id = 0x56,
+ .dtb_pas_id = 0x57,
+ .minidump_id = 0,
+ .auto_boot = true,
+ .ssr_name = "lpaicp",
+ .sysmon_name = "lpaicp",
+};
+
+static const struct qcom_pas_data shikra_mpss_resource = {
+ .crash_reason_smem = 421,
+ .firmware_name = "qdsp6sw.mbn",
Why is it not modem.mbn?
Previously, for testing, we used pil-squasher to combine the split
images into a single mbn, typically named modem.mbn.
However, in official Qualcomm releases, the modem firmware is provided
as qdsp6sw.mbn. Since Shikra now has proper released binaries, switch to
using qdsp6sw.mbn as the firmware name.
+ .pas_id = 4,
+ .minidump_id = 3,
+ .auto_boot = false,
+ .decrypt_shutdown = true,
+ .proxy_pd_names = (char *[]){
+ "cx",
+ NULL
+ },
+ .load_state = "modem",
+ .ssr_name = "mpss",
+ .sysmon_name = "modem",
+ .ssctl_id = 0x12,
+ .region_assign_vmid = QCOM_SCM_VMID_MSS_MSA,
Again, this doesn't make sense without region_assign_count. At which
Ack, I'll address it in next revision.
point you can use sc8180x_mpss_resource instead.
minidump_id is required for Shikra. (decrypt_shutdown is not applicable
and will be removed in the next revision.)
For minidump_id, we still need to use shikra_mpss_resource instead of
sc8180x_mpss_resource. <?>
+};
+
static const struct qcom_pas_data sm8650_cdsp_resource = {
.crash_reason_smem = 601,
.firmware_name = "cdsp.mdt",
@@ -1571,6 +1619,9 @@ static const struct of_device_id qcom_pas_of_match[] = {
{ .compatible = "qcom,sdm845-slpi-pas", .data =
&sdm845_slpi_resource_init },
{ .compatible = "qcom,sdx55-mpss-pas", .data = &sdx55_mpss_resource },
{ .compatible = "qcom,sdx75-mpss-pas", .data = &sm8650_mpss_resource },
+ { .compatible = "qcom,shikra-cdsp-pas", .data = &shikra_cdsp_resource },
+ { .compatible = "qcom,shikra-lpaicp-pas", .data =
&shikra_lpaicp_resource },
+ { .compatible = "qcom,shikra-mpss-pas", .data = &shikra_mpss_resource },
{ .compatible = "qcom,sm6115-adsp-pas", .data = &adsp_resource_init },
{ .compatible = "qcom,sm6115-cdsp-pas", .data = &cdsp_resource_init },
{ .compatible = "qcom,sm6115-mpss-pas", .data = &sc8180x_mpss_resource
},
--
2.34.1