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