From: Remy Bohmer <linux@bohmer.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/1] Add config option for disabling DM9000-SROM support.
Date: Sun, 3 May 2009 11:26:57 +0200 [thread overview]
Message-ID: <1241342817-9448-1-git-send-email-linux@bohmer.net> (raw)
Some boards do not have SROM support for the DM9000 network adapter.
Instead of listing these board names in the driver code, make this
option configurable from the board config file.
It also removes a build warning for the at91sam9261ek board:
'dm9000x.c:545: warning: 'read_srom_word' defined but not used'
And it repaires the trizepsiv board build which was broken around the
same routines
Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
board/trizepsiv/eeprom.c | 14 +++++++-------
drivers/net/dm9000x.c | 16 ++++++++--------
include/configs/at91sam9261ek.h | 1 +
include/dm9000.h | 11 +++++++++++
4 files changed, 27 insertions(+), 15 deletions(-)
create mode 100644 include/dm9000.h
diff --git a/board/trizepsiv/eeprom.c b/board/trizepsiv/eeprom.c
index 63f1c6c..9fa7aef 100644
--- a/board/trizepsiv/eeprom.c
+++ b/board/trizepsiv/eeprom.c
@@ -23,17 +23,17 @@
#include <common.h>
#include <command.h>
-
-extern u16 read_srom_word(int);
-extern void write_srom_word(int offset, u16 val);
+#include <dm9000.h>
static int do_read_dm9000_eeprom ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) {
- int i;
+ unsigned int i;
+ u8 data[2];
for (i=0; i < 0x40; i++) {
if (!(i % 0x10))
- printf("\n%08lx:", i);
- printf(" %04x", read_srom_word(i));
+ printf("\n%08x:", i);
+ dm9000_read_srom_word(i, data);
+ printf(" %02x%02x", data[1], data[0]);
}
printf ("\n");
return (0);
@@ -54,7 +54,7 @@ static int do_write_dm9000_eeprom ( cmd_tbl_t *cmdtp, int flag, int argc, char *
cmd_usage(cmdtp);
return 1;
}
- write_srom_word(offset, value);
+ dm9000_write_srom_word(offset, value);
return (0);
}
diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c
index 8ca2bf7..934d991 100644
--- a/drivers/net/dm9000x.c
+++ b/drivers/net/dm9000x.c
@@ -53,7 +53,7 @@ v1.2 03/18/2003 Weilun Huang <weilun_huang@davicom.com.tw>:
notes (i.e. double reset)
- some minor code cleanups
These changes are tested with DM9000{A,EP,E} together
- with a 200MHz Atmel AT91SAM92161 core
+ with a 200MHz Atmel AT91SAM9261 core
TODO: external MII is not functional, only internal at the moment.
*/
@@ -62,6 +62,7 @@ TODO: external MII is not functional, only internal at the moment.
#include <command.h>
#include <net.h>
#include <asm/io.h>
+#include <dm9000.h>
#include "dm9000x.h"
@@ -113,7 +114,6 @@ void eth_halt(void);
static int dm9000_probe(void);
static u16 phy_read(int);
static void phy_write(int, u16);
-static void read_srom_word(int, u8 *);
static u8 DM9000_ior(int);
static void DM9000_iow(int reg, u8 value);
@@ -347,9 +347,9 @@ eth_init(bd_t * bd)
/* Set Node address */
if (!eth_getenv_enetaddr("ethaddr", enetaddr)) {
-#if !defined(CONFIG_AT91SAM9261EK)
+#if !defined(CONFIG_DM9000_NO_SROM_AVAIL)
for (i = 0; i < 3; i++)
- read_srom_word(i, enetaddr + 2 * i);
+ dm9000_read_srom_word(i, enetaddr + 2 * i);
eth_setenv_enetaddr("ethaddr", enetaddr);
#endif
}
@@ -541,7 +541,8 @@ eth_rx(void)
/*
Read a word data from SROM
*/
-static void read_srom_word(int offset, u8 *to)
+#if !defined(CONFIG_DM9000_NO_SROM_AVAIL)
+void dm9000_read_srom_word(int offset, u8 *to)
{
DM9000_iow(DM9000_EPAR, offset);
DM9000_iow(DM9000_EPCR, 0x4);
@@ -551,8 +552,7 @@ static void read_srom_word(int offset, u8 *to)
to[1] = DM9000_ior(DM9000_EPDRH);
}
-void
-write_srom_word(int offset, u16 val)
+void dm9000_write_srom_word(int offset, u16 val)
{
DM9000_iow(DM9000_EPAR, offset);
DM9000_iow(DM9000_EPDRH, ((val >> 8) & 0xff));
@@ -561,7 +561,7 @@ write_srom_word(int offset, u16 val)
udelay(8000);
DM9000_iow(DM9000_EPCR, 0);
}
-
+#endif
/*
Read a byte from I/O port
diff --git a/include/configs/at91sam9261ek.h b/include/configs/at91sam9261ek.h
index fdaa71c..c30674f 100644
--- a/include/configs/at91sam9261ek.h
+++ b/include/configs/at91sam9261ek.h
@@ -137,6 +137,7 @@
#define DM9000_IO CONFIG_DM9000_BASE
#define DM9000_DATA (CONFIG_DM9000_BASE + 4)
#define CONFIG_DM9000_USE_16BIT 1
+#define CONFIG_DM9000_NO_SROM_AVAIL 1
#define CONFIG_NET_RETRY_COUNT 20
#define CONFIG_RESET_PHY_R 1
diff --git a/include/dm9000.h b/include/dm9000.h
new file mode 100644
index 0000000..d59919b
--- /dev/null
+++ b/include/dm9000.h
@@ -0,0 +1,11 @@
+
+#ifndef __DM9000_H__
+#define __DM9000_H__
+
+/****************** function prototypes **********************/
+#if !defined(CONFIG_DM9000_NO_SROM_AVAIL)
+void dm9000_write_srom_word(int offset, u16 val);
+void dm9000_read_srom_word(int offset, u8 *to);
+#endif
+
+#endif /* __DM9000_H__ */
--
1.6.0.4
next reply other threads:[~2009-05-03 9:26 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-03 9:26 Remy Bohmer [this message]
2009-05-03 9:31 ` [U-Boot] [PATCH 1/1] Add config option for disabling DM9000-SROM support Jean-Christophe PLAGNIOL-VILLARD
2009-05-03 9:55 ` Remy Bohmer
2009-05-03 10:21 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-04 3:24 ` Ben Warren
2009-05-03 10:11 ` [U-Boot] [PATCH 1/1] V2 " Remy Bohmer
2009-05-03 22:05 ` Stelian Pop
2009-05-04 23:31 ` Mike Frysinger
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=1241342817-9448-1-git-send-email-linux@bohmer.net \
--to=linux@bohmer.net \
--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