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>