From robert@amalthea.watson.org Fri Jun 18 07:45:46 1999
Return-Path: <robert@amalthea.watson.org>
Received: from amalthea.watson.org (adsl-151-200-24-159.bellatlantic.net [151.200.24.159])
	by hub.freebsd.org (Postfix) with ESMTP id 4506814CA9
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 18 Jun 1999 07:45:44 -0700 (PDT)
	(envelope-from robert@amalthea.watson.org)
Received: (from robert@localhost)
	by amalthea.watson.org (8.9.3/8.9.3) id KAA20824;
	Fri, 18 Jun 1999 10:45:19 -0400 (EDT)
	(envelope-from robert)
Message-Id: <199906181445.KAA20824@amalthea.watson.org>
Date: Fri, 18 Jun 1999 10:45:19 -0400 (EDT)
From: robert@fledge.watson.org
Sender: robert@amalthea.watson.org
Reply-To: robert+freebsd@cyrus.watson.org
To: FreeBSD-gnats-submit@freebsd.org
Subject: lnc support for AMD home phone line networking chipset
X-Send-Pr-Version: 3.2

>Number:         12275
>Category:       kern
>Synopsis:       Patches to add support for new chipset
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jun 18 07:50:00 PDT 1999
>Closed-Date:    Mon Aug 9 18:04:51 PDT 1999
>Last-Modified:  Mon Aug  9 18:05:56 PDT 1999
>Originator:     Robert Watson
>Release:        FreeBSD 4.0-CURRENT i386
>Organization:
>Environment:

4.0-CURRENT

>Description:

AMD has released a chipset that supports ethernet over phone wire at about
a megabit.  Diamond and others have cards based on this; I had to twiddle
some registers and add probe lines for the chipset to get it to work.

>How-To-Repeat:


>Fix:

Please add a comment to the top of if_lnc.c indicating that any questions
about support for this chipset may be directed to me at 
robert+freebsd@cyrus.watson.org

Apparently the card suffers from interference from power lines running near
phone lines; I'm not sure how much of this is a product of my local
configuration.  I'm currently adding more code to a local copy of the 
driver to try and switch the power mode and speed of the card to see if
that helps, and am interested in any feedback that might help improve
support for this chipset.

Thanks.
	
Patches:

Index: if_lnc.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/isa/if_lnc.c,v
retrieving revision 1.60
diff -u -r1.60 if_lnc.c
--- if_lnc.c    1999/05/09 23:24:47     1.60
+++ if_lnc.c    1999/06/03 15:27:03
@@ -151,6 +151,7 @@
        "PCnet-PCI II",
        "PCnet-FAST",
        "PCnet-FAST+",
+       "PCnet-Home",
 };
 
 static void lnc_setladrf __P((struct lnc_softc *sc));
@@ -1192,7 +1193,13 @@
                                return (PCnet_FAST);
                        case Am79C972:
                                return (PCnet_FASTplus);
+                       case Am79C978:
+                               return (PCnet_Home);
                        default:
+                               if (bootverbose)
+                                       printf("pcnet_probe: unknown PCnet
"
+                                           "type (%lx)\n", chip_id &
+                                           PART_MASK);
                                break;
                        }
                }
@@ -1360,6 +1367,9 @@
                        }
                }
                else {
+                       if (bootverbose)
+                               printf("lnc_attach_ne2100_pci: sc->nic.ic = "
+                                   "%d, too low\n", sc->nic.ident);
                        free(sc, M_DEVBUF);
                        sc = NULL;
                }
@@ -1490,6 +1500,24 @@
        sc->pending_transmits = 0;
 
        /* Give the LANCE the physical address of the initialisation block
*/
+
+       if (sc->nic.ic == PCnet_Home) {
+               u_short media;
+               /* Set PHY_SEL to HomeRun */
+#ifdef DIAGNOSTIC
+               printf("lnc_init: setting PCnet_Home-specific
register\n");
+#endif
+               media = read_bcr(sc, BCR49);
+#ifdef DIAGNOSTIC
+               printf("lnc_init: old value %u\n", (u_int) media);
+#endif
+               media &= ~3;
+               media |= 1;
+#ifdef DIAGNOSTIC
+               printf("lnc_init: new value %u\n", (u_int) media);
+#endif
+               write_bcr(sc, BCR49, media);
+       }
 
        write_csr(sc, CSR1, kvtop(sc->init_block));
        write_csr(sc, CSR2, (kvtop(sc->init_block) >> 16) & 0xff);
Index: if_lnc.h
===================================================================
RCS file: /home/ncvs/src/sys/i386/isa/if_lnc.h,v
retrieving revision 1.10
diff -u -r1.10 if_lnc.h
--- if_lnc.h    1999/01/31 00:56:32     1.10
+++ if_lnc.h    1999/05/30 05:35:55
@@ -107,6 +107,7 @@
 #define PCnet_PCI_II    8        /* Am79C970A */
 #define PCnet_FAST      9        /* Am79C971 */
 #define PCnet_FASTplus  10       /* Am79C972 */
+#define PCnet_Home     11       /* Am79C978 */
 
 /* CSR88-89: Chip ID masks */
 #define AMD_MASK  0x003
@@ -119,6 +120,7 @@
 #define Am79C970A 0x2621
 #define Am79C971  0x2623
 #define Am79C972  0x2624
+#define Am79C978       0x2626
 
 /* Board types */
 #define UNKNOWN         0
Index: ic/Am7990.h
===================================================================
RCS file: /home/ncvs/src/sys/i386/isa/ic/Am7990.h,v
retrieving revision 1.2
diff -u -r1.2 Am7990.h
--- Am7990.h    1995/05/30 08:03:30     1.2
+++ Am7990.h    1999/05/30 21:02:47
@@ -21,6 +21,7 @@
 #define CSR1   1
 #define CSR2   2
 #define CSR3   3
+#define BCR49  49
 #define CSR88  88
 #define CSR89  89


>Release-Note:
>Audit-Trail:

From: Robert Watson <robert@cyrus.watson.org>
To: freebsd-gnats-submit@freebsd.org
Cc:  
Subject: Re: kern/12275: Patches to add support for new chipset
Date: Sun, 8 Aug 1999 14:36:03 -0400 (EDT)

   This message is in MIME format.  The first part should be readable text,
   while the remaining parts are likely unreadable without MIME-aware tools.
   Send mail to mime@docserver.cac.washington.edu for more info.
 
 --0-1084027116-934137363=:10179
 Content-Type: TEXT/PLAIN; charset=US-ASCII
 
 
 Attached are cleaned up patches against -current from Aug 7, and that
 don't interfere with the existing lnc supported cards, unlike the previous
 patches.  I've received a number of emails asking about having this added
 to -stable and -current, and reporting success in using the driver.
 
 Thanks,
 
   Robert N M Watson 
 
 robert@fledge.watson.org              http://www.watson.org/~robert/
 PGP key fingerprint: AF B5 5F FF A6 4A 79 37  ED 5F 55 E9 58 04 6A B1
 TIS Labs at Network Associates, Computing Laboratory at Cambridge University
 Safeport Network Services
 
 
 --0-1084027116-934137363=:10179
 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="amd_pcnet_home_patch.txt"
 Content-Transfer-Encoding: BASE64
 Content-ID: <Pine.BSF.3.96.990808143603.10179A@fledge.watson.org>
 Content-Description: 
 
 ZGlmZiAtdXIgc3lzL2kzODYvaXNhL2ljL0FtNzk5MC5oIHN5cy1sbmMvaTM4
 Ni9pc2EvaWMvQW03OTkwLmgNCi0tLSBzeXMvaTM4Ni9pc2EvaWMvQW03OTkw
 LmgJVHVlIE1heSAzMCAwNDowMzozMCAxOTk1DQorKysgc3lzLWxuYy9pMzg2
 L2lzYS9pYy9BbTc5OTAuaAlTdW4gQXVnICA4IDE0OjAxOjM3IDE5OTkNCkBA
 IC0yNCw2ICsyNCwxMSBAQA0KICNkZWZpbmUgQ1NSODgJODgNCiAjZGVmaW5l
 IENTUjg5CTg5DQogDQorI2RlZmluZSBCQ1I0OQk0OQ0KKyNkZWZpbmUgQkNS
 MzIJMzINCisjZGVmaW5lIEJDUjMzCTMzDQorI2RlZmluZSBCQ1IzNAkzNA0K
 Kw0KIA0KIC8qIENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3RlciBNYXNrcyAq
 Lw0KIA0KZGlmZiAtdXIgc3lzL2kzODYvaXNhL2lmX2xuYy5jIHN5cy1sbmMv
 aTM4Ni9pc2EvaWZfbG5jLmMNCi0tLSBzeXMvaTM4Ni9pc2EvaWZfbG5jLmMJ
 VHVlIEp1bCAgNiAxNToyMjo1MCAxOTk5DQorKysgc3lzLWxuYy9pMzg2L2lz
 YS9pZl9sbmMuYwlTdW4gQXVnICA4IDE0OjAxOjM3IDE5OTkNCkBAIC0xNTEs
 NiArMTUxLDcgQEANCiAJIlBDbmV0LVBDSSBJSSIsDQogCSJQQ25ldC1GQVNU
 IiwNCiAJIlBDbmV0LUZBU1QrIiwNCisJIlBDbmV0LUhvbWUiLA0KIH07DQog
 DQogc3RhdGljIHZvaWQgbG5jX3NldGxhZHJmIF9fUCgoc3RydWN0IGxuY19z
 b2Z0YyAqc2MpKTsNCkBAIC0yMjYsNiArMjI3LDQ3IEBADQogCXJldHVybiAo
 aW53KHNjLT5iZHApKTsNCiB9DQogDQorc3RhdGljIF9faW5saW5lIHVfc2hv
 cnQNCityZWFkX21paShzdHJ1Y3QgbG5jX3NvZnRjICpzYywgdV9zaG9ydCBy
 ZWdudW0pDQorew0KKwlpbnQJcHJlc2VydmVyYXA7DQorCXVfc2hvcnQJZGF0
 YSwgcGh5X2FkZHIsIHNoX3BoeV9hZGRyOw0KKw0KKyNkZWZpbmUgUEhZCTEN
 CisNCisJcHJlc2VydmVyYXAgPSBpbncoc2MtPnJhcCk7DQorCWRhdGEgPSBy
 ZWFkX2JjcihzYywgQkNSMzIpOw0KKwkvKiBwcmludGYoInJlYWRfbWlpOiBi
 Y3IzMiAlZFxuIiwgZGF0YSk7ICovDQorCWRhdGEgfD0gKDE8PDE1KTsNCisJ
 d3JpdGVfYmNyKHNjLCBCQ1IzMiwgZGF0YSk7DQorDQorCXBoeV9hZGRyID0g
 cmVhZF9iY3Ioc2MsIEJDUjMzKTsNCisJLyogcHJpbnRmKCJyZWFkX21paTog
 b2xkIGJjcjMzICVkXG4iLCBwaHlfYWRkcik7ICovDQorCS8qIHByaW50Zigi
 cmVhZF9taWk6IHJlYWRpbmcgZnJvbSBwaHkgJWQsIHJlZyAlZFxuIiwgUEhZ
 LCByZWdudW0pOyAqLw0KKwlzaF9waHlfYWRkciA9IFBIWSA8PCA1Ow0KKwlk
 YXRhID0gc2hfcGh5X2FkZHIgfCAocmVnbnVtICYgMHgxZik7DQorCXdyaXRl
 X2JjcihzYywgQkNSMzMsIGRhdGEpOw0KKwlkYXRhID0gcmVhZF9iY3Ioc2Ms
 IEJDUjM0KTsNCisJLyogd3JpdGVfYmNyKHNjLCBCQ1IzMywgcGh5X2FkZHIp
 OyA/ICovDQorCW91dHcoc2MtPnJhcCwgcHJlc2VydmVyYXApOw0KKwlyZXR1
 cm4oZGF0YSk7DQorDQorI3VuZGVmIFBIWQ0KK30NCisNCitzdGF0aWMgX19p
 bmxpbmUgdm9pZA0KK3dyaXRlX21paShzdHJ1Y3QgbG5jX3NvZnRjICpzYywg
 dV9zaG9ydCByZWdudW0sIHVfc2hvcnQgdmFsdWUpDQorew0KKwl1X3Nob3J0
 CWRhdGEsIHBoeV9hZGRyLCBzaF9waHlfYWRkcjsNCisNCisJcGh5X2FkZHIg
 PSByZWFkX2JjcihzYywgMzMpOw0KKwlzaF9waHlfYWRkciA9ICgocGh5X2Fk
 ZHIgPj4gNSkgJiAweDFmKSA8PCA1Ow0KKwlkYXRhID0gc2hfcGh5X2FkZHIg
 fCAocmVnbnVtICYgMHgxZik7DQorCXdyaXRlX2JjcihzYywgMzMsIGRhdGEp
 Ow0KKwl3cml0ZV9iY3Ioc2MsIDM0LCB2YWx1ZSk7DQorCXdyaXRlX2Jjcihz
 YywgMzMsIHBoeV9hZGRyKTsNCit9DQorDQogc3RhdGljIF9faW5saW5lIHVf
 bG9uZw0KIGV0aGVyX2NyYyhjb25zdCB1X2NoYXIgKmV0aGVyX2FkZHIpDQog
 ew0KQEAgLTExOTIsNiArMTIzNCw4IEBADQogCQkJCXJldHVybiAoUENuZXRf
 RkFTVCk7DQogCQkJY2FzZSBBbTc5Qzk3MjoNCiAJCQkJcmV0dXJuIChQQ25l
 dF9GQVNUcGx1cyk7DQorCQkJY2FzZSBBbTc5Qzk3ODoNCisJCQkJcmV0dXJu
 IChQQ25ldF9Ib21lKTsNCiAJCQlkZWZhdWx0Og0KIAkJCQlicmVhazsNCiAJ
 CQl9DQpAQCAtMTQ5MCw2ICsxNTM0LDE1IEBADQogCXNjLT5wZW5kaW5nX3Ry
 YW5zbWl0cyA9IDA7DQogDQogCS8qIEdpdmUgdGhlIExBTkNFIHRoZSBwaHlz
 aWNhbCBhZGRyZXNzIG9mIHRoZSBpbml0aWFsaXNhdGlvbiBibG9jayAqLw0K
 Kw0KKwlpZiAoc2MtPm5pYy5pYyA9PSBQQ25ldF9Ib21lKSB7DQorCQl1X3No
 b3J0CW1lZGlhOw0KKwkJLyogU2V0IFBIWV9TRUwgdG8gSG9tZVJ1biAqLw0K
 KwkJbWVkaWEgPSByZWFkX2JjcihzYywgQkNSNDkpOw0KKwkJbWVkaWEgJj0g
 fjM7DQorCQltZWRpYSB8PSAxOw0KKwkJd3JpdGVfYmNyKHNjLCBCQ1I0OSwg
 bWVkaWEpOw0KKwl9DQogDQogCXdyaXRlX2NzcihzYywgQ1NSMSwga3Z0b3Ao
 c2MtPmluaXRfYmxvY2spKTsNCiAJd3JpdGVfY3NyKHNjLCBDU1IyLCAoa3Z0
 b3Aoc2MtPmluaXRfYmxvY2spID4+IDE2KSAmIDB4ZmYpOw0KZGlmZiAtdXIg
 c3lzL2kzODYvaXNhL2lmX2xuYy5oIHN5cy1sbmMvaTM4Ni9pc2EvaWZfbG5j
 LmgNCi0tLSBzeXMvaTM4Ni9pc2EvaWZfbG5jLmgJVHVlIEp1bCAgNiAxNToy
 Mjo1MSAxOTk5DQorKysgc3lzLWxuYy9pMzg2L2lzYS9pZl9sbmMuaAlTdW4g
 QXVnICA4IDE0OjAxOjM3IDE5OTkNCkBAIC0xMDcsNiArMTA3LDggQEANCiAj
 ZGVmaW5lIFBDbmV0X1BDSV9JSSAgICA4ICAgICAgICAvKiBBbTc5Qzk3MEEg
 Ki8NCiAjZGVmaW5lIFBDbmV0X0ZBU1QgICAgICA5ICAgICAgICAvKiBBbTc5
 Qzk3MSAqLw0KICNkZWZpbmUgUENuZXRfRkFTVHBsdXMgIDEwICAgICAgIC8q
 IEFtNzlDOTcyICovDQorI2RlZmluZSBQQ25ldF9Ib21lCTExCSAvKiBBbTc5
 Qzk3OCAqLw0KKw0KIA0KIC8qIENTUjg4LTg5OiBDaGlwIElEIG1hc2tzICov
 DQogI2RlZmluZSBBTURfTUFTSyAgMHgwMDMNCkBAIC0xMTksNiArMTIxLDcg
 QEANCiAjZGVmaW5lIEFtNzlDOTcwQSAweDI2MjENCiAjZGVmaW5lIEFtNzlD
 OTcxICAweDI2MjMNCiAjZGVmaW5lIEFtNzlDOTcyICAweDI2MjQNCisjZGVm
 aW5lIEFtNzlDOTc4ICAweDI2MjYNCiANCiAvKiBCb2FyZCB0eXBlcyAqLw0K
 ICNkZWZpbmUgVU5LTk9XTiAgICAgICAgIDANCmRpZmYgLXVyIHN5cy9wY2kv
 aWZfbG5jX3AuYyBzeXMtbG5jL3BjaS9pZl9sbmNfcC5jDQotLS0gc3lzL3Bj
 aS9pZl9sbmNfcC5jCVNhdCBKdWwgIDMgMTY6MTc6MDQgMTk5OQ0KKysrIHN5
 cy1sbmMvcGNpL2lmX2xuY19wLmMJU3VuIEF1ZyAgOCAxNDowMTozNyAxOTk5
 DQpAQCAtMzAsNiArMzAsNyBAQA0KICNpbmNsdWRlICJsbmMuaCINCiANCiAj
 ZGVmaW5lIFBDSV9ERVZJQ0VfSURfUENOZXRfUENJCTB4MjAwMDEwMjINCisj
 ZGVmaW5lIFBDSV9ERVZJQ0VfSURfUENIb21lX1BDSSAweDIwMDExMDIyDQog
 DQogZXh0ZXJuIHZvaWQgKmxuY19hdHRhY2hfbmUyMTAwX3BjaSBfX1AoKGlu
 dCB1bml0LCB1bnNpZ25lZCBpb2Jhc2UpKTsNCiANCkBAIC01NCw2ICs1NSw5
 IEBADQogCXN3aXRjaCh0eXBlKSB7DQogCWNhc2UgUENJX0RFVklDRV9JRF9Q
 Q05ldF9QQ0k6DQogCQlyZXR1cm4gKCJQQ05ldC9QQ0kgRXRoZXJuZXQgYWRh
 cHRlciIpOw0KKwkJYnJlYWs7DQorCWNhc2UgUENJX0RFVklDRV9JRF9QQ0hv
 bWVfUENJOg0KKwkJcmV0dXJuICgiUENIb21lL1BDSSBFdGhlcm5ldCBhZGFw
 dGVyIik7DQogCQlicmVhazsNCiAJZGVmYXVsdDoNCiAJCWJyZWFrOw0KZGlm
 ZiAtdXIgc2hhcmUvbWFuL21hbjQvbWFuNC5pMzg2L2xuYy40IHNoYXJlLWxu
 Yy9tYW4vbWFuNC9tYW40LmkzODYvbG5jLjQNCi0tLSBzaGFyZS9tYW4vbWFu
 NC9tYW40LmkzODYvbG5jLjQJU3VuIEF1ZyAgOCAxNDoyOToxNiAxOTk5DQor
 Kysgc2hhcmUtbG5jL21hbi9tYW40L21hbjQuaTM4Ni9sbmMuNAlTdW4gQXVn
 ICA4IDE0OjMxOjQ2IDE5OTkNCkBAIC00OSw2ICs0OSw3IEBADQogLkl0IERp
 Z2l0YWwgREVQQ0ENCiAuSXQgSGV3bGV0dCBQYWNrYXJkIFZlY3RyYSA0ODYv
 NjZYTQ0KIC5JdCBIZXdsZXR0IFBhY2thcmQgVmVjdHJhIFhVDQorLkl0IERp
 YW1vbmQgSG9tZUZyZWUNCiAuRWwNCiAuU2ggRElBR05PU1RJQ1MNCiAuQmwg
 LWRpYWcNCkBAIC0xMTMsNSArMTE0LDcgQEANCiAuTm0NCiBkZXZpY2UgZHJp
 dmVyIHdhcyB3cml0dGVuIGJ5DQogLkFuIFBhdWwgUmljaGFyZHMgLg0KK1N1
 cHBvcnQgZm9yIHRoZSBBTUQgUENIb21lIHBob25lLWxpbmUgYmFzZWQgbmV0
 d29yayBhZGRlZCBieQ0KK1JvYmVydCBXYXRzb24gPHJvYmVydEBmbGVkZ2Uu
 d2F0c29uLm9yZz4uDQogVGhpcyBtYW51YWwgcGFnZSB3YXMgd3JpdHRlbiBi
 eQ0KIC5BbiBEYXZpZCBFLiBPJ0JyaWVuIC4NCg==
 --0-1084027116-934137363=:10179--
 

From: Robert Watson <robert@cyrus.watson.org>
To: freebsd-gnats-submit@freebsd.org
Cc:  
Subject: Re: kern/12275: Patches to add support for new chipset
Date: Sun, 8 Aug 1999 14:44:59 -0400 (EDT)

 These patches are also available at
 
 http://www.watson.org/freebsd/hardware/amd_pcnet_home_patch.txt
 
 (as it looks like gnats doesn't speak MIME)
 
   Robert N M Watson 
 
 robert@fledge.watson.org              http://www.watson.org/~robert/
 PGP key fingerprint: AF B5 5F FF A6 4A 79 37  ED 5F 55 E9 58 04 6A B1
 TIS Labs at Network Associates, Computing Laboratory at Cambridge University
 Safeport Network Services
 
 
State-Changed-From-To: open->closed 
State-Changed-By: mdodd 
State-Changed-When: Mon Aug 9 18:04:51 PDT 1999 
State-Changed-Why:  
Committed to -current. 
>Unformatted:
Committed to -current.
