SNI PCD-5T - MP operation on OpenBSD 6.3-current

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

SNI PCD-5T - MP operation on OpenBSD 6.3-current

Frank Scheiner
Dear all,

posting to misc as I don't know if this is a bug in OpenBSD or in my
hardware.

I got this nice old "workstation" from the mid 90ies with dual P54C
processors and i430NX chipset and want to operate it in MP mode with
OpenBSD. Unfortunately this doesn't work as expected currently. I've
already tried with 6.1, 6.2 and 6.3-current-1521924436. Find attached
the full dmesg output for 6.3-[...] below, but I suspect that the
following message is the most relevant one:

```
[...]
bios0: MP default configuration 6 not supported
[...]
```

I actually don't know the meaning of it, can someone perhaps shed some
light on it?

For comparison I also tried with NetBSD 7.1 which can operate in MP mode
on this machine:

```
NetBSD 7.1 (LEGACY.201703111743Z)
total memory = 159 MB
avail memory = 140 MB
kern.module.path=/stand/i386/7.1/modules
mainbus0 (root)
ACPI BIOS Error (bug): A valid RSDP was not found (20131218/tbxfroot-223)
acpi_probe: failed to initialize tables
ACPI Error: Could not remove SCI handler (20131218/evmisc-311)
mainbus0: Intel MP Specification (Version 1.1)
mainbus0: MP default configuration 6
cpu0 at mainbus0 apid 0: Intel 586-class, 165MHz, id 0x52c
cpu1 at mainbus0 apid 1: Intel 586-class, id 0x252c
[...]
```
...and either supports "MP default configuration 6" or just ignores it.
Hence I assume the machine is in working order.

Cheers,
Frank

****

Full dmesg output:
```
OpenBSD 6.3 (GENERIC.MP) #491: Sat Mar 24 14:38:11 MDT 2018
    [hidden email]:/usr/src/sys/arch/i386/compile/GENERIC.MP
cpu0: Intel Pentium (P54C) ("GenuineIntel" 586-class) 139 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,MCE,CX8,APIC
real mem  = 167264256 (159MB)
avail mem = 150855680 (143MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: date 06/04/98, BIOS32 rev. 0 @ 0xf04b3
apm at bios0 function 0x15 not configured
bios0: MP default configuration 6 not supported
pcibios0 at bios0: rev 2.0 @ 0xf0000/0x4db
pcibios0: pcibios_get_intr_routing - function not supported
pcibios0: PCI IRQ Routing information unavailable.
pcibios0: PCI bus #0 is the last bus
bios0: ROM list: 0xc0000/0x8000 0xc8000/0x800
cpu0 at mainbus0: (uniprocessor)
cpu0: F00F bug workaround installed
pci0 at mainbus0 bus 0: configuration mode 2 (bios)
pchb0 at pci0 dev 0 function 0 "Intel 82434LX/NX" rev 0x11
"Intel 82375EB EISA" rev 0x04 at pci0 dev 1 function 0 not configured
"PC Technology RZ1000" rev 0x01 at pci0 dev 2 function 0 not configured
xl0 at pci0 dev 13 function 0 "3Com 3c905C 100Base-TX" rev 0x78: irq 15, address 00:04:75:12:34:56
exphy0 at xl0 phy 24: 3Com internal media interface
eisa0 at mainbus0
eisa0: can't map i/o space for slot 14
isa0 at mainbus0
isadma0 at isa0
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
vga0 at isa0 port 0x3b0/48 iomem 0xa0000/131072
wsdisplay0 at vga0 mux 1: console (80x25, vt100 emulation), using wskbd0
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
scsibus2 at softraid0: 256 targets
PXE boot MAC address 00:04:75:12:34:56, interface xl0
nfs_boot: using interface xl0, with revarp & bootparams
nfs_boot: client_addr=172.16.2.96
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
nfs_boot: server_addr=172.16.0.1 hostname=pcd-5t
root on 172.16.0.9:/srv/nfs/pcd-5t/root
swap on 172.16.0.9:/srv/nfs/pcd-5t/swap
```

Reply | Threaded
Open this post in threaded view
|

Re: SNI PCD-5T - MP operation on OpenBSD 6.3-current

Daniel Dickman
Hi Frank —

> I got this nice old "workstation" from the mid 90ies with dual P54C
> processors and i430NX chipset and want to operate it in MP mode with
> OpenBSD. Unfortunately this doesn't work as expected currently.

Are you able to describe "doesn't work as expected" a bit more? Does it hang after the dmesg? do you get to login? Something else?

> I've
> already tried with 6.1, 6.2 and 6.3-current-1521924436. Find attached
> the full dmesg output for 6.3-[...] below, but I suspect that the
> following message is the most relevant one:
>
> ```
> [...]
> bios0: MP default configuration 6 not supported
> [...]
> ```
>
> I actually don't know the meaning of it, can someone perhaps shed some
> light on it?

It means you got to this bit of code (see sys/arch/i386/i386/mpbios.c):

       if (mp_fps->pap == 0) {
               if (mp_fps->mpfb1 == 0)
                       printf("%s: MP fps invalid: "
                           "no default config and no configuration table\n",
                           self->dv_xname);
               else
                       printf("%s: MP default configuration %d not "
                           "supported\n", self->dv_xname, mp_fps->mpfb1);
               goto err;
       }

mp_fps is the "MP floating point structure" (see 4.1 in the MP spec). Now, we know the pap (Physical Address Pointer) is zero which means the MP config table doesn't exist on your system. So when there's no config table, the spec wants to use a default setup. (see section 5 of the spec).

To know which default config to use we’d need to use the MP information byte #1 according to the spec. Your dmesg shows the value is 6 and the spec says a value of 6 refers to 2 cpus with EISA+PCI bus and integrated APIC).

It may be the case that more work is needed to add support for this setup. Haven’t looked much further than that so far...

Reply | Threaded
Open this post in threaded view
|

Re: SNI PCD-5T - MP operation on OpenBSD 6.3-current

Frank Scheiner
Hi Daniel,

On 03/30/2018 02:20 AM, Daniel Dickman wrote:
> Hi Frank —
>
>> I got this nice old "workstation" from the mid 90ies with dual P54C
>> processors and i430NX chipset and want to operate it in MP mode with
>> OpenBSD. Unfortunately this doesn't work as expected currently.
>
> Are you able to describe "doesn't work as expected" a bit more? Does it hang after the dmesg? do you get to login? Something else?

Sorry, right, I actually missed the point.

The machine works with OpenBSD, but just not in MP mode, only one CPU is
activated/found:

```
OpenBSD/i386 (pcd-5t.domain.tld) (tty00)

login: root
Password:
Last login: Wed Mar 28 11:10:35 on tty00
OpenBSD 6.3 (GENERIC.MP) #491: Sat Mar 24 14:38:11 MDT 2018

Welcome to OpenBSD: The proactively secure Unix-like operating system.
[...]
pcd-5t# sysctl hw
hw.machine=i386
hw.model=Intel Pentium (P54C) ("GenuineIntel" 586-class)
hw.ncpu=1
hw.byteorder=1234
hw.pagesize=4096
hw.disknames=fd0:
hw.diskcount=1
hw.cpuspeed=139
hw.physmem=167264256
hw.usermem=167251968
hw.ncpufound=1
hw.allowpowerdown=1
```

>
>> I've
>> already tried with 6.1, 6.2 and 6.3-current-1521924436. Find attached
>> the full dmesg output for 6.3-[...] below, but I suspect that the
>> following message is the most relevant one:
>>
>> ```
>> [...]
>> bios0: MP default configuration 6 not supported
>> [...]
>> ```
>>
>> I actually don't know the meaning of it, can someone perhaps shed some
>> light on it?
>
> It means you got to this bit of code (see sys/arch/i386/i386/mpbios.c):
>
>         if (mp_fps->pap == 0) {
>                 if (mp_fps->mpfb1 == 0)
>                         printf("%s: MP fps invalid: "
>                             "no default config and no configuration table\n",
>                             self->dv_xname);
>                 else
>                         printf("%s: MP default configuration %d not "
>                             "supported\n", self->dv_xname, mp_fps->mpfb1);
>                 goto err;
>         }

Yes, I also found this part later on with a string search, but couldn't
make much out of it due to missing knowledge you did provide below -
thanks for that. :-)

>
> mp_fps is the "MP floating point structure" (see 4.1 in the MP spec). Now, we know the pap (Physical Address Pointer) is zero which means the MP config table doesn't exist on your system. So when there's no config table, the spec wants to use a default setup. (see section 5 of the spec).
>
> To know which default config to use we’d need to use the MP information byte #1 according to the spec. Your dmesg shows the value is 6 and the spec says a value of 6 refers to 2 cpus with EISA+PCI bus and integrated APIC).
>
> It may be the case that more work is needed to add support for this setup. Haven’t looked much further than that so far...

The message mentioning that "MP default configuration 6 not supported"
sounded like specifically default config 6 isn't supported in my case.
But it actually looks like this affects all systems that don't have an
MP config table, i.e. no MP operation if there's no MP config table but
just a default config.

I'll try to find out how NetBSD handles default configurations. Maybe
this can be applied to OpenBSD, too.

Cheers and thanks for the explanations
Frank