Skip site navigation (1)Skip section navigation (2)
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>