Hi FriendlyARM,

Am 15.05.2017 um 03:15 schrieb Andreas Färber:
> diff --git a/board/amlogic/nanopi-k2/nanopi-k2.c 
> b/board/amlogic/nanopi-k2/nanopi-k2.c
> new file mode 100644
> index 0000000000..b61daaa4a7
> --- /dev/null
> +++ b/board/amlogic/nanopi-k2/nanopi-k2.c
> @@ -0,0 +1,54 @@
> +/*
> + * (C) Copyright 2016 Beniamino Galvani <b.galv...@gmail.com>
> + *
> + * SPDX-License-Identifier:  GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/arch/gxbb.h>
> +#include <asm/arch/sm.h>
> +#include <dm/platdata.h>
> +#include <phy.h>
> +
> +#define EFUSE_SN_OFFSET              20
> +#define EFUSE_SN_SIZE                16
> +#define EFUSE_MAC_OFFSET     52
> +#define EFUSE_MAC_SIZE               6
> +
> +int board_init(void)
> +{
> +     return 0;
> +}
> +
> +int misc_init_r(void)
> +{
> +     u8 mac_addr[EFUSE_MAC_SIZE];
> +     ssize_t len;
> +
> +     /* Set RGMII mode */
> +     setbits_le32(GXBB_ETH_REG_0, GXBB_ETH_REG_0_PHY_INTF |
> +                                  GXBB_ETH_REG_0_TX_PHASE(1) |
> +                                  GXBB_ETH_REG_0_TX_RATIO(4) |
> +                                  GXBB_ETH_REG_0_PHY_CLK_EN |
> +                                  GXBB_ETH_REG_0_CLK_EN);
> +
> +     /* Enable power and clock gate */
> +     setbits_le32(GXBB_GCLK_MPEG_1, GXBB_GCLK_MPEG_1_ETH);
> +     clrbits_le32(GXBB_MEM_PD_REG_0, GXBB_MEM_PD_REG_0_ETH_MASK);
> +
> +     /* Reset PHY on GPIOZ_14 */
> +     clrbits_le32(GXBB_GPIO_EN(3), BIT(14));
> +     clrbits_le32(GXBB_GPIO_OUT(3), BIT(14));
> +     mdelay(10);
> +     setbits_le32(GXBB_GPIO_OUT(3), BIT(14));
> +
> +     if (!eth_getenv_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_setenv_enetaddr("ethaddr", mac_addr);

This code copied from odroid-c2 is not working, I always get a random
MAC address.

The downstream U-Boot has no code in board_eth_init() to read the efuse,
unlike Hardkernel's. Is the MAC address not programmed into K2's efuse?

https://github.com/friendlyarm/u-boot/blob/nanopi-k2-v2015.01/board/amlogic/nanopi-k2/eth_setup.c
https://github.com/hardkernel/u-boot/blob/odroidc2-v2015.01/board/hardkernel/odroidc2/odroidc2-eth.c

> +     }
> +
> +     return 0;
> +}
[snip]

Regards,
Andreas

-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to