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

Stefano Babic sbabic at denx.de
Fri Dec 16 09:55:20 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,

>> +	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.

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.

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================


More information about the U-Boot mailing list