Dealing with ACPI, APIC and APM in Windows 2000

Materials:
Working complete PC
Blank Diskette
Student Diskette, "New Boot A Ver 2.0+"
Student CD-ROM, "Room 6359"
Objectives:
The student will become familiar with Windows 2000:
ACPI/APIC/APM Driver installation,
ACPI/APIC/APM Driver checking,
ACPI/APIC/APM Driver troubleshooting,
ACPI/APIC/APM Driver Updating and Repairing.
Competency:
The studnet will learn how to install, update, configure, verify digital signatures and proper functionality of APM, ACPI and APIC equipped motherboard drivers on a Windows 2000 system. The student will become familiar with the fundamentals of handling, checking and ultimately troubleshooting these drivers on a Windows 2000 system.
    Preparation
  1. The procedures performed here are part of the post-installation procedures performed immedaitely after installing Windows 2000 Advanced Server on a PC, but each activity can be done alone or in combinations as needed to install a new driver, update an existing one, check driver and system files for integrity, monitor these files for proper functionality, etc.

  2. See the Hardware A-Z Pages articles on these technologies: ACPI, APIC, and APM for general information concerning them.

  3. Procedures
  4. Contrary to what some believe, Windows 2000 is ACPI and APIC compatible. APM however is not a Plug-n-Play technology and could theoretically cause more trouble than either of the other two. The problem is whether the motherboard's implementation of any of these technologies is completely compatible with the Windows 2000 drivers including how to determine this and what to do about the situation if the motherboard's implementation of APM, ACPI, or APIC is suspect or obviously not compatible.

  5. To determine if the motherboard is compatible search the Microsoft HCL. The motherboard must be approved and listed there. If it is not then Windows 2000 Server should not be installed on it. (Unlisted hardware should only be used for non-critical applications like learning how to install and configure Windows 2000)

  6. On an HCL listed motherboard. Enter the BIOS and be sure that the entry that reads something similar to "PnP OS Installed = Yes|No" is set to "Yes". Since the motherboard has been tested and approved by Microsoft then it's ACPI implementation is 100% generic and compliant with the standard and the Microsoft ACPI support built into Windows 2000 should work. Disabling or setting this value to "No" in effect converts the motherboard from ACPI-compliant which is a Plug-n-Play system to APM-compliant which is not a Plug-n-Play system and is instead considered now a legacy system by Windows 2000. Windows 2000 does not have well implemented support for legacy systems versus fully PnP compliant systems. In the case where ACPI is deactivated in the BIOS then ALL Power Management should be completely disabled in the BIOS as well. Again, remember that as long as the motherboard is ACPI-compliant and listed as approved hardware in the Microsoft HCL, then leave ACPI ON by setting "PnP OS Installed = Yes" in the BIOS Setup Utility. If the motherboard is NOT listed in the HCL, then before installation set this to "No" AND disable ALL power management functionality in the BIOS. Windows 2000 will detect the system as a legacy device and install its own power management drivers for the system. Remember that APM is NOT PnP and Windows 2000 will load its own power management drivers and scheme. The two are bound to conflict since the system is not using the PnP ACPI power management system and this could lead to file corruption in the case of the BIOS powering down HDD's when the OS does not expect this action.

  7. Windows 2000 does not handle motherboard detection well other than during the initial installation process where it handles it quite well. In the case where the motherboard is changed, due to upgrade or moving a mobile rack mounted drive to another system, the potential for problems by allowing the OS to detect the new hardware is very high. The reason for this is that the system's original installation may be based on a different HAL - Hardware Abstraction Layer. Microsoft does not have many of these but there is a separate HAL for a system that is using ACPI versus one that is not using ACPI. What this means is that if the ACPI setting in the BIOS is changed after installing the OS, it can have severe effects on the system and even cause a boot failure blue screen along the lines of "Inaccessible_Boot_Device" because the HAL does not know how to communicate with the PnP versions of the motherboard peripherals in order to find the HDD which is attached to one of them (the ATA controller). In order to determine which HAL your system is using open Device Manager and open the [+]Computer category at the top:



    This one installed the ACPI HAL despite the fact that power management settings were all disabled and the "PnP OS Installed" was set to "No" in the BIOS (ACPI was completely disabled):



    Now compare the type of computer indicated against this list:

  8. Microsoft warns that changing or moving the OS from an ACPI compliant system to one that is not, runs a high risk of failing to startup at all. This is mainly because of the fact that another HAL is needed in order to properly interface with the motherboard devices and they recommend to "Upgrade in Place" That is, upgrade the currently installed version of Windows 2000 by launching the OEM installation CD-ROM setup and choosing to Upgrade to Windows 2000. Microsoft also suggests the manual extraction of the appropriate HAL and then manually copying it into the %systemroot% folder. This operation will probably fail as well due to the nature of the ACPI system and the information needed in the Registry in order to initialize devices.

  9. In conclusion, it is possible to change the motherboard or upgrade a motherboard on a system that was initially installed without ACPI enabled (or APM) which more than likely installed the system using the "Standard PC" designation and HAL. It is much more difficult and more than likely impossible to upgrade or change the motherboard on a system that was originally installed with ACPI enabled on the motherboard because of the major differences in the HAL and the Registry settings and the behavior of the motherboard peripherals such that Windows 2000 simply cannot start up if the ACPI installation and HAL are the ones setup and configured on the system in the first place and it is then placed in a system using a significantly different motherboard configuration.

  10. Testing APM compliance: A tool has been provided on the Windows 2000 OEM Installation CD-ROM for testing a motherboard to see if its implementation of APM is sufficiently compliant with the standard that Windows 2000 should be able to install and work on that system. Either extract APMSTAT.EXE from \Support\Tools\Support.cab on the OEM installation CD-ROM or run the setup program in the tools folder to install all support tools, then execute it. See Using Extract for details, but if the system is being tested for Windows 2000 compatibility this operation should be done in Windows 98 since Windows 2000 has not been installed on the system to be tested yet.

  11. Most authorities recommend disabling APM because it can conflict with HDD activity especially network requests. Remember that power management watches this system for idleness like no keyboard or mouse activity over a period of time and then spools down the hard drives. Eventually APM will want to place the system in "standby" (See APM then when a network request occurs, the system may not respond. Setting the BIOS to "Wake-on-LAN" may not interface through the drivers and the HAL correctly and the system may remain on standby.

  12. Another issue that often occurs with APM and ACPI is that even though they have been disabled in the BIOS, Windows 2000 setup can "see through" this and still detect the devices since they are under 16-bit control through the motherboard and Windows 2000 performs 32-bit device driver detection. Therefore it is possible that even though all APM abd ACPI have been disabled on the motherboard setup may still install the ACPI HAL or APM support or both. The only problem with the ACPI HAL is that it makes future upgrades of the motherboard for all practical purposes impossible otherwise this detection and installation of disabled motherboard systems is not an issue, but...

  13. On rare occasion the Windows 2000 setup might detect disabled motherboard ACPI against your wishes or it may detect a disabled motherboard's ACPI support and because of this setup may hang during the GUI phase. To prevent Windows 2000 from installing the ACPI HAL it is not sufficient to simply disable it in the BIOS (it installs regardless on the classroom systems). Instead boot to the OEM WIndows 2000 CD-ROM to begin setup - this cannot be done after setup has begun - and press [F5] when setup displays the Press [F6] ... prompt to load third party hard drive controller drivers:

     Windows 2000 Setup














      Press F6 if you need to install a third party SCSI or RAID driver...       

    The [F5] key will not appear to have an effect, but moments later this menu screen will appear. Choose "Standard PC" to get the standard PC non-ACPI HAL:


     Windows 2000 Setup


     Setup could not determine the type of computer you have, or you have
     chosen to manually specify the computer type.

     Select the computer type from the following list, or select "Other"
     if you have a device support disk provided by your computer manufacturer.

     Standard PC
     Standard PC with C-step i486
     SGI mp
     Other                                               


      ENTER=Install  ESC=Cancel   F3=Quit                                        
  14. Other server design considerations: All power management (read: turning the hard drive off after an idle period of time) should be turned off, both in the BIOS and in the operating system. Screen savers should also be disabled. That is, the machine should always be completely up and running and ready to service any request at any moment. The ACPI state should never be changed in the BIOS after installation since this affects the allocation of resources to the peripheral components in the motherboard. Any PCI components in the motherboard that change resource allocation from changes made in the BIOS can affect resource allocation of any other PCI devices attached to the expansion bus slots as well. Do disable ACPI/APM power management in the OS (having already setup the system with these disabled in the BIOS) open Start > Settings > Control Panel > Power Options. Make sure that the power scheme is set to "Always On" and that the power down of all other devices is set to "Never" Check the Hibernate tab and be sure that hibernation is not enabled (its OK for laptop workstations and dreadful for servers) then Apply and OK:



  15. Here is the opposite problem. If the system installed using the Standard PC HAL either because the motherboard ACPI BIOS was disabled, or non-compatible and now you want to change to the ACPI HAL because you have either activated the ACPI on the motherboard or have upgraded the BIOS (both incredibly bad ideas by the way) Then you can get Windows 2000 to take the HAL by clicking Start > Settings > Control Panel > System > Hardware > Device Manager. Open the [+]Computer category and right-click the Standard PC and choose properties. Click the Drivers tab and click Update Drivers. In the Update Drivers Hardware Wizard select the ACPI PC and click next:



    A reboot will be required for this to take effect and do not be at all shocked if the system never boots again. This cannot be done on a system that is already using an ACPI HAL.

Back to Top

Copyright©2000-2004 Brian Robinson ALL RIGHTS RESERVED