Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Apr 2001 15:56:04 -0700 (PDT)
From:      Doug Ambrisko <ambrisko@ambrisko.com>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/26547: "lnc" problem with shared memory mode with PCnet-ISA II
Message-ID:  <200104132256.f3DMu4L42247@ambrisko.com>

next in thread | raw e-mail | index | archive | help

>Number:         26547
>Category:       kern
>Synopsis:       "lnc" problem with shared memory mode with PCnet-ISA II
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr 13 16:00:13 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Doug Ambrisko
>Release:        FreeBSD 4.3-RC i386
>Organization:
Whistle/IBM
>Environment:
System: FreeBSD server2.ambrisko.com 4.3-RC FreeBSD 4.3-RC #3: Sat Apr 7 14:18:35 PDT 2001 ambrisko@server2.ambrisko.com:/usr/src/sys/compile/SERVER i386

>Description:
	The Airport base station can only use this chips in shared
	memory mode.  The kernel configuration was being ignored
	for this chip and in some cases using the iobase for the
	shmem base.  If shared memory set in the kernel then this
	fix listens to it.

>How-To-Repeat:
	Netboot an Airport base station and it will fail without
	this.  Code for the netboot coming later.
>Fix:


Index: if_lnc.c
===================================================================
RCS file: /cvs/freebsd/src/sys/i386/isa/Attic/if_lnc.c,v
retrieving revision 1.68.2.4
diff -c -r1.68.2.4 if_lnc.c
*** if_lnc.c	2001/01/08 15:37:59	1.68.2.4
--- if_lnc.c	2001/04/13 22:48:06
***************
*** 887,892 ****
--- 887,899 ----
  	printf("Vendor Specific Word = %x\n", vsw);
  #endif
  
+ 	sc->nic.mem_mode=0;
+ 	sc->recv_ring = (struct host_ring_entry *)isa_dev->id_maddr;
+         if(sc->recv_ring){
+ 	       isa_dev->id_msize=0x10000;
+ 	       sc->nic.mem_mode=SHMEM;
+ 	}
+ 
  	nports = bicc_probe(sc, iobase);
  	if (nports == 0)
  		nports = ne2100_probe(sc, iobase);
***************
*** 990,996 ****
  	sc->nic.ic = pcnet_probe(sc);
  	if ((sc->nic.ic > 0) && (sc->nic.ic < PCnet_PCI)) {
  		sc->nic.ident = NE2100;
! 		sc->nic.mem_mode = DMA_FIXED;
  
  		/* XXX - For now just use the defines */
  		sc->nrdre = NRDRE;
--- 997,1004 ----
  	sc->nic.ic = pcnet_probe(sc);
  	if ((sc->nic.ic > 0) && (sc->nic.ic < PCnet_PCI)) {
  		sc->nic.ident = NE2100;
! 		if(sc->nic.mem_mode != SHMEM)
! 		         sc->nic.mem_mode = DMA_FIXED;
  
  		/* XXX - For now just use the defines */
  		sc->nrdre = NRDRE;
***************
*** 1357,1363 ****
  	sc->trans_next = 0;
  
  	if (sc->nic.mem_mode == SHMEM)
! 		lnc_mem = (char *) sc->nic.iobase;
  	else
  		lnc_mem = (char *) (sc->trans_ring + NDESC(sc->ntdre));
  
--- 1365,1371 ----
  	sc->trans_next = 0;
  
  	if (sc->nic.mem_mode == SHMEM)
! 		lnc_mem = (char *) (sc->trans_ring + NDESC(sc->ntdre));
  	else
  		lnc_mem = (char *) (sc->trans_ring + NDESC(sc->ntdre));
  
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200104132256.f3DMu4L42247>