Date: Thu, 1 May 1997 04:23:07 +0300 (EEST) From: Andrew Stesin <stesin@gu.net> To: dg@root.com, se@freebsd.org, Michael Smith <msmith@atrad.adelaide.edu.au> Cc: hackers@freebsd.org, scsi@freebsd.org Subject: Intel XXpress - partial success! (was: 2 PCI busses, 2 AIC chips... Message-ID: <Pine.BSF.3.95q.970501033701.703A-100000@trifork.gu.net> In-Reply-To: <199704090022.JAA21738@genesis.atrad.adelaide.edu.au>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello, that's me again and it seems to me that the XXpress saga will come to the end soon -- with FreeBSD final victory, I hope :) This machine is going to become a mail relay of major importance. For several reasons, commercial unices aren't an option. The machine is Big and Nice ;) but only Solaris x86 was able to live successfully on it -- more or less, because neither Linux nor Solaris were able to recognize _both_ AIC7870 chips, only the first one worked. Ok, first time FreeBSD failed to sit on it and live there; and my collegues are all Linux-oriented men, they put some fancy Linux distribution onto this box, with 2.0.30 kernel. Test run: a loaded Squid proxy caused a silent crash of Linux, no reboot, nothing, just death with a one-line panic message, after 1-2 days of uptime. Other Linux kernels -- same behaviour. So now I got the box again, and -- cool! patch by David Greenman succeeded, thanks! The first and the most boring problem is solved, 2 AIC chips are recognized. Dear Stefan, wouldn't you mind commiting a cleaner equivalent of the pci.c fix below to both code branches, please. Some questions still remain, though. I.e.: what are those PCI chips, they are unknown to FreeBSD, they caused weirdness in the dmesg output below? Why on the Earth I'm seeing that infamous-since-i386-days "stray irq 7" message once again? What does the message: "ahc0: Reading SEEPROM...checksum error", "ahc0: No SEEPROM available" mean -- is this Ok? (And will FreeBSD on this machine more stable than the "other OS" was? ;) On Wed, 9 Apr 1997, Michael Smith wrote: > > 4. XPC 637909-001 (no idea) > > 5. XPD 637910-001 2 parts (no idea) > > Um, they sound a lot like FPGA or some other gate array parts. Do they > have logos on them? Yes, Intel logos as well. I also noticed some references to a string XPC in the BIOS setup, somewhere under "Advanced -> ... chipset ..." screen. I have no ideas what can this mean... BIOS is AMI, version is 1.00.06.BG0 "Interesting" options are: Force BSP to slot 2 [Disable] Force XPC Posted Write [Auto Detect] ... Current XPC Posted Write <Enable> ??? > Stick a serial cable on com1 leading to another machine, and use the > '-hv' boot flags to get it to use the serial console. Attempts to do so brought an unusual effect (BTW: BIOS is capable to redirect it's output to the serial console), GENERIC kernel started writing to serial port but as soon as it detected video & keyboard it started writing all the rest there... :) > > I'm considering this, but I don't trust my own skills of > > hacking pretty unfamiliar kernel code to get production > > system running in 2-3 days... I still hope that there already is > > a solution... > > 2-3 days on a new platform? Is this your timeframe or your customer's? > Whoever, they gotta be _nuts_! No. This system is for us -- and it _should_ be ready 2 weeks ago to start a "test run", with some simple functions like web proxy running there, while the rest details of the configuration are being done. Best regards, Andrew Stesin nic-hdl: ST73-RIPE ---------- fix to pci.c --------- 8< -------------------------------- *** pci.c-releng22 Thu May 1 00:20:48 1997 --- pci.c Thu May 1 00:21:54 1997 *************** *** 152,161 **** --- 152,180 ---- static int pci_conf_count; static int pci_info_done; static int pcibusmax; static struct pcicb *pcicb; + /*-------------------------------------------------------- + ** + ** DG's patch to deal with a crazy Intel XXpress: + ** it has 2 PCI busses, both are primary (?) + ** + **-------------------------------------------------------- + */ + #define SECOND_BUS 1 + static struct pcicb pcibus1 = { + NULL, NULL, NULL, + { 0 }, + 0, SECOND_BUS, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, /* real allocation */ + 0, 0xFFFF, /* iobase/limit */ + 0x2000000, 0xFFFFFFFFu, /* nonprefetch membase/limit */ + 0x2000000, 0xFFFFFFFFu /* prefetch membase/limit */ + }; + + /*----------------------------------------------------------------- ** ** The following functions are provided for the device driver ** to read/write the configuration space. ** *************** *** 891,900 **** --- 910,942 ---- if (pcicb) pcicb = pcicb->pcicb_next; } pcibusmax++; } + #ifdef SECOND_BUS + /*-------------------------------------------------------- + ** + ** DG's patch to deal with a crazy Intel XXpress: + ** it has 2 PCI busses, both are primary (?) + ** + **-------------------------------------------------------- + */ + for (pcicb = &pcibus1; pcicb != NULL;) { + pci_bus_config (); + + if (pcicb->pcicb_down) { + pcicb = pcicb->pcicb_down; + continue; + }; + + while (pcicb && !pcicb->pcicb_next) + pcicb = pcicb->pcicb_up; + + if (pcicb) + pcicb = pcicb->pcicb_next; + } + #endif pci_conf_count++; } /*----------------------------------------------------------------------- ** ----------- XXpress' dmesg output after verbose boot --- 8< --------------- Copyright (c) 1992-1996 FreeBSD Inc. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 2.2-970427-RELENG #1: Thu May 1 00:24:37 GMT 1997 root@whitestar.gu.net:/usr/src/sys/compile/XXPRESS Calibrating clock(s) ... i586 clock: 166669373 Hz, i8254 clock: 1193166 Hz CLK_USE_I8254_CALIBRATION not specified - using default frequency CLK_USE_I586_CALIBRATION not specified - using old calibration method CPU: Pentium (160.01-MHz 586-class CPU) Origin = "GenuineIntel" Id = 0x52c Stepping=12 Features=0x3bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,APIC> real memory = 167772160 (163840K bytes) avail memory = 162467840 (158660K bytes) eisa0: <INT3190 (System Board)> Probing for devices on the EISA bus ep0: <3Com 3C579-BNC EISA Network Adapter> at 0x2000-0x200f, 0x2c80-0x2c89 irq 5 ep0: on eisa0 slot 2 ep0: aui/bnc[*BNC*] address 00:20:af:53:1e:22 pcibus_setup(1): mode 1 addr port (0x0cf8) is 0x80007804 pcibus_setup(1a): mode1res=0x80000000 (0x80000000) pcibus_check: device 0 is there (id=12258086) Probing for devices on PCI bus 0: configuration mode 1 allows 32 devices. chip0 <generic PCI bridge (vendor=8086 device=1225 subclass=0)> rev 2 on pci0:0 chip1 <Intel 82375EB PCI-EISA bridge> rev 5 on pci0:14:0 pci0:15:0: Intel Corporation, device=0x0008, class=0xff, subclass=0x00 [no driver assigned] map(10): mem32(ffe7fc08) map(14): mem32(ffe7fc08) map(18): mem32(ffe7fc08) map(1c): mem32(ffe7fc08) map(20): mem32(ffe7fc08) map(24): mem32(ffe7fc08) pci0:15:1: Intel Corporation, device=0x0008, class=0xff, subclass=0x00 [no driver assigned] map(10): mem32(ffe7fc08) map(14): mem32(ffe7fc08) map(18): mem32(ffe7fc08) map(1c): mem32(ffe7fc08) map(20): mem32(ffe7fc08) map(24): mem32(ffe7fc08) pci0:15:2: Intel Corporation, device=0x0008, class=0xff, subclass=0x00 [no driver assigned] map(10): mem32(ffe7fc08) map(14): mem32(ffe7fc08) map(18): mem32(ffe7fc08) map(1c): mem32(ffe7fc08) map(20): mem32(ffe7fc08) map(24): mem32(ffe7fc08) pci0:15:3: Intel Corporation, device=0x0008, class=0xff, subclass=0x00 [no driver assigned] map(10): mem32(ffe7fc08) map(14): mem32(ffe7fc08) map(18): mem32(ffe7fc08) map(1c): mem32(ffe7fc08) map(20): mem32(ffe7fc08) map(24): mem32(ffe7fc08) pci0:15:4: Intel Corporation, device=0x0008, class=0xff, subclass=0x00 [no driver assigned] map(10): mem32(ffe7fc08) map(14): mem32(ffe7fc08) map(18): mem32(ffe7fc08) map(1c): mem32(ffe7fc08) map(20): mem32(ffe7fc08) map(24): mem32(ffe7fc08) pci0:15:5: Intel Corporation, device=0x0008, class=0xff, subclass=0x00 [no driver assigned] map(10): mem32(ffe7fc08) map(14): mem32(ffe7fc08) map(18): mem32(ffe7fc08) map(1c): mem32(ffe7fc08) map(20): mem32(ffe7fc08) map(24): mem32(ffe7fc08) pci0:15:6: Intel Corporation, device=0x0008, class=0xff, subclass=0x00 [no driver assigned] map(10): mem32(ffe7fc08) map(14): mem32(ffe7fc08) map(18): mem32(ffe7fc08) map(1c): mem32(ffe7fc08) map(20): mem32(ffe7fc08) map(24): mem32(ffe7fc08) pci0:15:7: Intel Corporation, device=0x0008, class=0xff, subclass=0x00 [no driver assigned] map(10): mem32(ffe7fc08) map(14): mem32(ffe7fc08) map(18): mem32(ffe7fc08) map(1c): mem32(ffe7fc08) map(20): mem32(ffe7fc08) map(24): mem32(ffe7fc08) Probing for devices on PCI bus 1: chip2 <generic PCI bridge (vendor=8086 device=1225 subclass=0)> rev 2 on pci1:0 ahc0 <Adaptec aic7870 SCSI host adapter> rev 3 int a irq 10 on pci1:13 mapreg[10] type=1 addr=0000fc00 size=0100. mapreg[14] type=0 addr=ffcff000 size=1000. reg20: virtual=0xf6963000 physical=0xffcff000 size=0x1000 ahc0: Reading SEEPROM...checksum error ahc0: No SEEPROM available ahc0: Using left over BIOS settings ahc0: aic7870 Wide Channel, SCSI Id=7, 16/255 SCBs ahc0: Resetting Channel A ahc0: Downloading Sequencer Program...ahc0: 411 instructions downloaded Done ahc0: Probing channel A ahc0 waiting for scsi devices to settle ahc0: target 1 using 16Bit transfers ahc0: target 1 synchronous at 10.0MHz, offset = 0x8 ahc0: target 1 Tagged Queuing Device (ahc0:1:0): "SEAGATE ST34371W 0484" type 0 fixed SCSI 2 sd0(ahc0:1:0): Direct-Access 4148MB (8496884 512 byte sectors) sd0(ahc0:1:0): with 5172 cyls, 10 heads, and an average 164 sectors/track ahc1 <Adaptec aic7870 SCSI host adapter> rev 3 int a irq 9 on pci1:14 mapreg[10] type=1 addr=0000f800 size=0100. mapreg[14] type=0 addr=ffcfe000 size=1000. reg20: virtual=0xf6966000 physical=0xffcfe000 size=0x1000 ahc1: Reading SEEPROM...checksum error ahc1: No SEEPROM available ahc1: aic7870 Wide Channel, SCSI Id=7, 16/255 SCBs ahc1: Resetting Channel A ahc1: Host Adapter Bios disabled. Using default SCSI device parameters ahc1: Downloading Sequencer Program...ahc1: 411 instructions downloaded Done ahc1: Probing channel A ahc1 waiting for scsi devices to settle ahc1: target 6 using 16Bit transfers ahc1: target 6 synchronous at 10.0MHz, offset = 0x8 ahc1: target 6 Tagged Queuing Device (ahc1:6:0): "SEAGATE ST34371W 0484" type 0 fixed SCSI 2 sd1(ahc1:6:0): Direct-Access 4148MB (8496884 512 byte sectors) sd1(ahc1:6:0): with 5172 cyls, 10 heads, and an average 164 sectors/track pci1: uses 8192 bytes of memory from ffcfe000 upto ffcfffff. pci1: uses 512 bytes of I/O space from f800 upto fcff. Probing for devices on the ISA bus: sc0: the current keyboard controller command byte 0065 kbdio: RESET_KBD return code:00fa kbdio: RESET_KBD status:00aa sc0 at 0x60-0x6f irq 1 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 ff ff 9c 8e 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 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 8e 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 color <16 virtual consoles, flags=0x0> sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 not found at 0x2f8 lpt0 not found at 0xffffffff psm0: current command byte:0065 kbdio: TEST_AUX_PORT status:0000 kbdio: RESET_AUX return code:00fa kbdio: RESET_AUX status:00aa kbdio: RESET_AUX ID:0000 psm0: status after reset 00 02 64 psm: status 00 00 64 (get_mouse_buttons) psm0: status 00 02 64 psm0 at 0x60-0x64 irq 12 on motherboard psm0: device ID 0, 2 buttons fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fdc0: NEC 72065B fd0: 1.44MB 3.5in wdc0 at 0x1f0-0x1f7 irq 14 flags 0x80ff80ff on isa wdc0: unit 0 (wd0): <NEC Corporation D3745>, multi-block-16 wd0: 1032MB (2113776 sectors), 2097 cyls, 16 heads, 63 S/T, 512 B/S ep0 not found at 0x300 npx0 flags 0x1 on motherboard npx0: INT 16 interface imasks: bio c0004640, tty c0031032, net c0031032 BIOS Geometries: 0:020a3f3f 0..522=523 cylinders, 0..63=64 heads, 1..63=63 sectors 0 accounted for Device configuration finished. Considering FFS root f/s. configure() finished. new masks: bio c0004640, tty c0031032, net c0031032 wd0s1: type 0xa5, start 0, end = 2113775, size 2113776 wd0s1: C/H/S end 131/146/63 (1222451) != end 2113775: invalid stray irq 7
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95q.970501033701.703A-100000>