From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Tue, 20 Dec 2011 15:39:17 +0100 Subject: [U-Boot] [PATCH v6 2/4] mx28: Allow to set MAC address for the two FECs In-Reply-To: <1324389212-9208-2-git-send-email-festevam@gmail.com> References: <1324389212-9208-1-git-send-email-festevam@gmail.com> <1324389212-9208-2-git-send-email-festevam@gmail.com> Message-ID: <4EF09E15.1090404@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 20/12/2011 14:53, Fabio Estevam wrote: > MX28 has two built-in FECs (Fast Ethernet Controller). > > OCOTP register can be used to only store 4 bytes of MAC addresses. > > In order to workaround this limitation, let the MAC address of FEC1 be > the FEC0 address plus one. > > Signed-off-by: Fabio Estevam > --- Hi Fabio, > Changes since v5: > No changes. Newly introduced on this series > > arch/arm/cpu/arm926ejs/mx28/mx28.c | 8 ++++++-- > drivers/net/fec_mxc.c | 16 ++++++++++++++++ > drivers/net/fec_mxc.h | 1 + > 3 files changed, 23 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/cpu/arm926ejs/mx28/mx28.c b/arch/arm/cpu/arm926ejs/mx28/mx28.c > index a25814e..79b4001 100644 > --- a/arch/arm/cpu/arm926ejs/mx28/mx28.c > +++ b/arch/arm/cpu/arm926ejs/mx28/mx28.c > @@ -227,7 +227,7 @@ void set_mac_vendor(char *mac) > > #define MXS_OCOTP_MAX_TIMEOUT 1000000 > > -void imx_get_mac_from_fuse(char *mac) > +void mx28_get_mac_from_fuse(int dev_id, char *mac) > { but imx_get_mac_from_fuse() is common to all IMX SOCs. Why do we need another name only for MX28 ? I think it is better to adjust imx_get_mac_from_fuse() to allow a second parameter (dev_id), that can be ignored in other SOCs implementations. > struct mx28_ocotp_regs *ocotp_regs = > (struct mx28_ocotp_regs *)MXS_OCOTP_BASE; > @@ -249,10 +249,14 @@ void imx_get_mac_from_fuse(char *mac) > mac[3] = (data >> 16) & 0xff; > mac[4] = (data >> 8) & 0xff; > mac[5] = data & 0xff; > + /* Assume that FEC1 MAC address is MAC0 + 1 */ > + if (dev_id == 1) > + mac[5]+= 1; > + > set_mac_vendor(mac); Should be not better that the additional mac is computed by the (weak) board function ? Then it is responsibility of the board and his maintainer to change (if needed) the MAC for the second interface. 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 =====================================================================