From owner-freebsd-hackers Fri Dec 15 01:45:57 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id BAA08127 for hackers-outgoing; Fri, 15 Dec 1995 01:45:57 -0800 (PST) Received: from yokogawa.co.jp (yhqfm.yokogawa.co.jp [202.33.29.34]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id BAA08085 for ; Fri, 15 Dec 1995 01:45:25 -0800 (PST) Received: from sjc.yokogawa.co.jp ([133.140.4.100]) by yokogawa.co.jp (8.6.9+2.4Wb3/3.3Wb4-firewall:08/09/94) with SMTP id SAA09747 for ; Fri, 15 Dec 1995 18:45:19 +0900 Received: from leia.pa.yokogawa.co.jp by sjc.yokogawa.co.jp (4.1/6.4J.6-YOKOGAWA-R/GW) id AA24856; Fri, 15 Dec 95 18:45:18 JST Received: from cabbage by leia.pa.yokogawa.co.jp (16.8/6.4J.6-YOKOGAWA/pa) id AA03510; Fri, 15 Dec 95 18:45:11 +0900 Received: by cabbage.pa.yokogawa.co.jp (16.6/3.3Wb) id AA18887; Fri, 15 Dec 95 18:45:34 +0900 Date: Fri, 15 Dec 95 18:45:34 +0900 From: Mihoko Tanaka Message-Id: <9512150945.AA18887@cabbage.pa.yokogawa.co.jp> To: freebsd-hackers@freebsd.org Subject: SMC EtherPower doesn't work. Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-hackers@freebsd.org Precedence: bulk Hello all, I use FreeBSD-2.1.0R on HP Vectra VL590. and I try to install the network card 'SMC EtherPowerPCI BT'. but it could not be recognized. The error message is: pci_map_port failed: device's iorange 0xff80-0xffff is incompatible with its bridge's range 0x0-0xffff But the bridge's iorange '0x0-0xffff' includes the device's iorange '0xff80-0xffff'. I think the device's iorange is right. Is it a bug of pci driver ? I change the driver source code by following and it is working well. In /usr/src/sys/pci/pci.c: int pci_map_port (pcici_t tag, u_long reg, u_short* pa) { [...] iosize = -(data & PCI_MAP_IO_ADDRESS_MASK); if (ioaddr < pcicb->pcicb_iobase || ioaddr + iosize > pcicb->pcicb_iolimit) { ~~~~~~~~~~~~~~~~ it should be (ioaddr + iosize - 1) printf ("pci_map_port failed: device's iorange 0x%x-0x%x " "is incompatible with its bridge's range 0x%x-0x%x\n", (unsigned) ioaddr, (unsigned) ioaddr + iosize - 1, (unsigned) pcicb->pcicb_iobase, (unsigned) pcicb->pcicb_iolimit); return (0); } [...] } -------------------- cut here ----------------------------------------- --- pci.c Mon Oct 9 15:35:59 1995 +++ pci.c.new Thu Dec 14 12:09:19 1995 @@ -922,7 +922,7 @@ }; iosize = -(data & PCI_MAP_IO_ADDRESS_MASK); if (ioaddr < pcicb->pcicb_iobase - || ioaddr + iosize > pcicb->pcicb_iolimit) { + || (ioaddr + iosize -1) > pcicb->pcicb_iolimit) { printf ("pci_map_port failed: device's iorange 0x%x-0x%x " "is incompatible with its bridge's range 0x%x-0x%x\n", (unsigned) ioaddr, (unsigned) ioaddr + iosize - 1, -------------------- cut here ----------------------------------------- -- Mihoko Tanaka