| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/crypto/fsl,sec2.0.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Freescale SoC SEC Security Engines versions 1.x-2.x-3.x |
| |
| maintainers: |
| - J. Neuschäfer <j.ne@posteo.net> |
| |
| properties: |
| compatible: |
| description: |
| Should contain entries for this and backward compatible SEC versions, |
| high to low. Warning - SEC1 and SEC2 are mutually exclusive. |
| oneOf: |
| - items: |
| - const: fsl,sec3.3 |
| - const: fsl,sec3.1 |
| - const: fsl,sec3.0 |
| - const: fsl,sec2.4 |
| - const: fsl,sec2.2 |
| - const: fsl,sec2.1 |
| - const: fsl,sec2.0 |
| - items: |
| - const: fsl,sec3.1 |
| - const: fsl,sec3.0 |
| - const: fsl,sec2.4 |
| - const: fsl,sec2.2 |
| - const: fsl,sec2.1 |
| - const: fsl,sec2.0 |
| - items: |
| - const: fsl,sec3.0 |
| - const: fsl,sec2.4 |
| - const: fsl,sec2.2 |
| - const: fsl,sec2.1 |
| - const: fsl,sec2.0 |
| - items: |
| - const: fsl,sec2.4 |
| - const: fsl,sec2.2 |
| - const: fsl,sec2.1 |
| - const: fsl,sec2.0 |
| - items: |
| - const: fsl,sec2.2 |
| - const: fsl,sec2.1 |
| - const: fsl,sec2.0 |
| - items: |
| - const: fsl,sec2.1 |
| - const: fsl,sec2.0 |
| - items: |
| - const: fsl,sec2.0 |
| - items: |
| - const: fsl,sec1.2 |
| - const: fsl,sec1.0 |
| - items: |
| - const: fsl,sec1.0 |
| |
| reg: |
| maxItems: 1 |
| |
| interrupts: |
| maxItems: 1 |
| |
| fsl,num-channels: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [ 1, 4 ] |
| description: An integer representing the number of channels available. |
| |
| fsl,channel-fifo-len: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 100 |
| description: |
| An integer representing the number of descriptor pointers each channel |
| fetch fifo can hold. |
| |
| fsl,exec-units-mask: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 0xfff |
| description: | |
| The bitmask representing what execution units (EUs) are available. |
| EU information should be encoded following the SEC's Descriptor Header |
| Dword EU_SEL0 field documentation, i.e. as follows: |
| |
| bit 0 = reserved - should be 0 |
| bit 1 = set if SEC has the ARC4 EU (AFEU) |
| bit 2 = set if SEC has the DES/3DES EU (DEU) |
| bit 3 = set if SEC has the message digest EU (MDEU/MDEU-A) |
| bit 4 = set if SEC has the random number generator EU (RNG) |
| bit 5 = set if SEC has the public key EU (PKEU) |
| bit 6 = set if SEC has the AES EU (AESU) |
| bit 7 = set if SEC has the Kasumi EU (KEU) |
| bit 8 = set if SEC has the CRC EU (CRCU) |
| bit 11 = set if SEC has the message digest EU extended alg set (MDEU-B) |
| |
| remaining bits are reserved for future SEC EUs. |
| |
| fsl,descriptor-types-mask: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: | |
| The bitmask representing what descriptors are available. Descriptor type |
| information should be encoded following the SEC's Descriptor Header Dword |
| DESC_TYPE field documentation, i.e. as follows: |
| |
| bit 0 = SEC supports descriptor type aesu_ctr_nonsnoop |
| bit 1 = SEC supports descriptor type ipsec_esp |
| bit 2 = SEC supports descriptor type common_nonsnoop |
| bit 3 = SEC supports descriptor type 802.11i AES ccmp |
| bit 4 = SEC supports descriptor type hmac_snoop_no_afeu |
| bit 5 = SEC supports descriptor type srtp |
| bit 6 = SEC supports descriptor type non_hmac_snoop_no_afeu |
| bit 7 = SEC supports descriptor type pkeu_assemble |
| bit 8 = SEC supports descriptor type aesu_key_expand_output |
| bit 9 = SEC supports descriptor type pkeu_ptmul |
| bit 10 = SEC supports descriptor type common_nonsnoop_afeu |
| bit 11 = SEC supports descriptor type pkeu_ptadd_dbl |
| |
| ..and so on and so forth. |
| |
| required: |
| - compatible |
| - reg |
| - fsl,num-channels |
| - fsl,channel-fifo-len |
| - fsl,exec-units-mask |
| - fsl,descriptor-types-mask |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| /* MPC8548E */ |
| crypto@30000 { |
| compatible = "fsl,sec2.1", "fsl,sec2.0"; |
| reg = <0x30000 0x10000>; |
| interrupts = <29 2>; |
| interrupt-parent = <&mpic>; |
| fsl,num-channels = <4>; |
| fsl,channel-fifo-len = <24>; |
| fsl,exec-units-mask = <0xfe>; |
| fsl,descriptor-types-mask = <0x12b0ebf>; |
| }; |
| |
| ... |