public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] add dm9000 eeprom read/write command
@ 2011-08-22 21:37 Eric Jarrige
  2011-08-22 21:55 ` Mike Frysinger
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Eric Jarrige @ 2011-08-22 21:37 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Eric Jarrige <eric.jarrige@armadeus.org>
Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Ben Warren <biggerbadderben@gmail.com>
---
 README                |    1 +
 common/Makefile       |    1 +
 common/cmd_dm9000ee.c |   84 +++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 86 insertions(+), 0 deletions(-)
 create mode 100644 common/cmd_dm9000ee.c

diff --git a/README b/README
index 0886987..c6981bf 100644
--- a/README
+++ b/README
@@ -707,6 +707,7 @@ The following options need to be configured:
 		CONFIG_CMD_DATE		* support for RTC, date/time...
 		CONFIG_CMD_DHCP		* DHCP support
 		CONFIG_CMD_DIAG		* Diagnostics
+		CONFIG_CMD_DM9000EE	  DM9000 external EEPROM support
 		CONFIG_CMD_DS4510	* ds4510 I2C gpio commands
 		CONFIG_CMD_DS4510_INFO	* ds4510 I2C info command
 		CONFIG_CMD_DS4510_MEM	* ds4510 I2C eeprom/sram commansd
diff --git a/common/Makefile b/common/Makefile
index d662468..d22cbac 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -81,6 +81,7 @@ ifdef CONFIG_POST
 COBJS-$(CONFIG_CMD_DIAG) += cmd_diag.o
 endif
 COBJS-$(CONFIG_CMD_DISPLAY) += cmd_display.o
+COBJS-$(CONFIG_CMD_DM9000EE) += cmd_dm9000ee.o
 COBJS-$(CONFIG_CMD_DTT) += cmd_dtt.o
 COBJS-$(CONFIG_CMD_ECHO) += cmd_echo.o
 COBJS-$(CONFIG_ENV_IS_IN_EEPROM) += cmd_eeprom.o
diff --git a/common/cmd_dm9000ee.c b/common/cmd_dm9000ee.c
new file mode 100644
index 0000000..0d53c70
--- /dev/null
+++ b/common/cmd_dm9000ee.c
@@ -0,0 +1,84 @@
+/*
+ * (C) Copyright 2008-2011 Armadeus Project
+ * (C) Copyright 2007
+ * Stefano Babic, DENX Software Engineering, sbabic at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <command.h>
+#include <dm9000.h>
+
+#if (!defined(CONFIG_DM9000_NO_SROM) && defined(CONFIG_DRIVER_DM9000))
+
+static int do_read_dm9000_eeprom(cmd_tbl_t *cmdtp, int flag, int argc,
+				 char *const argv[])
+{
+	unsigned int i;
+	u8 data[2];
+
+	for (i = 0; i < 0x40; i++) {
+		if (!(i % 0x10))
+			printf("\n%08x:", i);
+		dm9000_read_srom_word(i, data);
+		printf(" %02x%02x", data[1], data[0]);
+	}
+	printf("\n");
+	return 0;
+}
+
+static int do_write_dm9000_eeprom(cmd_tbl_t *cmdtp, int flag, int argc,
+				  char *const argv[])
+{
+	unsigned long offset, value;
+
+	if (argc < 4)
+		return cmd_usage(cmdtp);
+
+	strict_strtoul(argv[2], 16, &offset);
+	strict_strtoul(argv[3], 16, &value);
+	if (offset > 0x40) {
+		printf("Wrong offset : 0x%lx\n", offset);
+		return cmd_usage(cmdtp);
+	}
+	dm9000_write_srom_word(offset, value);
+	return 0;
+}
+
+int do_dm9000_eeprom(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
+{
+	if (argc < 2)
+		return cmd_usage(cmdtp);
+
+	if (strcmp(argv[1], "read") == 0)
+		return do_read_dm9000_eeprom(cmdtp, flag, argc, argv);
+	else if (strcmp(argv[1], "write") == 0)
+		return do_write_dm9000_eeprom(cmdtp, flag, argc, argv);
+	else
+		return cmd_usage(cmdtp);
+}
+
+U_BOOT_CMD(dm9000ee, 4, 1, do_dm9000_eeprom,
+	   "Read/Write eeprom connected to Ethernet Controller",
+	   "\ndm9000ee write <word offset> <value> \n"
+	   "\tdm9000ee read \n"
+	   "\tword:\t\t00-02 : MAC Address\n"
+	   "\t\t\t03-07 : DM9000 Configuration\n" "\t\t\t08-63 : User data");
+#endif /* !CONFIG_DM9000_NO_SROM && CONFIG_DRIVER_DM9000 */

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH] add dm9000 eeprom read/write command
  2011-08-22 21:37 [U-Boot] [PATCH] add dm9000 eeprom read/write command Eric Jarrige
@ 2011-08-22 21:55 ` Mike Frysinger
  2011-08-23  5:15   ` Eric Jarrige
  2011-08-23  9:34 ` Stefano Babic
  2011-10-06 21:49 ` Wolfgang Denk
  2 siblings, 1 reply; 8+ messages in thread
From: Mike Frysinger @ 2011-08-22 21:55 UTC (permalink / raw)
  To: u-boot

On Monday, August 22, 2011 17:37:42 Eric Jarrige wrote:
> +#if (!defined(CONFIG_DM9000_NO_SROM) && defined(CONFIG_DRIVER_DM9000))

why is this necessary ?
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20110822/c6153658/attachment.pgp 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH] add dm9000 eeprom read/write command
  2011-08-22 21:55 ` Mike Frysinger
@ 2011-08-23  5:15   ` Eric Jarrige
  2011-08-23 13:42     ` Mike Frysinger
  0 siblings, 1 reply; 8+ messages in thread
From: Eric Jarrige @ 2011-08-23  5:15 UTC (permalink / raw)
  To: u-boot

Hi Mike,

On 22 ao?t 2011, at 23:55, Mike Frysinger wrote:

> On Monday, August 22, 2011 17:37:42 Eric Jarrige wrote:
>> +#if (!defined(CONFIG_DM9000_NO_SROM) && defined(CONFIG_DRIVER_DM9000))
> 
> why is this necessary ?
> -mike

the methods dm9000_read_srom_word()/dm9000_write_srom_word() need these conditions to be compiled in dm9000x.c
Therefore this avoid dead code and/or compilation failure if these conditions are not met.

Best regards,
Eric

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH] add dm9000 eeprom read/write command
  2011-08-22 21:37 [U-Boot] [PATCH] add dm9000 eeprom read/write command Eric Jarrige
  2011-08-22 21:55 ` Mike Frysinger
@ 2011-08-23  9:34 ` Stefano Babic
  2011-10-06 21:49 ` Wolfgang Denk
  2 siblings, 0 replies; 8+ messages in thread
From: Stefano Babic @ 2011-08-23  9:34 UTC (permalink / raw)
  To: u-boot

On 08/22/2011 11:37 PM, Eric Jarrige wrote:
> Signed-off-by: Eric Jarrige <eric.jarrige@armadeus.org>
> Signed-off-by: Stefano Babic <sbabic@denx.de>
> CC: Ben Warren <biggerbadderben@gmail.com>

I think we should drop Ben's name as maintainer for the network because
he retired some times ago, but his name is still in the maintainer list.

Wolfgang is the maintainer at the moment, I added him in CC.

> ---
>  README                |    1 +
>  common/Makefile       |    1 +
>  common/cmd_dm9000ee.c |   84 +++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 86 insertions(+), 0 deletions(-)
>  create mode 100644 common/cmd_dm9000ee.c

Why do not we add this code simply to the DM9000 driver ? I think it
belongs to the driver and that is the right place to put this stuff.

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
=====================================================================

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH] add dm9000 eeprom read/write command
  2011-08-23  5:15   ` Eric Jarrige
@ 2011-08-23 13:42     ` Mike Frysinger
  2011-08-23 14:21       ` Stefano Babic
  0 siblings, 1 reply; 8+ messages in thread
From: Mike Frysinger @ 2011-08-23 13:42 UTC (permalink / raw)
  To: u-boot

On Tuesday, August 23, 2011 01:15:25 Eric Jarrige wrote:
> On 22 ao?t 2011, at 23:55, Mike Frysinger wrote:
> > On Monday, August 22, 2011 17:37:42 Eric Jarrige wrote:
> >> +#if (!defined(CONFIG_DM9000_NO_SROM) && defined(CONFIG_DRIVER_DM9000))
> > 
> > why is this necessary ?
> 
> the methods dm9000_read_srom_word()/dm9000_write_srom_word() need these
> conditions to be compiled in dm9000x.c Therefore this avoid dead code
> and/or compilation failure if these conditions are not met.

my point is that it is user error to select CONFIG_CMD_DM9000EE but not select 
the DM9000 settings.  in your case, the user silently gets a build that makes 
no sense.  in my case, they're forced to fix things.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20110823/87b1505c/attachment.pgp 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH] add dm9000 eeprom read/write command
  2011-08-23 13:42     ` Mike Frysinger
@ 2011-08-23 14:21       ` Stefano Babic
  2011-08-24  5:36         ` Eric Jarrige
  0 siblings, 1 reply; 8+ messages in thread
From: Stefano Babic @ 2011-08-23 14:21 UTC (permalink / raw)
  To: u-boot

On 08/23/2011 03:42 PM, Mike Frysinger wrote:
> On Tuesday, August 23, 2011 01:15:25 Eric Jarrige wrote:
>> On 22 ao?t 2011, at 23:55, Mike Frysinger wrote:
>>> On Monday, August 22, 2011 17:37:42 Eric Jarrige wrote:
>>>> +#if (!defined(CONFIG_DM9000_NO_SROM) && defined(CONFIG_DRIVER_DM9000))
>>>
>>> why is this necessary ?
>>
>> the methods dm9000_read_srom_word()/dm9000_write_srom_word() need these
>> conditions to be compiled in dm9000x.c Therefore this avoid dead code
>> and/or compilation failure if these conditions are not met.
> 
> my point is that it is user error to select CONFIG_CMD_DM9000EE but not select 
> the DM9000 settings.  in your case, the user silently gets a build that makes 
> no sense.  in my case, they're forced to fix things.

Agree. This is also my point to move this code inside the driver itself,
where CONFIG_DRIVER_DM9000 is set (or it is not compiled).

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
=====================================================================

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH] add dm9000 eeprom read/write command
  2011-08-23 14:21       ` Stefano Babic
@ 2011-08-24  5:36         ` Eric Jarrige
  0 siblings, 0 replies; 8+ messages in thread
From: Eric Jarrige @ 2011-08-24  5:36 UTC (permalink / raw)
  To: u-boot


On 23 ao?t 2011, at 16:21, Stefano Babic wrote:

> On 08/23/2011 03:42 PM, Mike Frysinger wrote:
>> On Tuesday, August 23, 2011 01:15:25 Eric Jarrige wrote:
>>> On 22 ao?t 2011, at 23:55, Mike Frysinger wrote:
>>>> On Monday, August 22, 2011 17:37:42 Eric Jarrige wrote:
>>>>> +#if (!defined(CONFIG_DM9000_NO_SROM) && defined(CONFIG_DRIVER_DM9000))
>>>> 
>>>> why is this necessary ?
>>> 
>>> the methods dm9000_read_srom_word()/dm9000_write_srom_word() need these
>>> conditions to be compiled in dm9000x.c Therefore this avoid dead code
>>> and/or compilation failure if these conditions are not met.
>> 
>> my point is that it is user error to select CONFIG_CMD_DM9000EE but not select 
>> the DM9000 settings.  in your case, the user silently gets a build that makes 
>> no sense.  in my case, they're forced to fix things.
> 
> Agree. This is also my point to move this code inside the driver itself,
> where CONFIG_DRIVER_DM9000 is set (or it is not compiled).
> 

That makes sense - I can remove this line.

Best regards,
Eric

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH] add dm9000 eeprom read/write command
  2011-08-22 21:37 [U-Boot] [PATCH] add dm9000 eeprom read/write command Eric Jarrige
  2011-08-22 21:55 ` Mike Frysinger
  2011-08-23  9:34 ` Stefano Babic
@ 2011-10-06 21:49 ` Wolfgang Denk
  2 siblings, 0 replies; 8+ messages in thread
From: Wolfgang Denk @ 2011-10-06 21:49 UTC (permalink / raw)
  To: u-boot

Dear Eric Jarrige,

In message <20110822213742.28083.69514.stgit@shuttle2.etheralp.ch> you wrote:
> Signed-off-by: Eric Jarrige <eric.jarrige@armadeus.org>
> Signed-off-by: Stefano Babic <sbabic@denx.de>
> CC: Ben Warren <biggerbadderben@gmail.com>
> ---
>  README                |    1 +
>  common/Makefile       |    1 +
>  common/cmd_dm9000ee.c |   84 +++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 86 insertions(+), 0 deletions(-)
>  create mode 100644 common/cmd_dm9000ee.c

Checkpatch says:

total: 0 errors, 2 warnings, 98 lines checked

Please clean up and resubmit.  Thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If you can't beat it or corrupt it, you pretend it was your  idea  in
the first place.                 - Terry Pratchett, _Guards! Guards!_

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-10-06 21:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-22 21:37 [U-Boot] [PATCH] add dm9000 eeprom read/write command Eric Jarrige
2011-08-22 21:55 ` Mike Frysinger
2011-08-23  5:15   ` Eric Jarrige
2011-08-23 13:42     ` Mike Frysinger
2011-08-23 14:21       ` Stefano Babic
2011-08-24  5:36         ` Eric Jarrige
2011-08-23  9:34 ` Stefano Babic
2011-10-06 21:49 ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox