[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