2024-01-23 08:51:33

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH v7 0/4] remoteproc: qcom: Introduce DSP support for SM8650

Add the bindings and driver changes for DSP support on the
SM8650 platform in order to enable the aDSP, cDSP and MPSS
subsystems to boot.

Compared to SM8550, where SM8650 uses the same dual firmware files,
(dtb file and main firmware) the memory zones requirement has changed:
- cDSP: now requires 2 memory zones to be configured as shared
between the cDSP and the HLOS subsystem
- MPSS: In addition to the memory zone required for the SM8550
MPSS, two more are required to be configured for MPSS
usage only.

In order to handle this and avoid code duplication, the region_assign_*
code patch has been made more generic and is able handle multiple
DSP-only memory zones (for MPSS) or DSP-HLOS shared memory zones (cDSP)
in the same region_assign functions.

Dependencies: None

For convenience, a regularly refreshed linux-next based git tree containing
all the SM8650 related work is available at:
https://git.codelinaro.org/neil.armstrong/linux/-/tree/topic/sm8650/upstream/integ

Signed-off-by: Neil Armstrong <[email protected]>
---
Changes in v7:
- Rebased on v6.8-rc1
- Add another memory region for MPSS, in bindings, code and DT
- Kepts Krzysztof's review on bindings after agreement on irc
- Kept drivers patches reviews because it's only a miminal change (value 2 -> 3)
- Link to v6: https://lore.kernel.org/r/20231218-topic-sm8650-upstream-remoteproc-v6-0-3d16b37f154b@linaro.org

Changes in v6:
- Rebased on next-20231218, last patch did not apply anymore
- Link to v5: https://lore.kernel.org/r/20231212-topic-sm8650-upstream-remoteproc-v5-0-e749a1a48268@linaro.org

Changes in v5:
- Rename _perms to _owners per Konrad suggestion
- Link to v4: https://lore.kernel.org/r/20231208-topic-sm8650-upstream-remoteproc-v4-0-a96c3e5f0913@linaro.org

Changes in v4:
- Collected review from Mukesh Ojha
- Fixed adsp_unassign_memory_region() as suggested by Mukesh Ojha
- Link to v3: https://lore.kernel.org/r/20231106-topic-sm8650-upstream-remoteproc-v3-0-dbd4cabaeb47@linaro.org

Changes in v3:
- Collected bindings review tags
- Small fixes suggested by Mukesh Ojha
- Link to v2: https://lore.kernel.org/r/20231030-topic-sm8650-upstream-remoteproc-v2-0-609ee572e0a2@linaro.org

Changes in v2:
- Fixed sm8650 entries in allOf:if:then to match Krzysztof's comments
- Collected reviewed-by on patch 3
- Link to v1: https://lore.kernel.org/r/20231025-topic-sm8650-upstream-remoteproc-v1-0-a8d20e4ce18c@linaro.org

---
Neil Armstrong (4):
dt-bindings: remoteproc: qcom,sm8550-pas: document the SM8650 PAS
remoteproc: qcom: pas: make region assign more generic
remoteproc: qcom: pas: Add SM8650 remoteproc support
arm64: dts: qcom: sm8650: add missing qlink_logging reserved memory for mpss

.../bindings/remoteproc/qcom,sm8550-pas.yaml | 45 ++++++-
arch/arm64/boot/dts/qcom/sm8650.dtsi | 8 +-
drivers/remoteproc/qcom_q6v5_pas.c | 150 ++++++++++++++++-----
3 files changed, 167 insertions(+), 36 deletions(-)
---
base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d
change-id: 20231016-topic-sm8650-upstream-remoteproc-66a87eeb6fee

Best regards,
--
Neil Armstrong <[email protected]>



2024-01-23 08:51:35

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH v7 1/4] dt-bindings: remoteproc: qcom,sm8550-pas: document the SM8650 PAS

Document the DSP Peripheral Authentication Service on the SM8650 Platform.

Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Neil Armstrong <[email protected]>
---
.../bindings/remoteproc/qcom,sm8550-pas.yaml | 45 +++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml
index 58120829fb06..5f63b6b9a8f5 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml
@@ -19,6 +19,9 @@ properties:
- qcom,sm8550-adsp-pas
- qcom,sm8550-cdsp-pas
- qcom,sm8550-mpss-pas
+ - qcom,sm8650-adsp-pas
+ - qcom,sm8650-cdsp-pas
+ - qcom,sm8650-mpss-pas

reg:
maxItems: 1
@@ -49,6 +52,8 @@ properties:
- description: Memory region for main Firmware authentication
- description: Memory region for Devicetree Firmware authentication
- description: DSM Memory region
+ - description: DSM Memory region 2
+ - description: Memory region for Qlink Logging

required:
- compatible
@@ -63,6 +68,7 @@ allOf:
enum:
- qcom,sm8550-adsp-pas
- qcom,sm8550-cdsp-pas
+ - qcom,sm8650-adsp-pas
then:
properties:
interrupts:
@@ -71,7 +77,26 @@ allOf:
maxItems: 5
memory-region:
maxItems: 2
- else:
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sm8650-cdsp-pas
+ then:
+ properties:
+ interrupts:
+ maxItems: 5
+ interrupt-names:
+ maxItems: 5
+ memory-region:
+ minItems: 3
+ maxItems: 3
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sm8550-mpss-pas
+ then:
properties:
interrupts:
minItems: 6
@@ -79,12 +104,28 @@ allOf:
minItems: 6
memory-region:
minItems: 3
+ maxItems: 3
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sm8650-mpss-pas
+ then:
+ properties:
+ interrupts:
+ minItems: 6
+ interrupt-names:
+ minItems: 6
+ memory-region:
+ minItems: 5
+ maxItems: 5

- if:
properties:
compatible:
enum:
- qcom,sm8550-adsp-pas
+ - qcom,sm8650-adsp-pas
then:
properties:
power-domains:
@@ -101,6 +142,7 @@ allOf:
compatible:
enum:
- qcom,sm8550-mpss-pas
+ - qcom,sm8650-mpss-pas
then:
properties:
power-domains:
@@ -116,6 +158,7 @@ allOf:
compatible:
enum:
- qcom,sm8550-cdsp-pas
+ - qcom,sm8650-cdsp-pas
then:
properties:
power-domains:

--
2.34.1


2024-01-23 08:52:13

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH v7 3/4] remoteproc: qcom: pas: Add SM8650 remoteproc support

Add DSP Peripheral Authentication Service support for the SM8650 platform.

Reviewed-by: Dmitry Baryshkov <[email protected]>
Signed-off-by: Neil Armstrong <[email protected]>
---
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,
+ .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);

--
2.34.1


2024-01-23 08:53:18

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH v7 4/4] arm64: dts: qcom: sm8650: add missing qlink_logging reserved memory for mpss

The qlink_logging memory region is also used by the modem firmware,
add it to the reserved memories and add it to the MPSS memory regions.

Signed-off-by: Neil Armstrong <[email protected]>
---
arch/arm64/boot/dts/qcom/sm8650.dtsi | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index 2df77123a8c7..7a1cbc823306 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -525,6 +525,11 @@ qdss_mem: qdss@82800000 {
no-map;
};

+ qlink_logging_mem: qlink-logging@84800000 {
+ reg = <0 0x84800000 0 0x200000>;
+ no-map;
+ };
+
mpss_dsm_mem: mpss-dsm@86b00000 {
reg = <0 0x86b00000 0 0x4900000>;
no-map;
@@ -2627,7 +2632,8 @@ remoteproc_mpss: remoteproc@4080000 {
"mss";

memory-region = <&mpss_mem>, <&q6_mpss_dtb_mem>,
- <&mpss_dsm_mem>, <&mpss_dsm_mem_2>;
+ <&mpss_dsm_mem>, <&mpss_dsm_mem_2>,
+ <&qlink_logging_mem>;

qcom,qmp = <&aoss_qmp>;


--
2.34.1


2024-01-23 08:54:13

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH v7 2/4] remoteproc: qcom: pas: make region assign more generic

The current memory region assign only supports a single
memory region.

But new platforms introduces more regions to make the
memory requirements more flexible for various use cases.
Those new platforms also shares the memory region between the
DSP and HLOS.

To handle this, make the region assign more generic in order
to support more than a single memory region and also permit
setting the regions permissions as shared.

Reviewed-by: Mukesh Ojha <[email protected]>
Signed-off-by: Neil Armstrong <[email protected]>
---
drivers/remoteproc/qcom_q6v5_pas.c | 100 ++++++++++++++++++++++++-------------
1 file changed, 66 insertions(+), 34 deletions(-)

diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index a9dd58608052..09e8ad9f08c4 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -33,6 +33,8 @@

#define ADSP_DECRYPT_SHUTDOWN_DELAY_MS 100

+#define MAX_ASSIGN_COUNT 3
+
struct adsp_data {
int crash_reason_smem;
const char *firmware_name;
@@ -51,6 +53,9 @@ struct adsp_data {
int ssctl_id;

int region_assign_idx;
+ int region_assign_count;
+ bool region_assign_shared;
+ int region_assign_vmid;
};

struct qcom_adsp {
@@ -87,15 +92,18 @@ struct qcom_adsp {
phys_addr_t dtb_mem_phys;
phys_addr_t mem_reloc;
phys_addr_t dtb_mem_reloc;
- phys_addr_t region_assign_phys;
+ phys_addr_t region_assign_phys[MAX_ASSIGN_COUNT];
void *mem_region;
void *dtb_mem_region;
size_t mem_size;
size_t dtb_mem_size;
- size_t region_assign_size;
+ size_t region_assign_size[MAX_ASSIGN_COUNT];

int region_assign_idx;
- u64 region_assign_perms;
+ int region_assign_count;
+ bool region_assign_shared;
+ int region_assign_vmid;
+ u64 region_assign_owners[MAX_ASSIGN_COUNT];

struct qcom_rproc_glink glink_subdev;
struct qcom_rproc_subdev smd_subdev;
@@ -590,37 +598,53 @@ static int adsp_alloc_memory_region(struct qcom_adsp *adsp)

static int adsp_assign_memory_region(struct qcom_adsp *adsp)
{
- struct reserved_mem *rmem = NULL;
- struct qcom_scm_vmperm perm;
+ struct qcom_scm_vmperm perm[MAX_ASSIGN_COUNT];
struct device_node *node;
+ unsigned int perm_size;
+ int offset;
int ret;

if (!adsp->region_assign_idx)
return 0;

- node = of_parse_phandle(adsp->dev->of_node, "memory-region", adsp->region_assign_idx);
- if (node)
- rmem = of_reserved_mem_lookup(node);
- of_node_put(node);
- if (!rmem) {
- dev_err(adsp->dev, "unable to resolve shareable memory-region\n");
- return -EINVAL;
- }
+ for (offset = 0; offset < adsp->region_assign_count; ++offset) {
+ struct reserved_mem *rmem = NULL;
+
+ node = of_parse_phandle(adsp->dev->of_node, "memory-region",
+ adsp->region_assign_idx + offset);
+ if (node)
+ rmem = of_reserved_mem_lookup(node);
+ of_node_put(node);
+ if (!rmem) {
+ dev_err(adsp->dev, "unable to resolve shareable memory-region index %d\n",
+ offset);
+ return -EINVAL;
+ }

- perm.vmid = QCOM_SCM_VMID_MSS_MSA;
- perm.perm = QCOM_SCM_PERM_RW;
+ if (adsp->region_assign_shared) {
+ perm[0].vmid = QCOM_SCM_VMID_HLOS;
+ perm[0].perm = QCOM_SCM_PERM_RW;
+ perm[1].vmid = adsp->region_assign_vmid;
+ perm[1].perm = QCOM_SCM_PERM_RW;
+ perm_size = 2;
+ } else {
+ perm[0].vmid = adsp->region_assign_vmid;
+ perm[0].perm = QCOM_SCM_PERM_RW;
+ perm_size = 1;
+ }

- adsp->region_assign_phys = rmem->base;
- adsp->region_assign_size = rmem->size;
- adsp->region_assign_perms = BIT(QCOM_SCM_VMID_HLOS);
+ adsp->region_assign_phys[offset] = rmem->base;
+ adsp->region_assign_size[offset] = rmem->size;
+ adsp->region_assign_owners[offset] = BIT(QCOM_SCM_VMID_HLOS);

- ret = qcom_scm_assign_mem(adsp->region_assign_phys,
- adsp->region_assign_size,
- &adsp->region_assign_perms,
- &perm, 1);
- if (ret < 0) {
- dev_err(adsp->dev, "assign memory failed\n");
- return ret;
+ ret = qcom_scm_assign_mem(adsp->region_assign_phys[offset],
+ adsp->region_assign_size[offset],
+ &adsp->region_assign_owners[offset],
+ perm, perm_size);
+ if (ret < 0) {
+ dev_err(adsp->dev, "assign memory %d failed\n", offset);
+ return ret;
+ }
}

return 0;
@@ -629,20 +653,23 @@ static int adsp_assign_memory_region(struct qcom_adsp *adsp)
static void adsp_unassign_memory_region(struct qcom_adsp *adsp)
{
struct qcom_scm_vmperm perm;
+ int offset;
int ret;

- if (!adsp->region_assign_idx)
+ if (!adsp->region_assign_idx || adsp->region_assign_shared)
return;

- perm.vmid = QCOM_SCM_VMID_HLOS;
- perm.perm = QCOM_SCM_PERM_RW;
+ for (offset = 0; offset < adsp->region_assign_count; ++offset) {
+ perm.vmid = QCOM_SCM_VMID_HLOS;
+ perm.perm = QCOM_SCM_PERM_RW;

- ret = qcom_scm_assign_mem(adsp->region_assign_phys,
- adsp->region_assign_size,
- &adsp->region_assign_perms,
- &perm, 1);
- if (ret < 0)
- dev_err(adsp->dev, "unassign memory failed\n");
+ ret = qcom_scm_assign_mem(adsp->region_assign_phys[offset],
+ adsp->region_assign_size[offset],
+ &adsp->region_assign_owners[offset],
+ &perm, 1);
+ if (ret < 0)
+ dev_err(adsp->dev, "unassign memory %d failed\n", offset);
+ }
}

static int adsp_probe(struct platform_device *pdev)
@@ -696,6 +723,9 @@ static int adsp_probe(struct platform_device *pdev)
adsp->info_name = desc->sysmon_name;
adsp->decrypt_shutdown = desc->decrypt_shutdown;
adsp->region_assign_idx = desc->region_assign_idx;
+ adsp->region_assign_count = min_t(int, MAX_ASSIGN_COUNT, desc->region_assign_count);
+ adsp->region_assign_vmid = desc->region_assign_vmid;
+ adsp->region_assign_shared = desc->region_assign_shared;
if (dtb_fw_name) {
adsp->dtb_firmware_name = dtb_fw_name;
adsp->dtb_pas_id = desc->dtb_pas_id;
@@ -1163,6 +1193,8 @@ static const struct adsp_data sm8550_mpss_resource = {
.sysmon_name = "modem",
.ssctl_id = 0x12,
.region_assign_idx = 2,
+ .region_assign_count = 1,
+ .region_assign_vmid = QCOM_SCM_VMID_MSS_MSA,
};

static const struct adsp_data sc7280_wpss_resource = {

--
2.34.1


2024-01-23 09:58:45

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH v7 4/4] arm64: dts: qcom: sm8650: add missing qlink_logging reserved memory for mpss



On 1/23/2024 2:21 PM, Neil Armstrong wrote:
> The qlink_logging memory region is also used by the modem firmware,
> add it to the reserved memories and add it to the MPSS memory regions.
>
> Signed-off-by: Neil Armstrong <[email protected]>

LGTM,

Reviewed-by: Mukesh Ojha <[email protected]>

-Mukesh

> ---
> arch/arm64/boot/dts/qcom/sm8650.dtsi | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
> index 2df77123a8c7..7a1cbc823306 100644
> --- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
> @@ -525,6 +525,11 @@ qdss_mem: qdss@82800000 {
> no-map;
> };
>
> + qlink_logging_mem: qlink-logging@84800000 {
> + reg = <0 0x84800000 0 0x200000>;
> + no-map;
> + };
> +
> mpss_dsm_mem: mpss-dsm@86b00000 {
> reg = <0 0x86b00000 0 0x4900000>;
> no-map;
> @@ -2627,7 +2632,8 @@ remoteproc_mpss: remoteproc@4080000 {
> "mss";
>
> memory-region = <&mpss_mem>, <&q6_mpss_dtb_mem>,
> - <&mpss_dsm_mem>, <&mpss_dsm_mem_2>;
> + <&mpss_dsm_mem>, <&mpss_dsm_mem_2>,
> + <&qlink_logging_mem>;
>
> qcom,qmp = <&aoss_qmp>;
>
>

2024-01-23 10:05:18

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH v7 3/4] remoteproc: qcom: pas: Add SM8650 remoteproc support



On 1/23/2024 2:21 PM, Neil Armstrong wrote:
> Add DSP Peripheral Authentication Service support for the SM8650 platform.
>
> Reviewed-by: Dmitry Baryshkov <[email protected]>
> Signed-off-by: Neil Armstrong <[email protected]>
> ---
> 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 <[email protected]>

-Mukesh

> { },
> };
> MODULE_DEVICE_TABLE(of, adsp_of_match);
>

2024-02-07 04:52:06

by Bjorn Andersson

[permalink] [raw]
Subject: Re: (subset) [PATCH v7 0/4] remoteproc: qcom: Introduce DSP support for SM8650


On Tue, 23 Jan 2024 09:51:01 +0100, Neil Armstrong wrote:
> Add the bindings and driver changes for DSP support on the
> SM8650 platform in order to enable the aDSP, cDSP and MPSS
> subsystems to boot.
>
> Compared to SM8550, where SM8650 uses the same dual firmware files,
> (dtb file and main firmware) the memory zones requirement has changed:
> - cDSP: now requires 2 memory zones to be configured as shared
> between the cDSP and the HLOS subsystem
> - MPSS: In addition to the memory zone required for the SM8550
> MPSS, two more are required to be configured for MPSS
> usage only.
>
> [...]

Applied, thanks!

[4/4] arm64: dts: qcom: sm8650: add missing qlink_logging reserved memory for mpss
commit: af53ecef19ffab5eed346032a0e79110cb82cc1d

Best regards,
--
Bjorn Andersson <[email protected]>