xref: /freebsd/sys/contrib/device-tree/Bindings/nvmem/layouts/onie,tlv-layout.yaml (revision 5ca8e32633c4ffbbcd6762e5888b6a4ba0708c6c)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/nvmem/layouts/onie,tlv-layout.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NVMEM layout of the ONIE tlv table
8
9maintainers:
10  - Miquel Raynal <miquel.raynal@bootlin.com>
11
12description:
13  Modern networking hardware implementing the Open Compute Project ONIE
14  infrastructure shall provide a non-volatile memory with a table whose the
15  content is well specified and gives many information about the manufacturer
16  (name, country of manufacture, etc) as well as device caracteristics (serial
17  number, hardware version, mac addresses, etc). The underlaying device type
18  (flash, EEPROM,...) is not specified. The exact location of each value is also
19  dynamic and should be discovered at run time because it depends on the
20  parameters the manufacturer decided to embed.
21
22select: false
23
24properties:
25  compatible:
26    const: onie,tlv-layout
27
28  product-name:
29    type: object
30    additionalProperties: false
31
32  part-number:
33    type: object
34    additionalProperties: false
35
36  serial-number:
37    type: object
38    additionalProperties: false
39
40  mac-address:
41    type: object
42    description:
43      Base MAC address for all on-module network interfaces. The first
44      argument of the phandle will be treated as an offset.
45
46    properties:
47      "#nvmem-cell-cells":
48        const: 1
49
50    additionalProperties: false
51
52  manufacture-date:
53    type: object
54    additionalProperties: false
55
56  device-version:
57    type: object
58    additionalProperties: false
59
60  label-revision:
61    type: object
62    additionalProperties: false
63
64  platform-name:
65    type: object
66    additionalProperties: false
67
68  onie-version:
69    type: object
70    additionalProperties: false
71
72  num-macs:
73    type: object
74    additionalProperties: false
75
76  manufacturer:
77    type: object
78    additionalProperties: false
79
80  country-code:
81    type: object
82    additionalProperties: false
83
84  vendor:
85    type: object
86    additionalProperties: false
87
88  diag-version:
89    type: object
90    additionalProperties: false
91
92  service-tag:
93    type: object
94    additionalProperties: false
95
96  vendor-extension:
97    type: object
98    additionalProperties: false
99
100required:
101  - compatible
102
103additionalProperties: false
104
105examples:
106  - |
107    spi {
108        #address-cells = <1>;
109        #size-cells = <0>;
110
111        eeprom@56 {
112            compatible = "atmel,24c64";
113            read-only;
114            reg = <0x56>;
115
116            nvmem-layout {
117                compatible = "onie,tlv-layout";
118
119                serial-number {
120                };
121            };
122        };
123    };
124
125  - |
126    spi {
127        #address-cells = <1>;
128        #size-cells = <0>;
129
130        flash@0 {
131            compatible = "m25p80", "jedec,spi-nor";
132            reg = <0>;
133
134            otp {
135                compatible = "user-otp";
136
137                nvmem-layout {
138                    compatible = "onie,tlv-layout";
139
140                    mac-address {
141                        #nvmem-cell-cells = <1>;
142                    };
143                };
144            };
145        };
146    };
147...
148