[U-Boot] [PATCH v1 16/21] display5: net: Add function to read ethaddr from iMX6 fuses

Joe Hershberger joe.hershberger at ni.com
Tue May 15 21:16:13 UTC 2018


Hi Lukasz,

On Fri, May 11, 2018 at 9:51 AM, Lukasz Majewski <lukma at denx.de> wrote:
> Signed-off-by: Lukasz Majewski <lukma at denx.de>
> ---
>
>  board/liebherr/display5/display5.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/board/liebherr/display5/display5.c b/board/liebherr/display5/display5.c
> index 4bade476a5..a3deba216c 100644
> --- a/board/liebherr/display5/display5.c
> +++ b/board/liebherr/display5/display5.c
> @@ -254,6 +254,25 @@ static void setup_iomux_enet(void)
>         gpio_direction_input(IMX_GPIO_NR(1, 28)); /*INT#_GBE*/
>  }
>
> +static int setup_mac_from_fuse(void)
> +{
> +       unsigned char enetaddr[6];
> +       int ret;
> +
> +       ret = eth_env_get_enetaddr("ethaddr", enetaddr);
> +       if (ret)        /* ethaddr is already set */
> +               return 0;
> +
> +       imx_get_mac_from_fuse(0, enetaddr);

Generally this should be registered as a read_rom_hwaddr handler.

Then you won't be recreating the logic around what to do with it.

> +
> +       if (is_valid_ethaddr(enetaddr)) {
> +               eth_env_set_enetaddr("ethaddr", enetaddr);
> +               return 0;
> +       }
> +
> +       return 0;
> +}
> +
>  int board_eth_init(bd_t *bd)
>  {
>         struct phy_device *phydev;
> @@ -268,6 +287,8 @@ int board_eth_init(bd_t *bd)
>         if (ret)
>                 return ret;
>
> +       setup_mac_from_fuse();
> +
>         bus = fec_get_miibus(IMX_FEC_BASE, -1);
>         if (!bus)
>                 return -ENODEV;
> --
> 2.11.0
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot


More information about the U-Boot mailing list