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>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DADDE40.6765.50B87F5>