From: Marek Vasut <marek.vasut@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/3] mx28: Let imx_get_mac_from_fuse be common for mx28
Date: Fri, 16 Dec 2011 11:39:47 +0100 [thread overview]
Message-ID: <201112161139.47375.marek.vasut@gmail.com> (raw)
In-Reply-To: <4EEB17A9.10605@denx.de>
> On 16/12/2011 10:53, Marek Vasut wrote:
> >> 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@freescale.com>
>
> Hi Marek,
Hi Stefano,
DISCLAIMER: I'm terribly tired today, had early class.
>
> >>> 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.
>
> This means ethaddr overwrites the values read from fuses - why do we
> need the fuses ?
You disable fuses and use ethaddr. Why do we need them? We don't, but the
hardware is in the CPU and someone might use it so let's support it.
>
> >> 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?
>
> In a standard way, the environment must be adapted for each board to
> store the MAC address in the ethaddr variable. The reason to get the MAC
> directly from the hardware is that it is not required a specific initial
> setup for each board, and that simplifies the production and the
> delivery of the boards.
Sure, but the OCOTP capacity here is limited. But there was approach from
Fabio/me how to make the OCOTP good enough for two NICs even.
* The idea is to let user configure the top 2 bytes per-device (which is the
most likely case).
* Introduce mac_modify(int fec, char *mac) function, which will be called from
imx_get_mac_from_fuse()
* The function will adjust the MAC, for example by setting top two bytes to
preconfigured data, bottom four bytes from OCOTP and the last bit of the MAC
from "int fec", which is 0 for FEC0 and 1 for FEC1. This should be sufficient
for most people.
* The function will be weak so it can be overridden to your hearts content.
>
> If you rely on ethaddr, than we do not need imx_get_mac_from_fuse() at
> all, and the MAC can be set to zero, because in this case the ethaddr
> value is used - but we lose the feature.
>
> The reason why imx_get_mac_from_fuse was introduce is to have an
> automatic mechanism to set up the MAC without any customization.
>
> Best regards,
> Stefano Babic
Cheers!
M
next prev parent reply other threads:[~2011-12-16 10:39 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-15 16:21 [U-Boot] [PATCH v2 1/3] mx28: Let imx_get_mac_from_fuse be common for mx28 Fabio Estevam
2011-12-15 16:21 ` [U-Boot] [PATCH v2 2/3] mx28: Let dram_init " Fabio Estevam
2011-12-15 17:23 ` Marek Vasut
2011-12-15 16:21 ` [U-Boot] [PATCH v2 3/3] mx28evk: Add initial support for MX28EVK board Fabio Estevam
2011-12-15 16:42 ` Stefano Babic
2011-12-15 16:49 ` Fabio Estevam
2011-12-15 16:34 ` [U-Boot] [PATCH v3 1/3] mx28: Let imx_get_mac_from_fuse be common for mx28 Fabio Estevam
2011-12-15 17:24 ` Marek Vasut
2011-12-15 17:53 ` Stefano Babic
2011-12-17 19:57 ` Wolfgang Denk
2011-12-15 16:34 ` [U-Boot] [PATCH v3 2/3] mx28: Let dram_init " Fabio Estevam
2011-12-15 16:34 ` [U-Boot] [PATCH v3 3/3] mx28evk: Add initial support for MX28EVK board Fabio Estevam
2011-12-15 17:25 ` Marek Vasut
2011-12-15 20:42 ` Fabio Estevam
2011-12-15 17:22 ` [U-Boot] [PATCH v2 1/3] mx28: Let imx_get_mac_from_fuse be common for mx28 Marek Vasut
2011-12-16 8:55 ` Stefano Babic
2011-12-16 9:53 ` Marek Vasut
2011-12-16 10:04 ` Stefano Babic
2011-12-16 10:39 ` Marek Vasut [this message]
2011-12-16 10:55 ` Stefano Babic
2011-12-16 10:56 ` Marek Vasut
2011-12-15 20:38 ` [U-Boot] [PATCH v4 " Fabio Estevam
2011-12-15 20:38 ` [U-Boot] [PATCH v4 2/3] mx28: Let dram_init " Fabio Estevam
2011-12-15 20:38 ` [U-Boot] [PATCH v4 3/3] mx28evk: Add initial support for MX28EVK board Fabio Estevam
2011-12-15 22:07 ` [U-Boot] [PATCH v5 1/3] mx28: Let imx_get_mac_from_fuse be common for mx28 Fabio Estevam
2011-12-16 9:49 ` Marek Vasut
2011-12-15 22:07 ` [U-Boot] [PATCH v5 2/3] mx28: Let dram_init " Fabio Estevam
2011-12-16 8:57 ` Stefano Babic
2011-12-15 22:07 ` [U-Boot] [PATCH v5 3/3] mx28evk: Add initial support for MX28EVK board Fabio Estevam
2011-12-16 9:02 ` Stefano Babic
2011-12-16 9:51 ` Marek Vasut
2011-12-16 14:55 ` Veli-Pekka Peltola
2011-12-17 2:13 ` Fabio Estevam
2011-12-17 3:17 ` Marek Vasut
2011-12-19 14:10 ` Veli-Pekka Peltola
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201112161139.47375.marek.vasut@gmail.com \
--to=marek.vasut@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox