BIOS Tests
Last updated on May 26, 1999
MPS Version 1.4 Compliance Test
APM 1.2 Test
Millennium
PnP BIOS
Unreported I/O

MPS Version 1.4 Compliance Test


Type Automatic
Operating system Windows 2000 (RC3 or later)
Log filename mpstest.log
Processing time Less than a minute, typically 20-30 seconds
Status Required for systems with an APM compliant BIOS.
Included in these HCTs: 8.x and 9.x

This tool tests the BIOS MPS data structures for compliance with MPS Version 1.4. MPSTEST.EXE will run from the command prompt. This tool does not test the hardware for compliance with MPS Version 1.4.

Algorithm

  1. Search a) first kilobyte of extended BIOS data area (whose segment address is found at 40:0Eh), b) last kilobyte of base memory (639k-640k or 511k-512k) c) BIOS segment F000:0000h-F000:FFFFh for multiprocessor floating pointer structure (MPFPS). The signature '_MP_' (4 bytes) can identify the structure.
  2. If MPFPS is not found, fail the machine and quit.
  3. Read MPFPS. Get the physical address pointer of Multiprocessor Configuration Table (MPCT).
  4. Read MPCT. Read extended configuration table if it is present. Log MPFPS, MPCT & extended configuration table.
  5. Check if the supported specification revision is 1.4. If not, log fail.
  6. Verify that the checksum of MPFPS is 0. If not, log fail.
  7. If MP Feature Info. Byte is non-zero, then one of the default configurations is used. Display a warning "Default MP configuration may not necessarily work". Then quit.
  8. Verify MPCT also supports version 1.4. If not, log fail.
  9. Verify MPCT checksum is 0. If not, log fail.
  10. Verify that at least one processor is designated for booting. The CPU FLAGS byte bit 1 in the processor entry field can check this. If not, log fail.
  11. Verify that local APIC Ids begin with zero. If not, log fail.
  12. Verify that all APIC (local and I/O) Ids are unique. If not, log fail.
  13. Verify that I/O Interrupt Assignment entries in MPCT don't have the same source bus ids and identical source bus irqs. If yes, log fail.
  14. If there are more than 120 interrupt sources in I/O interrupt entries and if the current HAL is halmps.dll (look at the registry to confirm this), then display a warning "Windows NT® does not support more than 120 interrupt sources".
  15. Verify that all the PCI devices using an IRQ (IntPin register is non-zero) have an I/O Interrupt Assignment entry and their source bus irq correctly reflects their PCI device number and IntPin register. This information is found in appendix D.3 of Multiprocessor Specification, Version 1.4, May 1997.
  16. If there is a PCI-to-XXX bridge device, then verify that bus hierarchy descriptor entry for XXX bus correctly reflects its parent bus id. If not, log fail.
  17. If there is no PCI-to-XXX bridge device and if there is more than one I/O bus (say n), then verify that the chipset used is a 'n' root bus chipset. If not, log fail. (We need chipset specs. From different vendors to do this)


APM 1.2 Test


Type Interactive
Operating system Windows 95 & 98
Log filename apmtest.log
Processing time Approximately 10 minutes
Status Required
Included in these HCTs: 8.x and 9.x

These tests verify the system properly supports the APM 1.2 specification. This test will fail when run in ACPI mode. This failure is allowed.

Servers are not required to have APM, but if APM is implemented it must be tested.

Parameters

None.

Issues

APM test will replace Vpowerd.vxd with a test version of Vpowerd.vxd. If your test system does not work properly with Vpowerd.vxd, you can replace it with the original driver by deleting Vpowerd.vxd, and replacing it with Vpowerd.eak, and renaming it Vpowerd.vxd.


Millennium


Type Interactive
Operating system Windows NT® 4.0, Windows® 2000, Windows 95 & 98
Log filename millen.log
Processing time Approximately 3 minutes
Status Required
Parameters None
Included in these HCTs: 8.x and 9.x

This test verifies the system BIOS and RTC can properly handle the transition from the year 1999 to 2000. The test sets the date to 12/31/99 11:59:00 PM and powers down the system. After one minute, the machine should be powered back up. As time changes to 12:00 AM with power off, some BIOS and RTC combinations incorrectly change the year to 1900. Repeating this cycle the test also checks that the BIOS recognizes February 29, 2000 as a valid date and also checks that the system can properly handle the year 2036.


PnP BIOS


Type Automatic
Operating system Windows 95 & 98
Log filename b-test.log
Processing time Approximately 30 minutes
Status Required
Included in these HCTs: 7.x, 8.x, 9.x

This test checks the implementation layer into the Plug and Play BIOS configuration layer.

Note: Microsoft reserves Device IDs with the prefix "PnP". This test will continue to be updated with the latest IDs. If you suspect the test is incorrectly failing a valid Plug and Play ID between kit releases, see the latest PC 99 Design Guide, and any subsequent Windows Logo Program FAQs at http://www.microsoft.com/hwdev/PC98.htm for an up-to-date listing of valid Plug and Play IDs.


Unreported I/O


Type Automatic
Operating system Windows 2000 (RC3 or later)
Log filenames Win9x:iostomp.log, WinNT:istompnt.log
Processing time Approximately 30 minutes
Status Required
Included in these HCTs: 8.x and 9.x

This test verifies any I/O location that decodes a read or write is actually claimed by some device on the system. The test expects that if there is NO device at an I/O location, a read on that location will return 0xFF. This test does not interfere with any I/O locations claimed by device enumeration. Failures in this test can have many causes: