From owner-freebsd-hackers Thu Aug 13 23:18:25 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id XAA28920 for freebsd-hackers-outgoing; Thu, 13 Aug 1998 23:18:25 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from zibbi.mikom.csir.co.za (zibbi.mikom.csir.co.za [146.64.24.58]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id XAA28912 for ; Thu, 13 Aug 1998 23:18:21 -0700 (PDT) (envelope-from jhay@zibbi.mikom.csir.co.za) Received: (from jhay@localhost) by zibbi.mikom.csir.co.za (8.9.1/8.9.1) id IAA04738 for hackers@FreeBSD.ORG; Fri, 14 Aug 1998 08:17:50 +0200 (SAT) From: John Hay Message-Id: <199808140617.IAA04738@zibbi.mikom.csir.co.za> Subject: pci register map problem To: hackers@FreeBSD.ORG Date: Fri, 14 Aug 1998 08:17:50 +0200 (SAT) X-Mailer: ELM [version 2.4ME+ PL32 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hi, I'm trying to update the ar(4) device driver to also understand the Digi SYNC/570i-PCI cards, but found a little problem. According to the docs for the card it has 4 pci maps, but FreeBSD only see 3 of them. I have tried it in another machine with a different motherboard and BIOS, but the result is the same, although the addresses differ. Here is what the pci probe code with verbose on says: -------------------- found-> vendor=0x114f, dev=0x5012, revid=0x00 class=07-80-00, hdrtype=0x00, mfdev=0 intpin=a, irq=10 map[0]: type 1, range 32, base fed7fc00, size 7 map[1]: type 4, range 32, base 0000fc00, size 7 map[2]: type 1, range 32, base fed80000, size 19 -------------------- I have tried the DOS diagnostic utility that came with the card and that works fine. What is interresting is that according to the diagnostic utility the base for map[0] is a little different: 0xfedc1000. The base for map[3] according to it is: 0xfedc0000. Do anybody have an idea what is happening or how I can resolve it? If I understand correctly the BIOS do the mapping and FreeBSD only read and use it? Is that correct? In the mean time I'll start to read the pci code and see if I can figure out where the problem is. This is on 3.0-CURRENT. I don't have a 2.2.x machine at the moment to see if it behaves the same. Attached below is the output of a verbose boot. John -- John Hay -- John.Hay@mikom.csir.co.za Copyright (c) 1992-1998 FreeBSD Inc. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 3.0-CURRENT #0: Wed Aug 12 19:02:27 SAT 1998 root@orca.cids.org.za:/usr/src/sys/compile/ORCAUP Calibrating clock(s) ... TSC clock: 99702886 Hz, i8254 clock: 1193079 Hz Timecounter "i8254" frequency 1193079 Hz cost 3604 ns Timecounter "TSC" frequency 99702886 Hz cost 229 ns CPU: Pentium/P54C (99.70-MHz 586-class CPU) Origin = "GenuineIntel" Id = 0x526 Stepping=6 Features=0x3bf real memory = 33554432 (32768K bytes) Physical memory chunk(s): 0x00001000 - 0x0009efff, 647168 bytes (158 pages) 0x001db000 - 0x01ffdfff, 31600640 bytes (7715 pages) avail memory = 31051776 (30324K bytes) Found BIOS32 Service Directory header at 0xf00f7690 Entry = 0xfcee1 (0xf00fcee1) Rev = 0 Len = 1 PCI BIOS entry at 0x9ac Other BIOS signatures found: ACPI: 00000000 $PnP: 000eb530 pci_open(1): mode 1 addr port (0x0cf8) is 0x00000000 pci_open(1a): mode1res=0x00000000 (0x80000000) pci_open(1b): mode1res=0x80000000 (0xff000001) pci_cfgcheck: device 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -- nothing found pci_open(2): mode 2 enable port (0x0cf8) is 0x00 pci_open(2a): mode2res=0x0e (0x0e) pci_open(2a): now trying mechanism 2 pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=04a38086) Probing for devices on PCI bus 0: found-> vendor=0x8086, dev=0x04a3, revid=0x11 class=06-00-00, hdrtype=0x00, mfdev=0 chip0: rev 0x11 on pci0.0.0 CPU: Pentium, 60MHz, CPU->Memory posting ON, read around write Warning: Cache parity disabled! Cache: 256KB writeback, cache clocks=3-2-2-2/4-2-2-2 Cache flags: cache-all byte-control DRAM: page mode memory clocks=X-4-4-4 (70ns), RAS-wait, CAS-wait CPU->PCI: posting ON, burst mode ON, PCI clocks=2-1-1-1 PCI->Memory: posting ON Refresh: RAS#Only found-> vendor=0x8086, dev=0x0482, revid=0x03 class=00-00-00, hdrtype=0x00, mfdev=0 chip1: rev 0x03 on pci0.2.0 found-> vendor=0x1095, dev=0x0640, revid=0x02 class=01-01-0a, hdrtype=0x00, mfdev=0 intpin=a, irq=14 ide_pci0: rev 0x02 int a irq 14 on pci0.4.0 found-> vendor=0x114f, dev=0x5012, revid=0x00 class=07-80-00, hdrtype=0x00, mfdev=0 intpin=a, irq=10 map[0]: type 1, range 32, base fed7fc00, size 7 map[1]: type 4, range 32, base 0000fc00, size 7 map[2]: type 1, range 32, base fed80000, size 19 arc1: rev 0x00 int a irq 10 on pci0.14.0 arp: ID 5012114f arp: PCIcmd 2800107 arp: PBADR fed7fc00 arp: SIOBADR fc01 arp: MBADR fed80000 arp: HBADR 0 arp: vaddr f2b22000, paddr fed80000 arp: map failed. Probing for devices on the ISA bus: sc0: the current keyboard controller command byte 0045 kbdio: DIAGNOSE status:0055 kbdio: TEST_KBD_PORT status:0000 kbdio: RESET_KBD return code:00fa kbdio: RESET_KBD status:00aa sc0: keyboard device ID: ab41 sc0 at 0x60-0x6f irq 1 flags 0x8 on motherboard sc0: BIOS video mode:3 sc0: VGA registers upon power-up 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 07 80 9c ae 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff sc0: video mode:24 sc0: VGA registers in BIOS for mode:24 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 00 00 9c ae 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff sc0: VGA registers to be used for mode:24 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 00 00 9c ae 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff sc0: rows_offset:1 sc0: VGA color <16 virtual consoles, flags=0x8> ed0 at 0x280-0x29f irq 5 maddr 0xd8000 msize 16384 on isa ed0: address 00:00:c0:1d:43:db, type SMC8216/SMC8216C (16 bit) bpf: ed0 attached sio0: irq maps: 0x1 0x11 0x1 0x1 sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa sio0: type 16550A sio1: irq maps: 0x1 0x9 0x1 0x1 sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fdc0: FIFO enabled, 8 bytes threshold fd0: 1.44MB 3.5in wdc0 at 0x1f0-0x1f7 irq 14 on isa wdc0: unit 0 (wd0): wd0: 610MB (1249920 sectors), 1240 cyls, 16 heads, 63 S/T, 512 B/S wd0: ATA INQUIRE valid = 0003, dmamword = 0203, apio = 0001, udma = 0000 arc0 not found at 0x300 npx0 on motherboard npx0: INT 16 interface i586_bzero() bandwidth = 64960374 bytes/sec bzero() bandwidth = 32507639 bytes/sec imasks: bio c0084040, tty c003001a, net c0060020 stray irq 7 BIOS Geometries: 0:026a1f3f 0..618=619 cylinders, 0..31=32 heads, 1..63=63 sectors 0 accounted for Device configuration finished. Intel Pentium F00F detected, installing workaround bpf: lo0 attached Considering FFS root f/s. changing root device to wd0s4a wd0s4: type 0xa5, start 63, end = 1249919, size 1249857 : OK ffs_mountfs: superblock updated To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message