From: "Peng Fan (OSS)" <peng.fan@oss.nxp.com>
To: herbert@gondor.apana.org.au, davem@davemloft.net,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
horia.geanta@nxp.com, pankaj.gupta@nxp.com, gaurav.jain@nxp.com,
shawnguo@kernel.org, s.hauer@pengutronix.de
Cc: kernel@pengutronix.de, stefan@agner.ch,
linux-crypto@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, Peng Fan <peng.fan@nxp.com>
Subject: [PATCH 2/9] dt-bindings: crypto: fsl-sec4: convert to DT schema
Date: Wed, 1 Mar 2023 09:56:55 +0800 [thread overview]
Message-ID: <20230301015702.3388458-3-peng.fan@oss.nxp.com> (raw)
In-Reply-To: <20230301015702.3388458-1-peng.fan@oss.nxp.com>
From: Peng Fan <peng.fan@nxp.com>
Convert the fsl-sec4 binding to DT schema
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
.../devicetree/bindings/crypto/fsl-sec4.yaml | 324 ++++++++++++++++++
1 file changed, 324 insertions(+)
create mode 100644 Documentation/devicetree/bindings/crypto/fsl-sec4.yaml
diff --git a/Documentation/devicetree/bindings/crypto/fsl-sec4.yaml b/Documentation/devicetree/bindings/crypto/fsl-sec4.yaml
new file mode 100644
index 000000000000..678c8389ef49
--- /dev/null
+++ b/Documentation/devicetree/bindings/crypto/fsl-sec4.yaml
@@ -0,0 +1,324 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/crypto/fsl-sec4.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP SEC4 Crypto Binding
+
+description:
+ CONTENTS
+ -Overview
+ -SEC 4 Node
+ -Job Ring Node
+ -Run Time Integrity Check (RTIC) Node
+ -Run Time Integrity Check (RTIC) Memory Node
+ NOTE, the SEC 4 is also known as Freescale's Cryptographic Accelerator
+ Accelerator and Assurance Module (CAAM).
+ For information on SEC4 SNVS, ref fsl-sec4-snvs.yaml
+
+ =====================================================================
+ Overview
+
+ DESCRIPTION
+
+ SEC 4 h/w can process requests from 2 types of sources.
+ 1. DPAA Queue Interface (HW interface between Queue Manager & SEC 4).
+ 2. Job Rings (HW interface between cores & SEC 4 registers).
+
+ High Speed Data Path Configuration,
+
+ HW interface between QM & SEC 4 and also BM & SEC 4, on DPAA-enabled parts
+ such as the P4080. The number of simultaneous dequeues the QI can make is
+ equal to the number of Descriptor Controller (DECO) engines in a particular
+ SEC version. E.g., the SEC 4.0 in the P4080 has 5 DECOs and can thus
+ dequeue from 5 subportals simultaneously.
+
+ Job Ring Data Path Configuration,
+
+ Each JR is located on a separate 4k page, they may (or may not) be made visible
+ in the memory partition devoted to a particular core. The P4080 has 4 JRs, so
+ up to 4 JRs can be configured; and all 4 JRs process requests in parallel.
+
+maintainers:
+ - Peng Fan <peng.fan@nxp.com>
+
+properties:
+ compatible:
+ enum:
+ - fsl,sec-v4.0
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 1
+
+ reg:
+ maxItems: 1
+
+ ranges:
+ description:
+ A standard property. Specifies the physical address range of the SEC
+ 4.0 register space (-SNVS not included). A triplet that includes the
+ child address, parent address, & length.
+
+ interrupts:
+ description:
+ Specifies the interrupts generated by this device. The value of the
+ interrupts property consists of one interrupt specifier. The format
+ of the specifier is defined by the binding document describing the
+ node's interrupt parent.
+ maxItems: 1
+
+ clocks:
+ minItems: 1
+ maxItems: 4
+
+ clock-names:
+ oneOf:
+ - items:
+ - const: mem
+ - const: aclk
+ - const: ipg
+ - const: emi_slow
+ - items:
+ - const: aclk
+ - const: ipg
+ - items:
+ - const: ipg
+ - const: aclk
+ - const: mem
+
+ fsl,sec-era:
+ description:
+ Optional. A standard property. Define the 'ERA' of the SEC device.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+patternProperties:
+ "jr@[0-9a-f]+$":
+ type: object
+ description:
+ Child of the crypto node defines data processing interface to SEC 4
+ across the peripheral bus for purposes of processing
+ cryptographic descriptors. The specified address
+ range can be made visible to one (or more) cores.
+ The interrupt defined for this node is controlled within
+ the address range of this node.
+
+ properties:
+ compatible:
+ enum:
+ - fsl,sec-v4.0-job-ring
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ description:
+ Specifies the interrupts generated by this device. The value of the
+ interrupts property consists of one interrupt specifier. The format
+ of the specifier is defined by the binding document describing the
+ node's interrupt parent.
+ maxItems: 1
+
+ fsl,liodn:
+ description:
+ Specifies the LIODN to be used in conjunction with the ppid-to-liodn
+ table that specifies the PPID to LIODN mapping. Needed if the PAMU
+ is used. Value is a 12 bit value where value is a LIODN ID for this
+ JR. This property is normally set by boot firmware.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ maximum: 0x1
+
+ required:
+ - compatible
+ - reg
+ - interrupts
+
+ "rtic@[0-9a-f]+$":
+ type: object
+ description:
+ Run Time Integrity Check (RTIC) Node. Child node of the crypto node.
+ Defines a register space that contains up to 5 sets of addresses and
+ their lengths (sizes) that will be checked at run time. After an
+ initial hash result is calculated, these addresses are checked by HW
+ to monitor any change. If any memory is modified, a Security Violation
+ is triggered (see SNVS definition).
+
+ properties:
+ compatible:
+ enum:
+ - fsl,sec-v4.0-rtic
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 1
+
+ reg:
+ minItems: 1
+ maxItems: 2
+
+ ranges:
+ description:
+ A standard property. Specifies the physical address range of the
+ SEC 4 register space (-SNVS not included). A triplet that includes
+ the child address, parent address, & length.
+
+ required:
+ - compatible
+ - reg
+ - "#address-cells"
+ - "#size-cells"
+ - ranges
+
+ patternProperties:
+ "rtic-[a-f]@[0-9]+$":
+ type: object
+ description:
+ Run Time Integrity Check (RTIC) Memory Node. A child node that
+ defines individual RTIC memory regions that are used to perform
+ run-time integrity check of memory areas that should not modified.
+ The node defines a register that contains the memory address &
+ length (combined) and a second register that contains the hash
+ result in big endian format.
+
+ properties:
+ compatible:
+ enum:
+ - fsl,sec-v4.0-rtic-memory
+
+ reg:
+ minItems: 1
+ maxItems: 2
+
+ fsl,rtic-region:
+ description:
+ Specifies the HW address (36 bit address) for this region
+ followed by the length of the HW partition to be checked;
+ the address is represented as a 64 bit quantity followed
+ by a 32 bit length.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 1
+ maxItems: 3
+
+ fsl,liodn:
+ description:
+ Specifies the LIODN to be used in conjunction with
+ the ppid-to-liodn table that specifies the PPID to LIODN
+ mapping. Needed if the PAMU is used. Value is a 12 bit value
+ where value is a LIODN ID for this RTIC memory region. This
+ property is normally set by boot firmware.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 1
+ maxItems: 3
+
+ required:
+ - compatible
+ - reg
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ # iMX6QDL/SX requires four clocks
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/clock/imx6qdl-clock.h>
+
+ crypto@300000 {
+ compatible = "fsl,sec-v4.0";
+ fsl,sec-era = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x300000 0x10000>;
+ ranges = <0 0x300000 0x10000>;
+ interrupt-parent = <&mpic>;
+ interrupts = <92 2>;
+ clocks = <&clks IMX6QDL_CLK_CAAM_MEM>,
+ <&clks IMX6QDL_CLK_CAAM_ACLK>,
+ <&clks IMX6QDL_CLK_CAAM_IPG>,
+ <&clks IMX6QDL_CLK_EIM_SLOW>;
+ clock-names = "mem", "aclk", "ipg", "emi_slow";
+
+ sec_jr0: jr@1000 {
+ compatible = "fsl,sec-v4.0-job-ring";
+ reg = <0x1000 0x1000>;
+ interrupt-parent = <&mpic>;
+ interrupts = <88 2>;
+ };
+
+ sec_jr1: jr@2000 {
+ compatible = "fsl,sec-v4.0-job-ring";
+ reg = <0x2000 0x1000>;
+ interrupt-parent = <&mpic>;
+ interrupts = <89 2>;
+ };
+
+ sec_jr2: jr@3000 {
+ compatible = "fsl,sec-v4.0-job-ring";
+ reg = <0x3000 0x1000>;
+ interrupt-parent = <&mpic>;
+ interrupts = <90 2>;
+ };
+
+ sec_jr3: jr@4000 {
+ compatible = "fsl,sec-v4.0-job-ring";
+ reg = <0x4000 0x1000>;
+ interrupt-parent = <&mpic>;
+ interrupts = <91 2>;
+ };
+
+ rtic@6000 {
+ compatible = "fsl,sec-v4.0-rtic";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x6000 0x100>;
+ ranges = <0x0 0x6100 0xe00>;
+
+ rtic_a: rtic-a@0 {
+ compatible = "fsl,sec-v4.0-rtic-memory";
+ reg = <0x00 0x20 0x100 0x80>;
+ };
+
+ rtic_b: rtic-b@20 {
+ compatible = "fsl,sec-v4.0-rtic-memory";
+ reg = <0x20 0x20 0x200 0x80>;
+ };
+
+ rtic_c: rtic-c@40 {
+ compatible = "fsl,sec-v4.0-rtic-memory";
+ reg = <0x40 0x20 0x300 0x80>;
+ };
+
+ rtic_d: rtic-d@60 {
+ compatible = "fsl,sec-v4.0-rtic-memory";
+ reg = <0x60 0x20 0x500 0x80>;
+ };
+ };
+ };
+
+ # iMX6UL does only require three clocks
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/clock/imx6ul-clock.h>
+
+ crypto: crypto@2140000 {
+ compatible = "fsl,sec-v4.0";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x2140000 0x3c000>;
+ ranges = <0 0x2140000 0x3c000>;
+ interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+
+ clocks = <&clks IMX6UL_CLK_CAAM_IPG>,
+ <&clks IMX6UL_CLK_CAAM_ACLK>,
+ <&clks IMX6UL_CLK_CAAM_MEM>;
+ clock-names = "ipg", "aclk", "mem";
+ };
+...
--
2.37.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-03-01 2:07 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-01 1:56 [PATCH 0/9] dt-bindings: crypto: convert fsl-sec4 to DT schema Peng Fan (OSS)
2023-03-01 1:56 ` [PATCH 1/9] ARM: dts: vfxxx: drop the number after jr Peng Fan (OSS)
2023-03-01 1:56 ` Peng Fan (OSS) [this message]
2023-03-03 9:53 ` [PATCH 2/9] dt-bindings: crypto: fsl-sec4: convert to DT schema Krzysztof Kozlowski
2023-03-01 1:56 ` [PATCH 3/9] dt-bindings: crypto: fsl-sec4: support sec5.4/0 and i.MX6UL Peng Fan (OSS)
2023-03-03 9:55 ` Krzysztof Kozlowski
2023-03-07 6:56 ` Gaurav Jain
2023-03-01 1:56 ` [PATCH 4/9] dt-bindings: crypto: add fsl-sec4-snvs DT schema Peng Fan (OSS)
2023-03-01 3:07 ` Rob Herring
2023-03-03 9:58 ` Krzysztof Kozlowski
2023-03-01 1:56 ` [PATCH 5/9] dt-bindings: crypto: fsl-sec4-snvs: add simple-mfd compatible Peng Fan (OSS)
2023-03-03 10:00 ` Krzysztof Kozlowski
2023-03-01 1:56 ` [PATCH 6/9] dt-bindings: crypto: fsl-sec4-snvs: add fsl sec 5.x compatible Peng Fan (OSS)
2023-03-03 10:01 ` Krzysztof Kozlowski
2023-03-07 6:47 ` Gaurav Jain
2023-03-07 6:58 ` Peng Fan
2023-03-01 1:57 ` [PATCH 7/9] dt-bindings: crypto: drop fsl-sec4 txt binding Peng Fan (OSS)
2023-03-02 13:26 ` kernel test robot
2023-03-03 10:02 ` Krzysztof Kozlowski
2023-03-01 1:57 ` [PATCH 8/9] dt-bindings: crypto: fsl-sec4-snvs: add snvs-lpgpr support Peng Fan (OSS)
2023-03-03 10:03 ` Krzysztof Kozlowski
2023-03-01 1:57 ` [PATCH 9/9] dt-bindings: crypto: fsl-sec4-snvs: add poweroff support Peng Fan (OSS)
2023-03-03 10:03 ` Krzysztof Kozlowski
2023-03-01 3:06 ` [PATCH 0/9] dt-bindings: crypto: convert fsl-sec4 to DT schema Rob Herring
2023-03-01 3:10 ` Peng Fan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230301015702.3388458-3-peng.fan@oss.nxp.com \
--to=peng.fan@oss.nxp.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=gaurav.jain@nxp.com \
--cc=herbert@gondor.apana.org.au \
--cc=horia.geanta@nxp.com \
--cc=kernel@pengutronix.de \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pankaj.gupta@nxp.com \
--cc=peng.fan@nxp.com \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=stefan@agner.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox