| // SPDX-License-Identifier: GPL-2.0+ |
| * (C) Copyright 2016 Beniamino Galvani <b.galvani@gmail.com> |
| #include <asm/arch/eth.h> |
| #include <asm/arch/mem.h> |
| #define EFUSE_SN_OFFSET 20 |
| #define EFUSE_MAC_OFFSET 52 |
| u8 mac_addr[EFUSE_MAC_SIZE]; |
| char serial[EFUSE_SN_SIZE]; |
| if (!eth_env_get_enetaddr("ethaddr", mac_addr)) { |
| len = meson_sm_read_efuse(EFUSE_MAC_OFFSET, |
| mac_addr, EFUSE_MAC_SIZE); |
| if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr)) |
| eth_env_set_enetaddr("ethaddr", mac_addr); |
| if (!env_get("serial#")) { |
| len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial, |
| if (len == EFUSE_SN_SIZE) |
| env_set("serial#", serial); |