Message ID | 1320787874-4382-1-git-send-email-simon@sequanux.org |
---|---|
State | Awaiting Upstream |
Delegated to: | Prafulla Wadaskar |
Headers | show |
Hi Prafulla, On Tue, Nov 08, 2011 at 10:31:14PM +0100, Simon Guinot wrote: > From: Simon Guinot <simon.guinot@sequanux.org> > > Signed-off-by: Simon Guinot <simon.guinot@sequanux.org> > --- > > Changes in v2: > - fix asm-offsets.s removal > - make MAC address setup conditional to CONFIG_SYS_I2C_EEPROM_ADDR > > board/LaCie/netspace_v2/netspace_v2.c | 43 +++++++++++++++++++++++++++++++++ > include/configs/netspace_v2.h | 1 + > 2 files changed, 44 insertions(+), 0 deletions(-) Do you want me for some other modifications on this patch ? Regards, Simon > > diff --git a/board/LaCie/netspace_v2/netspace_v2.c b/board/LaCie/netspace_v2/netspace_v2.c > index 7c4b15e..6938a43 100644 > --- a/board/LaCie/netspace_v2/netspace_v2.c > +++ b/board/LaCie/netspace_v2/netspace_v2.c > @@ -24,6 +24,7 @@ > #include <miiphy.h> > #include <netdev.h> > #include <command.h> > +#include <i2c.h> > #include <asm/arch/cpu.h> > #include <asm/arch/kirkwood.h> > #include <asm/arch/mpp.h> > @@ -89,6 +90,48 @@ int board_init(void) > return 0; > } > > +int misc_init_r(void) > +{ > +#if defined(CONFIG_CMD_I2C) && defined(CONFIG_SYS_I2C_EEPROM_ADDR) > + if (!getenv("ethaddr")) { > + ushort version; > + uchar mac[6]; > + int ret; > + > + /* I2C-0 for on-board EEPROM */ > + i2c_set_bus_num(0); > + > + /* Check layout version for EEPROM data */ > + ret = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0, > + CONFIG_SYS_I2C_EEPROM_ADDR_LEN, > + (uchar *) &version, 2); > + if (ret != 0) { > + printf("Error: failed to read I2C EEPROM @%02x\n", > + CONFIG_SYS_I2C_EEPROM_ADDR); > + return ret; > + } > + version = be16_to_cpu(version); > + if (version < 1 || version > 3) { > + printf("Error: unknown version %d for EEPROM data\n", > + version); > + return -1; > + } > + > + /* Read Ethernet MAC address from EEPROM */ > + ret = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 2, > + CONFIG_SYS_I2C_EEPROM_ADDR_LEN, mac, 6); > + if (ret != 0) { > + printf("Error: failed to read I2C EEPROM @%02x\n", > + CONFIG_SYS_I2C_EEPROM_ADDR); > + return ret; > + } > + eth_setenv_enetaddr("ethaddr", mac); > + } > +#endif /* CONFIG_CMD_I2C && CONFIG_SYS_I2C_EEPROM_ADDR */ > + > + return 0; > +} > + > void mv_phy_88e1116_init(char *name) > { > u16 reg; > diff --git a/include/configs/netspace_v2.h b/include/configs/netspace_v2.h > index bb27ed7..1ddf4b4 100644 > --- a/include/configs/netspace_v2.h > +++ b/include/configs/netspace_v2.h > @@ -87,6 +87,7 @@ > * Ethernet Driver configuration > */ > #ifdef CONFIG_CMD_NET > +#define CONFIG_MISC_INIT_R /* Call misc_init_r() to initialize MAC address */ > #define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */ > #define CONFIG_NETCONSOLE > #endif > -- > 1.7.5.1 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
> -----Original Message----- > From: Simon Guinot [mailto:simon@sequanux.org] > Sent: Wednesday, November 16, 2011 4:02 PM > To: Prafulla Wadaskar > Cc: u-boot@lists.denx.de > Subject: Re: [U-Boot] [PATCH v2] netspace_v2: Read Ethernet MAC > address from EEPROM > > Hi Prafulla, > > On Tue, Nov 08, 2011 at 10:31:14PM +0100, Simon Guinot wrote: > > From: Simon Guinot <simon.guinot@sequanux.org> > > > > Signed-off-by: Simon Guinot <simon.guinot@sequanux.org> > > --- > > > > Changes in v2: > > - fix asm-offsets.s removal > > - make MAC address setup conditional to > CONFIG_SYS_I2C_EEPROM_ADDR > > > > board/LaCie/netspace_v2/netspace_v2.c | 43 > +++++++++++++++++++++++++++++++++ > > include/configs/netspace_v2.h | 1 + > > 2 files changed, 44 insertions(+), 0 deletions(-) > > Do you want me for some other modifications on this patch ? No I will pull it. Regards.. Prafulla . .
> -----Original Message----- > From: Simon Guinot [mailto:simon@sequanux.org] > Sent: Wednesday, November 16, 2011 4:02 PM > To: Prafulla Wadaskar > Cc: u-boot@lists.denx.de > Subject: Re: [U-Boot] [PATCH v2] netspace_v2: Read Ethernet MAC > address from EEPROM > > Hi Prafulla, > > On Tue, Nov 08, 2011 at 10:31:14PM +0100, Simon Guinot wrote: > > From: Simon Guinot <simon.guinot@sequanux.org> > > > > Signed-off-by: Simon Guinot <simon.guinot@sequanux.org> > > --- > > > > Changes in v2: > > - fix asm-offsets.s removal > > - make MAC address setup conditional to > CONFIG_SYS_I2C_EEPROM_ADDR > > > > board/LaCie/netspace_v2/netspace_v2.c | 43 > +++++++++++++++++++++++++++++++++ > > include/configs/netspace_v2.h | 1 + > > 2 files changed, 44 insertions(+), 0 deletions(-) > > Do you want me for some other modifications on this patch ? > > Regards, > > Simon > > > > > diff --git a/board/LaCie/netspace_v2/netspace_v2.c > b/board/LaCie/netspace_v2/netspace_v2.c > > index 7c4b15e..6938a43 100644 > > --- a/board/LaCie/netspace_v2/netspace_v2.c > > +++ b/board/LaCie/netspace_v2/netspace_v2.c > > @@ -24,6 +24,7 @@ > > #include <miiphy.h> > > #include <netdev.h> > > #include <command.h> > > +#include <i2c.h> > > #include <asm/arch/cpu.h> > > #include <asm/arch/kirkwood.h> > > #include <asm/arch/mpp.h> > > @@ -89,6 +90,48 @@ int board_init(void) > > return 0; > > } > > > > +int misc_init_r(void) > > +{ > > +#if defined(CONFIG_CMD_I2C) && > defined(CONFIG_SYS_I2C_EEPROM_ADDR) > > + if (!getenv("ethaddr")) { > > + ushort version; > > + uchar mac[6]; > > + int ret; > > + > > + /* I2C-0 for on-board EEPROM */ > > + i2c_set_bus_num(0); > > + > > + /* Check layout version for EEPROM data */ > > + ret = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0, > > + CONFIG_SYS_I2C_EEPROM_ADDR_LEN, > > + (uchar *) &version, 2); > > + if (ret != 0) { > > + printf("Error: failed to read I2C EEPROM @%02x\n", > > + CONFIG_SYS_I2C_EEPROM_ADDR); > > + return ret; > > + } > > + version = be16_to_cpu(version); > > + if (version < 1 || version > 3) { > > + printf("Error: unknown version %d for EEPROM > data\n", > > + version); > > + return -1; > > + } > > + > > + /* Read Ethernet MAC address from EEPROM */ > > + ret = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 2, > > + CONFIG_SYS_I2C_EEPROM_ADDR_LEN, mac, 6); > > + if (ret != 0) { > > + printf("Error: failed to read I2C EEPROM @%02x\n", > > + CONFIG_SYS_I2C_EEPROM_ADDR); > > + return ret; > > + } > > + eth_setenv_enetaddr("ethaddr", mac); > > + } > > +#endif /* CONFIG_CMD_I2C && CONFIG_SYS_I2C_EEPROM_ADDR */ > > + > > + return 0; > > +} > > + > > void mv_phy_88e1116_init(char *name) > > { > > u16 reg; > > diff --git a/include/configs/netspace_v2.h > b/include/configs/netspace_v2.h > > index bb27ed7..1ddf4b4 100644 > > --- a/include/configs/netspace_v2.h > > +++ b/include/configs/netspace_v2.h > > @@ -87,6 +87,7 @@ > > * Ethernet Driver configuration > > */ > > #ifdef CONFIG_CMD_NET > > +#define CONFIG_MISC_INIT_R /* Call misc_init_r() to > initialize MAC address */ > > #define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only > */ > > #define CONFIG_NETCONSOLE > > #endif > > -- > > 1.7.5.1 > > Applied to u-boot-marvell.git master branch Regards.. Prafulla . . .
diff --git a/board/LaCie/netspace_v2/netspace_v2.c b/board/LaCie/netspace_v2/netspace_v2.c index 7c4b15e..6938a43 100644 --- a/board/LaCie/netspace_v2/netspace_v2.c +++ b/board/LaCie/netspace_v2/netspace_v2.c @@ -24,6 +24,7 @@ #include <miiphy.h> #include <netdev.h> #include <command.h> +#include <i2c.h> #include <asm/arch/cpu.h> #include <asm/arch/kirkwood.h> #include <asm/arch/mpp.h> @@ -89,6 +90,48 @@ int board_init(void) return 0; } +int misc_init_r(void) +{ +#if defined(CONFIG_CMD_I2C) && defined(CONFIG_SYS_I2C_EEPROM_ADDR) + if (!getenv("ethaddr")) { + ushort version; + uchar mac[6]; + int ret; + + /* I2C-0 for on-board EEPROM */ + i2c_set_bus_num(0); + + /* Check layout version for EEPROM data */ + ret = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0, + CONFIG_SYS_I2C_EEPROM_ADDR_LEN, + (uchar *) &version, 2); + if (ret != 0) { + printf("Error: failed to read I2C EEPROM @%02x\n", + CONFIG_SYS_I2C_EEPROM_ADDR); + return ret; + } + version = be16_to_cpu(version); + if (version < 1 || version > 3) { + printf("Error: unknown version %d for EEPROM data\n", + version); + return -1; + } + + /* Read Ethernet MAC address from EEPROM */ + ret = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 2, + CONFIG_SYS_I2C_EEPROM_ADDR_LEN, mac, 6); + if (ret != 0) { + printf("Error: failed to read I2C EEPROM @%02x\n", + CONFIG_SYS_I2C_EEPROM_ADDR); + return ret; + } + eth_setenv_enetaddr("ethaddr", mac); + } +#endif /* CONFIG_CMD_I2C && CONFIG_SYS_I2C_EEPROM_ADDR */ + + return 0; +} + void mv_phy_88e1116_init(char *name) { u16 reg; diff --git a/include/configs/netspace_v2.h b/include/configs/netspace_v2.h index bb27ed7..1ddf4b4 100644 --- a/include/configs/netspace_v2.h +++ b/include/configs/netspace_v2.h @@ -87,6 +87,7 @@ * Ethernet Driver configuration */ #ifdef CONFIG_CMD_NET +#define CONFIG_MISC_INIT_R /* Call misc_init_r() to initialize MAC address */ #define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */ #define CONFIG_NETCONSOLE #endif