From: Marek Szyprowski Date: Tue, 12 Jan 2021 20:03:16 +0000 (+0100) Subject: amlogic: vim3: fix MAC address reading code X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6d03ce1318436f251c302ea5b366b8847e1a509f;p=platform%2Fkernel%2Fu-boot.git amlogic: vim3: fix MAC address reading code It turned out that MAC address is stored in ASCII format in EFUSE, so fix the code reading it to use ASCII format. Signed-off-by: Marek Szyprowski Change-Id: If3723f3aa8570de04e6e753e958ada624e3482fe --- diff --git a/board/amlogic/w400/w400.c b/board/amlogic/w400/w400.c index a420557920..31db8063b2 100644 --- a/board/amlogic/w400/w400.c +++ b/board/amlogic/w400/w400.c @@ -15,7 +15,7 @@ #include #define EFUSE_MAC_OFFSET 0 -#define EFUSE_MAC_SIZE 6 +#define EFUSE_MAC_SIZE 12 #define MAC_ADDR_LEN 6 int mmc_get_env_dev(void) @@ -29,7 +29,7 @@ int mmc_get_env_dev(void) int misc_init_r(void) { u8 mac_addr[MAC_ADDR_LEN]; - char efuse_mac_addr[EFUSE_MAC_SIZE]; + char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3]; ssize_t len; meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0); @@ -40,8 +40,13 @@ int misc_init_r(void) if (len != EFUSE_MAC_SIZE) return 0; - for (int i = 0; i < 6; i++) - mac_addr[i] = efuse_mac_addr[i]; + /* MAC is stored in ASCII format, 1bytes = 2characters */ + for (int i = 0; i < 6; i++) { + tmp[0] = efuse_mac_addr[i * 2]; + tmp[1] = efuse_mac_addr[i * 2 + 1]; + tmp[2] = '\0'; + mac_addr[i] = simple_strtoul(tmp, NULL, 16); + } if (is_valid_ethaddr(mac_addr)) eth_env_set_enetaddr("ethaddr", mac_addr);