]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: traverse: ten64: set serial# to be 'label' MAC
authorMathew McBride <matt@traverse.com.au>
Fri, 21 Jul 2023 04:39:26 +0000 (04:39 +0000)
committerTom Rini <trini@konsulko.com>
Thu, 3 Aug 2023 13:40:50 +0000 (09:40 -0400)
The GE0 (first Gigabit Ethernet interface) is used as the
'serial number' for the board and appliance.

To ensure the 'true' board S/N is available regardless of how
the DPAA2 subsystem is configured, use serial# so it is passed in
the device tree.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
board/traverse/ten64/ten64.c

index 0febc0baf0393128d85485733929984b3177a528..17057966c819979732a545d96f22bb310e070e92 100644 (file)
@@ -296,6 +296,7 @@ static void ten64_set_macaddrs_from_board_info(struct t64uc_board_info *boardinf
 {
        char ethaddr[18];
        char enetvar[10];
+       char serial[18];
        u8 intfidx, this_dpmac_num;
        u64 macaddr = 0;
        /* We will copy the MAC address returned from the
@@ -316,6 +317,19 @@ static void ten64_set_macaddrs_from_board_info(struct t64uc_board_info *boardinf
         */
        macaddr = __be64_to_cpu(macaddr);
 
+       /* Set serial# to GE0/DPMAC7 MAC address
+        * (Matches the labels on the board and appliance)
+        */
+       snprintf(serial, 18, "%02X%02X%02X%02X%02X%02X",
+                MACADDRBITS(macaddr, 40),
+                MACADDRBITS(macaddr, 32),
+                MACADDRBITS(macaddr, 24),
+                MACADDRBITS(macaddr, 16),
+                MACADDRBITS(macaddr, 8),
+                MACADDRBITS(macaddr, 0));
+       if (!env_get("serial#"))
+               env_set("serial#", serial);
+
        for (intfidx = 0; intfidx < 10; intfidx++) {
                snprintf(ethaddr, 18, "%02X:%02X:%02X:%02X:%02X:%02X",
                         MACADDRBITS(macaddr, 40),