From 06e19a6d3e2311efb4078806394954f39cbd15a2 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 21 Jul 2023 04:39:26 +0000 Subject: [PATCH] board: traverse: ten64: set serial# to be 'label' MAC 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 Reviewed-by: Peng Fan --- board/traverse/ten64/ten64.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/board/traverse/ten64/ten64.c b/board/traverse/ten64/ten64.c index 0febc0baf0..17057966c8 100644 --- a/board/traverse/ten64/ten64.c +++ b/board/traverse/ten64/ten64.c @@ -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), -- 2.39.5