Date: Wed, 16 Oct 2002 21:46:40 -0500 From: "Anthony Anderberg" <ant@hutchtel.net> To: freebsd-smp@FreeBSD.org Subject: Will ALR QSMP machines ever work? Message-ID: <3DADDE40.6765.50B87F5@localhost>
index | next in thread | raw e-mail
A few weeks ago a friend was moving and gave me an
ALR "Revolution Q-SMP" EISA-based server. It's got
two 90MHz P5 CPUs, but I'll be darned if I can get an
SMP kernel to boot. The generic kernel and any
uniprocessor kernel I compile seem to work fine,
and my friend was running NT4 with both processors.
After some long hours scouring this group's archives
and other web sources I've found that there seem
to be a number of people who have fiddled with these
boxes but nobody has come to any definite conclusions
as to why these boxes don't work. I'm sending this
note in hopes that we can come to some consensuses as
to whether these boxes will ever run SMP FreeBSD.
I'd really like to be able to run a decent OS on this
box because I've got the chance to get two more CPUs,
and that would really make my X10 scripts fly! :-)
If it turns out these systems are not supported I think
we should put something in our SMP docs (perhaps LINT
and the FAQ) to warn people that these systems can't
be supported.
So, here's everything I know about my
ALR Revolution Q-SMP thus far:
To rule out hardware problems I borrowed an identical
CPU card from a test machine at work and tried various
combinations of the cards with the same results each
time. All three CPUs are the same stepping level and
all three worked (even at the same time) in NT4.
I get the same results in 4.6.2 and 5.0-DP1.
I used the serial console to capture these messages,
and I'll include mptable output below.
ok set boot_verbose
ok boot
Physical memory use set to 262144K
Copyright (c) 1992-2002 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 4.6.2-RELEASE #1: Sun Sep 29 21:39:22 CDT 2002
root@saturn.networkagents.com:/usr/src/sys/compile/ALRSMP
Calibrating clock(s) ... TSC clock: 89998169 Hz, i8254 clock: 1193155 Hz
CLK_USE_I8254_CALIBRATION not specified - using default frequency
Timecounter "i8254" frequency 1193182 Hz
CLK_USE_TSC_CALIBRATION not specified - using old calibration method
CPU: Pentium/P54C (90.00-MHz 586-class CPU)
Origin = "GenuineIntel" Id = 0x522 Stepping = 2
Features=0x1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8>
real memory = 268435456 (262144K bytes)
Physical memory chunk(s):
0x00001000 - 0x0009efff, 647168 bytes (158 pages)
0x00505000 - 0x0fff7fff, 263139328 bytes (64243 pages)
avail memory = 256241664 (250236K bytes)
Programming 16 pins in IOAPIC #0
EISA INTCONTROL = 00001400
SMP: CPU0 apic_initialize():
lint0: 0x00000700 lint1: 0x00010400 TPR: 0x00000010 SVR: 0x000001f0
AP #1 (PHY# 1) failed!
panic y/n? [y]
If I say yes I get:
panic: bye-bye
mp_lock = 00000001; cpuid = 0; lapic.id = 00000000
Uptime: 0s
If I say no it makes it a little further:
FreeBSD/SMP: Multiprocessor motherboard
cpu0 (BSP): apic id: 0, version: 0x00000001, at 0xfee00000
cpu1 (AP): apic id: 1, version: 0x00000000, at 0xfee00000
io0 (APIC): apic id: 4, version: 0x000f0001, at 0xfec00000
Other BIOS signatures found:
ACPI: 00000000
Preloaded elf kernel "kernel" at 0xc04db000.
Intel Pentium detected, installing workaround for F00F bug
md0: Malloc disk
Creating DISK md0
Math emulator present
SMP: CPU0 bsp_apic_configure():
lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000010 SVR: 0x000001f0
pci_open(1): mode 1 addr port (0x0cf8) is 0xffffffff
pci_open(2): mode 2 enable port (0x0cf8) is 0xff
npx0: <math processor> on motherboard
npx0: INT 16 interface
i586_bzero() bandwidth = 102113754 bytes/sec
bzero() bandwidth = 218292949 bytes/sec
eisa0: <EISA bus> on motherboard
mainboard0: <ALRa301 (System Board)> on eisa0 slot 0
eisa0: unknown card MLX0075 (0x35980075) at slot 6
vx0: <3Com 3C597-TX Network Adapter> at 0x8000-0x801f
vx0: irq 10 (edge) on eisa0 slot 8
utp/tx[*utp*]: disable 'auto select' with DOS util! address 00:60:97:07:c7:9f
bpf: vx0 attached
isa0: <ISA bus> on motherboard
ex_isa_identify()
Trying Read_Port at 203
Trying Read_Port at 243
Trying Read_Port at 283
Trying Read_Port at 2c3
Trying Read_Port at 303
Trying Read_Port at 343
Trying Read_Port at 383
Trying Read_Port at 3c3
isa_probe_children: disabling PnP devices
isa_probe_children: probing non-PnP devices
orm0: <Option ROMs> at iomem 0xc0000-0xc7fff,0xcc000-0xcf7ff on isa0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ata0: iobase=0x01f0 altiobase=0x03f6 bmaddr=0x0000
ata0: mask=03 ostat0=50 ostat2=00
ata0-master: ATAPI 00 00
ata0-slave: ATAPI 00 00
ata0: mask=03 stat0=50 stat1=00
ata0-master: ATA 01 a5
ata0: devices=01
ata0 at port 0x1f0-0x1f7,0x3f6 irq 14 on isa0
(It hangs at this point each time.)
My MP table output:
========================================================
=======================
MPTable, version 2.0.15
-------------------------------------------------------------------------------
MP Floating Pointer Structure:
location: EBDA
physical address: 0x0009fca0
signature: '_MP_'
length: 16 bytes
version: 1.1
checksum: 0x6e
mode: PIC
-------------------------------------------------------------------------------
MP Config Table Header:
physical address: 0x0009fcb0
signature: 'PCMP'
base table length: 292
version: 1.1
checksum: 0x62
OEM ID: 'ALR '
Product ID: 'Revolut QSMP'
OEM table pointer: 0x00000000
OEM table size: 0
entry count: 25
local APIC address: 0xfee00000
extended table length: 0
extended table checksum: 0
-------------------------------------------------------------------------------
MP Config Base Table Entries:
--
Processors: APIC ID Version State Family Model Step
Flags
0 0x 1 BSP, usable 5 2 2
0x0181
1 0x 1 AP, usable 5 2 2
0x0181
2 0x 1 AP, unusable 0 0 0
0x0000
3 0x 1 AP, unusable 0 0 0
0x0000
--
Bus: Bus ID Type
0 EISA
--
I/O APICs: APIC ID Version State Address
4 0x01 usable 0xfec00000
5 0x01 unusable 0xfec01000
6 0x01 unusable 0xfec02000
7 0x01 unusable 0xfec03000
--
I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#
ExtINT conforms conforms 0 0 4
0
INT conforms conforms 0 1 4
1
INT conforms conforms 0 3 4
3
INT conforms conforms 0 4 4
4
INT conforms conforms 0 5 4
5
INT conforms conforms 0 6 4
6
INT conforms conforms 0 7 4
7
INT conforms conforms 0 8 4
8
INT conforms conforms 0 9 4
9
INT conforms conforms 0 10 4
10
INT conforms conforms 0 11 4
11
INT conforms conforms 0 12 4
12
INT conforms conforms 0 14 4
14
INT conforms conforms 0 15 4
15
--
Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID
PIN#
ExtINT conforms conforms 0 0 255
0
NMI conforms conforms 0 0 255
1
========================================================
=======================
Other things that may be of interest:
mptable and the documentation indicate the system is
using Intel's MP spec v1.1
I read in a Linux FAQ that 1.4 is just a tighter version
of the 1.1 spec, does anyone know of other MP 1.1
hardware or P5 systems running FreeBSD-SMP
successfully? Speaking of the Linux, their SMP-FAQ
mentions that older ALRs without P6 CPUs are "iffy",
but doesn't say why.
The manual specifically mentions Windows NT, Netware
SMP, OS/2 for SMP and SCO Unix 3.2.4.2 as all working
with the system. I found a report from Sun indicating
Solaris X86 2.5 works and in several posts from this
group I found there was talk of BSD/OS supporting the
system as well.
In response to an inquiry a few years ago Rik van Riel wrote:
"Note that the ALR uses a custom (non-IMPS) bus. If only
because that's the only way to keep 4 Pentium CPUs in
a cache-coherent state. The documentation for this glue
logic seems to be very hard or impossible to find... "
Can anyone shed light on his comments?
I had to use the MAXMEM option in all of my kernels to
get the FreeBSD kernel to see the full 256MB. I doubt
this is related though because it works fine in the
uniprocessor version.
It's also worth pointing out that it locks up after the
ata0 probe; at that point the uniprocessor kernel
picks up ata1, which wouldn't be odd except that I
can't find a connector for the secondary IDE bus and
NT4 doesn't seem to see anything on IRQ 15.
The 4.6.2-generic kernel reports:
ata1 at port 0x170-0x177,0x376 irq 15 on isa0
This is probably some unrelated weirdness, but it
seems like a weird coincidence...
Thanks everyone,
anthony
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DADDE40.6765.50B87F5>
