Documentation / devicetree / bindings / nvmem / layouts / onie,tlv-layout.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

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>;
                    };
                };
            };
        };
    };
...