Skip site navigation (1)Skip section navigation (2)
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>