Some IA-32 hardware was produced following the Intel MultiProcessing Specification (MPS), a standard proposed by Intel Corp. for discovery and configuration of system hardware resources in systems with or capable of supporting multiple physical processors (CPUs). This specification has since been superceded by the ACPI specification (which has in turn been superceded by the UDI specification). The Zygoma kernel should be able to work with MPS hardware, however.
This software is implemented from the specifications documented in the Intel MultiProcessor Specification Version 1.4 May 1997. Copies of this specification may be obtained from the following address.
Intel Corporation
Literature Center
P.O.Box 7641
Mt. Prospect IL 60056-7641
or call 800-879-4683.
An MPS-compliant system must provide an MP Floating Pointer structure somewhere at a somwhat known address. This structure is found by searching physical memory ranges on 16-byte boundaries for the MPFP signature.
The memory ranges searched, in the order specified in the spec are:
-
The first 1024 bytes of the extended BIOS data area (EBDA), which can be found on EISA or MCA architecture systems in the 2-byte locations 40:0Eh of the BIOS data area. That translates into humanspeak as 0x40e0 .. 0x50e0? Will Zygoma ever bother to support these architectures?
-
The last kilobyte of "system base memory" which really means 639K-640K (0x09fc00 .. 0x0a0000) if there is 640K of base memory or 511K-512K (0x07fc00 .. 0x080000) for systems with 512K of base memory. I couldn't tell you what would happen if the system has something other than 640K or 512K.
-
The BIOS read-only memory space between 0x0f0000 and 0x0fffff.
The signature of the MPFP is '_MP_'.
The MPS configuration data are organized into various table describing system resources. These resources include the following.
-
Processors
-
Interrupts
-
Buses
Generated on Fri Sep 2 10:45:02 2005 for zygoma by
1.4.2