diff mbox series

[V3,1/2] dt-bindings: mailbox: Document qcom,tmel-qmp

Message ID 20250228045356.3527662-2-quic_srichara@quicinc.com
State New
Headers show
Series mailbox: tmel-qmp: Introduce QCOM TMEL QMP mailbox driver | expand

Commit Message

Sricharan R Feb. 28, 2025, 4:53 a.m. UTC
From: Sricharan Ramabadhran <quic_srichara@quicinc.com>

TMEL SS provides different kinds of services like secureboot, remote image
authentication, key management, crypto, OEM provisioning etc. This patch
adds support for remote image authentication. Support for rest of the
services can be added.

The QMP mailbox is the primary means of communication between TMEL SS and
other subsystem on the SoC. A dedicated pair of inbound and outbound
mailboxes is implemented for each subsystem/external execution environment
which needs to communicate with TMEL for security services. The inbound
mailboxes are used to send IPC requests to TMEL, which are then processed
by TMEL firmware and accordingly the responses are sent back via outbound
mailboxes.

It is an IPC transport protocol which is light weight and supports a subset
of API's. It handles link initialization, negotiation, establishment and
communication across client(CPU/BTSS/AUDIOSS) and server(TMEL SS).

   -----------------------------------------------       ---------------------------------------------------
  |                                              |       |                                                 |
  |                 SOC  CLIENT                  | SOC   |                TMEL  SS                         |
  |                                              | AHB   |                                                 |
  |     ----------    ---------   ---------      |       | ------    -------     --------    ------------  |
  |     |        |    |       |   |       |      | WO    | |     | R |     |     |      |    |SERVICES   | |
  |     | CPU    |<-->| TMEL  |<->|       |------------->| | IN  |-->|     |     | TMEL |    |--------   | |
  |     |        |    | COM   |   | QMP   |      | RO    | |     | W | QMP |<--->| COM  |<-->| a) ATTEST | |
  |     |        |    |       |   |       |<-------------| | OUT |<--|     |     |      |    | b) CRYPTO | |
  |     |        |    |       |   |       |      |       | |     |   |     |     |      |    | .. more   | |
  |     ---------     ---------   ---------      |       | ------    -------     -------     ------------  |
  |                                              |       |                                                 |
   -----------------------------------------------       --------------------------------------------------

This binding describes the component responsible for communication between
the TMEL server based subsystems (Q6) and the TMEL client
(CPU/BTSS/AUDIOSS), used for security services like secure image
authentication, enable/disable efuses, crypto services. Each client in the
SoC has its own block of message RAM and IRQ for communication with the
TMEL SS.

Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
---
#V3:
---
        Fixed wrappings.
        Made mailbox-cells as a required property and changed value to '1'.
        Fixed to use compatible as filename.
        Renamed compatible as per Krzystof's comments.
        Dropped unused label.

    Following tests were done and no issues.

       *)  Checkpatch
       *)  Codespell
       *)  Sparse
       *)  kerneldoc check
       *)  Kernel lock debugging
       *)  dt_binding_check and dtbs_check

 .../bindings/mailbox/qcom,ipq5424-tmel.yaml   | 62 +++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mailbox/qcom,ipq5424-tmel.yaml

Comments

Dmitry Baryshkov Feb. 28, 2025, 6:06 a.m. UTC | #1
On Fri, Feb 28, 2025 at 10:23:55AM +0530, Sricharan R wrote:
> From: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> 
> TMEL SS provides different kinds of services like secureboot, remote image

What is TMEL SS? What is Q6, etc? Please provide a definition on the
first usagem both in the commit message and in the bindings text. And in
the cover letter. Also, in some places you use TME-L instead of TMEL.
Please settle on one of those, unless there is a difference between
them,

> authentication, key management, crypto, OEM provisioning etc. This patch
> adds support for remote image authentication. Support for rest of the
> services can be added.
> 
> The QMP mailbox is the primary means of communication between TMEL SS and
> other subsystem on the SoC. A dedicated pair of inbound and outbound
> mailboxes is implemented for each subsystem/external execution environment
> which needs to communicate with TMEL for security services. The inbound
> mailboxes are used to send IPC requests to TMEL, which are then processed
> by TMEL firmware and accordingly the responses are sent back via outbound
> mailboxes.
> 
> It is an IPC transport protocol which is light weight and supports a subset
> of API's. It handles link initialization, negotiation, establishment and
> communication across client(CPU/BTSS/AUDIOSS) and server(TMEL SS).
> 
>    -----------------------------------------------       ---------------------------------------------------
>   |                                              |       |                                                 |
>   |                 SOC  CLIENT                  | SOC   |                TMEL  SS                         |
>   |                                              | AHB   |                                                 |
>   |     ----------    ---------   ---------      |       | ------    -------     --------    ------------  |
>   |     |        |    |       |   |       |      | WO    | |     | R |     |     |      |    |SERVICES   | |
>   |     | CPU    |<-->| TMEL  |<->|       |------------->| | IN  |-->|     |     | TMEL |    |--------   | |
>   |     |        |    | COM   |   | QMP   |      | RO    | |     | W | QMP |<--->| COM  |<-->| a) ATTEST | |
>   |     |        |    |       |   |       |<-------------| | OUT |<--|     |     |      |    | b) CRYPTO | |
>   |     |        |    |       |   |       |      |       | |     |   |     |     |      |    | .. more   | |
>   |     ---------     ---------   ---------      |       | ------    -------     -------     ------------  |
>   |                                              |       |                                                 |
>    -----------------------------------------------       --------------------------------------------------
> 
> This binding describes the component responsible for communication between
> the TMEL server based subsystems (Q6) and the TMEL client
> (CPU/BTSS/AUDIOSS), used for security services like secure image
> authentication, enable/disable efuses, crypto services. Each client in the
> SoC has its own block of message RAM and IRQ for communication with the
> TMEL SS.
> 
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> ---
> #V3:

Creative. Where are the previous changelogs?

> ---
>         Fixed wrappings.
>         Made mailbox-cells as a required property and changed value to '1'.
>         Fixed to use compatible as filename.
>         Renamed compatible as per Krzystof's comments.
>         Dropped unused label.
> 
>     Following tests were done and no issues.
> 
>        *)  Checkpatch
>        *)  Codespell
>        *)  Sparse
>        *)  kerneldoc check
>        *)  Kernel lock debugging
>        *)  dt_binding_check and dtbs_check
> 
>  .../bindings/mailbox/qcom,ipq5424-tmel.yaml   | 62 +++++++++++++++++++
>  1 file changed, 62 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mailbox/qcom,ipq5424-tmel.yaml
> 
> diff --git a/Documentation/devicetree/bindings/mailbox/qcom,ipq5424-tmel.yaml b/Documentation/devicetree/bindings/mailbox/qcom,ipq5424-tmel.yaml
> new file mode 100644
> index 000000000000..2e3c79add405
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mailbox/qcom,ipq5424-tmel.yaml
> @@ -0,0 +1,62 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mailbox/qcom,ipq5424-tmel.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm TMEL IPCC channel
> +
> +maintainers:
> +  - Sricharan Ramabadhran <quic_srichara@quicinc.com>
> +
> +description:
> +  TMEL SS provides different kinds of services like secureboot, remote image authentication,
> +  key management, crypto, OEM provisioning etc. This patch adds support for remote image
> +  authentication. Support for rest of the services can be added.
> +
> +  The QMP mailbox is the primary means of communication between TMEL SS and other subsystem on
> +  the SoC. A dedicated pair of inbound and outbound mailboxes is implemented for each
> +  subsystem/external execution environment which needs to communicate with TMEL for security
> +  services. The inbound mailboxes are used to send IPC requests to TMEL, which are then processed

This string is 100 chars long. What is the recommended wrapping
boundary?

> +  by TMEL firmware and accordingly the responses are sent back via outbound mailboxes.
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - qcom,ipq5424-tmel
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  mboxes:
> +    maxItems: 1
> +
> +  "#mbox-cells":
> +    const: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - mboxes
> +  - "#mbox-cells"
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +    mailbox@32090000 {
> +        compatible = "qcom,ipq5424-tmel";
> +        reg = <0x32090000 0x2000>;
> +        interrupts = <GIC_SPI 126 IRQ_TYPE_EDGE_RISING>;
> +        mboxes = <&apcs_glb 20>;
> +        #mbox-cells = <1>;
> +    };
> +
> +...
> -- 
> 2.34.1
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/mailbox/qcom,ipq5424-tmel.yaml b/Documentation/devicetree/bindings/mailbox/qcom,ipq5424-tmel.yaml
new file mode 100644
index 000000000000..2e3c79add405
--- /dev/null
+++ b/Documentation/devicetree/bindings/mailbox/qcom,ipq5424-tmel.yaml
@@ -0,0 +1,62 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mailbox/qcom,ipq5424-tmel.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm TMEL IPCC channel
+
+maintainers:
+  - Sricharan Ramabadhran <quic_srichara@quicinc.com>
+
+description:
+  TMEL SS provides different kinds of services like secureboot, remote image authentication,
+  key management, crypto, OEM provisioning etc. This patch adds support for remote image
+  authentication. Support for rest of the services can be added.
+
+  The QMP mailbox is the primary means of communication between TMEL SS and other subsystem on
+  the SoC. A dedicated pair of inbound and outbound mailboxes is implemented for each
+  subsystem/external execution environment which needs to communicate with TMEL for security
+  services. The inbound mailboxes are used to send IPC requests to TMEL, which are then processed
+  by TMEL firmware and accordingly the responses are sent back via outbound mailboxes.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - qcom,ipq5424-tmel
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  mboxes:
+    maxItems: 1
+
+  "#mbox-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - mboxes
+  - "#mbox-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    mailbox@32090000 {
+        compatible = "qcom,ipq5424-tmel";
+        reg = <0x32090000 0x2000>;
+        interrupts = <GIC_SPI 126 IRQ_TYPE_EDGE_RISING>;
+        mboxes = <&apcs_glb 20>;
+        #mbox-cells = <1>;
+    };
+
+...