1d53afe387
Broadcom's NVRAM contains MACs for Ethernet interfaces. Those MACs are usually base addresses that are also used for calculating other MACs. For example if a router vendor decided to use gmac0 it most likely programmed NVRAM of each unit with a proper "et0macaddr" value. That is a base. Ethernet interface is usually connected to switch port. Switch usually includes few LAN ports and a WAN port. MAC of WAN port gets calculated as relative address to the interface one. Offset varies depending on device model. Wireless MACs may also need to be calculated using relevant offsets. To support all those scenarios let MAC NVMEM cells be referenced with an index specifying MAC offset. Disallow additionalProperties while at it. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Message-ID: <20230611140330.154222-4-srinivas.kandagatla@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
74 lines
1.7 KiB
YAML
74 lines
1.7 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/nvmem/brcm,nvram.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Broadcom's NVRAM
|
|
|
|
description: |
|
|
Broadcom's NVRAM is a structure containing device specific environment
|
|
variables. It is used for storing device configuration, booting parameters
|
|
and calibration data.
|
|
|
|
NVRAM can be accessed on Broadcom BCM47xx MIPS and Northstar ARM Cortex-A9
|
|
devices usiong I/O mapped memory.
|
|
|
|
NVRAM variables can be defined as NVMEM device subnodes.
|
|
|
|
maintainers:
|
|
- Rafał Miłecki <rafal@milecki.pl>
|
|
|
|
allOf:
|
|
- $ref: nvmem.yaml#
|
|
|
|
properties:
|
|
compatible:
|
|
const: brcm,nvram
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
board_id:
|
|
type: object
|
|
description: Board identification name
|
|
|
|
et0macaddr:
|
|
type: object
|
|
description: First Ethernet interface's MAC address
|
|
properties:
|
|
"#nvmem-cell-cells":
|
|
description: The first argument is a MAC address offset.
|
|
const: 1
|
|
additionalProperties: false
|
|
|
|
et1macaddr:
|
|
type: object
|
|
description: Second Ethernet interface's MAC address
|
|
properties:
|
|
"#nvmem-cell-cells":
|
|
description: The first argument is a MAC address offset.
|
|
const: 1
|
|
additionalProperties: false
|
|
|
|
et2macaddr:
|
|
type: object
|
|
description: Third Ethernet interface's MAC address
|
|
properties:
|
|
"#nvmem-cell-cells":
|
|
description: The first argument is a MAC address offset.
|
|
const: 1
|
|
additionalProperties: false
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
nvram@1eff0000 {
|
|
compatible = "brcm,nvram";
|
|
reg = <0x1eff0000 0x10000>;
|
|
|
|
mac: et0macaddr {
|
|
};
|
|
};
|