Date: Sun, 3 Aug 1997 17:56:37 -0700 (PDT) From: Ulf Zimmermann <ulf@Gatekeeper.Alameda.net> To: faber@ISI.EDU (Ted Faber) Cc: freebsd-hackers@FreeBSD.ORG, faber@ISI.EDU, faber@lunabase.org Subject: Re: patch to lnc driver for Hitachi Mx laptop Message-ID: <199708040056.RAA13828@Gatekeeper.Alameda.net> In-Reply-To: <199708032333.QAA00649@vermouth.isi.edu> from Ted Faber at "Aug 3, 97 04:33:36 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
Could someone provide a boot install disk with this patch ? I have a Hitachi M and would like to try it. The 2.2.2R did not work. > > In the course of getting FreeBSD 2.2.2-RELEASE up on my Hitachi Mx133 > laptop, I had to modify the PCI driver code for the lnc driver in > order to use the builtin ethernet port. The changes are adding a new > constant and case branch for the chip ID of the lance chip they use (I > don't know the part number, but it behaves like an Am79C970 except for > the ID) in i386/isa/if_lnc.[ch], changing the pci_conf_read call to a > pci_map_port call in pci/if_lnc_p.c (which seems to properly > initialize multiple bridge chips where pci_map_conf doesn't) and > checking for a different result code from ne2100_probe in the > pci attach routine in i386/isa/if_lnc.c to avoid deallocating the > controller block. The last is protected by an ifdef using the option > HITACHI_MX. The others should have no change on existing code, so I > left them unprotected. > > The patch is included. Let me know what you think. > > *** pci/if_lnc_p.c.orig Fri Apr 4 08:48:12 1997 > --- pci/if_lnc_p.c Sun Aug 3 00:10:24 1997 > *************** > *** 75,81 **** > unsigned iobase; > void *lnc; /* device specific data for interrupt handler ... */ > > ! iobase = pci_conf_read(config_id, PCI_MAP_REG_START) & ~PCI_MAP_IO; > > lnc = lnc_attach_ne2100_pci(unit, iobase); > if (!lnc) > --- 75,86 ---- > unsigned iobase; > void *lnc; /* device specific data for interrupt handler ... */ > > ! /* pci_map_port correctly initializes bridge chips -- tvf */ > ! > ! if ( !pci_map_port(config_id,PCI_MAP_REG_START,(u_short *)&iobase) ) > ! printf("lnc%d: pci_port_map_attach failed?!\n",unit); > ! else > ! printf("lnc%d: pci port mapped to %x\n",unit,iobase); > > lnc = lnc_attach_ne2100_pci(unit, iobase); > if (!lnc) > *** i386/isa/if_lnc.h.orig Tue Sep 10 01:21:57 1996 > --- i386/isa/if_lnc.h Sat Aug 2 23:45:02 1997 > *************** > *** 69,74 **** > --- 69,75 ---- > #define Am79C961 0x2260 > #define Am79C965 0x2430 > #define Am79C970 0x0242 > + #define HITACHI_Am79C970 0x2621 > > /* Board types */ > #define UNKNOWN 0 > *** i386/isa/if_lnc.c.orig Tue Apr 8 03:59:30 1997 > --- i386/isa/if_lnc.c Sun Aug 3 14:59:06 1997 > *************** > *** 1068,1073 **** > --- 1068,1075 ---- > * do NOT try to ISA attach the PCI version > */ > return (0); > + case HITACHI_Am79C970: > + return (PCnet_PCI); > default: > break; > } > *************** > *** 1197,1203 **** > if (sc) { > bzero (sc, sizeof *sc); > > ! if ((ne2100_probe(sc, iobase) == 0) > || (lnc_attach_sc(sc, unit) == 0)) { > free(sc, M_DEVBUF); > sc = NULL; > --- 1199,1209 ---- > if (sc) { > bzero (sc, sizeof *sc); > > ! #ifdef HITACHI_MX > ! if ((ne2100_probe(sc, iobase) == NE2100_IOSIZE) > ! #else > ! if ((ne2100_probe(sc, iobase) == 0) > ! #endif > || (lnc_attach_sc(sc, unit) == 0)) { > free(sc, M_DEVBUF); > sc = NULL; > > > > -- Ulf. -------------------------------------------------------------------------- Ulf Zimmermann, 1525 Pacific Ave., Alameda, CA-94501, #: 510-769-2936 Alameda Networks, Inc. | http://www.Alameda.net | Fax#: 510-521-5073
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708040056.RAA13828>