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>
