summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/crypto/fsl,sec2.0.yaml
blob: 2091b89bb726b1bb8437916550810e925a345067 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# 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>;
    };

...