1. Evaluating PC BIOS ACPI Implementation
    1. This plan covers testing and validating data tables, system control registers, and system descriptions provided by system firmware (BIOS) for compliance with the Advanced Configuration and Power Interface specification v1.0 and for compatibility with Microsoft Windows 98 and Microsoft Windows 2000
  2. Requirements
    1. Hardware
      1. USB Mouse capable of wakeup
      2. USB Keyboard
      3. USB Modem
      4. PCI Modem with PME
      5. Cardbus Modem*
      6. Serial Modem
      7. PCI NIC with PME
      8. Cardbus NIC8*
    2. Starting point for system testing.
    3. The following decision tree is used to determine which operating system should be installed on the system at the start of testing.

      Normal, uni-processor PCs:

      Windows 98 (preferred)

      Windows NT 4 (alternate)

      Multi Processor Systems

      Windows NT 4

      For systems that are known to boot with Windows 2000 builds later than 1906, testing may begin at section 3.2

       

    4. Software
      1. Windows 98, or
        1. HCT drivers required
      2. Windows 2000
        1. Checked build of ACPI.SYS
      3. Suspend.exe
      4. Waker.exe / Dozer.exe
      5. Temper.exe
    5. Test Operator
      1. Knowledge of PC system architecture and operation.
      2. Knowledge of MS-DOS, Windows and Windows NT
      3. Familliarity with PCI, PnPISA, ACPI, APM, PnPBIOS
      4. Reference materials for the system to be tested.
  3. Process
    1. Systems not expected to work properly
      1. Install a Legacy OS, either
        1. Windows 98, or
        2. Windows 2000
      2. Test Installation:

      %windows%\system

      %windows%

      %acpihct%

      atv.exe (see section 4.2 )

      produces C:\ACPIHCT.LOG and ACPITABL.TXT

      optionally produces several BIN files for later processing

      treetest.exe (see section tbc )

      appends to C:\ACPIHCT.LOG

      produces C:\ACPITREE.TXT

      When all of the tests pass, the system is now expected to work. Install Windows 2000 in ACPI mode and proceed with section 3.2

    2. Systems expected to work
      1. Boot OS
        1. Windows 98 ACPI mode, or
        2. Windows 2000 ACPI mode
      2. Simple Suspend / Resume testing
      3. This set of tests is intended to verify the basic suspend and resume capabilities of the system.

        1. Resume from Timer
        2. This is an automated test that uses the program SUSPEND.EXE (see section 4.5) to verify wake from RTC in all supported sleep states, 5 iterations each.

          Command line: suspend –n5 –a

        3. Resume from Button
        4. Currently a manual test:

          Select Start|Shutdown

          Select Standby from the drop down menu

          When the system is fully suspended (1-3min depending on system)

          Push sleep button (or only button) and system should awaken.

        5. Resume from USB Mouse Click
        6. Currently a manual test:

          Select Start|Shutdown

          Select Standby from the drop down menu

          When the system is fully suspended (1-3min depending on system)

          Click button on usb mouse, system should awaken

        7. Resume from USB Keyboard keypress

        Currently a manual test:

        Select Start|Shutdown

        Select Standby from the drop down menu

        When the system is fully suspended (1-3min depending on system)

        Press a key on usb keyboard, system should awaken

      4. Complex Suspend Resume Testing
      5. This set of tests will validate device wakeup with data traffic pending to insure the system is not just capable of resuming, but also in a timely fassion to respond to the pending request.

        This testing requires an additional system configured as a "wake server" using the program WAKER.EXE. This system will need a NIC and either a hub or a full network. These tests assume there is only one of each type of device in the system. Therefore it will be nessesary to shut down the machine to install and remove the internal modem and NIC between test phases.

        The wake server may be running Windows 98 or any version of Windows 2000. The system under test and the wake server need to have compatible network protocols and must be verified to be able to transfer data between them. The server name will be needed when DOZER is launched on the system to be tested.

         

        1. Wake On Ring
        2. These tests are performed with DOZER.EXE on the test system.

          Wake on Ring testing will also require this system to have a modem and either two suitable phone lines or a telco simulator.

          When DOZER is launched, the user will be prompted for the server name and the phone number of the line attached to the system.

          1. Serial Modem
          2. For systems with 2 COM ports, this functionality needs to be tested on both ports.

            Do not perform this test if there is a non-removable modem in the system.

          3. Internal Modem
          4. PCI modem or a fixed internal modem. If the system has a non-removable internal modem, this is the only WOR test performed.

          5. Cardbus Modem (laptops only)
          6. Do not perform this test if there is a non-removable modem in the system.

             

          7. PCMCIA Modem
          8. Do not perform this test if there is a non-removable modem in the system.

             

          9. USB Modem

          Do not perform this test if there is a non-removable modem in the system.

           

        3. Wake On LAN
        4. These tests are performed with DOZER.EXE. Dozer will prompt for the name of the wake server and for the phone number attached to the system. Do not fill in the phone number, this is how the program knows it is testing wake on lan.

          1. PCI NIC
          2. Cardbus NIC
          3. PCMCIA NIC
        5. Wake On other events
          1. USB device insertion (if supported)
          2. 1394 device insertion (if supported)
          3. Other Serial Devices

        If there are any other types of devices avaiable that are capable of waking the system, these should also be tried.

      6. Thermal Management Testing (if available)
      7. This set of tests is performed by TEMPER.EXE (see section 4.6) which requires the HCT driver on Windows 98 and the checked build of ACPI.SYS on Windows 2000.

        1. Fans turn on / off
        2. Temperatures reasonable
        3. Fans affect cooling
        4. Passive cooling works
      8. Extended Sleep Test
        1. Resume from timer
          1. Suspend –n5 –a –t15
  4. Application Data
    1. ACPIINST.EXE
    2. Installation utility and process coordinator

      Handles all test programs

      Can launch all tests

      Not used by WHQL

      Command Line Options

      -A Automatic test launch

      -X Automatic test exit

      -L Log file path/name

    3. ATV.EXE
    4. Windows 95

      Windows 98

      Windows NT4

      Windows 2000

    5. WAKER.EXE and DOZER.EXE
    6. See WAKETEST.HTM

    7. SUSPEND.EXE
    8. Supports windows 95, 98 and 2000

      Apm and acpi compatible

    9. TEMPER.EXE
    10. Windows 98 and 2000 in acpi mode

       

    11. ACPI.SYS (Windows 98)
    12. HCT version of driver

    13. ACPI.SYS (Windows 2000)
    14. Checked build of driver has HCT code in it.

    15. ACPIHCT.SYS
    16. Emulation driver for NT4. This driver does not switch the system into ACPI mode yet.

    17. MXC.EXE
    18. Used for Windows 98 compliance testing only

       

    19. MEMXCHK.SYS
    20. Used for Windows 98 compliance testing only

       

    21. Misc Other Doo-Dads

    Rawwrite.exe

     

  5. Initial Evaluation
  6. It is assumed that the tester will prepare the system to boot minimally from the removable media. It is best to set the system up to boot to a DOS command prompt from the hard disk with the real mode drivers to access the CD-ROM drive. The system architecture will dictate the actual operating system used for the initial testing. It is easiest to load Windows 98 in legacy mode for most desktop systems. For the real hot-dog servers it will only be possible to load Windows NT 4. Either operating system is suitable for the initial analysis.

    1. Development Testing
    2. This type of testing is performed with little expectations of the solution actually working. It is therefore expected that the data will be in files on the hard disk and not in the BIOS data area. The optimal system configuration for this testing has a 4+gb hard disk with two partitions. The first partition will have Windows 98 or Windows NT 4, the second will have Windows 2000. At the very least, the system must have an OS that does not require functional ACPI to boot.

    3. Production Testing
    4. This type of testing is ideally used to fill a check box at the last phase of development. If all of the parties involved have done their job properly, the system can directly be loaded with the target operating system in ACPI mode without any question that it will work. Needless to say, this step accounts for a relatively small portion of the overall testing. This is the mode in which the WHQL HCT package operates.

       

    5. Runtime Evaluation
    6. This is the phase where the system is fully booted and all of the simple requirements are met. This phase determines whether or not the features provided by the ACPI BIOS actually do what they are intended to do. Much of this testing is not specific to ACPI. The configuration support is tested with the Plug and Play test suite. There are specialized test programs for evaluating the cooling solutions.

      1. Windows 98
      2. The install program will install all of the nessesary files and will provide a mechanism to switch the sytem into ACPI mode if the BIOS passes the passive tests. The testing conditions will dictate whether or not this is a good idea

      3. Windows 2000

      The install package will copy the available files to the system. Only passive testing files will be extracted on NT 4. For Win2k, if the system booted into ACPI mode then the BIOS is ready for functionality testing.

    7. Failure Analysis
      1. Passive Testing

    Passive testing can be performed on Windows 95/98, NT4 and 2000. Windows 98 and 2000 would have to be in legacy or PnP mode

  7. Reference Documents
    1. ACPI Specification v1.0
    2. PCI Specification v2.2
    3. PnP BIOS Specification v1.1
    4. APM Specification v 1.2
    5. PC97
    6. PC98