[U-Boot] setting Ethernet address

Benedict Hewson benedict at hewson-venieri.com
Sat Mar 15 08:08:54 CET 2014


On Friday 14 Mar 2014 15:52:29 Fabio Estevam wrote:
> On Fri, Mar 14, 2014 at 3:29 PM, Benedict Hewson
> 
> <benedict at hewson-venieri.com> wrote:
> > I am trying to get network support working on the Embest imx6 Marsboard.
> > I have been reading through the various imx6 boards and it appears that
> > some at least store a MAC address in the fuse memory.
> > 
> > This does not appear to be set on the MarSboard - the fuse memory contains
> > 0. The original 2009 version used the ethaddr environment variable.
> > If I try to include this in the config header file either as part of the
> > CONFIG_EXTRA_ENV_SETTINGS -
> 
> I would suggest you to add support for this board in mainline U-boot
> and the MAC address will be read from fuse without problems.
> 

I am in the process of adding this to the mainline . I did submit a patch a 
few days ago, but much too early and it needed a lot of work as there was a 
lot of dead code, wrongly formatted comments and out of date CONFIG options as 
it was mostly based on 2009 uboot.

I have cleaned it up and removed the various CONFIG options which do not 
appear anywhere else in uboot. Just a few things left to sort out with 
networking.

Based on the mx6sabre configs I have tried inlcuding the config options

#define CONFIG_CMD_FUSE
#ifdef CONFIG_CMD_FUSE
#define CONFIG_MXC_OCOTP
#endif

and also 

#define CONFIG_CMD_PING
#define CONFIG_CMD_DHCP
#define CONFIG_CMD_MII
#define CONFIG_CMD_NET
#define CONFIG_FEC_MXC
#define CONFIG_MII
#define IMX_FEC_BASE			ENET_BASE_ADDR
#define CONFIG_FEC_XCV_TYPE		RGMII
#define CONFIG_ETHPRIME			"FEC"
#define CONFIG_FEC_MXC_PHYADDR		4

Anyway I get a can't set MAC address warning when booting.

In the fec_get_hwaddr() function I have printed out the values returned by 
imx_get_mac_from_fuse() and they are all 0.

I have read in the README.imx6 file that the MAC address is stored in the fuse 
bank. The default reset value according to the datasheet is 0, so is this 
programmed by Freescale or the board vendor ?  


Do I need to add anything more than CONFIG_CMD_FUSE & CONFIG_MXC_OCOTP to make 
the reading of the fuse memory work ?

regards
Ben








More information about the U-Boot mailing list