arm64: dts: ls1028a: sl28: get MAC addresses from VPD
Commit Message
Now that it is finally possible to get the MAC addresses from the OTP
memory, use it to set the addresses of the network devices.
There are 8 reserved MAC addresses in total per board. Distribute them
as follows:
+----------+------+------+------+------+------+
| | var1 | var2 | var3 | var4 | kbox |
+----------+------+------+------+------+------+
| enetc #0 | +0 | | | +0 | +0 |
| enetc #1 | | | +0 | +1 | +1 |
| enetc #2 | | +2 | | | +2 |
| enetc #3 | | +3 | | | +3 |
| felix p0 | | +0 | | | +4 |
| felix p1 | | +1 | | | +5 |
| felix p2 | | | | | +6 |
| felix p3 | | | | | +7 |
| felix p4 | | | | | |
| felix p5 | | | | | |
+----------+------+------+------+------+------+
An empty cell means, the port is not available and thus doesn't need an
ethernet address.
Signed-off-by: Michael Walle <michael@walle.cc>
---
.../fsl-ls1028a-kontron-kbox-a-230-ls.dts | 12 ++++++++++++
.../freescale/fsl-ls1028a-kontron-sl28-var1.dts | 2 ++
.../freescale/fsl-ls1028a-kontron-sl28-var2.dts | 8 ++++++++
.../freescale/fsl-ls1028a-kontron-sl28-var4.dts | 2 ++
.../dts/freescale/fsl-ls1028a-kontron-sl28.dts | 17 +++++++++++++++++
5 files changed, 41 insertions(+)
Comments
On Thu, Jan 05, 2023 at 04:22:30PM +0100, Michael Walle wrote:
> Now that it is finally possible to get the MAC addresses from the OTP
> memory, use it to set the addresses of the network devices.
>
> There are 8 reserved MAC addresses in total per board. Distribute them
> as follows:
>
> +----------+------+------+------+------+------+
> | | var1 | var2 | var3 | var4 | kbox |
> +----------+------+------+------+------+------+
> | enetc #0 | +0 | | | +0 | +0 |
> | enetc #1 | | | +0 | +1 | +1 |
> | enetc #2 | | +2 | | | +2 |
> | enetc #3 | | +3 | | | +3 |
> | felix p0 | | +0 | | | +4 |
> | felix p1 | | +1 | | | +5 |
> | felix p2 | | | | | +6 |
> | felix p3 | | | | | +7 |
> | felix p4 | | | | | |
> | felix p5 | | | | | |
> +----------+------+------+------+------+------+
>
> An empty cell means, the port is not available and thus doesn't need an
> ethernet address.
>
> Signed-off-by: Michael Walle <michael@walle.cc>
Applied, thanks!
@@ -56,10 +56,14 @@ qsgmii_phy3: ethernet-phy@10 {
};
&enetc_port2 {
+ nvmem-cells = <&base_mac_address 2>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
&enetc_port3 {
+ nvmem-cells = <&base_mac_address 3>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -80,6 +84,8 @@ &mscc_felix_port0 {
managed = "in-band-status";
phy-handle = <&qsgmii_phy0>;
phy-mode = "qsgmii";
+ nvmem-cells = <&base_mac_address 4>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -88,6 +94,8 @@ &mscc_felix_port1 {
managed = "in-band-status";
phy-handle = <&qsgmii_phy1>;
phy-mode = "qsgmii";
+ nvmem-cells = <&base_mac_address 5>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -96,6 +104,8 @@ &mscc_felix_port2 {
managed = "in-band-status";
phy-handle = <&qsgmii_phy2>;
phy-mode = "qsgmii";
+ nvmem-cells = <&base_mac_address 6>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -104,6 +114,8 @@ &mscc_felix_port3 {
managed = "in-band-status";
phy-handle = <&qsgmii_phy3>;
phy-mode = "qsgmii";
+ nvmem-cells = <&base_mac_address 7>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -55,5 +55,7 @@ &enetc_port0 {
&enetc_port1 {
phy-handle = <&phy0>;
phy-mode = "rgmii-id";
+ nvmem-cells = <&base_mac_address 0>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -36,10 +36,14 @@ &enetc_port0 {
};
&enetc_port2 {
+ nvmem-cells = <&base_mac_address 2>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
&enetc_port3 {
+ nvmem-cells = <&base_mac_address 3>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -52,6 +56,8 @@ &mscc_felix_port0 {
managed = "in-band-status";
phy-handle = <&phy0>;
phy-mode = "sgmii";
+ nvmem-cells = <&base_mac_address 0>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -60,6 +66,8 @@ &mscc_felix_port1 {
managed = "in-band-status";
phy-handle = <&phy1>;
phy-mode = "sgmii";
+ nvmem-cells = <&base_mac_address 1>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -43,5 +43,7 @@ vddh: vddh-regulator {
&enetc_port1 {
phy-handle = <&phy1>;
phy-mode = "rgmii-id";
+ nvmem-cells = <&base_mac_address 1>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -92,6 +92,8 @@ &enetc_port0 {
phy-handle = <&phy0>;
phy-mode = "sgmii";
managed = "in-band-status";
+ nvmem-cells = <&base_mac_address 0>;
+ nvmem-cell-names = "mac-address";
status = "okay";
};
@@ -154,6 +156,21 @@ partition@3e0000 {
label = "bootloader environment";
};
};
+
+ otp-1 {
+ compatible = "user-otp";
+
+ nvmem-layout {
+ compatible = "kontron,sl28-vpd";
+
+ serial_number: serial-number {
+ };
+
+ base_mac_address: base-mac-address {
+ #nvmem-cell-cells = <1>;
+ };
+ };
+ };
};
};