]> git.itanic.dy.fi Git - linux-stable/commitdiff
arm64: dts: ls1028a: sl28: get MAC addresses from VPD
authorMichael Walle <mwalle@kernel.org>
Fri, 16 Jun 2023 11:11:22 +0000 (13:11 +0200)
committerShawn Guo <shawnguo@kernel.org>
Tue, 18 Jul 2023 01:58:28 +0000 (09:58 +0800)
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 <mwalle@kernel.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var1.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var2.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var4.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts

index 73eb6061c73eeaa475ef80812c2371476da36210..af9194eca5564df46b71cd51549a5e2898d75bf8 100644 (file)
@@ -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";
 };
 
index 7cd29ab970d9237ee4675c87ee6f39b279aae2ba..1f34c75534594ce25b440ee6d5dae1be0b3168ec 100644 (file)
@@ -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";
 };
index 113b1df74bf87cdebf0607ef3020c3e2b35ed6b2..aac41192caa12801d853f96d71adee7a2599e808 100644 (file)
@@ -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";
 };
 
index 9b5e92fb753e22effdb5b14f04cf3371291df162..a4421db3784e325602ac89c9c72d28b34418d6ce 100644 (file)
@@ -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";
 };
index 4ab17b984b03bc77e2243cbbfffb4d19ef3f8a4f..8b65af4a7147b6520907e282171bde5611acdffb 100644 (file)
@@ -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>;
+                               };
+                       };
+               };
        };
 };