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