VOGONS


First post, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie

PINNED NOTE: It is completely okay for an ACPI system to not have a usable MP table! As such, it is completely possible for an ACPI-supported system to be not MPS complaint thus not work with MPS-only HALs.

I'm thinking about looking at a system's MPS (MultiProcessor Specification) tables to see if it'll properly run an old Windows NT system (3.51 or 4.0) whose HAL predates ACPI. From the wiki article it suggested something called "mptable" but I failed to find anything useful after googling. I only managed to find some code meant for various kernels to parse MP tables, though.

I once tried running NT 3.51 on an AMD 760G motherboard and I failed to make it boot with the MPS HAL. Only "Standard PC" HAL worked, so I can only use one CPU core. Originally I believed an ACPI-supported system should have no issues with MPS, but after some googling it turned out to be not the case (see pinned note).

On the other hand, some motherboards, such as RUBY-9719VG2AR, do have usable MP tables and can work with the MPS HAL. Its BIOS even offers the option to choose which MPS version, though NT 3.51 works fine even with it set to 1.4, despite it only supported 1.1. It was not until NT 4.0 did Windows had formal MPS 1.4 support.

I also found this old question from someone who wants to "generate MP table from ACPI tables" so MPS-only things would work regardless of MP table status, but that question did not go anywhere.

So where can I find this "mptable" utility that I could take a look at a system's MP table and determine whether a MPS HAL would work on a given board or not?

Reply 1 of 13, by Horun

User metadata
Rank l33t++
Rank
l33t++

I do not know where to get mptable utility but it could be lost at Intels ftp.
Did you read the Intel MPS Spec docs ? https://pdos.csail.mit.edu/6.828/2008/reading … ia32/MPspec.pdf and http://datasheets.chipdb.org/Intel/x86/Pentiu … Pro/PPPBIOS.PDF
Dated 1996 and 1997 so am sure anything from 2011 <AMD 760G> is way out of spec to utilize the MPS built into the old OS, ACPI or not. Other thing is it is an Intel spec and maybe AMD did not follow it or the bios for later AMD chipsets did not.
MHO: Your AMD 760G is too new being ACPI and multi core (not dual single core CPU if I read the spec right <probably not> and definately not AT and does not have ISA as the 1997 spec mentions.

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 2 of 13, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
Horun wrote on 2023-03-27, 03:02:
I do not know where to get mptable utility but it could be lost at Intels ftp. Did you read the Intel MPS Spec docs ? https://pd […]
Show full quote

I do not know where to get mptable utility but it could be lost at Intels ftp.
Did you read the Intel MPS Spec docs ? https://pdos.csail.mit.edu/6.828/2008/reading … ia32/MPspec.pdf and http://datasheets.chipdb.org/Intel/x86/Pentiu … Pro/PPPBIOS.PDF
Dated 1996 and 1997 so am sure anything from 2011 <AMD 760G> is way out of spec to utilize the MPS built into the old OS, ACPI or not. Other thing is it is an Intel spec and maybe AMD did not follow it or the bios for later AMD chipsets did not.
MHO: Your AMD 760G is too new being ACPI and multi core (not dual single core CPU if I read the spec right <probably not> and definately not AT and does not have ISA as the 1997 spec mentions.

While it may be out-of-spec, with a valid MP table it should be able to utilize whatever features MPS supported. The MP table sanity is most likely a per-board issue, not generic.

Multi-core is not a problem, as on my RUBY-9719VG2AR with a modded Xeon X5470, all four cores are detected and usable when using the "MPS MultiProcessor PC" HAL. I think I've seen mentions about working MPS HAL on even newer Intel chipsets, just that extra threads from HyperThreading obviously won't be usable.

As for the question that did not go anywhere... I wonder if it's even theoretically possible to "make" a valid MP table using an ACPI table as input, to "fix" the invalid MP table so MPS HALs can be happy...

EDIT: While it is possible that AMD did not follow the MPS spec entirely... without being able to actually look into the MP (not ACPI) table I can't be really sure.

Reply 3 of 13, by Horun

User metadata
Rank l33t++
Rank
l33t++

How to make a MPS table ? Ask Rod Grimes of Freebsd. He probably knows but am guessing it would be a Linux based operation . Then importing into the bios AFAIk,
And maybe I mis-understood, but do not think comparing a AMD chipset based board w/AMD cpu against an Intel chipset based board with Intel CPU (which you got running) for old OS compatabity makes much sense imho. Sorry but cannot see a easy way to get any newer AMD product to work same as an Intel... but what do I know 😀

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 4 of 13, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
Horun wrote on 2023-03-27, 03:58:

How to make a MPS table ? Ask Rod Grimes of Freebsd. He probably knows but am guessing it would be a Linux based operation . Then importing into the bios AFAIk,
And maybe I mis-understood, but do not think comparing a AMD chipset based board w/AMD cpu against an Intel chipset based board with Intel CPU (which you got running) for old OS compatabity makes much sense imho. Sorry but cannot see a easy way to get any newer AMD product to work same as an Intel... but what do I know 😀

Guess I'll have to look for some info myself. From this particular Gerrit discussion on coreboot, it seems the MP table of AMD boards of those periods were indeed problematic.

On the other hand, there indeed were a manpage for "mptable(1)", but it's for FreeBSD. Don't know if recent versions of FreeBSD still have this command so I could look into it...

Reply 5 of 13, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie

From Version 4.24 released on 14-Dec-2011 my SIV utility should report the MPS table on Windows NT 3.51 and later.

On this system and my Intel Core 2 Quad Q9550 (Yorkfield) 2.83GHz [C1] I see as below, does it look to show all you would like?

file.php?id=160881
file.php?id=160882

Attachments

Reply 6 of 13, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

Plenty of AMD boards have MPS tables, that's not really an issue. My A88X board does and it is a newer chipset than 760G. (I haven't tried booting Windows with MPS HAL before, maybe I should sometime...)

An MPS table is much less complex than ACPI, at least. With a bit of research, you could probably take one from a similar motherboard and then tweak it to work on your own hardware.

again another retro game on itch: https://90soft90.itch.io/shmup-salad

Reply 7 of 13, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
bakemono wrote on 2023-03-27, 10:11:

Plenty of AMD boards have MPS tables, that's not really an issue. My A88X board does and it is a newer chipset than 760G. (I haven't tried booting Windows with MPS HAL before, maybe I should sometime...)

An MPS table is much less complex than ACPI, at least. With a bit of research, you could probably take one from a similar motherboard and then tweak it to work on your own hardware.

Having the MPS table is one thing. Whether the MPS table is correct enough for OSes like old NT (3.51/4.0) to actually boot with the respective HAL is another.

Actually in the coreboot discussion I referenced, Mike Banon actually provided some info about how he fixed the MP tables for some boards (which included an A88X-based one, the A88XM-E), and the validation was done by booting Kolibri and check whether everything's working correctly. Plus, the utilities mentioned (getpir and mptable), can be found here. It's said their output may not be accurate, but still useful as a starting point.

Reply 8 of 13, by hyoenmadan

User metadata
Rank Member
Rank
Member
LSS10999 wrote on 2023-03-27, 15:22:

Having the MPS table is one thing. Whether the MPS table is correct enough for OSes like old NT (3.51/4.0) to actually boot with the respective HAL is another.

NT3.5 and NT4.0 [HALMPS] will only work with MPS revision 1.1 of the specification , full stop.

Windows 2000 [HALMPS] MAY work with MPS revision 1.4 tables, but it has to be tested per board. ONLY Windows XP [HALMPS] fully supports MPS rev 1.4 tables, along all their quirks.
You have to verify the MPS revision your board outputs before using older NT HALMPS support. Some board BIOSes offer a setting switch for the MPS revision output, mostly on AMD XP and Intel P4 era. But not all. You have to check for this too.

Reply 9 of 13, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
red-ray wrote on 2023-03-27, 08:09:

report the MPS table on Windows NT 3.51 and later

hyoenmadan wrote on 2023-03-28, 13:59:

NT3.5 and NT4.0 [HALMPS] will only work with MPS revision 1.1 of the specification , full stop.

This is incorrect , given I posted the following screen shot clearly showing NT 3.51 + MPS 1.4 working I am at a loss as to how you can post this.

file.php?id=160882

Reply 10 of 13, by hyoenmadan

User metadata
Rank Member
Rank
Member
red-ray wrote on 2023-03-28, 14:20:

This is incorrect , given I posted the following screen shot clearly showing NT 3.51 + MPS 1.4 working I am at a loss as to how you can post this.

picrel_says wrote:

Windows NT Service Pack 5

Service Pack 5 for NT3.51 brought MPS v1.4 support, backported from NT4 SP4, I would say rather "experimental" support. But such support depends how the tables are formed by the BIOS routines, it can be potentially misleading from user perspective, and isn't a given for EVERY board. While it works in your example, it may not work in other samples. AMIBIOS Core V7 and 8 are prone to fall in this category, as they use Microsoft compiler routines to build the tables rather Intel ones. Boards with AMI Aptio BIOSes replaced those routines with Intel ones, thus their tables are a bit more sane and compatible.

Officially, and the safest bet for everyone testing boards with older NT OSs, stays in MPS v1.1. If you board offers such option in BIOS, this is the one you should take. It will save you headaches.

Reply 11 of 13, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
hyoenmadan wrote on 2023-03-28, 13:59:

NT3.5 and NT4.0 [HALMPS] will only work with MPS revision 1.1 of the specification , full stop.

hyoenmadan wrote on 2023-03-28, 14:33:
picrel_says wrote:

Windows NT Service Pack 5

Service Pack 5 for NT3.51 brought MPS v1.4 support, backported from NT4 SP4, I would say rather "experimental" support. But such support depends how the tables are formed by the BIOS routines, it can be potentially misleading from user perspective, and isn't a given for EVERY board. While it works in your example, it may not work in other samples. AMIBIOS Core V7 and 8 are prone to fall in this category, as they use Microsoft compiler routines to build the tables rather Intel ones. Boards with AMI Aptio BIOSes replaced those routines with Intel ones, thus their tables are a bit more sane and compatible.

Officially, and the safest bet for everyone testing boards with older NT OSs, stays in MPS v1.1. If you board offers such option in BIOS, this is the one you should take. It will save you headaches.

full stop != Service Pack 5. Clearly your initial post is incorrect, further the picrel_says is missing a link so is worthless.

I am pretty sure when I installed NT 3.51 SP5 was not there, but I can't be bothered to prove it.

Reply 12 of 13, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
hyoenmadan wrote on 2023-03-28, 14:33:

AMIBIOS Core V7 and 8 are prone to fall in this category, as they use Microsoft compiler routines to build the tables rather Intel ones. Boards with AMI Aptio BIOSes replaced those routines with Intel ones, thus their tables are a bit more sane and compatible.

Both my Intel and AMD boards mentioned have AMI Core8 BIOS, so the use of Microsoft compiler may be relevant to the issues I'm having on some boards.

I can't be sure about Aptio (UEFI), but with this information, it may be worth testing.

Reply 13 of 13, by OMORES

User metadata
Rank Member
Rank
Member

MPS is still alive... I found MPS 1.4 tables on a socket 1700 motherboard (Asus H610M-C D4-CSM ) with an updated BIOS for Intel 14th Gen CPUs.

On this socket 1700 motherboard/Intel 13th Gen CPU - I updated an existing NT 4.0 installation to multiprocessor kernel - and everything worked fine, from the first try. Then I installed some audio drivers, a PCI-Express GPU (ATI X300), tested another PCI video card... (Here is a video - if you want more details.)

Attachments

My best video so far.