mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-31 14:13:39 +00:00

Add remote processor PAS loader for SM8750 MPSS (modem). Device looks fully compatible with SM8650, however it lacks fifth memory region for Qlink Logging, according to downstream sources. This is a bit tricky, because updated downstream sources for newer downstream release dropped that fifth memory region as well. There might be other differences against SM8650, because the modem currently crashes after starting. Acked-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20250221160300.160404-1-krzysztof.kozlowski@linaro.org Signed-off-by: Bjorn Andersson <andersson@kernel.org>
290 lines
7.0 KiB
YAML
290 lines
7.0 KiB
YAML
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/remoteproc/qcom,sm8550-pas.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Qualcomm SM8550 Peripheral Authentication Service
|
|
|
|
maintainers:
|
|
- Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|
|
|
description:
|
|
Qualcomm SM8550 SoC Peripheral Authentication Service loads and boots firmware
|
|
on the Qualcomm DSP Hexagon cores.
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- qcom,sdx75-mpss-pas
|
|
- qcom,sm8550-adsp-pas
|
|
- qcom,sm8550-cdsp-pas
|
|
- qcom,sm8550-mpss-pas
|
|
- qcom,sm8650-adsp-pas
|
|
- qcom,sm8650-cdsp-pas
|
|
- qcom,sm8650-mpss-pas
|
|
- qcom,sm8750-mpss-pas
|
|
- qcom,x1e80100-adsp-pas
|
|
- qcom,x1e80100-cdsp-pas
|
|
- items:
|
|
- const: qcom,sm8750-adsp-pas
|
|
- const: qcom,sm8550-adsp-pas
|
|
- items:
|
|
- const: qcom,sm8750-cdsp-pas
|
|
- const: qcom,sm8650-cdsp-pas
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
items:
|
|
- description: XO clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: xo
|
|
|
|
qcom,qmp:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description: Reference to the AOSS side-channel message RAM.
|
|
|
|
smd-edge: false
|
|
|
|
firmware-name:
|
|
$ref: /schemas/types.yaml#/definitions/string-array
|
|
items:
|
|
- description: Firmware name of the Hexagon core
|
|
- description: Firmware name of the Hexagon Devicetree
|
|
|
|
memory-region:
|
|
minItems: 2
|
|
items:
|
|
- 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
|
|
- reg
|
|
- memory-region
|
|
|
|
allOf:
|
|
- $ref: /schemas/remoteproc/qcom,pas-common.yaml#
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- qcom,sm8550-adsp-pas
|
|
- qcom,sm8550-cdsp-pas
|
|
- qcom,sm8650-adsp-pas
|
|
- qcom,x1e80100-adsp-pas
|
|
- qcom,x1e80100-cdsp-pas
|
|
then:
|
|
properties:
|
|
interrupts:
|
|
maxItems: 5
|
|
interrupt-names:
|
|
maxItems: 5
|
|
memory-region:
|
|
maxItems: 2
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,sm8750-adsp-pas
|
|
then:
|
|
properties:
|
|
interrupts:
|
|
maxItems: 6
|
|
interrupt-names:
|
|
maxItems: 6
|
|
memory-region:
|
|
maxItems: 2
|
|
- 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:
|
|
contains:
|
|
enum:
|
|
- qcom,sm8750-cdsp-pas
|
|
then:
|
|
properties:
|
|
interrupts:
|
|
maxItems: 6
|
|
interrupt-names:
|
|
maxItems: 6
|
|
memory-region:
|
|
minItems: 3
|
|
maxItems: 3
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- qcom,sm8550-mpss-pas
|
|
then:
|
|
properties:
|
|
interrupts:
|
|
minItems: 6
|
|
interrupt-names:
|
|
minItems: 6
|
|
memory-region:
|
|
minItems: 3
|
|
maxItems: 3
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- qcom,sdx75-mpss-pas
|
|
- qcom,sm8650-mpss-pas
|
|
then:
|
|
properties:
|
|
interrupts:
|
|
minItems: 6
|
|
interrupt-names:
|
|
minItems: 6
|
|
memory-region:
|
|
minItems: 5
|
|
maxItems: 5
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- qcom,sm8750-mpss-pas
|
|
then:
|
|
properties:
|
|
interrupts:
|
|
minItems: 6
|
|
interrupt-names:
|
|
minItems: 6
|
|
memory-region:
|
|
minItems: 4
|
|
maxItems: 4
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,sm8550-adsp-pas
|
|
- qcom,sm8650-adsp-pas
|
|
- qcom,sm8750-adsp-pas
|
|
- qcom,x1e80100-adsp-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:
|
|
enum:
|
|
- qcom,sdx75-mpss-pas
|
|
- qcom,sm8550-mpss-pas
|
|
- qcom,sm8650-mpss-pas
|
|
- qcom,sm8750-mpss-pas
|
|
then:
|
|
properties:
|
|
power-domains:
|
|
items:
|
|
- description: CX power domain
|
|
- description: MSS power domain
|
|
power-domain-names:
|
|
items:
|
|
- const: cx
|
|
- const: mss
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,sm8550-cdsp-pas
|
|
- qcom,sm8650-cdsp-pas
|
|
- qcom,x1e80100-cdsp-pas
|
|
then:
|
|
properties:
|
|
power-domains:
|
|
items:
|
|
- description: CX power domain
|
|
- description: MXC power domain
|
|
- description: NSP power domain
|
|
power-domain-names:
|
|
items:
|
|
- const: cx
|
|
- const: mxc
|
|
- const: nsp
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/qcom,rpmh.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
#include <dt-bindings/mailbox/qcom-ipcc.h>
|
|
|
|
remoteproc@30000000 {
|
|
compatible = "qcom,sm8550-adsp-pas";
|
|
reg = <0x030000000 0x100>;
|
|
|
|
clocks = <&rpmhcc RPMH_CXO_CLK>;
|
|
clock-names = "xo";
|
|
|
|
interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
|
|
<&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
|
|
<&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
|
|
<&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
|
|
<&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
|
|
interrupt-names = "wdog", "fatal", "ready",
|
|
"handover", "stop-ack";
|
|
|
|
memory-region = <&adsp_mem>, <&dtb_adsp_mem>;
|
|
|
|
firmware-name = "qcom/sm8550/adsp.mbn",
|
|
"qcom/sm8550/adsp_dtb.mbn";
|
|
|
|
power-domains = <&rpmhpd_sm8550_lcx>,
|
|
<&rpmhpd_sm8550_lmx>;
|
|
power-domain-names = "lcx", "lmx";
|
|
|
|
qcom,qmp = <&aoss_qmp>;
|
|
qcom,smem-states = <&smp2p_adsp_out 0>;
|
|
qcom,smem-state-names = "stop";
|
|
|
|
glink-edge {
|
|
interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
|
|
IPCC_MPROC_SIGNAL_GLINK_QMP
|
|
IRQ_TYPE_EDGE_RISING>;
|
|
mboxes = <&ipcc IPCC_CLIENT_LPASS IPCC_MPROC_SIGNAL_GLINK_QMP>;
|
|
|
|
label = "lpass";
|
|
qcom,remote-pid = <2>;
|
|
|
|
/* ... */
|
|
};
|
|
};
|