From: Eli Carter <eli.carter@inet.com>
To: "Richard B. Johnson" <root@chaos.analogic.com>,
tsbogend@alpha.franken.de, Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: linux-kernel@vger.kernel.org, Eli Carter <eli.carter@inet.com>
Subject: [PATCH] pcnet32.c: MAC address may be in CSR registers
Date: Wed, 14 Feb 2001 15:49:15 -0600 [thread overview]
Message-ID: <3A8AFD5B.FE981F4A@inet.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1186 bytes --]
All,
<aside>
Thomas Bogendoerfer is listed as maintainer.
Richard, I know you've done some work with this driver so I thought you
might be interested.
Alan, I'd like to see this find its way into the official version(s), so
feedback would be appreciated if you don't apply it. (In your copious
spare time, of course. ;) )
</aside>
I'm dealing with an AMD chip that does not have the station address in
the PROM at the base address, but resides in the "Physical Address
Registers" in the chip (thanks to the bootloader in my case). This
patch makes the driver try those registers if the station address read
from the PROM is 00:00:00:00:00:00.
I think others dealing with similar setups may find this helpful. The
other lance-derived drivers might benefit from a similar patch, but I
don't have that hardware for testing.
(The diff is against 2.2.18 and applies cleanly.)
If this is not acceptible or could be improved, please reply with
feedback.
TIA,
Eli
--------------------. Rule of Accuracy: When working toward
Eli Carter | the solution of a problem, it always
eli.carter@inet.com `--------------------- helps if you know the answer.
[-- Attachment #2: patch-pcnet32-mac --]
[-- Type: text/plain, Size: 1481 bytes --]
diff -u -r1.1.1.6 pcnet32.c
--- linux/drivers/net/pcnet32.c 2001/01/20 11:10:30 1.1.1.6
+++ linux/drivers/net/pcnet32.c 2001/02/14 21:43:28
@@ -648,10 +648,32 @@
printk(KERN_INFO "%s: %s at %#3lx,", dev->name, chipname, ioaddr);
- /* There is a 16 byte station address PROM at the base address.
- The first six bytes are the station address. */
- for (i = 0; i < 6; i++)
- printk(" %2.2x", dev->dev_addr[i] = inb(ioaddr + i));
+ /* In most chips, there is a station address PROM at the base address.
+ * However, if that does not have a valid address, try the "Physical
+ * Address Registers" CSR12-CSR14
+ * Currently, we only check for 00:00:00:00:00:00 as invalid.
+ */
+ {
+ int valid_station=0;
+ /* There is a 16 byte station address PROM at the base address.
+ The first six bytes are the station address. */
+ for (i = 0; i < 6; i++) {
+ unsigned int addr = inb(ioaddr + i);
+ valid_station |= addr;
+ dev->dev_addr[i] = addr;
+ }
+ if( !valid_station ) {
+ for (i = 0; i < 3; i++) {
+ unsigned int v;
+ v = a->read_csr(ioaddr, i+12);
+ /* There may be endianness issues here. */
+ dev->dev_addr[2*i] = v & 0x0ff;
+ dev->dev_addr[2*i+1] = (v >> 8) & 0x0ff;
+ }
+ }
+ for (i = 0; i < 6; i++)
+ printk(" %2.2x", dev->dev_addr[i] );
+ }
if (((chip_version + 1) & 0xfffe) == 0x2624) { /* Version 0x2623 or 0x2624 */
i = a->read_csr(ioaddr, 80) & 0x0C00; /* Check tx_start_pt */
next reply other threads:[~2001-02-14 21:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-02-14 21:49 Eli Carter [this message]
2001-02-14 23:50 ` [PATCH] pcnet32.c: MAC address may be in CSR registers Eli Carter
2001-02-14 23:55 ` Alan Cox
2001-02-15 15:55 ` Eli Carter
2001-02-15 16:49 ` Alan Cox
2001-02-15 19:16 ` Eli Carter
2001-02-15 20:31 ` Eli Carter
2001-02-15 13:42 ` Richard B. Johnson
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=3A8AFD5B.FE981F4A@inet.com \
--to=eli.carter@inet.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=root@chaos.analogic.com \
--cc=tsbogend@alpha.franken.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