From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Fri, 16 Dec 2011 10:53:10 +0100 Subject: [U-Boot] [PATCH v2 1/3] mx28: Let imx_get_mac_from_fuse be common for mx28 In-Reply-To: <4EEB0778.8090301@denx.de> References: <1323966067-28333-1-git-send-email-fabio.estevam@freescale.com> <201112151822.49672.marek.vasut@gmail.com> <4EEB0778.8090301@denx.de> Message-ID: <201112161053.10522.marek.vasut@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de > 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 > > 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