summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml
blob: ee8ac322332d6d90b5a6b5ead0cfc361c05c2ecc (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
145
146
147
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/layouts/onie,tlv-layout.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVMEM layout of the ONIE tlv table

maintainers:
  - Miquel Raynal <miquel.raynal@bootlin.com>

description:
  Modern networking hardware implementing the Open Compute Project ONIE
  infrastructure shall provide a non-volatile memory with a table whose the
  content is well specified and gives many information about the manufacturer
  (name, country of manufacture, etc) as well as device caracteristics (serial
  number, hardware version, mac addresses, etc). The underlying device type
  (flash, EEPROM,...) is not specified. The exact location of each value is also
  dynamic and should be discovered at run time because it depends on the
  parameters the manufacturer decided to embed.

select: false

properties:
  compatible:
    const: onie,tlv-layout

  product-name:
    type: object
    additionalProperties: false

  part-number:
    type: object
    additionalProperties: false

  serial-number:
    type: object
    additionalProperties: false

  mac-address:
    type: object
    description:
      Base MAC address for all on-module network interfaces. The first
      argument of the phandle will be treated as an offset.

    properties:
      "#nvmem-cell-cells":
        const: 1

    additionalProperties: false

  manufacture-date:
    type: object
    additionalProperties: false

  device-version:
    type: object
    additionalProperties: false

  label-revision:
    type: object
    additionalProperties: false

  platform-name:
    type: object
    additionalProperties: false

  onie-version:
    type: object
    additionalProperties: false

  num-macs:
    type: object
    additionalProperties: false

  manufacturer:
    type: object
    additionalProperties: false

  country-code:
    type: object
    additionalProperties: false

  vendor:
    type: object
    additionalProperties: false

  diag-version:
    type: object
    additionalProperties: false

  service-tag:
    type: object
    additionalProperties: false

  vendor-extension:
    type: object
    additionalProperties: false

required:
  - compatible

additionalProperties: false

examples:
  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        eeprom@56 {
            compatible = "atmel,24c64";
            read-only;
            reg = <0x56>;

            nvmem-layout {
                compatible = "onie,tlv-layout";

                serial-number {
                };
            };
        };
    };

  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        flash@0 {
            compatible = "m25p80", "jedec,spi-nor";
            reg = <0>;

            otp {
                compatible = "user-otp";

                nvmem-layout {
                    compatible = "onie,tlv-layout";

                    mac-address {
                        #nvmem-cell-cells = <1>;
                    };
                };
            };
        };
    };
...