From owner-freebsd-bugs Fri Oct 23 10:10:10 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id KAA20779 for freebsd-bugs-outgoing; Fri, 23 Oct 1998 10:10:10 -0700 (PDT) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id KAA20759 for ; Fri, 23 Oct 1998 10:10:05 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id KAA21533; Fri, 23 Oct 1998 10:10:01 -0700 (PDT) Received: from snarf.gta.com (snarf.gta.com [199.120.225.4]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id KAA20083 for ; Fri, 23 Oct 1998 10:02:29 -0700 (PDT) (envelope-from lab@snarf.gta.com) Received: (from lab@localhost) by dual.gta.com (8.9.1/8.9.1) id LAA02013; Fri, 23 Oct 1998 11:39:10 -0400 (EDT) (envelope-from lab) Message-Id: <199810231539.LAA02013@dual.gta.com> Date: Fri, 23 Oct 1998 11:39:10 -0400 (EDT) From: lab@gta.com Reply-To: lab@gta.com To: FreeBSD-gnats-submit@FreeBSD.ORG X-Send-Pr-Version: 3.2 Subject: kern/8423: Intel PILA8461 NIC panics 2.2.7 during probe Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 8423 >Category: kern >Synopsis: Intel PILA8461 NIC panics 2.2.7 during probe >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Oct 23 10:10:00 PDT 1998 >Last-Modified: >Originator: Larry Baird >Organization: Global Technology Associates, Inc, >Release: FreeBSD 2.2.7-RELEASE i386 >Environment: NOTE: This dmesg is from a boot with a working PILA8460 NIC GNAT Box: Kernel #102 bugmaster@gnatbox.com:/GNATBOX CPU: AMD Am5x86 Write-Back (486-class CPU) Origin = "AuthenticAMD" Id = 0x4f4 Stepping=4 Features=0x1"FPU" real memory = 8388608 (8192K bytes) avail memory = 6619136 (6464K bytes) Probing for devices on PCI bus 0: fxp0 "Intel EtherExpress Pro 10/100B Ethernet" rev 5 int a irq 9 on pci0:12:0 fxp0: Ethernet address 00:90:27:18:d7:b8 de0 "Digital 21140A Fast Ethernet" rev 32 int a irq 12 on pci0:13:0 de0: SMC 9332BDT 21140A [10-100Mb/s] pass 2.0 de0: address 00:00:c0:5e:a1:e9 fxp1 "Intel EtherExpress Pro 10/100B Ethernet" rev 2 int a irq 10 on pci0:14:0 fxp1: Ethernet address 00:a0:c9:91:5a:ee chip0 "generic PCI bridge (vendor=1060 device=8881 subclass=0)" rev 4 on pci0:16:0 chip1 "generic PCI bridge (vendor=1060 device=886a subclass=1)" rev 14 on pci0:18:0 pci0:18:1: UMC, device=0x673a, class=storage (ide) [no driver assigned] Probing for devices on the ISA bus: sc0 at 0x60-0x6f irq 1 on motherboard sc0: VGA color "3 virtual consoles, flags=0x0" ed0 not found at 0x280 ed1 not found at 0x300 ed2 not found at 0x320 ed3 not found at 0x340 ed4 not found at 0x360 sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A sio2 at 0x3e8-0x3ef irq 5 on isa sio2: type 16550A sio3: configured irq 9 not in bitmap of probed irqs 0 sio3 not found at 0x2e8 lpt0 at 0x378-0x37f irq 7 on isa lpt0: Interrupt-driven port rb0 at 0x0 drq 0 on isa rb0/lp0: dongle fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fd0: 1.44MB 3.5in cs0 not found at 0x300 ep0 not found at 0xffffffff ep1 not found at 0xffffffff ep2 not found at 0xffffffff le0 not found at 0x300 le1 not found at 0x280 le2 not found at 0x320 le3 not found at 0x340 ze0 not found at 0x300 ze1 not found at 0x280 zp0 not found at 0x300 zp1 not found at 0x280 npx0 flags 0x1 on motherboard npx0: INT 16 interface de0: enabling 10baseT port >Description: A Intel EtherExpress PRO/100+ Managment Adapter (PILA8461) panics a 2.2.7 kernel at boot during a probe. >How-To-Repeat: Put a PILA8461 card in a boot. >Fix: I don't know the fix, but I have narrowed it down to the line of code with the problem. The problem is in the function pci_map_mem() in the file /sys/pci/pci.c. The size of the region to map (psize) is calculated incorrectly. This function uses pci_conf_read() to intialize a variable called data. On a PILA8461 card data is set to 0x7ffff000. Then psize is calculated using the following magic code: #define PCI_MAP_MEMORY_ADDRESS_MASK 0xfffffff0 psize = -(data & PCI_MAP_MEMORY_ADDRESS_MASK); This results in psize receiving a value of 0x80001000. This value of psize when passed to pmap_mapdev() causes a panic. FYI, values from a working PILA8460 card are: data - 0xfffff008 psize - 0x1000 >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message