Skip to content
Snippets Groups Projects
Verified Commit cfdb244a authored by Dylan Van Assche's avatar Dylan Van Assche
Browse files

linux-postmarketos-qcom-sdm845: add sensor support

Add patches to support sensors which are sent to LKML
parent 91e328f6
No related branches found
No related tags found
No related merge requests found
Showing
with 744 additions and 4 deletions
From 7a95a0a73db77842b980751ebc2405ae9a0d92c5 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Mon, 1 May 2023 19:00:05 +0200
Subject: [PATCH 01/14] Revert "dts: arm64: qcom: sdm845-shift-axolotl: enable
SLPI"
This reverts commit 253e1ecd100d1980a60efd790e15d623fb3e9913.
---
arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 5 -----
1 file changed, 5 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
index cad23ecc7aae..79ab1a27cf46 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
@@ -516,11 +516,6 @@ &ipa {
status = "okay";
};
-&slpi_pas {
- status = "okay";
- firmware-name = "qcom/sdm845/axolotl/slpi.mbn";
-};
-
&mdss {
status = "okay";
};
--
2.40.0
From 149fd3c6e2840e577233411c748a6553a0a76b43 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Mon, 1 May 2023 19:00:40 +0200
Subject: [PATCH 02/14] Revert "dts: arm64: qcom: sdm845-oneplus: enable slpi"
This reverts commit 9a20640070d5b140c47c22cf963ad699185ff125.
---
arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 5 -----
1 file changed, 5 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
index 4c9728b85839..5e694c0684f6 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
@@ -476,11 +476,6 @@ &ipa {
status = "okay";
};
-&slpi_pas {
- status = "okay";
- firmware-name = "qcom/sdm845/oneplus6/slpi.mbn";
-};
-
&mdss {
status = "okay";
};
--
2.40.0
From a961cdf76e8d687fad7b957187521b5125f562b4 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Mon, 1 May 2023 19:01:05 +0200
Subject: [PATCH 03/14] Revert "dts: arm64: qcom: sdm845: add slpi remoteproc"
This reverts commit ea0b533b1597c77ea3a9a8116cebb44394bc82f0.
---
arch/arm64/boot/dts/qcom/sdm845.dtsi | 37 ----------------------------
1 file changed, 37 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 5a425480529b..ce4554302705 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -3331,43 +3331,6 @@ glink-edge {
};
};
- slpi_pas: remoteproc@5c00000 {
- compatible = "qcom,sdm845-slpi-pas";
- reg = <0 0x5c00000 0 0x4000>;
-
- interrupts-extended = <&intc GIC_SPI 494 IRQ_TYPE_EDGE_RISING>,
- <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
- <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
- <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
- <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
- interrupt-names = "wdog", "fatal", "ready",
- "handover", "stop-ack";
-
- clocks = <&rpmhcc RPMH_CXO_CLK>;
- clock-names = "xo";
-
- qcom,qmp = <&aoss_qmp>;
-
- power-domains = <&rpmhpd SDM845_CX>,
- <&rpmhpd SDM845_MX>;
- power-domain-names = "lcx", "lmx";
-
- memory-region = <&slpi_mem>;
-
- qcom,smem-states = <&slpi_smp2p_out 0>;
- qcom,smem-state-names = "stop";
-
- status = "disabled";
-
- glink-edge {
- interrupts = <GIC_SPI 170 IRQ_TYPE_EDGE_RISING>;
- label = "dsps";
- qcom,remote-pid = <3>;
- mboxes = <&apss_shared 24>;
- };
- };
-
-
gpucc: clock-controller@5090000 {
compatible = "qcom,sdm845-gpucc";
reg = <0 0x05090000 0 0x9000>;
--
2.40.0
From 4225b1ca756efd6f8781fb168a372e7d3a3c81ec Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Mon, 1 May 2023 19:01:17 +0200
Subject: [PATCH 04/14] Revert "remoteproc: qcom: pas: add sdm845 slpi
resource"
This reverts commit 5ba8c58383f898b69b328a82e8336bce6a8ad4f6.
---
drivers/remoteproc/qcom_q6v5_pas.c | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index 64ca8feae95c..0871108fb4dc 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -1028,22 +1028,6 @@ static const struct adsp_data slpi_resource_init = {
.ssctl_id = 0x16,
};
-static const struct adsp_data sdm845_slpi_resource = {
- .crash_reason_smem = 424,
- .firmware_name = "slpi.mdt",
- .pas_id = 12,
- .auto_boot = true,
- .proxy_pd_names = (char*[]){
- "lcx",
- "lmx",
- NULL
- },
- .load_state = "slpi",
- .ssr_name = "dsps",
- .sysmon_name = "slpi",
- .ssctl_id = 0x16,
-};
-
static const struct adsp_data sm8150_slpi_resource = {
.crash_reason_smem = 424,
.firmware_name = "slpi.mdt",
@@ -1217,7 +1201,6 @@ static const struct of_device_id adsp_of_match[] = {
{ .compatible = "qcom,sdm660-adsp-pas", .data = &adsp_resource_init},
{ .compatible = "qcom,sdm845-adsp-pas", .data = &sdm845_adsp_resource_init},
{ .compatible = "qcom,sdm845-cdsp-pas", .data = &sdm845_cdsp_resource_init},
- { .compatible = "qcom,sdm845-slpi-pas", .data = &sdm845_slpi_resource},
{ .compatible = "qcom,sdx55-mpss-pas", .data = &sdx55_mpss_resource},
{ .compatible = "qcom,sm6115-adsp-pas", .data = &adsp_resource_init},
{ .compatible = "qcom,sm6115-cdsp-pas", .data = &cdsp_resource_init},
--
2.40.0
From 94f5cf71ec049f61ba2a6dcd2ff68be35c910fca Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Sat, 25 Mar 2023 12:44:04 +0100
Subject: [PATCH 05/14] dt-bindings: remoteproc: qcom: adsp: add
qcom,sdm845-slpi-pas compatible
SLPI DSP remoteproc on DSP is defined by the 'qcom,sdm845-slpi-pas'
compatible in the qcom_q6v5_pas driver. Add this compatible to the
devicetree bindings.
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
.../bindings/remoteproc/qcom,adsp.yaml | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
index 643ee787a81f..eb4a440a661a 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
@@ -26,6 +26,7 @@ properties:
- qcom,sdm660-adsp-pas
- qcom,sdm845-adsp-pas
- qcom,sdm845-cdsp-pas
+ - qcom,sdm845-slpi-pas
reg:
maxItems: 1
@@ -63,6 +64,7 @@ allOf:
- qcom,msm8998-adsp-pas
- qcom,sdm845-adsp-pas
- qcom,sdm845-cdsp-pas
+ - qcom,sdm845-slpi-pas
then:
properties:
clocks:
@@ -104,6 +106,7 @@ allOf:
- qcom,msm8998-slpi-pas
- qcom,sdm845-adsp-pas
- qcom,sdm845-cdsp-pas
+ - qcom,sdm845-slpi-pas
then:
properties:
interrupts:
@@ -157,6 +160,22 @@ allOf:
required:
- px-supply
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sdm845-slpi-pas
+ then:
+ properties:
+ power-domains:
+ items:
+ - description: LCX power domain
+ - description: LMX power domain
+ power-domain-names:
+ items:
+ - const: lcx
+ - const: lmx
+
- if:
properties:
compatible:
--
2.40.0
From 6798a89c025bf74116909339200c09f3cdf6ce5b Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Tue, 28 Mar 2023 18:29:28 +0200
Subject: [PATCH 06/14] remoteproc: qcom: pas: refactor SLPI remoteproc init
SLPI remoteproc initialization is the same for SDM845, SM8150, SM8250,
SM8350 but is duplicated for each compatible. Refactor initialization
structs for these 4 compatibles as a single struct.
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
drivers/remoteproc/qcom_q6v5_pas.c | 48 +++++-------------------------
1 file changed, 8 insertions(+), 40 deletions(-)
diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index 0871108fb4dc..4bfd18e73a95 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -1014,7 +1014,7 @@ static const struct adsp_data sc8180x_mpss_resource = {
.ssctl_id = 0x12,
};
-static const struct adsp_data slpi_resource_init = {
+static const struct adsp_data msm8996_slpi_resource_init = {
.crash_reason_smem = 424,
.firmware_name = "slpi.mdt",
.pas_id = 12,
@@ -1028,7 +1028,7 @@ static const struct adsp_data slpi_resource_init = {
.ssctl_id = 0x16,
};
-static const struct adsp_data sm8150_slpi_resource = {
+static const struct adsp_data sdm845_slpi_resource_init = {
.crash_reason_smem = 424,
.firmware_name = "slpi.mdt",
.pas_id = 12,
@@ -1044,38 +1044,6 @@ static const struct adsp_data sm8150_slpi_resource = {
.ssctl_id = 0x16,
};
-static const struct adsp_data sm8250_slpi_resource = {
- .crash_reason_smem = 424,
- .firmware_name = "slpi.mdt",
- .pas_id = 12,
- .auto_boot = true,
- .proxy_pd_names = (char*[]){
- "lcx",
- "lmx",
- NULL
- },
- .load_state = "slpi",
- .ssr_name = "dsps",
- .sysmon_name = "slpi",
- .ssctl_id = 0x16,
-};
-
-static const struct adsp_data sm8350_slpi_resource = {
- .crash_reason_smem = 424,
- .firmware_name = "slpi.mdt",
- .pas_id = 12,
- .auto_boot = true,
- .proxy_pd_names = (char*[]){
- "lcx",
- "lmx",
- NULL
- },
- .load_state = "slpi",
- .ssr_name = "dsps",
- .sysmon_name = "slpi",
- .ssctl_id = 0x16,
-};
-
static const struct adsp_data wcss_resource_init = {
.crash_reason_smem = 421,
.firmware_name = "wcnss.mdt",
@@ -1184,9 +1152,9 @@ static const struct of_device_id adsp_of_match[] = {
{ .compatible = "qcom,msm8953-adsp-pil", .data = &msm8996_adsp_resource},
{ .compatible = "qcom,msm8974-adsp-pil", .data = &adsp_resource_init},
{ .compatible = "qcom,msm8996-adsp-pil", .data = &msm8996_adsp_resource},
- { .compatible = "qcom,msm8996-slpi-pil", .data = &slpi_resource_init},
+ { .compatible = "qcom,msm8996-slpi-pil", .data = &msm8996_slpi_resource_init},
{ .compatible = "qcom,msm8998-adsp-pas", .data = &msm8996_adsp_resource},
- { .compatible = "qcom,msm8998-slpi-pas", .data = &slpi_resource_init},
+ { .compatible = "qcom,msm8998-slpi-pas", .data = &msm8996_slpi_resource_init},
{ .compatible = "qcom,qcs404-adsp-pas", .data = &adsp_resource_init },
{ .compatible = "qcom,qcs404-cdsp-pas", .data = &cdsp_resource_init },
{ .compatible = "qcom,qcs404-wcss-pas", .data = &wcss_resource_init },
@@ -1211,17 +1179,17 @@ static const struct of_device_id adsp_of_match[] = {
{ .compatible = "qcom,sm8150-adsp-pas", .data = &sm8150_adsp_resource},
{ .compatible = "qcom,sm8150-cdsp-pas", .data = &sm8150_cdsp_resource},
{ .compatible = "qcom,sm8150-mpss-pas", .data = &mpss_resource_init},
- { .compatible = "qcom,sm8150-slpi-pas", .data = &sm8150_slpi_resource},
+ { .compatible = "qcom,sm8150-slpi-pas", .data = &sdm845_slpi_resource_init},
{ .compatible = "qcom,sm8250-adsp-pas", .data = &sm8250_adsp_resource},
{ .compatible = "qcom,sm8250-cdsp-pas", .data = &sm8250_cdsp_resource},
- { .compatible = "qcom,sm8250-slpi-pas", .data = &sm8250_slpi_resource},
+ { .compatible = "qcom,sm8250-slpi-pas", .data = &sdm845_slpi_resource_init},
{ .compatible = "qcom,sm8350-adsp-pas", .data = &sm8350_adsp_resource},
{ .compatible = "qcom,sm8350-cdsp-pas", .data = &sm8350_cdsp_resource},
- { .compatible = "qcom,sm8350-slpi-pas", .data = &sm8350_slpi_resource},
+ { .compatible = "qcom,sm8350-slpi-pas", .data = &sdm845_slpi_resource_init},
{ .compatible = "qcom,sm8350-mpss-pas", .data = &mpss_resource_init},
{ .compatible = "qcom,sm8450-adsp-pas", .data = &sm8350_adsp_resource},
{ .compatible = "qcom,sm8450-cdsp-pas", .data = &sm8350_cdsp_resource},
- { .compatible = "qcom,sm8450-slpi-pas", .data = &sm8350_slpi_resource},
+ { .compatible = "qcom,sm8450-slpi-pas", .data = &sdm845_slpi_resource_init},
{ .compatible = "qcom,sm8450-mpss-pas", .data = &sm8450_mpss_resource},
{ .compatible = "qcom,sm8550-adsp-pas", .data = &sm8550_adsp_resource},
{ .compatible = "qcom,sm8550-cdsp-pas", .data = &sm8550_cdsp_resource},
--
2.40.0
From 69af7353cd3eb1a1ce7a6b718efdfe347b71d003 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Tue, 28 Mar 2023 18:31:11 +0200
Subject: [PATCH 07/14] remoteproc: qcom: pas: add SDM845 SLPI compatible
Add a compatible for the SDM845 SLPI to the Qualcomm remoteproc q6v5_pas
driver. The SLPI is the same as in SM8150, SM8250, SM8350, and SM8450,
so use the same resource in the driver.
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
drivers/remoteproc/qcom_q6v5_pas.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index 4bfd18e73a95..198d3c22e0df 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -1169,6 +1169,7 @@ static const struct of_device_id adsp_of_match[] = {
{ .compatible = "qcom,sdm660-adsp-pas", .data = &adsp_resource_init},
{ .compatible = "qcom,sdm845-adsp-pas", .data = &sdm845_adsp_resource_init},
{ .compatible = "qcom,sdm845-cdsp-pas", .data = &sdm845_cdsp_resource_init},
+ { .compatible = "qcom,sdm845-slpi-pas", .data = &sdm845_slpi_resource_init},
{ .compatible = "qcom,sdx55-mpss-pas", .data = &sdx55_mpss_resource},
{ .compatible = "qcom,sm6115-adsp-pas", .data = &adsp_resource_init},
{ .compatible = "qcom,sm6115-cdsp-pas", .data = &cdsp_resource_init},
--
2.40.0
From a61ff251c3bf8105194d05511d214b6104542062 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Thu, 23 Mar 2023 20:30:32 +0100
Subject: [PATCH 08/14] misc: fastrpc: support complete DMA pool access to the
DSP
To support FastRPC Context Banks which aren't mapped via the SMMU,
make the whole reserved memory region available to the DSP to allow
access to coherent buffers.
This is performed by assigning the memory to the DSP via a hypervisor
call to set the correct permissions for the Virtual Machines on the DSP.
This is only necessary when a memory region is provided for SLPI DSPs
so guard this with a domain ID check.
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
---
drivers/misc/fastrpc.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
index a701132638cf..561465b9c061 100644
--- a/drivers/misc/fastrpc.c
+++ b/drivers/misc/fastrpc.c
@@ -2231,6 +2231,8 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev)
int i, err, domain_id = -1, vmcount;
const char *domain;
bool secure_dsp;
+ struct device_node *rmem_node;
+ struct reserved_mem *rmem;
unsigned int vmids[FASTRPC_MAX_VMIDS];
err = of_property_read_string(rdev->of_node, "label", &domain);
@@ -2274,6 +2276,20 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev)
}
}
+ rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
+ dev_info(rdev, "ASSIGNING MEMORY\n");
+ if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
+ rmem = of_reserved_mem_lookup(rmem_node);
+ if (!rmem)
+ return -EINVAL;
+
+ dev_info(rdev, "ASSIGNING MEMORY START\n");
+ qcom_scm_assign_mem(rmem->base, rmem->size, &data->perms,
+ data->vmperms, data->vmcount);
+
+ dev_info(rdev, "ASSIGNING MEMORY END\n");
+ }
+
secure_dsp = !(of_property_read_bool(rdev->of_node, "qcom,non-secure-domain"));
data->secure = secure_dsp;
--
2.40.0
From fcd250178f885678bb1ecc41be4b44e6f5a7f980 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Mon, 27 Mar 2023 20:02:23 +0200
Subject: [PATCH 09/14] misc: fastrpc: use coherent pool for untranslated
Compute Banks
Use fastrpc_remote_heap_alloc to allocate from the FastRPC device
instead of the Compute Bank when the session ID is 0. This ensures
that the allocation is inside the coherent DMA pool which is already
accessible to the DSP. This is necessary to support FastRPC devices
which do not have dedicated Compute Banks such as the SLPI on the SDM845.
The latter uses an allocated CMA region instead of FastRPC Compute Banks.
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
---
drivers/misc/fastrpc.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
index 561465b9c061..f0b7b5297985 100644
--- a/drivers/misc/fastrpc.c
+++ b/drivers/misc/fastrpc.c
@@ -939,7 +939,10 @@ static int fastrpc_get_args(u32 kernel, struct fastrpc_invoke_ctx *ctx)
ctx->msg_sz = pkt_size;
- err = fastrpc_buf_alloc(ctx->fl, dev, pkt_size, &ctx->buf);
+ if (ctx->fl->sctx->sid)
+ err = fastrpc_buf_alloc(ctx->fl, dev, pkt_size, &ctx->buf);
+ else
+ err = fastrpc_remote_heap_alloc(ctx->fl, dev, pkt_size, &ctx->buf);
if (err)
return err;
--
2.40.0
From 4a777566466a8c9c4ea80be3df414ae621112e88 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Fri, 24 Mar 2023 16:29:32 +0100
Subject: [PATCH 10/14] arm64: dts: qcom: sdm845: add SLPI remoteproc
Add the SLPI remoteproc to the SDM845 Qualcomm SoC which is responsible
for exposing the sensors connected to the SoC. The SLPI communicates
over GLink edge 'dsps' and is similar to other DSPs e.g. ADSP or CDSP.
This patch allows the SLPI to boot and expose itself over QRTR as
service 400.
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
---
arch/arm64/boot/dts/qcom/sdm845.dtsi | 36 ++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index ce4554302705..1d5d4b3e6df2 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -3345,6 +3345,42 @@ gpucc: clock-controller@5090000 {
"gcc_gpu_gpll0_div_clk_src";
};
+ slpi_pas: remoteproc@5c00000 {
+ compatible = "qcom,sdm845-slpi-pas";
+ reg = <0 0x5c00000 0 0x4000>;
+
+ interrupts-extended = <&intc GIC_SPI 494 IRQ_TYPE_EDGE_RISING>,
+ <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+ <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+ <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+ <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "wdog", "fatal", "ready",
+ "handover", "stop-ack";
+
+ clocks = <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "xo";
+
+ qcom,qmp = <&aoss_qmp>;
+
+ power-domains = <&rpmhpd SDM845_CX>,
+ <&rpmhpd SDM845_MX>;
+ power-domain-names = "lcx", "lmx";
+
+ memory-region = <&slpi_mem>;
+
+ qcom,smem-states = <&slpi_smp2p_out 0>;
+ qcom,smem-state-names = "stop";
+
+ status = "disabled";
+
+ glink-edge {
+ interrupts = <GIC_SPI 170 IRQ_TYPE_EDGE_RISING>;
+ label = "dsps";
+ qcom,remote-pid = <3>;
+ mboxes = <&apss_shared 24>;
+ };
+ };
+
stm@6002000 {
compatible = "arm,coresight-stm", "arm,primecell";
reg = <0 0x06002000 0 0x1000>,
--
2.40.0
From b36ac6672451c1cbb9c7a481d1973fa7846348fd Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Fri, 31 Mar 2023 15:25:30 +0200
Subject: [PATCH 11/14] dt-bindings: firmware: qcom: scm: add SSC_Q6 and
ADSP_Q6 VMIDs
SSC_Q6 and ADSP_Q6 are used in the FastRPC driver for accessing
the secure world.
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
include/dt-bindings/firmware/qcom,scm.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/dt-bindings/firmware/qcom,scm.h b/include/dt-bindings/firmware/qcom,scm.h
index 1a4e68fa0744..d1dc09e72923 100644
--- a/include/dt-bindings/firmware/qcom,scm.h
+++ b/include/dt-bindings/firmware/qcom,scm.h
@@ -8,6 +8,8 @@
#define _DT_BINDINGS_FIRMWARE_QCOM_SCM_H
#define QCOM_SCM_VMID_HLOS 0x3
+#define QCOM_SCM_VMID_SSC_Q6 0x5
+#define QCOM_SCM_VMID_ADSP_Q6 0x6
#define QCOM_SCM_VMID_MSS_MSA 0xF
#define QCOM_SCM_VMID_WLAN 0x18
#define QCOM_SCM_VMID_WLAN_CE 0x19
--
2.40.0
From 00d3d197e0a5634050897273048b6c57dcb86613 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Fri, 24 Mar 2023 18:24:18 +0100
Subject: [PATCH 12/14] arm64: dts: qcom: sdm845: add SLPI FastRPC support
Qualcomm SDM845 SoC features a SLPI DSP which uses FastRPC through
an allocated memory region to load files from the host filesystem
such as sensor configuration files.
Add a FastRPC node at /dev/fastrpc-sdsp and a DMA region, similar to
downstream, to allow userspace to communicate with the SLPI via the
FastRPC interface for initializing the sensors on the SLPI.
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
---
arch/arm64/boot/dts/qcom/sdm845.dtsi | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 1d5d4b3e6df2..871c35955a44 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -13,6 +13,7 @@
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/clock/qcom,videocc-sdm845.h>
#include <dt-bindings/dma/qcom-gpi.h>
+#include <dt-bindings/firmware/qcom,scm.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interconnect/qcom,osm-l3.h>
#include <dt-bindings/interconnect/qcom,sdm845.h>
@@ -875,6 +876,14 @@ cont_splash_mem: framebuffer@9d400000 {
reg = <0 0x9d400000 0 0x2400000>;
no-map;
};
+
+ fastrpc_mem: fastrpc {
+ compatible = "shared-dma-pool";
+ alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
+ alignment = <0x0 0x400000>;
+ size = <0x0 0x1000000>;
+ reusable;
+ };
};
adsp_pas: remoteproc-adsp {
@@ -3378,6 +3387,23 @@ glink-edge {
label = "dsps";
qcom,remote-pid = <3>;
mboxes = <&apss_shared 24>;
+
+ fastrpc {
+ compatible = "qcom,fastrpc";
+ qcom,glink-channels = "fastrpcglink-apps-dsp";
+ label = "sdsp";
+ qcom,non-secure-domain;
+ qcom,vmids = <QCOM_SCM_VMID_HLOS QCOM_SCM_VMID_MSS_MSA
+ QCOM_SCM_VMID_SSC_Q6 QCOM_SCM_VMID_ADSP_Q6>;
+ memory-region = <&fastrpc_mem>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ compute-cb@0 {
+ compatible = "qcom,fastrpc-compute-cb";
+ reg = <0>;
+ };
+ };
};
};
--
2.40.0
From 3d690101301d91facd03f7c8dac687ee78b8f698 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Fri, 24 Mar 2023 17:56:46 +0100
Subject: [PATCH 13/14] arm64: dts: qcom: sdm845-oneplus: enable SLPI
Enable the SLPI DSP on the Oneplus 6 phone with a Qualcomm SDM845 SoC.
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
index 5e694c0684f6..975c75983825 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
@@ -601,6 +601,11 @@ &qup_uart9_tx {
bias-disable;
};
+&slpi_pas {
+ firmware-name = "qcom/sdm845/oneplus6/slpi.mbn";
+ status = "okay";
+};
+
&sound {
compatible = "qcom,sdm845-sndcard";
pinctrl-0 = <&quat_mi2s_active &quat_mi2s_sd0_active &quat_mi2s_sd1_active>;
--
2.40.0
From 754d79b865691bf423e1e82cd6871332aa4a9e9d Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <me@dylanvanassche.be>
Date: Fri, 24 Mar 2023 17:58:20 +0100
Subject: [PATCH 14/14] arm64: dts: qcom: sdm845-shift-axolotl: enable SLPI
Enable the SLPI DSP on the SHIFTPHONES SHIFT6mq phone with a
Qualcomm SDM845 SoC.
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
index 79ab1a27cf46..d0f38c39f03a 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
@@ -705,6 +705,11 @@ &qupv3_id_1 {
status = "okay";
};
+&slpi_pas {
+ firmware-name = "qcom/sdm845/axolotl/slpi.mbn";
+ status = "okay";
+};
+
&sound {
model = "SHIFT6mq";
compatible = "qcom,sdm845-sndcard";
--
2.40.0
......@@ -5,8 +5,8 @@
_flavor="postmarketos-qcom-sdm845"
pkgname=linux-$_flavor
pkgver=6.2.0
pkgrel=1
pkgver=6.3.0
pkgrel=0
pkgdesc="Mainline Kernel fork for SDM845 devices"
arch="aarch64"
_carch="arm64"
......@@ -18,11 +18,25 @@ options="!strip !check !tracedeps
makedepends="bash bison findutils flex installkernel openssl-dev perl"
_config="config-$_flavor.$arch"
_tag="sdm845-6.2.0"
_tag="ca9dfa17e48d6c11d1417223a966fad8bc57d2c5"
# Source
source="
linux-$_tag.tar.gz::https://gitlab.com/sdm845-mainline/linux/-/archive/$_tag/linux-$_tag.tar.gz
0001-Revert-dts-arm64-qcom-sdm845-shift-axolotl-enable-SL.patch
0002-Revert-dts-arm64-qcom-sdm845-oneplus-enable-slpi.patch
0003-Revert-dts-arm64-qcom-sdm845-add-slpi-remoteproc.patch
0004-Revert-remoteproc-qcom-pas-add-sdm845-slpi-resource.patch
0005-dt-bindings-remoteproc-qcom-adsp-add-qcom-sdm845-slp.patch
0006-remoteproc-qcom-pas-refactor-SLPI-remoteproc-init.patch
0007-remoteproc-qcom-pas-add-SDM845-SLPI-compatible.patch
0008-misc-fastrpc-support-complete-DMA-pool-access-to-the.patch
0009-misc-fastrpc-use-coherent-pool-for-untranslated-Comp.patch
0010-arm64-dts-qcom-sdm845-add-SLPI-remoteproc.patch
0011-dt-bindings-firmware-qcom-scm-add-SSC_Q6-and-ADSP_Q6.patch
0012-arm64-dts-qcom-sdm845-add-SLPI-FastRPC-support.patch
0013-arm64-dts-qcom-sdm845-oneplus-enable-SLPI.patch
0014-arm64-dts-qcom-sdm845-shift-axolotl-enable-SLPI.patch
$_config
"
builddir="$srcdir/linux-$_tag"
......@@ -55,6 +69,20 @@ package() {
}
sha512sums="
ceb1d272fbdfd0b561adbba038731d392c57317d19bddd8e9654cf738bff95b976fbdddf3504fd71d0c55c3906552aabd506cbb81957113fcce561baf2181e64 linux-sdm845-6.2.0.tar.gz
66447ceec160c988b90d1cdb785169eeba7c27406b4555b266bde052decf228682d82f5884a7d06abc09600a6c79e7b8bdb39c47d750178eff38678a05a8ac1c linux-ca9dfa17e48d6c11d1417223a966fad8bc57d2c5.tar.gz
374666c0e8476cf7cf8a7b09b5cb06952c0c40af00368968755bcadd27499e9471a575c964b5e5bc074df8f4895957e7778437178f82c893f2adc89d73efde69 0001-Revert-dts-arm64-qcom-sdm845-shift-axolotl-enable-SL.patch
ca87ccd8eaac349a4233510a9853c70b5becd517efcf988c399731aad0e2d21e7b1ad0ab678104f7d4e86660ff4430cb44b4c5fcd6ed5b13d682ce09d09196a6 0002-Revert-dts-arm64-qcom-sdm845-oneplus-enable-slpi.patch
cf1ae5acc2f780d47c5d4823670441189a0dd6ff1164055cd7cb39b221cc7a33f03d68d82923f57f54dfc9cc82920cabc027d9d019a615f161541cf436d91770 0003-Revert-dts-arm64-qcom-sdm845-add-slpi-remoteproc.patch
085c4815b09568b4e01fdecadae2d2c23632acf7fc12b7bfe1eaa5444486df1a7838b119ff39f64dcb16711482ccc53fac13b267206644e503ebb72750000da3 0004-Revert-remoteproc-qcom-pas-add-sdm845-slpi-resource.patch
49c299903aead13f3c1c9f0442507c970722ee4d626c86bd286c329120537b8194b272406996c982271a7c73bc639c535dbe323bd1a56027481d198fcbd7d95c 0005-dt-bindings-remoteproc-qcom-adsp-add-qcom-sdm845-slp.patch
6ae3827f17e377225c58bcf15a0f4d36791fa3659a2084ed94023f408aa8e18c9125243cb4ec90d08805ff5a83d5a8f99ed63290cf30c413260399f1079c5f9f 0006-remoteproc-qcom-pas-refactor-SLPI-remoteproc-init.patch
9b2ff46a537bbc2246bcdc942e0bac4e6408fc390ee5076ef454e2ec76a299199a46b7cbf93720bc9f360977d3c623a727bf0e7434af7a5d49df50f1954526e4 0007-remoteproc-qcom-pas-add-SDM845-SLPI-compatible.patch
65c3b17014a7da9223f13c5ec3b007ae49f4464f4846ccc29f23abe48465ca09715b54a4107bb16c1e25418f0e24fffc59d14021b53c3e69b9a47f1398baf34a 0008-misc-fastrpc-support-complete-DMA-pool-access-to-the.patch
f355ebe5c6424f8d9e13a5b36b507776802da88a2d822bb3b523e0eea753621f991ad294beb7488dd3a08d142bd255dc5909bbe7d41ac4ab880ea53c2802d893 0009-misc-fastrpc-use-coherent-pool-for-untranslated-Comp.patch
d90f32764636353dfe3b4a38f1abe75835669c14b3d6938b1b8ef07b5dda51e2f38babd4c93c0de4c0f915a6651e5ab962b4f32c7dcd5547bae4833ff2021ab1 0010-arm64-dts-qcom-sdm845-add-SLPI-remoteproc.patch
a5425fe77f9e458007598220c20ee61ad6fe69a02e128464225d1efd838cf943551de051d1f04e1f5b6033e427ba518e19258cb49a96369dface2996c3fa7980 0011-dt-bindings-firmware-qcom-scm-add-SSC_Q6-and-ADSP_Q6.patch
349ea838313b4f4ca277a35b0429fdad7abf8005681415bb0a159816ce29e8acf4b0a65a188e98bca30025f0ab97e5692a1dd7e28ffd226c1882824dc92c5835 0012-arm64-dts-qcom-sdm845-add-SLPI-FastRPC-support.patch
eb969682b79ecab5a1aba0545eb5634d6996052bcce5fa02a4ec9054001f59347925ea1057a3de3186f631a55e064013ab797fc3e8b98d5d4d4db9b083271846 0013-arm64-dts-qcom-sdm845-oneplus-enable-SLPI.patch
e54251ad5efb9eb428b9ef1b737a249c3466b0da7186223d4ba1c3c19b003c06f2b96c7acf7f972aa06f9c80403e65a1f91d4a956cda90ad18712e4abef72f9c 0014-arm64-dts-qcom-sdm845-shift-axolotl-enable-SLPI.patch
49e8f5d0b891e1c7f9265802a15d69b449f2300c8163acdb4dbb9d87b865223126e2338000c749d6d063b0483d937957c2679bb7439683bee065889a6973f832 config-postmarketos-qcom-sdm845.aarch64
"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment