[U-Boot] [PATCH v2 1/3] mx28: Let imx_get_mac_from_fuse be common for mx28

Marek Vasut marek.vasut at gmail.com
Fri Dec 16 10:53:10 CET 2011


> On 15/12/2011 18:22, Marek Vasut wrote:
> >> Let imx_get_mac_from_fuse function be a common function, so that other
> >> mx28 boards can reuse it.
> >> 
> >> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> 
> Hi Marek,

Hi Stefano,

> 
> >> +	writel(OCOTP_CTRL_RD_BANK_OPEN, &ocotp_regs->hw_ocotp_ctrl_set);
> >> +
> >> +	if (mx28_wait_mask_clr(&ocotp_regs->hw_ocotp_ctrl_reg,
> >> OCOTP_CTRL_BUSY, +				MXS_OCOTP_MAX_TIMEOUT)) {
> >> +		puts("MXS FEC: Can't get MAC from OCOTP\n");
> >> +		return;
> >> +	}
> >> +
> >> +	data = readl(&ocotp_regs->hw_ocotp_cust0);
> >> +
> >> +	mac[0] = 0x00;
> >> +	mac[1] = 0x04;
> > 
> > Be careful here. 0x00 0x04 prefix might not be correct for all cases!
> 
> But to be honest, it seems they are correct for the MX28EVK and not for
> the M28EVK. The M28EVK and the M28 module are delivered with their own
> MAC address that does not belong to the Freescale's range.
> 
> As far as I can see, the M28EVK starts with a Freescale's MAC, and then
> the DENX MAC address (Vendor ID C0:E5:4E) is set later to the correct
> value when Linux boots.

It's actually set even in uboot by ethaddr and eth1addr. This is the default 
behaviour.

> 
> I can understand this feature in the SOC as a way to set the LSBs of the
> MAC address, but leaving to the customer a way to set its own vendor id,
> if he bought it.
> 
> What about to add a weak function (board_set_mac_vendor, maybe ?) that
> can be called at this point to set the vendor id ? The default behavior
> should be to set the Freescale's vendor id.

ethaddr and eth1addr is insufficient?

M


More information about the U-Boot mailing list