Search
Open Build Service
>
Projects
>
Tizen
:
Unified
:
ref:20210113.1
>
u-boot-rpi3-32b
> _service:gbs:0011-amlogic-vim3-fix-MAC-address-reading-code.patch
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File _service:gbs:0011-amlogic-vim3-fix-MAC-address-reading-code.patch of Package u-boot-rpi3-32b
From: Marek Szyprowski <m.szyprowski@samsung.com> Date: Tue, 12 Jan 2021 21:03:16 +0100 Subject: 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 <m.szyprowski@samsung.com> Change-Id: If3723f3aa8570de04e6e753e958ada624e3482fe --- board/amlogic/w400/w400.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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 <asm/arch/sm.h> #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);