xref: /linux/Documentation/devicetree/bindings/crypto/fsl,sec2.0.yaml (revision 4f9786035f9e519db41375818e1d0b5f20da2f10)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/crypto/fsl,sec2.0.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale SoC SEC Security Engines versions 1.x-2.x-3.x
8
9maintainers:
10  - J. Neuschäfer <j.ne@posteo.net>
11
12properties:
13  compatible:
14    description:
15      Should contain entries for this and backward compatible SEC versions,
16      high to low. Warning - SEC1 and SEC2 are mutually exclusive.
17    oneOf:
18      - items:
19          - const: fsl,sec3.3
20          - const: fsl,sec3.1
21          - const: fsl,sec3.0
22          - const: fsl,sec2.4
23          - const: fsl,sec2.2
24          - const: fsl,sec2.1
25          - const: fsl,sec2.0
26      - items:
27          - const: fsl,sec3.1
28          - const: fsl,sec3.0
29          - const: fsl,sec2.4
30          - const: fsl,sec2.2
31          - const: fsl,sec2.1
32          - const: fsl,sec2.0
33      - items:
34          - const: fsl,sec3.0
35          - const: fsl,sec2.4
36          - const: fsl,sec2.2
37          - const: fsl,sec2.1
38          - const: fsl,sec2.0
39      - items:
40          - const: fsl,sec2.4
41          - const: fsl,sec2.2
42          - const: fsl,sec2.1
43          - const: fsl,sec2.0
44      - items:
45          - const: fsl,sec2.2
46          - const: fsl,sec2.1
47          - const: fsl,sec2.0
48      - items:
49          - const: fsl,sec2.1
50          - const: fsl,sec2.0
51      - items:
52          - const: fsl,sec2.0
53      - items:
54          - const: fsl,sec1.2
55          - const: fsl,sec1.0
56      - items:
57          - const: fsl,sec1.0
58
59  reg:
60    maxItems: 1
61
62  interrupts:
63    maxItems: 1
64
65  fsl,num-channels:
66    $ref: /schemas/types.yaml#/definitions/uint32
67    enum: [ 1, 4 ]
68    description: An integer representing the number of channels available.
69
70  fsl,channel-fifo-len:
71    $ref: /schemas/types.yaml#/definitions/uint32
72    maximum: 100
73    description:
74      An integer representing the number of descriptor pointers each channel
75      fetch fifo can hold.
76
77  fsl,exec-units-mask:
78    $ref: /schemas/types.yaml#/definitions/uint32
79    maximum: 0xfff
80    description: |
81      The bitmask representing what execution units (EUs) are available.
82      EU information should be encoded following the SEC's Descriptor Header
83      Dword EU_SEL0 field documentation, i.e. as follows:
84
85        bit 0  = reserved - should be 0
86        bit 1  = set if SEC has the ARC4 EU (AFEU)
87        bit 2  = set if SEC has the DES/3DES EU (DEU)
88        bit 3  = set if SEC has the message digest EU (MDEU/MDEU-A)
89        bit 4  = set if SEC has the random number generator EU (RNG)
90        bit 5  = set if SEC has the public key EU (PKEU)
91        bit 6  = set if SEC has the AES EU (AESU)
92        bit 7  = set if SEC has the Kasumi EU (KEU)
93        bit 8  = set if SEC has the CRC EU (CRCU)
94        bit 11 = set if SEC has the message digest EU extended alg set (MDEU-B)
95
96      remaining bits are reserved for future SEC EUs.
97
98  fsl,descriptor-types-mask:
99    $ref: /schemas/types.yaml#/definitions/uint32
100    description: |
101      The bitmask representing what descriptors are available. Descriptor type
102      information should be encoded following the SEC's Descriptor Header Dword
103      DESC_TYPE field documentation, i.e. as follows:
104
105        bit 0  = SEC supports descriptor type aesu_ctr_nonsnoop
106        bit 1  = SEC supports descriptor type ipsec_esp
107        bit 2  = SEC supports descriptor type common_nonsnoop
108        bit 3  = SEC supports descriptor type 802.11i AES ccmp
109        bit 4  = SEC supports descriptor type hmac_snoop_no_afeu
110        bit 5  = SEC supports descriptor type srtp
111        bit 6  = SEC supports descriptor type non_hmac_snoop_no_afeu
112        bit 7  = SEC supports descriptor type pkeu_assemble
113        bit 8  = SEC supports descriptor type aesu_key_expand_output
114        bit 9  = SEC supports descriptor type pkeu_ptmul
115        bit 10 = SEC supports descriptor type common_nonsnoop_afeu
116        bit 11 = SEC supports descriptor type pkeu_ptadd_dbl
117
118      ..and so on and so forth.
119
120required:
121  - compatible
122  - reg
123  - fsl,num-channels
124  - fsl,channel-fifo-len
125  - fsl,exec-units-mask
126  - fsl,descriptor-types-mask
127
128unevaluatedProperties: false
129
130examples:
131  - |
132    /* MPC8548E */
133    crypto@30000 {
134        compatible = "fsl,sec2.1", "fsl,sec2.0";
135        reg = <0x30000 0x10000>;
136        interrupts = <29 2>;
137        interrupt-parent = <&mpic>;
138        fsl,num-channels = <4>;
139        fsl,channel-fifo-len = <24>;
140        fsl,exec-units-mask = <0xfe>;
141        fsl,descriptor-types-mask = <0x12b0ebf>;
142    };
143
144...
145