Message ID | 20240123-topic-sm8650-upstream-remoteproc-v7-3-61283f50162f@linaro.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | remoteproc: qcom: Introduce DSP support for SM8650 | expand |
On 1/23/2024 2:21 PM, Neil Armstrong wrote: > Add DSP Peripheral Authentication Service support for the SM8650 platform. > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> > --- > drivers/remoteproc/qcom_q6v5_pas.c | 50 ++++++++++++++++++++++++++++++++++++++ > 1 file changed, 50 insertions(+) > > diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c > index 09e8ad9f08c4..d0b1f0f38347 100644 > --- a/drivers/remoteproc/qcom_q6v5_pas.c > +++ b/drivers/remoteproc/qcom_q6v5_pas.c > @@ -1213,6 +1213,53 @@ static const struct adsp_data sc7280_wpss_resource = { > .ssctl_id = 0x19, > }; > > +static const struct adsp_data sm8650_cdsp_resource = { > + .crash_reason_smem = 601, > + .firmware_name = "cdsp.mdt", > + .dtb_firmware_name = "cdsp_dtb.mdt", > + .pas_id = 18, > + .dtb_pas_id = 0x25, > + .minidump_id = 7, > + .auto_boot = true, > + .proxy_pd_names = (char*[]){ > + "cx", > + "mxc", > + "nsp", > + NULL > + }, > + .load_state = "cdsp", > + .ssr_name = "cdsp", > + .sysmon_name = "cdsp", > + .ssctl_id = 0x17, > + .region_assign_idx = 2, > + .region_assign_count = 1, > + .region_assign_shared = true, > + .region_assign_vmid = QCOM_SCM_VMID_CDSP, > +}; > + > +static const struct adsp_data sm8650_mpss_resource = { > + .crash_reason_smem = 421, > + .firmware_name = "modem.mdt", > + .dtb_firmware_name = "modem_dtb.mdt", > + .pas_id = 4, > + .dtb_pas_id = 0x26, > + .minidump_id = 3, > + .auto_boot = false, > + .decrypt_shutdown = true, > + .proxy_pd_names = (char*[]){ > + "cx", > + "mss", > + NULL > + }, > + .load_state = "modem", > + .ssr_name = "mpss", > + .sysmon_name = "modem", > + .ssctl_id = 0x12, > + .region_assign_idx = 2, > + .region_assign_count = 3, I see this has changed from 2 to 3 after qlink logging addition; > + .region_assign_vmid = QCOM_SCM_VMID_MSS_MSA, > +}; > + > static const struct of_device_id adsp_of_match[] = { > { .compatible = "qcom,msm8226-adsp-pil", .data = &adsp_resource_init}, > { .compatible = "qcom,msm8953-adsp-pil", .data = &msm8996_adsp_resource}, > @@ -1268,6 +1315,9 @@ static const struct of_device_id adsp_of_match[] = { > { .compatible = "qcom,sm8550-adsp-pas", .data = &sm8550_adsp_resource}, > { .compatible = "qcom,sm8550-cdsp-pas", .data = &sm8550_cdsp_resource}, > { .compatible = "qcom,sm8550-mpss-pas", .data = &sm8550_mpss_resource}, > + { .compatible = "qcom,sm8650-adsp-pas", .data = &sm8550_adsp_resource}, Same as sm8550; > + { .compatible = "qcom,sm8650-cdsp-pas", .data = &sm8650_cdsp_resource}, > + { .compatible = "qcom,sm8650-mpss-pas", .data = &sm8650_mpss_resource}, LGTM, Acked-by: Mukesh Ojha <quic_mojha@quicinc.com> -Mukesh > { }, > }; > MODULE_DEVICE_TABLE(of, adsp_of_match); >
diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c index 09e8ad9f08c4..d0b1f0f38347 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -1213,6 +1213,53 @@ static const struct adsp_data sc7280_wpss_resource = { .ssctl_id = 0x19, }; +static const struct adsp_data sm8650_cdsp_resource = { + .crash_reason_smem = 601, + .firmware_name = "cdsp.mdt", + .dtb_firmware_name = "cdsp_dtb.mdt", + .pas_id = 18, + .dtb_pas_id = 0x25, + .minidump_id = 7, + .auto_boot = true, + .proxy_pd_names = (char*[]){ + "cx", + "mxc", + "nsp", + NULL + }, + .load_state = "cdsp", + .ssr_name = "cdsp", + .sysmon_name = "cdsp", + .ssctl_id = 0x17, + .region_assign_idx = 2, + .region_assign_count = 1, + .region_assign_shared = true, + .region_assign_vmid = QCOM_SCM_VMID_CDSP, +}; + +static const struct adsp_data sm8650_mpss_resource = { + .crash_reason_smem = 421, + .firmware_name = "modem.mdt", + .dtb_firmware_name = "modem_dtb.mdt", + .pas_id = 4, + .dtb_pas_id = 0x26, + .minidump_id = 3, + .auto_boot = false, + .decrypt_shutdown = true, + .proxy_pd_names = (char*[]){ + "cx", + "mss", + NULL + }, + .load_state = "modem", + .ssr_name = "mpss", + .sysmon_name = "modem", + .ssctl_id = 0x12, + .region_assign_idx = 2, + .region_assign_count = 3, + .region_assign_vmid = QCOM_SCM_VMID_MSS_MSA, +}; + static const struct of_device_id adsp_of_match[] = { { .compatible = "qcom,msm8226-adsp-pil", .data = &adsp_resource_init}, { .compatible = "qcom,msm8953-adsp-pil", .data = &msm8996_adsp_resource}, @@ -1268,6 +1315,9 @@ static const struct of_device_id adsp_of_match[] = { { .compatible = "qcom,sm8550-adsp-pas", .data = &sm8550_adsp_resource}, { .compatible = "qcom,sm8550-cdsp-pas", .data = &sm8550_cdsp_resource}, { .compatible = "qcom,sm8550-mpss-pas", .data = &sm8550_mpss_resource}, + { .compatible = "qcom,sm8650-adsp-pas", .data = &sm8550_adsp_resource}, + { .compatible = "qcom,sm8650-cdsp-pas", .data = &sm8650_cdsp_resource}, + { .compatible = "qcom,sm8650-mpss-pas", .data = &sm8650_mpss_resource}, { }, }; MODULE_DEVICE_TABLE(of, adsp_of_match);