| // SPDX-License-Identifier: GPL-2.0+ |
| * Copyright (C) 2016 BayLibre, SAS |
| * Author: Neil Armstrong <narmstrong@baylibre.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]; |
| meson_eth_init(PHY_INTERFACE_MODE_RMII, |
| MESON_USE_INTERNAL_RMII_PHY); |
| 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); |
| meson_generate_serial_ethaddr(); |
| if (!env_get("serial#")) { |
| len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial, |
| if (len == EFUSE_SN_SIZE) |
| env_set("serial#", serial); |