Troubleshooting, Maintaining & Repairing PCs
Stephen Bigelow
 $54.95  0-07-913732-6
Backward Forward
Chapter: 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53

Reserve your copy at a
Beta Bookstore near you!
Contact Bet@books
© 1998 The McGraw-Hill Companies, Inc. All rights reserved.
Any use of this Beta Book is subject to the rules stated in the Terms of Use.

CHAPTER 12

CMOS

With the introduction of their PC/AT computer, IBM abandoned the configuration DIP switches that had been used for the PC/XT. Rather than limit the system's configuration options, IBM chose to store the system's setup parameters in a small, low-power RAM IC called the CMOS RAM (in actual practice, CMOS RAM is typically combined on the same IC with the real-time clock or RTC). In effect, the discrete switches of the XT were replaced with logical "switches" of each CMOS bit (after all, a bit can be high or low, just as a switch can be on or off). When an AT-type computer starts, its system attributes - stored in the CMOS RAM - are read by the BIOS. BIOS then uses those attributes during normal system operation. As a result, it is vitally important that the correct settings be used when configuring a system. Otherwise, system problems may result. This chapter explains a broad selection of CMOS parameters in detail, then provides some guidelines for proper CMOS optimization and battery maintenance.

NOTE: Many PC enthusiasts (and even experienced technicians) use the terms "BIOS" and "CMOS" interchangeably. However, BIOS and CMOS RAM are not the same thing - though the two are intimately related. BIOS refers to the firmware instructions located on the BIOS ROM, while CMOS refers to the low-power RAM which is holding the system’s setup parameters. BIOS reads the CMOS RAM into memory at start time, and provides the "Setup" routine that allows you to change the contents of CMOS, but the CMOS RAM/RTC device is a totally different IC.

What CMOS does

In simplest terms, CMOS RAM is nothing more than some amount of very low-power static RAM. Older CMOS RAM devices offered 64 bytes, and later implementations provide an extra 64 bytes (128 bytes total). The latest motherboards use 256 bytes to store the CMOS Setup along with ESCD (Extended System Configuration Data) information needed by the PC’s Plug-and-Play (PnP) system. For the purposes of this book, we will consider a 128 byte CMOS system. Since RAM is lost when system power is removed, a battery is added to the PC which continues to provide power to the CMOS RAM (and RTC). It is this CMOS battery backup which keeps the date, time, and system parameters intact until you turn the system on again. Of course, if the battery should fail, the system will loose its date, time, and all of its setup parameters. Many a tear has been shed trying to reconstruct lost system parameters by trial and error. You will learn about CMOS backup techniques later in this chapter.

The CMOS map

To truly appreciate the importance of CMOS RAM, you should understand the contents of a typical CMOS RAM IC as shown in Table 12-1. You will find that a standard 128 byte ISA-compatible CMOS is divided into four fairly distinct sections; 16 bytes of real-time clock data [00h-0Fh], 32 bytes of ISA configuration data [10h-2Fh], 16 bytes of BIOS-specific configuration data [30h-3Fh], and 64 bytes of extended CMOS data [40h-7Fh]. Additional CMOS RAM is typically used as the ESCD (and is inaccessible through the typical CMOS Setup).

Configuring the CMOS Setup

As you might expect, CMOS data does not simply materialize out of the ether - it must be entered manually (initially by the system manufacturer, and later by you or your customers) through a "Setup routine". Early AT-compatible PCs relied on a disk-based setup utility - that is, you needed to boot the computer from a floppy disk containing the CMOS setup utility. The great danger with a setup disk is that the disk may fail and leave you without a setup disk, or you may loose the setup disk as the system changes hands or falls into disuse. If you find yourself with a setup disk, be sure to make a backup copy of it as soon as possible. Late-model 386 and subsequent systems abandon the use of "setup disks" and incorporate the setup utility onto the BIOS. When the setup routine is resident in the system, you can usually access the setup during system initialization by pressing one or more keys simultaneously (such as <DEL> or <CTRL>+<F1>). This part of the chapter is intended to familiarize you with the options found in current CMOS Setup programs, and illustrate the typical defaults.

NOTE: Keep in mind that the listings of CMOS Setup features found in this chapter are compiled from a number of different sources. Your own CMOS setup may offer more or fewer options to choose from depending on your BIOS maker and vintage.

Entering CMOS Setup

The first trick in configuring your CMOS Setup is to launch the setup utility in the first place. BIOS manufacturers are rarely consistent when it comes to accessing the setup utility. In most cases, you can only launch Setup in the first few moments after the system boots - a note on the display will usually indicate the correct key or key combination such as:

Press <F1> to enter Setup…

NOTE: Some BIOS versions allow these "Setup entry messages" to be turned off through the CMOS Setup, so you may not even see a message displayed on the monitor. However, the Setup routine should still be accessible.

Unfortunately, there are about as many key combinations as there are BIOS makers, and knowing the proper key combinations for every system can be an exercise in frustration. Table 12-2 lists the known key combinations for many popular BIOS and system types. When you’re stuck and cannot enter CMOS with any of the key combinations in Table 12-2, you might be able to "force" the CMOS Setup routine by causing a configuration change (such as removing a SIMM or two). This sometimes causes a CMOS error and allows you to proceed to the setup routine.

NOTE: Some new motherboard designs allow access to CMOS Setup to be disabled through a motherboard jumper. If you absolutely cannot access the Setup using a proper key combination or a forced configuration change, check the motherboard to see if Setup access has been disabled.

Of course, if you’ve got a 286 or early 386 model PC sitting on your workbench, you’ll need a "setup disk" to load the CMOS Setup utility. If you’ve actually got a setup disk for the system, consider yourself lucky - they are usually the first things to be lost. If you need a setup utility, you may be able to download a suitable third-party freeware utility from; oak.oakland.edu:/SimTel/msdos/at, or ftp.uu.net:/systems/msdos/simtel/at. If you find yourself working with a GRiD system, you can probably get a Setup utility from; http://support.tandy.com/grid.html, or; http://www.ast.com/americas/files.htm. For IBM PS/2 systems, you can get aSetup utility from the IBM site at; http://www.pc.ibm.com/files.html. Finally, Setup utilities for Panasonic computers are available on the web at; http://www.panasonic.com/host/support/.

Basic CMOS optimization tactics

As PCs have continued to evolve, the ever-increasing variety of memory types, busses, PC initiatives, and system architectures has forced BIOS makers to provide more and more entries in the CMOS Setup. Today, there are dozens of possible Setup entries in any given BIOS - each yielding hundreds of potential combinations. This variety makes it very difficult to select the optimum settings for a system. However, if you’re really just interested in getting the most from your Setup, the following points may come in handy:

Configuring the standard CMOS Setup

The "Standard CMOS Setup" usually comprises one screen of basic data about your system’s date, time, and attached devices (primarily floppy and hard drives). It is important for you to get this data correct because the system will refuse to boot unless it is aware of all the drives installed.

Date and Time - use these settings to change the date and time of the system clock.

NOTE: RTC devices are notoriously inaccurate devices. Depending of the quality of the motherboard, you should expect to loose (or gain) several seconds per month. You should periodically check the date and time, and correct it as necessary.

Daylight Saving - when enabled, this feature allows the RTC to automatically adapt to the daylight saving scheme (which is removing one hour on the last Sunday of October and adding one hour on the last Sunday of April). As a rule, this can be enabled. Otherwise, you’ll need to correct for Daylight Saving manually.

Hard Disk C: - this number is the BIOS drive table number of your primary (master) hard drive. In virtually all cases today, this number is 47 (User Defined) which means that you must specify the drive specs according to your hard drive manual. SCSI drives in the "C:" position should be set to "none" or "not installed". There are typically six parameters which define your hard drive:

Hard Disk D: - this number is the BIOS drive table number of your secondary (slave) hard drive. In virtually all cases today, this number is 47 (User Defined) which means that you must specify the drive specs according to your hard drive manual. SCSI drives set to the "D:" position should be set to "none" or "not installed". The six parameters which define your hard drive are listed above.

NOTE: If your drive controller supports four hard drives, you may find an additional two hard drive entries (i.e. Hard Disk E: and Hard Disk F:). These would be a "secondary master" and "secondary slave" drive.

NOTE: When installing two drives on the same channel, be sure to set the drive’s "master/slave" jumpers properly.

Translation Mode - IDE drives below 528MB are typically set as CHS (cylinder/head/sector), while EIDE, Fast-ATA and Ultra-ATA drives use LBA (logical block addressing) instead.

NOTE: If you alter a drive’s Translation Mode after the drive has been partitioned and formatted, the data contained on the drive will be inaccessible. You’ll need to repartition and reformat the drive.

Floppy Drive A: - set this entry to reflect the type of floppy drive installed for drive A:. In most cases, the drive will be 1.44MB 3.5", though a few systems may use a 2.88MB 3.5" floppy. Older systems may use 720KB 3.5", 1.2MB 5.25", or even 360KB 5.25" floppy drives.

Floppy Drive B: - set this entry to reflect the type of floppy drive installed for drive B:. The typical selections for a floppy drive are shown above.

Primary Display - this entry specifies the general type of display you are using. The most frequent selection for older systems is VGA/PGA/EGA, though current systems shorten this to simply "VGA". If you have an older black/white display, select Mono or Hercules. If your video adapter card is text only, select MDA.

Keyboard - this sets whether or not a keyboard is attached. In virtually all cases, the proper entry is "installed". If "not installed", the BIOS will pass the keyboard test in the POST, allowing a PC to boot without a keyboard without the BIOS producing a keyboard error (most commonly encountered in file servers, printer servers, and so on).

Configuring the advanced CMOS Setup

The advanced CMOS Setup contains the settings needed to tweak your boot characteristics, and optimize the performance of memory and cache. Most of the options found here are not vital to the system’s proper operation, but can help you tailor the system to your particular tastes and needs.

Typematic Rate Programming - this feature enables the typematic rate programming of the keyboard which determines how a keyboard will respond if a key is held down. If enabled, a key will repeat automatically if it is held down. If disabled, the key will not repeat. This feature is often disabled.

NOTE: Not all keyboards support typematic rate programming, and this feature MUST be disabled if the keyboard doesn’t support it.

Typematic Rate Delay - this sets the initial delay (in mS) before a key starts repeating (this is how long you’ve got to press a key before it starts repeating). A setting of 500mS (0.5s) is recommended.

Typematic Rate - this is how fast the key will repeat (in characters per second or CPS). A typical setting is 15CPS.

Above 1 MB Memory Test - enable this feature if you want the system to check the memory above 1 MB for errors. The HIMEM.SYS driver for DOS 6.2 verifies the XMS anyway, so the test would be redundant in this case. For faster boot performance, leave the feature disabled.

Memory Test Tick Sound - when enabled, this feature generates a sequence of audible tones (or "ticks") as the memory test executes. It also provides an audible confirmation of your CPU clock speed/Turbo switch setting. The idea is that an experienced user can hear if something is wrong with the system just by the tick sound pattern. However, since PCs now have much more memory than before, this setting is not used that frequently. If the noise is annoying, disable the test. If you cannot hear the test when it’s enabled, check the speaker.

Memory Parity Error Check - this feature controls the parity checking of your system’s memory. Parity checking can help improve the integrity of data in memory. When enabled, parity checking will generate an error such as "PARITY ERROR AT 0AB5:00BE SYSTEM HALTED" if an error is detected. Otherwise, errors in memory will go undetected - possible corrupting and crashing the system. If you’re using parity memory on the system, enable parity checking. If you’re using non-parity memory on your system, parity checking MUST be disabled.

NOTE: Besides being caused by data errors, parity errors can also be caused by insufficient wait-states, or mixing slower memory with faster memory components.

Hard Disk Type 47 RAM Area - this selection allows you to choose the location of the Type 47 HDD data area in memory. The BIOS has to place the HD type 47 data somewhere in memory. You can choose between DOS memory or the I/O address space at 0:300h. DOS memory is valuable (you only have 640KB to work with), so you should try to use the I/O space instead. However, there may be some peripheral which needs this area too (i.e. a sound card or network card). Note that this feature is redundant if BIOS is shadowed (except possibly for very old BIOS).

Wait for <F1> If Any Error - if enabled, the system will halt and wait for <F1> keyboard input before proceeding. If disabled, the system will simply continue after displaying an error message without waiting for any keyboard input. Disable the feature if you want the system to operate as a server (without a keyboard). Otherwise, you can enable the feature.

System Boot Up NumLock - this specifies whether you want the NumLock key to be activated at boot up. You are free to keep this feature enabled or disabled as your personal tastes dictate.

Numeric Processor Test - this feature will test the math coprocessor. 486DX, DX2, DX4, and all Pentium-class CPUs use a built-in coprocessor, and this test should be enabled (otherwise, the coprocessor function may not be enabled). 486SX, 486DLC, 486SLC, and all previous CPUs use a separate math coprocessor, and you should set this feature depending on whether a coprocessor is present of not.

Weitek Coprocessor - this feature is normally found on older 386 motherboards from a period when Weitek coprocessors were popular. This high-performance coprocessor has 2-3 times the performance of the comparable Intel coprocessors. Weitek uses some RAM address space, so memory from this region must be remapped elsewhere. If you have a 386 system with a Weitek unit, enable the feature. If you do not have a Weitek unit, disable the feature. This setting is normally found on 386 motherboards.

Floppy Drive Seek at Boot - this feature selects whether a floppy drive will be checked at boot time. Keep this feature disabled for faster booting and reduced damage to floppy R/W heads. Enable this feature if you want to boot from a floppy disk (important for "booting clean" and running diagnostic utilities).

NOTE: Disabling the floppy drive, changing the system boot sequence, and setting a CMOS password are good techniques for adding some security to a PC.

System Boot Sequence - this feature controls the order in which system drives are checked for an operating system. A:, C: is the typical sequence, but C:, A: can be selected for faster booting. Modern BIOS also supports booting from other items such as the CD-ROM (which meet the "El Torito" bootable CD-ROM specification), and SCSI drives (even while EIDE/IDE drives are in the system).

System Boot Up CPU Speed - this is commonly referred to as the "turbo mode", and allows you to specify what processor speed the system will boot to. The typical settings are High and Low. High speed is recommended for best performance, but if you encounter booting problems, you should try the Low speed.

External Cache Memory - this feature allows you to enable or disable the external (L2) cache in the system. If there is L2 cache in the system (virtually all 486 and Pentium-class systems use L2 cache), make sure that this feature is enabled for best performance. If there is no L2 cache, keep this feature disabled. Enabling the L2 cache when there is no cache in the system may cause the PC to lock up.

Internal Cache Memory - this feature allows you to enable or disable the internal (L1) cache in the CPU. If there is L1 cache in the system (all 486 and Pentium-class CPUs use L1 cache), make sure that this feature is enabled for best performance. If there is no L1 cache (or you have reason to believe that the CPU’s L1 cache is damaged) keep this feature disabled. Enabling the L1 cache when there is no cache in the CPU may cause the PC to lock up. This feature may also be presented as "CPU Internal Cache".

NOTE: Some CMOS Setup utilities combine the cache control into a single entry such as "Cache Memory", and allows you to select Disabled, Internal Cache Only, or Both Enabled.

Fast Gate A20 Option - this relates to the first 64KB of extended memory (A0 to A19) known as the "high memory area" (or HMA). This option controls the use of the A20 address line to access memory above 1MB. Normally all RAM access above 1MB is handled through the A20 gate in the keyboard controller chip (i.e. 8042 or 8742). In virtually all cases, this option should be enabled. Disabling this option may make it impossible to access memory over 1MB.

Turbo Switch Function - this feature enables or disables the turbo switch. This setting is now rarely used in modern systems because PCs are always run at their top speed (there is no need to slow down a PC artificially). If there is a turbo switch in the system, keep this feature enabled. Otherwise, disable this feature.

Shadow Memory Cacheable - "shadowing" is the process of copying ROM to RAM. Once the ROM contents are copied into RAM, its performance can often be increased even further by making that RAM space cacheable. You can enable this feature to cache shadow memory, or disable it to prevent caching of shadow memory. Shadow caching is usually a good idea for DOS and Windows-based platforms, and should be enabled. But Linux and other Unix-like operating systems will not benefit from this feature, and it can remain disabled.

Password Checking Option - this option controls whether a password is used to access the system, or access the CMOS Setup, or both. When enabled, you’ll need to set a password, then enter the appropriate password(s) as required. Always remember to note your password(s) in a safe place, and change your passwords frequently. If you forget a password, or encounter a system with a password option in place, see the section "CMOS password troubleshooting" at the end of this chapter.

Video ROM Shadow C000, 32K - memory hidden in the "I/O hole" of 0x0A0000h to 0x0FFFFFh may be used to "shadow" video ROM, where the contents of the video ROM are copied into RAM, and the faster RAM copy is used instead. It is generally recommended to enable this feature, though systems with faster "flash" video BIOS may not see as much performance benefit. You should disable video ROM shadowing if you need to update a "flash" video BIOS, or if you’re using a memory-resident utility to shadow the video BIOS. Note that video ROM shadowing may also cause some operating systems or applications to lock up.

Adaptor ROM Shadow C800,16K - this feature enables shadowing for other adapter ROMs at C800h (i.e. SCSI or network controller BIOS) that may be in the system. If there are no other adapter devices in the system, keep this feature disabled.

Adaptor ROM Shadow CC00,16K - this feature enables shadowing for other adapter ROMs that may be in the system at CC00h. This feature is often disabled by default because some hard drive adapters use the CC00h address.

Adaptor ROM Shadow D000,16K - this feature enables shadowing for other adapter ROMs that may be in the system at D000h. This is the default address for most network adapters, so should usually be disabled unless there is a network adapter in the system, or some other known device with ROM at D000h.

Adaptor ROM Shadow D400,16K - this feature enables shadowing for other adapter ROMs that may be in the system at D400h. Since some special controllers (i.e. controllers that support four floppy drives) often use this space, the default is often set disabled.

Adaptor ROM Shadow D800,16K - this feature enables shadowing for other adapter ROMs that may be in the system at D800h. The default is often disabled unless there is a known ROM in the system at that address.

Adaptor ROM Shadow DC00,16K - this feature enables shadowing for other adapter ROMs that may be in the system at DC00h. The default is often disabled unless there is a known ROM in the system at that address.

Adaptor ROM Shadow E000,16K - this feature enables shadowing for other adapter ROMs that may be in the system at E000h. The default is often disabled unless there is a known ROM in the system at that address.

Adaptor ROM Shadow E400,16K - this feature enables shadowing for other adapter ROMs that may be in the system at E400h. The default is often disabled unless there is a known ROM in the system at that address.

Adaptor ROM Shadow E800,16K - this feature enables shadowing for other adapter ROMs that may be in the system at E800h. The default is often disabled unless there is a known ROM in the system at that address.

Adaptor ROM Shadow EC00,16K - this feature enables shadowing for other adapter ROMs that may be in the system at EC00h. The default is often disabled unless there is a known ROM in the system at that address. SCSI adapter BIOS ROMs are often set to this address.

NOTE: Some recent forms of SCSI controllers use writeable addresses, and should NOT be shadowed or cached. Check for such warnings or cautions in the SCSI controller manual before attempting to shadow the SCSI BIOS ROM.

System ROM Shadow F000, 64K - memory hidden in the "I/O hole" of 0x0A0000h to 0x0FFFFFh may be used to "shadow" the system ROM, where the contents of the motherboard BIOS ROM are copied into RAM, and the faster RAM copy is used instead. It is generally recommended to enable this feature, though systems with faster "flash" motherboard BIOS may not see as much performance benefit. You should disable motherboard ROM shadowing if you need to update a "flash" motherboard BIOS, or if you’re using some memory-resident utility to shadow the BIOS. Note that motherboard ROM shadowing may also cause some operating systems (other than DOS or Windows) or applications to lock up.

BootSector Virus Protection - this is a relatively new feature in BIOS which provides a warning whenever any software attempts to write to the disk’s boot sector - which is a main target for computer viruses. You can generally keep this feature enabled unless you’re installing a new operating system (like Windows 95) which needs to write to the boot sector during installation. You can disable the BootSector Virus Protection before installing the OS, then re-enable the feature afterward.

Configuring the advanced Chipset Setup

As you probably noted from Chapter 11, the core logic (or chipset) is responsible for providing many of the advanced features that we take for granted in today’s PCs. As a consequence, there are a tremendous number of variables involved in the proper configuration of a chipset. This part of the CMOS Setup allows you to tweak the performance of your chipset (namely memory operations, memory refresh options, data bus performance, cache enhancements, and so on).

NOTE: The advanced chipset setup requires a more detailed understanding of chipset operation and features, and should be attempted only by experienced technicians. Incorrect chipset configurations can easily impair system performance. Remember to ALWAYS record your original CMOS Setup settings before changing any parameters.

Automatic Configuration - when enabled, this feature allows the BIOS to automatically set the settings in the advanced chipset setup (i.e. clock divider, wait states, and so on). If you’re uncertain about configuring the advanced chipset features, keep this feature enabled. Disable this feature if you’re going to make manual changes to the chipset setup. You may have to disable this feature when some highly specialized adapter cards are used in the system.

Keyboard Reset Control - this feature enables the <Ctrl>+<Alt>+<Del> warm reboot. Disable this feature if you want to prohibit this kind of warm reboot.

Hidden Refresh - this feature allows the RAM refresh memory cycles to take place in memory banks not used by your CPU at this time (instead of with the normal refresh cycles which are executed every time the interrupt DRQ0 is called (every 15 ms). There are typically 3 types of refresh schemes: cycle steal, cycle stretch, or hidden refresh. Cycle steal actually steals a clock cycle from the CPU to do the refresh. Cycle stretch delays a cycle from the processor to do the refresh (since it only occurs every 4mS or so, it's an improvement from cycle steal). Hidden refresh simply refreshes idle memory banks. Most systems enable hidden refresh by default, but some memory supports hidden refresh better than others. Try hidden refresh - if the computer crashes or locks up, disable the hidden refresh.

Slow Refresh - this option reduces the frequency of RAM refresh. This increases system performance slightly due to the reduced contention between the CPU and refresh circuitry, but not all RAM necessarily support these reduced refresh rates (in which case you will get parity errors and system crashes). Many systems enable the slow refresh by default.

NOTE: Here’s a tip for mobile PC users - refresh cycles take power, so using Slow Refresh to reduce the number of refresh cycles can save power.

Concurrent Refresh - this feature enables both the processor and the refresh hardware have access to the memory at the same time. If this feature is disabled, the processor has to wait until the refresh hardware has finished, and this can slow system performance slightly. Many systems enable concurrent refresh by default.

Burst Refresh - when enabled, this feature performs several refresh cycles at once. This feature can normally be enabled.

DRAM Burst at 4 Refresh - this is a slight variation of Burst Refresh where the refresh is occurring in bursts of four. This feature can normally be enabled.

Hi-speed Refresh (or Fast Refresh) - when enabled, this feature causes refresh cycles to occur at higher frequencies in order to accomplish a refresh cycle in a shorter period. When combined with features like burst refresh, the overall system performance can improve. Not all types of memory can support Fast Refresh, and it uses more power than Slow Refresh.

Staggered Refresh - when enabled, refresh is performed on memory banks sequentially. This results in less power consumption, and less interference between memory banks. Many systems enable staggered refresh by default.

Slow Memory Refresh Divider - if you can extend the refresh cycles of your system (using technicues like Slow Refresh), you can free more CPU time, and system performance improves. This feature allows you to select a divider which slows the refresh cycles. If you slow the refresh too much, you’ll get parity errors and system crashes.

Decoupled Refresh Option - this feature enables the ISA bus and the RAM to refresh separately. Because refreshing the ISA bus is a slower process, separating the refresh cycles this way causes less strain on the CPU. This option is often enabled.

Refresh Value - The lower this value is, the best the performance.

Refresh RAS Active Time - this is the amount of active time needed for Row Address Strobe during refresh. Lower entries are usually better.

Single ALE Enable - Address Latch Enable (ALE) is an ISA Bus Signal (Pin B28) that indicates that a valid address is posted on the bus, and this bus is used to communicate with 8 and 16 bit peripheral cards. Some chipsets have the capability to support an enhanced mode in which multiple ALE assertions may be made during a single bus cycle. Single ALE Enable enables or disables this capability. Since this feature may slow the video bus if enabled, it is generally set as disabled (no).

AT Bus Clock Selection (or AT Bus Clock Source) - this selects a division of the CPU clock (or System Clock) so it can approximate the ISA/EISA bus clock of 8.33MHz. The settings are in terms of CLK/x, (or CLKIN/x and CLK2/x) where x may have values like 2, 3, 4, or 5. CLK represents your bus processor speed. For example, 486DX33, 486DX2/66, and 486DX3/99 all use a 33MHz bus speed, and should have a divider value of 4 for an ISA speed of 8.25MHz. For 286 and 386 processors, CLK is half the speed of the CPU. Here are some typical settings:

CLK/2: all 286 and 386 systems

CLK/3: SX/DX16, DX20, DX25, DX2/50, DX4/100

CLK/4: SX/DX33, DX2/66, DX3/99

CLK/5: DX40, DX2/80

CLK/6: DX50, DX2/100

CLK/7: 60MHz bus

CLK/8: 66MHz bus

The bus speed doesn’t have to be precisely 8.33MHz, but that’s what to shoot for. An improper setting may cause significant decrease in performance. If the divider is too high, the ISA bus speed will be too low (below 8.33MHz), and the ISA devices will perform poorly. If the divider is too low, the ISA bus speed will be too high (above 8.33MHz), and the ISA devices may malfunction.

Bus Mode - This feature selects this clock is used to drive the bus. In synchronous mode, the CPU clock is used to drive the bus. In asynchronous mode, the ATCLK is used. In most cases, the synchronous mode is selected.

AT Cycle Wait-State - this entry indicates the number of wait-states inserted whenever an operation is performed with the AT bus. You may need some additional wait-states if old ISA cards are used, especially if they are used together with fast adapter cards. Too many wait-states will reduce bus performance, and too few wait-states can cause bus errors and system lock ups.

16-bit Memory, I/O Wait-State - this entry lists the number of wait-states inserted with 16-bit memory and I/O operations. Too many wait-states will reduce bus performance, and too few wait-states can cause bus errors and system lock ups.

8-bit Memory, I/O Wait-State - this entry lists the number of wait-states inserted with 8-bit memory and I/O operations. Too many wait-states will reduce bus performance, and too few wait-states can cause bus errors and system lock ups.

16-bit I/O Recovery Time - this is an additional delay time inserted after every 16-bit operation. This is sometimes needed to support older 16-bit devices, and the value is added to the minimum delay inserted after every AT bus cycle.

Fast AT Cycle - when enabled, this feature may speed up data transfer rates with ISA cards (and can have an important effect on ISA video boards).

ISA IRQs - this entry informs the PCI cards of IRQs used by ISA cards so that the PCI cards will not attempt to assign those "legacy" resources.

DMA Wait-States - this entry lists the number of wait-states inserted before direct memory access (DMA) is attempted. Lower numbers (fewer wait-states) result in better DMA performance.

DMA Clock Source - this entry indicates the source of the DMA clock which is used for DMA transfers. This setting will effect DMA performance for any peripheral (like floppy, tape, network and SCSI adapters) using DMA. The maximum is 5MHz.

E0000 ROM belongs to ATBUS - this entry indicates if the E0000h area (upper memory) belongs to the motherboard DRAM or to the AT bus. For most systems, enabled (yes) is recommended.

Memory Remapping - this feature remaps the memory used by the BIOS (A0000h to FFFFFh or 384KB) above the 1MB limit. If enabled, you cannot shadow Video and System BIOS. In many cases, you should set this feature to disabled.

Fast Decode Enable - this refers to some hardware that monitors the commands sent to the keyboard controller chip. The original AT used special codes not processed by the keyboard itself to control the switching of the 286 processor back from protected-mode to real-mode. The 286 itself had no hardware to do this, so they actually have to reset the CPU to switch back. PC makers added a few logic chips to monitor the commands sent to the keyboard controller chip, and when the "reset CPU" code was detected, the logic chips did an immediate reset. This "fast decode" of the keyboard reset command allowed OS/2 and Windows to switch between real and protected-modes faster, and allowed much better performance. You will generally find this entry on 286 and early 386 systems, since newer processors DO have hardware instructions for switching between modes.

If you find this entry on a current system, the "Fast Decode Enable" command is probably defines a bit differently. The design of the original AT bus made it very difficult to mix 8-bit and 16-bit RAM or ROM within the same 128K block of high address space. An 8-bit BIOS ROM on a VGA card forced all other peripherals using the C000h-DFFFh range to also use 8 bits. By doing an "early decode" of the high address lines along with the 8/16-bit select flag, the I/O bus could then use mixed 8 and 16-bit peripherals. In both cases, you should probably have this feature enabled.

Extended I/O Decode - the normal range of I/O addresses is 0-0x3FFh using only 10 address bits. With this feature enabled, the system will support a 16-bit I/O-address bus allowing a 64KB I/O space using. Most motherboards or I/O adapters can be decoded only by 10 address bits, so this feature can usually be left disabled.

I/O Recovery Time - the I/O recovery time is the number of wait-states to be inserted between two consecutive I/O operations (generally specified as a two-number pair such as 5/3). The first number is the number of wait-states to insert for an 8 bit operation, the second is the number of wait-states for a 16-bit operation. In general, this feature can be disabled. If the AT Bus Clock is running fast (over 8.33MHz), or you’re using slow peripherals, it may be necessary to enable I/O Recovery Time starting with a value like "5/3".

NOTE: A few BIOS versions specify an "I/O Setup Time" (or "AT Bus (I/O) Command Delay"). It is specified similarly to I/O Recovery Time, but is a delay before starting an I/O operation rather than a delay between I/O operations.

IDE Multi-Block Mode (also called IDE Block Mode) - this feature enables IDE drives to transfer several sectors per interrupt. Six modes are possible:

The important attribute for block mode is the number of sectors per interrupt. The maximum number of sectors per interrupt is often (but not always) related to the drive's buffer size. If this setting is not set properly, communication with COM ports may not work. If the block size (sectors/interrupt) is set too large, you may experience serial port overruns and CRC errors. To fix this, decrease the block size, or disable block mode altogether.

IDE DMA Transfer Mode - this defines the means by which DMA transfers are executed. The three typical settings are Disabled, Type B (for EISA), and Standard (for PCI). Standard is the fastest, but may cause problems with IDE CD-ROMs. The standard type is Type F.

IDE Multiple Sector Mode - when "IDE DMA Transfer Mode" is enabled, this feature sets the number of sectors per burst (with a maximum of 64). Problems may occur with COM ports if this setting is configured improperly.

IDE 32-bit Transfer - when enabled, the read/write performance of the hard disk is faster. When disabled, only 16-bit data transfers are possible. Enable this feature if possible.

Extended DMA Registers - with a standard AT type oc computer, DMA support is only provided for the first 16MB of system RAM. With this feature enabled, DMA support will be extended for up to 4GB of RAM. In most cases, this feature can be left disabled.

Cache Read Option (often called the "SRAM Read Wait-State" or "Cache Read Hit Burst") - this specifies the number of clocks needed to load four 32-bit words into a CPU internal cache (typically specified as clocks per word). A timing of "2-1-1-1" indicates 5 clocks to load the four words, and is the theoretical minimum for current high-end CPUs (486DX, 486SX, 486DX2, 486DX4, Pentium). This timing determines the number of wait-states for the cache RAM in normal and burst transfers (the latter for 486 systems only). Timing of "4-1-1-1" is usually recommended, but the faster timing that a computer can support, the better.

Cache Write Option - this is the same as "Cache Read Option", but is used to control cache write timing.

Fast Cache Read/Write - allows enhanced cache performance through memory interleaving techniques, so enable this feature if you have two banks of cache (64KB or 256KB).

Cache Wait-State - this feature is used to introduce additional wait-states for cache operations. Like conventional memory, fewer wait states will result in better cache performance (but it will demand faster cache). An entry of "0" will give the optimal performance, but "1" wait-state may be required for bus speeds higher than 33MHz.

Tag Ram Includes Dirty - when enabled, the cache is not replaced during cycles, simply overwritten. This results in a performance increase. However, the maximum range of cacheable memory is cut in half because a bit is needed as a "dirty bit" tag. In general, you can leave this feature disabled unless you have little system RAM.

Non-Cacheable Block-1 Size - the non-cacheable region is intended for a memory-mapped I/O device that isn't supposed to be cached. For example, some video cards can present all video memory at 15Mb to 16MB so software doesn't have to bank-switch. If the non-cacheable region covers actual RAM memory you are using, expect a significant performance decrease for accesses to that area. If the non-cacheable region covers only non-existent memory addresses, there should be no performance hit. If you are using devices which should NOT be cached, enable this feature to set aside some memory from caching. Otherwise, you can leave this entry disabled.

Non-Cacheable Block-1 Base - enter the base address of the area you don't want to cache. It must be a multiple of the Non-Cacheable Block-1 Size selected above. When disabled, set this to 0KB.

Non-Cacheable Block-2 Size - this is the same function as "Non-Cacheable Block-1 Size", and is normally left disabled.

Non-Cacheable Block-2 Base - this is the same as "Non-Cacheable Block-1 Base", and is usually set to 0KB.

Cacheable RAM Address Range - chipsets usually allow memory to be cached just up to 16 or 32MB. This is to limit the number of memory address bits that need to be saved in the cache together with its contents. Set this entry to the lowest possible value. For example, if you only have 4MB of RAM, select 4MB - don't enter 16MB if you only have 8MB installed.

Video BIOS Area Cacheable - this feature can enable or disable caching the video BIOS. Caching the video BIOS can often enhance video performance, but with many of today’s accelerated video cards, it may be necessary to prevent caching.

Memory Read Wait-State (or "DRAM Read Wait-States") - the CPU is often much faster than RAM, and it is necessary to introduce wait-states to allow the slower RAM to "catch up" to the CPU. Each wait-state effectively adds 30nS or RAM speed. Fewer wait-states result in better system performance, and the ideal number of wait-states is "0" (though "1" wait-state is typically required). The number of wait states necessary is approximately (RamSpeed[ns]+10)*Clock[MHz]/1000-2. If there are too many wait-states, system performance will suffer. If there are too few wait states, parity errors and system crashes will occur.

Memory Write Wait-State (or "DRAM Write Wait-States") - this is the same as "Memory Read Wait-State, but it applies to RAM writing.

NOTE: Some BIOS versions combine these two options as the "DRAM Wait-States". In this case, the number of read and write wait-states must be equal.

DRAM CAS Timing Delay - DRAM is organized into rows and columns, and accessed through strobe lines. The CPU activates a RAS (Row Access Strobe) line to find the row containing the required data, then a CAS (Column Access Strobe) line specifies the column. As a result RAS and CAS signals are used to identify a location in a DRAM chip. When using slow RAM, it may be necessary to introduce a delay into the CAS timing. The default is no CAS delay.

DRAM Refresh Method - this feature selects the refresh method used for RAM. The options are "RAS Only" and "CAS-before-RAS". Most current systems use "CAS-before-RAS" timing by default.

RAS Precharge Time - this is the time interval during which the Row Address Strobe (RAS) signal to DRAM is held low for normal read and write cycles. This is the minimum interval between completing one read or write and starting another from the same (non-page mode) DRAM. Advanced techniques such as memory interleaving or the use of Page Mode DRAM are often used to avoid this delay. The RAS Precharge value is typically about the same as the RAM access time. For a 33MHz CPU, an entry of 4 is a good choice, while lower values should be selected for slower speeds.

RAS Active Time - this is the amount of time a RAS signal can be kept open for multiple accesses. Higher figures will improve system performance.

RAS-to-CAS Delay Time - this is the amount of time a CAS is performed after a RAS. Lower figures are better for system performance, but some DRAM will not support low figures.

CAS-before-RAS - when enabled, this option reduces refresh cycles and power consumption.

CAS Width in Read Cycle - this feature expresses the number of wait-states for the CPU to read DRAM. Lower figures are better for system performance.

Interleave Mode - when enabled, the system will use an "interleaved" approach to access system memory. If the motherboard is not designed to support interleaved memory (or used an advanced form of high-performance memory), this option should be disabled.

Fast Page Mode DRAM - when enabled, this feature speeds up memory access for FPM DRAM. When memory access occurs in the same memory "page", the overhead of RAS and CAS sequences are not necessary, and memory performance is improved.

Configuring Plug and Play/PCI

Plug-and-Play (PnP) and the PCI (Peripheral Component Interconnect) bus are two tightly related features designed to ease the configuration burden of PC devices, and provide those devices with a high-performance bus capable of working directly with the CPU and main memory. However, Plug-and-Play and PCI features must be configured properly in BIOS in order to ensure trouble-free operation. This part of the chapter explains the options used to configure PCI slots and PnP behavior.

Latency Timer (PCI Clocks) - this entry controls the length of time an agent on the PCI bus can hold the bus when another device has requested it. Since the PCI bus runs faster than the ISA bus, the PCI bus must be slowed during interactions with it. This setting allows you to define how long the PCI bus will delay for a transaction between the given PCI slot and the ISA bus. This number depends on the PCI master device in use, and ranges from 0 to 255. The default is often 66, but 40 is a good place to start. Smaller values result in faster access to the bus (with better response times), but bandwidth and data throughput become lower. Normally, you’d leave this setting alone unless you’re working with latenst-sensitive devices (i.e. audio cards or network cards with small buffers).

PCI Slot x INTx - use this entry to assign PCI interrupts (INT#s) to specific PCI slots.

PCI Device, Slot 1/2/3 - this feature enables I/O and memory cycle decoding for PCI slots. There are three options; Enable (enables the device as a slave PCI device), En Master (enables the device as a master PCI device), and Use Default Latency Timer. If this is enabled (yes) you don’t need to set the Latency Timer value.

Slot X Using INT# - this entry selects an interrupt (INT#) channel for a PCI Slot, and there are four (A, B, C, and D) for each one - that is, each PCI bus slot supports interrupts A, B, C and D. INT#A is allocated automatically, and you would only use #B, #C, and #D if the PCI card needs to use more than one (PCI) interrupt service. For example, select #D if your PCI card needs four interrupts. Often, it is simplest to use the Auto mode.

Xth Available IRQ - this feature selects (or "maps") an IRQ for one of the available INT#s (A, B, C, or D). There are ten selections (3, 4, 5, 6, 7, 9, 10, 11, 12, 14, 15). 1st available IRQ means the BIOS will assign this IRQ to the first PCI slots (order is 1, 2, 3, 4), and so on. N/A means the particular IRQ has been assigned to the ISA bus, and is therefore not available to a PCI slot.

PCI IRQ Activated By - this lists the method by which the PCI bus recognizes an IRQ request (Level or Edge). Use the default entries unless advised otherwise by your PCI device manufacturer, or if you have a PCI device which only recognizes one of these methods.

Configuration Mode - this entry sets the method by which information about "legacy" cards is conveyed to the system:

ISA Shared Memory Size - this option sets a block of system memory which will not be shadowed. This feature should normally be disabled unless you have an ISA card that uses the upper memory area. If you enable this feature you’ll also need to configure the following:

IRQ 3-IRQ 15 - these entries are used to list what IRQs are in use (or reserved) by ISA "legacy" cards. If you don’t use specific IRQs, set the respective entries to "Available". Otherwise, set "Used by ISA Card", which means that nothing else can use it.

PCI IDE Prefetch Buffers - this feature allows you to enable or disable a set of prefetch buffers in the PCI IDE controller. You may need to disable this feature with an operating system (like Windows NT) that doesn't use the BIOS to access the hard disk, and doesn't disable interrupts when completing a programmed I/O operation. Disabling also prevents errors with faulty PCI-IDE interface chips that can corrupt data on the hard disk (as can happen with true 32-bit operating systems). You can usually leavr this feature disabled.

PCI IDE 2nd Channel - disable this feature if you're not using the 2nd channel on the PCI IDE card. This frees up IRQ 15. Otherwise, you will lose IRQ 15 on the ISA slots.

PCI IDE IRQ Map To - this option allows you to configure your system to the type of IDE disk controller. An ISA device is assumed. If you have a PCI IDE controller, this setting allows you to specify which slot has the controller and which PCI INT# (A, B,C or D) is associated with the connected hard drives. Note that this refers to the hard disk rather than individual partitions. Since each IDE controller supports two drives, you can select the INT# for each. Also note that the primary channel has a lower interrupt than the secondary channel. There are four modes:

PCI Bus Parking - this is a sort of bus mastering; a device parking on the PCI Bus has full control of the bus for a short time. This feature improves performance when that device is being used, but excludes others. Try enabling this feature with network cards and hard disk controllers.

IDE Buffer for DOS and Windows - when enabled, this feature provides IDE read-ahead and posted-write buffers, so you can increase throughput to and from IDE devices by buffering reads and writes. However, this feature may actually slow older devices, so it should be disabled.

IDE Master (Slave) PIO Mode - this option changes the IDE data transfer speed; Mode 0-4, or Auto. Rather than have the BIOS issue commands to effect transfers to or from the disk drive, PIO allows the BIOS to tell the controller what it wants, and then lets the controller and the CPU perform the complete task by themselves. Modes 1-4 are available for EIDE systems, but set to Auto for an automatic configuration.

HCLK PCICLK - this entry allows you to set the host CLK / PCI CLK divider. The options are; AUTO, 1-1, 1-1.5.

PCI-ISA BCLK Divider - this entry allows you to set the PCI Bus CLK / ISA Bus CLK divider. The options are; AUTO, PCICLK1/3, PCICLK1/2, PCICLK1/4.

PCI Write-byte-Merge (sometimes called "CPU-to-PCI Byte Merge") - when enabled, this allows data sent from the CPU to the PCI bus to be held in a buffer. The chipset will then write the data in the buffer to the PCI bus when appropriate.

CPU-to-PCI Read Buffer (sometimes called "PCI-to-CPU Write Buffer") - when enabled, up to four double-words (DW) can be read from the PCI bus without interrupting the CPU. When disabled, a write buffer is not used, and the CPU read cycle will not be completed until the PCI bus signals that it is ready to receive the data. Enabling the buffer is best for system performance.

CPU-to-PCI Read-Line - when enabled (on), more time will be allocated for data setup with faster CPUs. This feature may only be required if you add an Intel OverDrive processor to your 486-class system.

CPU-to-PCI Read-Burst - when enabled (on), the PCI bus will interpret CPU read cycles as the PCI burst protocol, meaning that back-to-back sequential CPU memory read cycles addressed to the PCI will be translated into fast PCI burst memory cycles. Performance is improved, but some non-standard PCI adapters (i.e. VGA adapters) may experience problems.

PCI-to-DRAM Buffer - when enabled, this feature improves PCI to DRAM performance by allowing data to be stored if a destination is busy. Buffers are needed for this feature because the PCI bus is separate from the CPU.

Latency for CPU-to-PCI Write - this is the delay time before a CPU writes data to the PCI bus.

PCI Cycle Cache Hit - this option defines how the cache is refreshed during PCI operation. Normal refresh will produce a cache refresh during normal PCI cycles. Fast refresh will produce a cache refresh without a PCI cycle for CAS. Fast preformance is usually better.

Use Default Latency Timer Value - this option determines whether the default value for the Latency Timer will be loaded, or the succeeding Latency Timer Value will be used. If yes is selected (default), no further programming is needed for the Latency Timer Value.

Latency Timer Value - this is the maximum number of PCI bus clocks that the master may burst. A longer latency time gives the CPU more of a chance to control the bus.

Latency from ADS# status - this feature allows you to configure how long the CPU waits for the Address Data Status (ADS). It determines the CPU-to-PCI Post write speed. When set to 3T, this is 5T for each double word. With 2T (default), it is 4T per double word. For a quad word (Qword) PCI memory write, the rate is 7T (2T) or 8T (3T). The default should be correct, but if you add a faster CPU to your system, you may find it necessary to increase it. The choices are: 3T - three CPU clocks, or 2T - two CPU clocks (Default).

PCI Master Latency - this option sets the time that a PCI master can control the bus. If your PCI master controls the bus for too long, there is less time for the CPU to control it. A longer latency time gives the CPU more time to control the PCI bus.

Max. burstable range - this is the maximum bursting length for each asserting FRAME#. Longer burst durations should improve performance.

CPU-to-PCI Burst Memory Write - when enabled, back-to-back sequential CPU memory write cycles to PCI are translated to PCI burst memory write cycles. Otherwise, each single write to PCI will have an associated FRAME# sequence. Keeping this feature enabled is best for performance, but some non-standard PCI cards (i.e. VGA adapters) may have problems.

CPU-to-PCI Post Memory Write - this feature enables up to 4 double-words (Dwords) of data to be posted to PCI. Otherwise, not only is buffering disabled, but completion of CPU writes is limited (the CPU write does not complete until the PCI transaction completes). Keeping this feature enabled is best for performance.

CPU-to-PCI Write Buffer - same as "CPU-to-PCI Read Buffer, only for writing.

PCI-to-ISA Write Buffer - when enabled, the system will temporarily write data to a buffer so the CPU is not interrupted. When disabled, the memory write cycle for the PCI bus will be direct to the slower ISA bus. As a result, keeping this feature enabled is best for performance.

DMA Line Buffer - this feature allows DMA data to be stored in a buffer so PCI bus operations are not interrupted. Disabled means that the line buffer for DMA is in single-transaction mode. Enabled allows it to operate in an 8-byte transaction mode for greater efficiency. This feature should be enabled for best system performance.

ISA Master Line Buffer - ISA master buffers are designed to isolate the slower ISA I/O operations from the PCI bus for better performance. Keeping this feature disabled means the buffer for ISA master transaction is in single-mode. Enabling this feature means it is in 8-byte mode which increases the ISA master's performance.

CPU/PCI Post Write Delay - this is the delay time before the CPU writes data into the PCI bus.

Post Write CAS Active - this is the pulse width of the CAS# signal when the PCI master writes to DRAM.

PCI Master Accesses Shadow RAM - this feature enables the shadowing of a ROM on a PCI master for better performance.

Enable Master - this feature enables the selected device as a PCI bus master, and checks whether the card is capable of performing as a PCI master.

AT/ISA bus clock frequency - this is the AT bus speed in a PCI system. Select a divisor which will give you a bus speed closest to 8.33MHz (depending on the speed of the PCI bus).

Base I/O Address - this entry lists the base of the I/O address range from which the PCI device resource requests are satisfied.

Base Memory Address - this entry lists the base of the 32-bit memory address range from which the PCI device resource requests are satisfied.

Parity - when enabled, this feature allows parity checking of PCI devices.

ISA Linear Frame Buffer - this feature enables a buffer if you use an ISA card that features a linear frame buffer (i.e. a second video card for AutoCAD). The buffer address will be set automatically.

ISA VGA Frame Buffer Size (or "ISA LFB Size") - this feature allows you to use a VGA frame buffer and 16MB of RAM at the same time - the system will allow access to the graphics card through a "hole" in its own memory map. In other words, access to addresses within this "hole" will be directed to the ISA bus instead of main memory. This feature should be set to disabled unless you’re using an ISA card with more than 64KB of memory that needs to be accessed by the CPU, and you are not using the Plug-and-Play utilities. If you have less than 8MB of memory, or use MS-DOS, this feature will be ignored.

Residence of VGA Card - this option lists whether the VGA card resides on a PCI or VL Bus. Today, the default is PCI.

Memory Map Hole Start/End Address - this entry determines where the hole starts, and depends on the ISA LFB Size. If you can change it, the base address should be 16MB, minus the buffer size. See "ISA VGA Frame Buffer Size".

Memory Hole Size - this entry defines the size of the memory "hole". Options are; 1MB, 2MB, 4MB, 8MB, and disabled. These are the amounts below 16MB that are assigned to the AT bus, and reserved for ISA cards.

Memory Hole Start Address - this entry defines where the memory "hole" starts. The selections are from 1MB to 15MB. This entry is not Used if the Memory Hole is disabled.

Byte Merging - this feature allows writes to sequential memory addresses to be merged into one PCI-to-memory operation, which increases performance for older applications that write to video memory in bytes rather than words. This feature is not supported well on all PCI video cards. Enable this feature unless you encounter graphics problems.

Byte Merge Support (a variation of Byte Merging) - 8 or 16-bit data traveling from the CPU to the PCI bus is held in a buffer where it is accumulated, or merged, into 32-bit data, giving faster overall performance. In this case, enabling this feature means that CPU-PCI writes are buffered.

Multimedia Mode - this feature enables or disables palette snooping for multimedia cards.

Video Palette Snoop - this feature controls how a PCI graphics card can "snoop" write cycles to an ISA video card’s color palette registers. Snooping essentially means interfering with a device. This is a powerful performance option, so only disable it if; an ISA card connects to a PCI graphics card through a VESA connector, the ISA card connects to a color monitor, and the ISA card uses the RAMDAC on the PCI card, and Palette Snooping (RAMDAC shadowing) not operative on PCI card.

PCI/VGA Palette Snoop - this feature alters the VGA palette setting while graphic signals pass through the feature connector of PCI VGA card, and are processed by MPEG card. VGA snooping is used by multimedia video devices (i.e. video capture boards) to look ahead at the video controller (VGA device) to see what color palette is currently in use. Enable this feature if you have MPEG connections through the VGA feature connector (this means you can adjust PCI/VGA palettes). Otherwise, go ahead and disable the feature.

Snoop Filter (or "Cache Snoop Filter") - this feature saves the need for multiple inquiries to the same line if it was checked previously. When enabled, cache snoop filters ensure data integrity (cache coherency) while reducing the snoop frequency to a minimum.

E8000 32K Accessible - this 64KB area of upper memory is used for BIOS purposes on PS/2s, 32-bit operating systems, and Plug-and-Play. This setting allows the second 32KB page to be used for other purposes when not needed (in the same way that the first 32KB page of the F range is useable after boot up has finished).

PCI Arbiter Mode - devices gain access to the PCI bus through arbitration. There are two modes, mode 1 (default) and mode 2. The idea is to minimize the time it takes to gain control of the bus and move data. Generally, mode 1 should be sufficient, but try mode 2 if you encounter problems with PCI bus access.

Stop CPU when PCI Flush - when this feature is enabled, the CPU will be stopped when the PCI bus is being flushed of data. Disabling this feature (default) allows the CPU to continue processing, giving somewhat greater system performance.

Stop CPU at PCI Master - when this feature is enabled, the CPU will be stopped when the PCI bus master is operating on the bus. Disabling this feature (default) allows the CPU to continue processing, giving somewhat greater system performance.

I/O Cycle Recovery - when enabled, the PCI bus will be allowed a recovery period for back-to-back I/O (which slows back-to-back data transfers) - it's like adding wait-states to the PCI bus, so disable this feature (default) for best performance.

I/O Recovery Period - this feature sets the length of time for the "I/O Cycle Recovery". The range is from 0-1.75 microseconds in 0.25 microsecond intervals.

Action When W_Buffer Full - this feature sets the behavior of the system when the write buffer is full. By default, the system will immediately retry (rather than wait for it to be emptied).

Fast Back-to-Back - when this feature is enabled, the PCI bus will interpret CPU read cycles as the PCI burst protocol, meaning that back-to-back sequential CPU memory read cycles addressed to the PCI will be translated into the fast PCI burst memory cycles. By default the feature is enabled.

CPU Pipelined Function - this feature allows the system controller to signal the CPU for a new memory address even before all data transfers for the current cycle are complete. This results in increased data throughput. The default is usually disabled, so pipelining off.

Primary Frame Buffer - when this feature is enabled, the system can use unreserved memory as a primary frame buffer. Unlike the VGA frame buffer, this would reduce overall available RAM for applications. The default is usually disabled.

M1445RDYJ to CPURDYJ - this feature determines whether the PCI Ready signal is to be synchronized by the CPU clock's ready signal or bypassed (default).

VESA Master Cycle ADSJ - this feature allows you to increase the length of time the VESA Master has in order to decode bus commands. Typical choices are Normal (default) and Long.

LDEVJ Check Point Delay - this feature allows you to select how much time is allocated for checking bus cycle commands. These commands must be decoded to determine whether a local bus device access signal (LDEVJ) is being sent, or an ISA device is being addressed. Increasing the delay increases stability (especially in the VESA sub-system) while very slightly degrading the performance of the ISA sub-system. Settings are in terms of the feedback clock rate (FBCLK2) used in the cache/memory control interface:

1 FBCLK2=One clock

2 FBCLK2=Two clocks (Default)

3 FBCLK2=Three clocks

CPU Dynamic-Fast-Cycle - this feature gives you faster access to the ISA bus. When the CPU issues a bus cycle, the PCI bus examines the command to determine if a PCI agent claims it. If not, then an ISA bus cycle is initiated. The Dynamic-Fast-Cycle then allows for faster access to the ISA bus by decreasing the latency (or delay) between the original CPU command and the beginning of the ISA cycle.

CPU Memory Sample Point - this feature allows you to select the cycle check point (which is where memory decoding and cache hit/miss checking takes place). Each selection indicates that the check takes place at the end of a CPU cycle, with one wait-state indicating more time for checking to take place than zero wait-states. A longer check time allows for greater stability at the expense of some performance.

LDEV# Check point - the VESA local device (LDEV#) check point is where the VL-bus device decodes the bus commands and checks for errors, within the bus cycle itself:

0 Bus cycle point T1 (default)

1 During the first T2

2 During second T2

3 During third T2

Local Memory Check Point - this entry allows you to select between two techniques for decoding and error checking local bus writes to DRAM during a memory cycle:

Slow = Extra wait state; better checking (default)

Fast = No extra wait state used

FRAMEJ Generation - when the PCI-VL bus bridge is acting as a PCI Master and receiving data from the CPU, a fast CPU-to-PCI buffer will be enabled if this selection is also enabled. Using the buffer allows the CPU to complete a write even though the data has not been delivered to the PCI bus. This reduces the number of CPU cycles involved and speeds overall processing:

Normal Buffering not employed (Default)

Fast Buffer used for CPU-to-PCI writes

PCI-to-CPU Write Pending - this feature sets the behavior of the system when the write buffer is full. By default, the system will immediately retry (but you can set it to wait for the buffer to be emptied before retrying).

Delay for SCSI/HDD (also sometimes called "SCSI Boot Delay") - this is the length of time (in seconds) that the BIOS will wait for the SCSI hard disk to be ready for operation. If the hard drive is not ready, the PCI SCSI BIOS might not detect the hard drive correctly. The range is from 0-60 seconds.

Master IOCHRDY - when this feature is enabled, it allows the system to monitor for a VESA master request to generate an I/O channel ready (IOCHRDY) signal.

VGA Type - this entry is used when the video BIOS is being shadowed. The BIOS uses this information to determine which bus to use. Choices are Standard (default), PCI, ISA/VESA.

PCI Master Timing Mode - this entry gives you the ability to choose between two timing modes; 0 (default) and 1.

PCI Arbit. Rotate Priority - typically, the system manages (or arbitrates) access to the PCI bus on a first-come-first-served basis. When priority is rotated, once a device gains control of the bus, it is assigned the lowest priority and every other device is moved up one in the priority queue. This helps to prevent any one device from monopolizing the PCI bus.

I/O Cycle Post-Write - when this feature is enabled (default), data being written during an I/O cycle will be buffered for faster performance.

PCI Post-Write Fast - when this feature is enabled (default), data being written during an PCI cycle will be buffered for faster performance.

CPU Master Post-W/R Buffer - when the CPU operates as a bus master for either memory access or I/O, this entry controls its ability to use a high-speed posted write buffer. Choices are N/A, 1, 2 and 4 (default).

CPU Mstr Post-WR Burst Mode - when the CPU operates as a bus master for either memory access or I/O, this entry controls its ability to use a high-speed burst mode for posted writes to a buffer.

CPU Master Fast Interface - this entry enables or disables what is known as a "fast back-to-back" interface when the CPU operates as a bus master. When enabled, consecutive reads/writes are interpreted as the CPU high-performance burst mode.

PCI Master Post-W/R Buffer - when a PCI device operates as a bus master for either memory access or I/O, this entry controls its use of a high-speed posted write buffer. Choices are N/A, 1, 2 and 4 (default).

PCI Master Burst Mode - when a PCI device operates as a bus master for either memory access or I/O, this entry controls its use of a high-speed burst mode for posted writes to a buffer.

PCI Master Fast Interface - this feature enables or disables what is known as a "fast back-to-back" interface when a PCI device operates as a bus master. When enabled, consecutive reads/writes are interpreted as the PCI high-performance burst mode.

CPU Master DEVSEL# Time-out - when the CPU initiates a master cycle using an address (target) which has not been mapped to PCI/VESA or ISA space, the system will monitor the DEVSEL (device select) pin for a period of time to see if any device claims the cycle. This entry allows you to determine how long the system will wait before timing-out. Choices are 3 PCICLK, 4 PCICLK, 5 PCICLK and 6 PCICLK (default).

PCI Master DEVSEL# Time-out - when a PCI device initiates a master cycle using an address (target) which has not been mapped to PCI/VESA or ISA space, the system will monitor the DEVSEL (device select) pin for a period of time to see if any device claims the cycle. This entry allows you to determine how long the system will wait before timing-out. Choices are 3 PCICLK, 4 PCICLK (default), 5 PCICLK and 6 PCICLK.

IRQ Line - if you have installed a device requiring an IRQ service into the given PCI slot, use this entry to inform the PCI bus which IRQ it should initiate. Choices range from IRQ 3 through IRQ 15.

Fast Back-to-Back Cycle - when this feature is enabled, the PCI bus will interpret CPU read or write cycles as PCI burst protocol, meaning that back-to-back sequential CPU memory read/write cycles addressed to the PCI will be translated into fast PCI burst memory cycles.

State Machines - the chipset uses four state machines to manage specific CPU and/or PCI operations. Each can be thought of as a highly optimized process center designed to handle specific operations. Generally, each operation involves a master device and the bus it wishes to employ. The four state machines are; CPU master to CPU bus (CC), CPU master to PCI bus (CP), PCI master to PCI bus (PP), and PCI master to CPU bus (PC). Each state machine has the following settings:

On-Board PCI/SCSI BIOS - you should enable this feature if your system motherboard had a built-in SCSI controller attached to the PCI bus, and you want to boot from it.

PCI I/O Start Address - the I/O devices make themselves accessible by occupying an address space. This allows you to make additional room for older ISA devices by defining the I/O start address for the PCI devices.

Memory Start Address - this feature is for devices with their own memory which use part of the CPU's memory address space, allowing you to determine the starting point in memory where PCI device memory will be mapped.

VGA 128k Range Attribute - when this feature is enabled, it allows the chipset to apply features like CPU-TO-PCI Byte Merge, and CPU-TO-PCI Prefetch to be applied to VGA memory range A0000H-BFFFFH. When enabled, the VGA receives CPU-TO-PCI functions. When disabled the system retains the standard VGA interface.

CPU-To-PCI Write Posting - the Intel 450GX/KX "Orion" chipset maintains its own internal read and write buffers which are used to help compensate for the speed differences between the CPU and the PCI bus. When this feature is enabled, writes from the CPU to the PCI bus will be buffered. When disabled (default), the writes will not be buffered, and the CPU will be forced to wait until the write is completed.

CPU Read Multiple Prefetch - a prefetch occurs during a process (i.e. reading from the PCI bus or memory) when the chipset peeks at the next instruction and actually begins the next read. The Intel 450GX/KX "Orion" chipset has four read lines. A multiple prefetch means the chipset can initiate more than one prefetch during a process. By default, the feature is disabled.

CPU Line Read Multiple - a line read means that the CPU is reading a full cache line. When a cache line is full it holds 32-bytes (eight DWORDS) of data. Because the line is full, the system knows exactly how much data it will be reading and doesn't need to wait for an end-of-data signal, freeing it to do other things. When this feature is enabled, the system is allowed to read more than one full cache line at a time. The default is disabled.

CPU Line Read Prefetch - when this feature is enabled, the system is allowed to prefetch the next read instruction and initiate the next process.

CPU Line Read - this feature enables or disables (default) full CPU line reads.

CPU Burst Write Assembly - The Intel 450GX/KX "Orion" chipset maintains four posted write buffers. When this feature is enabled, the chipset can assemble long PCI bursts from the data held in them. By default, the feature is disabled.

VGA Performance Mode - when this feature is enabled, the VGA memory range of A0000-B0000 will use a special set of performance features. This feature has little or no effect using video modes beyond the standard VGA most commonly used for Windows, OS/2, UNIX, and so on, but this memory range is heavily used by games such as DOOM.

Snoop Ahead - this feature is only applicable if the cache is enabled. When enabled, PCI bus masters can monitor the VGA palette registers for direct writes and translate them into PCI burst protocol for greater speed, which can enhance the performance of multimedia video.

DMA Line Buffer Mode - this feature allows DMA data to be stored in a buffer so as not to interrupt the PCI bus. When the Standard mode is selected, the line buffer is in single-transaction mode. When the Enhanced mode is selected, the feature allows it to operate in 8-byte transaction mode.

Master Arbitration Protocol - this is the method by which the PCI bus determines which bus master device gains access to the bus.

PCI Clock Frequency - this entry allows you to set the clock rate for the PCI bus, which can operate between 0-33MHz. CPUCLK/3 means the PCI bus was operating at 11MHz (33/3 = 11). The typical entries are:

CPUCLK/1.5 CPU speed/1.5 (default)

CPUCLK/3 CPU speed/3

14MHz 14MHz

CPUCLK/2 CPU speed/2

Max. Burstable Range - this feature sets the size of the maximum range of contiguous memory which can be addressed by a burst from the PCI bus.

I/O Recovery Time - this is a programmed delay which allows the PCI bus to exchange data with the slower ISA bus without data errors. Settings are in fractions of the PCI BCL:

2 BCLK = Two BCLKS (default)

4 BCLK = Four BCLKS

8 BCLK = Eight BCLKS

12 BCLK = Twelve BCLKS

PCI Concurrency - when enabled, this means that more than one PCI device can be active at a time. With Intel chipsets, it allocates memory bus cycles to a PCI controller while an ISA operation (such as bus mastered DMA) is taking place, which normally requires constant attention. This involves turning on additional read and write buffering in the chipset. The PCI bus can also obtain access cycles for small data transfers without the delays caused by re-negotiatiating bus access for each part of the transfer, so the feature is meant to improve performance and consistency.

PCI Streaming - data is typically moved to and from memory and between devices in discrete chunks of limited sizes, because the CPU is involved. On the PCI bus, data can be "streamed" - that is, much larger chunks can be moved without the CPU being used. This feature should be enabled for best performance.

PCI Bursting - when this feature is enabled, consecutive writes from CPU will be regarded as a PCI Burst cycle. This feature should normally be enabled.

PCI (IDE) Bursting - this is similar to "PCI Bursting", but this one enables burst mode access to video memory over the PCI bus. The CPU provides the first address, and consecutive data is transferred at one word per clock. The device must support burst mode.

Burst Copy-Back Option - when this feature is enabled, if a cache miss occurs, the chipset will initiate a second, burst cache line fill from main memory to the cache - the goal being to maintain the status of the cache.

Preempt PCI Master Option - when this feature is enabled, PCI bus operations can be preempted by certain system operations, such as DRAM refresh, and so on. Otherwise, they can take place concurrently.

IBC DEVSEL# Decoding - this feature allows you to set the type of decoding used by the ISA Bridge Controller (IBC) to determine which device to select. The longer the decoding cycle, the better chance the IBC has to correctly decode the commands. Choices are Fast, Medium and Slow (default).

Keyboard Controller Clock - this entry sets the speed of the keyboard controller (PCICLKI = PCI bus speed). Typical options are:

7.16 MHz (default)

PCICLKI/2 1/2 PCICLKI

PCICLKI/3 1/3 PCICLKI

PCICLKI/4 1/4 PCICLKI

CPU Pipeline Function - this feature allows the system controller to signal the CPU for a new memory address even before all data transfers for the current cycle are complete, resulting in increased throughput. Enabled means that address pipelining is active.

PCI Dynamic Decoding - when this feature is enabled, the system can remember the PCI command which has just been requested. If subsequent commands fall within the same address space, the cycle will be automatically interpreted as a PCI command.

Master Retry Timer - this feature sets how long the CPU master will attempt a PCI cycle before the cycle is unmasked (terminated). The choices are measured in PCICLKs which the PCI timer. Values are 10 (default), 18, 34 or 66 PCICLKs.

PCI Pre-Snoop - Pre-snooping is a technique by which a PCI master can continue to burst to the local memory until a 4K page boundary is reached rather than just a line boundary. This feature can be enabled.

CPU/PCI Write Phase - this feature determines the turnaround between the address and data phases of the CPU master to PCI slave writes. Choices are 1 LCLK (default) or 0 LCLK.

PCI Preempt Timer - this entry sets the length of time before one PCI master preempts another when a service request has been pending. Typical entries are:

Disabled No preemption (default).

260 LCLKs Preempt after 260 LCLKs

132 LCLKs Preempt after 132 LCLKs

68 LCLKs Preempt after 68 LCLKs

36 LCLKs Preempt after 36 LCLKs

20 LCLKs Preempt after 20 LCLKs

12 LCLKs Preempt after 12 LCLKs

5 LCLKs Preempt after 5 LCLKs

CPU-to-PCI POST/BURST - data from the CPU to the PCI bus can be posted (buffered by the controller) and/or burst. This entry sets the methods used:

PCI CLK - this feature determines whether the PCI clock is tightly synchronized with the CPU clock, or is asynchronous. If your CPU, motherboard and PCI bus are running at multiple speeds of each other (i.e. Pentium 120, 60MHz and 30MHz PCI bus) choose to synchronize.

Configuring power management

Energy is expensive, and in a world of dwindling energy reserves and escalating energy demands, PCs are often required to work longer hours and pack in more features, yet be energy-efficient. Today’s PCs use far less energy than their early counterparts - largely because there are fewer components - but also because PCs employ a wide range of energy-saving techniques designed to reduce power demands as the system remains idle for a time (these are collectively known as "green PCs"). Most power management features are selectable through the CMOS Setup. This part of the chapter illustrates how to deal with typical power management features.

Doze Timer - this feature sets the time delay before the system will reduce 80% of its activity. 10 to 20 minutes is usually the preferred time.

Green Timer of Main Board - this feature allows you to set the time before a CPU of an idle system will shut down. The usual options are disabled, or a time interval ranging from 1 to 15 minutes. As a rule, 5 to 10 minutes is recommended.

HDD Standby Timer - this feature sets the time after which the hard disk of an HDD idle system (no HDD access) will shut down (or "spin down"). 10 to 20 minutes is usually the preferred time.

Standby Timer - this feature sets the time delay before the system will reduce 92% of its activity. 30 to 45 minutes is usually the preferred time.

Suspend Timer - this feature sets the time after which the system goes into the most inactive state possible (which is 99%). Once this state is entered, the system will require a warm up period so the CPU, hard disk and monitor may go online. 45 to 60 minutes is usually the preferred time.

System Slow Down - this feature will slow the CPU clock dramatically after the timer has elapsed - reducing CPU heating and saving a great deal of power. A time anywhere from 30 to 60 minutes is usually acceptable.

Making use of "auto-configuration"

All recent motherboards now provide an auto-configuration option - taking most of BIOS setup problems out of the technician’s hands. In the majority of cases, an "auto-configured" BIOS will work just fine. But you must remember that "auto-configuration" is NOT an optimization of the system's setup, but rather a set of efficient settings that should insure a working system. You will have to disable this setting if you want to tweak the CMOS Setup yourself (otherwise your settings will be ignored). If you’re stuck with CMOS settings, you should be able to get the system running by using system defaults. There are two levels of default you can work with: BIOS defaults, and power-on defaults.

BIOS defaults

BIOS defaults may not be (and usually aren’t) tuned for your particular motherboard or chipset, but they give a reasonable chance of getting the system to boot. The BIOS default settings are also a good place to start fine-tuning your system. BIOS defaults can also recover your setup if you enter completely unacceptable values in CMOS Setup and the system refuses to boot. Of course, you’ll have to start optimizing all over again.

Power-on defaults

When powering up the system, the BIOS puts the system into the most conservative state possible - turbo off, all caches disabled, all wait-states set to maximum, and so on. This ensures that you can always enter CMOS setup. This mode is particularly useful if the settings returned by BIOS defaults fail. If the system still refuses to boot, then there is a serious hardware issue with the motherboard (or elsewhere in the system) that you will need to address first.

Backing up CMOS RAM

Taken all together, CMOS settings are hardly intuitive - determining the proper settings for optimum system performance requires an understanding of each CMOS variable, and a detailed knowledge of the individual system. Unfortunately, most end users (and many technicians) are not familiar enough with the intricacies of any given PC, or the meaning of each setup entry, to adequately reconstruct the CMOS setup should the backup battery ever fail. When the battery does fail (it will eventually), it may take an unprepared user (or unfortunate technician) hours to rediscover settings that otherwise could be entered in a matter of minutes. This is the real tragedy - with just a few minutes of advance planning, CMOS contents can be backed-up with complete safely. There are two methods of backing-up CMOS contents: hard copy backup, and file backup.

Hard copy backup is just as the name implies - CMOS contents are recorded on paper which is filed away or taped to the inside of the PC enclosure. The simplest method of hard copy backup is to connect the PC to a printer and capture a <Print Screen> of each data screen. This provides a fast, simple, and permanent record. On the other hand, it may take several minutes to restore the configuration. If there is no printer available, you can photocopy and complete the CMOS Setup form included in Appendix F.

File backup is a fairly new alternative which uses a small utility to copy CMOS RAM contents to a data file (usually on floppy disk), then restore the file to CMOS RAM addresses later as needed. Shareware utilities such as CMOS_RAM are ideal for this kind of support. When saving a CMOS RAM file, be sure to save it to a floppy disk, since loosing CMOS contents will often disable the hard drive. The advantage of a backup file is speed - CMOS contents can be restored in a matter of moments.

NOTE: Regardless of which technique you use to record your CMOS settings, it is important to backup the CMOS each time you alter the PC’s configuration (i.e. after adding a new hard drive). Otherwise, the record will no longer reflect the current state of your system.

Companion CD: You have several CMOS backup/restore tools on the Companion CD. Try CMOS.ZIP or CMOSRAM2.ZIP.

CMOS maintenance and troubleshooting

Although it is very rare for CMOS RAM/RTC devices to fail, there are many circumstances where CMOS contents may be lost or corrupted, and system performance may be compromised by a poorly configured CMOS Setup. Beyond the traditional beep and POST codes that suggest a CMOS problem (Chapter 19), or the more recent BIOS error messages (Chapter 9), there are a wide range of PC symptoms that can indicate an improperly or incompletely configured CMOS. This part of the chapter is intended to identify a series of symptoms that can suggest CMOS Setup problems, and offer suggestions for corrective action.

Typical CMOS-related symptoms

Symptom 12-1. Changes to CMOS are not saved after rebooting the PC. In virtually all cases, you have exited the CMOS Setup routine incorrectly - this is a VERY common oversight (especially given the proliferation of different BIOS versions and CMOS Setup routines. Try making your changes again, then be sure to "Save Then Exit and Reboot".

Symptom 12-2. The system appears to be performing poorly. The system must also be stable - if it crashes frequently, or certain devices refuse to work, you may be dealing with a system conflict in hardware or software. Use a diagnostic tool such as MSD (in DOS) or the Device Manager (in Windows 95) to help identify possible points of conflict.

If the system is free of hardware or software conflicts, you can focus on performance. "Performance" is often a subjective evaluation, and should first be verified using a benchmark test compared to other similar PCs (identical systems if possible). If you find that your particular system is performing below its optimum level, suspect a CMOS Setup problem. In some cases, the CMOS RAM may have been loaded with its "power on" or "auto-configuration" defaults. While defaults will almost always allow the system to function, it will rarely offer top performance. Check the advanced CMOS and chipset setup pages (particularly the memory, cache, and bus-speed related entries). Refer to the "Basic CMOS optimization tactics" section above.

Symptom 12-3. CMOS mismatch errors occur. These errors occur when the PC equipment found during the POST does not match equipment listed in CMOS. In most cases, the CMOS backup battery has failed and should be replaced. You can then load the CMOS defaults and tweak the setup as necessary to optimize the system (an easy task if you’ve got a record of the CMOS settings). Otherwise, refer to the "Basic CMOS optimization tactics" section above.

NOTE: If you’ve cleared the CMOS Setup (using a "clear" jumper on the motherboard), be sure that you’ve reset the jumper so as not to continue clearing the CMOS RAM.

Symptom 12-4. Some drives are not detected during boot. This happens most often with hard drives or other devices in the Basic CMOS Setup page. In some cases, the device simply may not be listed or entered properly (i.e. you may have forgotten to enter your newly installed hard drive or floppy drive in the CMOS Setup). In other cases, the drive may need more time to initialize at boot time. Try increasing the "boot delay", or disabling any "quick boot" feature that might be in use.

Symptom 12-5. The system boots from the hard drive, even though there is a bootable floppy disk in the drive. Note that the system still boots and runs properly. The floppy disk is fully accessible (if not, check the floppy drive, power, and signal cables). This type of issue is usually NOT a problem, but due instead to an improper boot sequence. Most BIOS versions allow the PC to search through several different drives to locate an operating system, and will boot from the first suitable drive where an operating system is found. Chances are that your boot sequence is set to "C: A:" where the C: drive is checked first. Since the C: drive is connected and functional, the A: drive will simply be ignored. To boot from the A: drive, you’ll need to change the boot sequence to something like "A: C:". Remember to save any changes before exiting the CMOS Setup.

Symptom 12-6. Power management features are not available. First, make sure that your BIOS supports power management to begin with. Modern PC power management is typically handled by a combination of BIOS and the operating system (i.e. APM under Windows 95). However, power management must be supported by BIOS and enabled under the CMOS Setup in order for the operating system to make use of it. If you can’t use power management (or it is not available in the Windows 95 Device Manager under "System Devices"), it probably isn’t enabled in the CMOS Setup. Check the Power Management page of your CMOS Setup (or the Advanced Chipset Setup) and make sure that power management features are enabled. You may also want to review and adjust the various device time-outs as required. When you restart the operating system, you should then be able to configure the corresponding power management features.

Symptom 12-7. PnP support is not available, or PnP devices do not function properly. First, make sure that your BIOS supports Plug-and-Play (PnP) standards to begin with. If not, you’ll need to employ a DOS ISA configuration utility (or ICU) to support any PnP devices in the system. Also make sure that you’re using an operating system that supports PnP (i.e. Windows 95).

If you can’t get support for PnP devices, make sure that PnP support is enabled in the CMOS Setup, and verify that PnP-related settings (such as "Configuration Mode" or "IRQ3-IRQ15") are all configured properly. If necessary, try loading the BIOS defaults for your CMOS Setup which should give you baseline PnP support if your BIOS and OS supports it. Be sure to record your original CMOS settings before attempting to load defaults.

Symptom 12-8. Devices in some PCI slots are not recognized or not working properly. First, make sure that your motherboard supports PCI (Peripheral Component Interconnect) slots, and verify that there is in fact at least one PCI adapter board in the system. There are simply a proliferation of PCI-related configuration settings in the PnP/PCI area of a CMOS Setup, so it is extremely difficult to suggest any one probable oversight. If you cannot get PCI devices to work (or work properly), try loading the BIOS defaults for your CMOS Setup which should give you baseline PCI support. Be sure to record your original CMOS settings before attempting to load defaults.

Symptom 12-9. You cannot enter CMOS Setup even though the correct key combination is used. Make sure that you’re pressing that key combination quickly enough - many BIOS versions only allow a few moments during POST to enter CMOS Setup. Once the operating system begins to load, you’ll need to reboot. Also verify that you are in fact using the correct key or key combination. It is also possible that access to CMOS Setup has been disabled through a motherboard jumper. Refer to the documentation for your particular motherboard and locate the "CMOS access" jumper. The jumper (if it exists) should be in the position which allows access.

NOTE: Careful that you don’t accidentally confuse this access jumper with the "CMOS clear" jumper - the two serve completely different purposes.

Symptom 12-10. The system crashes or locks up frequently. There are many reasons for a PC to crash or lock up - everything from a hardware fault to a bad driver to a software bug can interfere with normal system operation. Before you check the CMOS Setup, run a DOS diagnostic to verify that the system hardware is performing properly, and check that there is no hardware conflict in the system. Then check the Device manager and look for any signs of conflicting or inoperative devices (marked with yellow or red exclamation marks). If the system runs properly when DOS is booted "clean" or Windows 95 is started in the "Safe Mode", there may be a buggy or conflicting driver (or TSR) that is interfering with system operation.

If problems persist, there may be any of several different problems in the CMOS Setup. Typical oversights include insufficient wait states, memory speed mismatches (i.e. mixing 60ns and 70ns memory), and enabling cache (L1 or L2) when there is no such cache in the system. Review your system configuration very carefully. It is also possible that shadowing and snooping features can interfere with system operation. Try systematically disabling video ROM shadowing, motherboard ROM shadowing, and other shadowing options. Then try disabling video palette snoop, and other snooping or "pre-snoop" options.

If problems still continue, try loading the BIOS defaults into CMOS. The defaults should ensure some level of hardware stability, but you’ll still need to optimize the CMOS Setup manually for best performance.

Symptom 12-11. COM ports don’t work. Assuming that the COM ports are installed and configured properly, operating problems can sometimes be traced to "IDE Block Mode" or "IDE Multiple Sector Mode" issues. Try disabling the "Block Mode" or "Multiple Sector Mode", or scale back the block mode to a lower level.

Symptom 12-12. The RTC doesn’t keep proper time over a month. This is a very common problem for real-time clock (RTC) units. RTCs are notoriously inaccurate devices anyway - often straying by as much as several minutes per month. Some "third tier" RTCs (or units burdened by heavy interrupt activity) may be off by more than several minutes per week (or even more). In practice, there is very little that can be done to correct this kind of poor time keeping other than to replace the motherboard with one using a better-quality RTC (hardly an economical solution), or use a "time correcting utility" which compensates for the RTCs drift.

Companion CD: There are several "time correction" utilities on the companion CD which may help you tame finicky RTCs. Try out FIXCLOCK.ZIP and RITM25.ZIP.

Symptom 12-13. The RTC doesn’t keep time while system power is off. Time seems maintained while system power is on, but the RTC appears to stop while the system is turned off. This is often a classic sign of CMOS backup battery failure. Since the RTC usually takes a bit more power than the CMOS RAM - and CMOS RAM can be maintained by a latent change - this kind of "clock stall" is often the first sign that the CMOS battery is failing. Record your CMOS Setup and replace the CMOS battery at your earliest opportunity.

Symptom 12-14. You see an "Invalid System Configuration Data" error. This type of error often means that there is a problem with the Extended System Configuration Data (also called the ESCD). This is a storage space for the configuration data in a Plug-and-Play system. Once you have configured your system properly, the Plug-and-Play BIOS uses your ESCD to load the same configuration from one boot to the next. If this error message is displayed, take these steps:

  1. Go into Setup and find a field labeled "Reset configuration data".
  2. Set this field to "yes".
  3. Save and exit the CMOS Setup program. The system restarts and clears the ESCD during POST.
  4. Run whatever PnP configuration tool is appropriate for your system;

Symptom 12-15. You encounter "CMOS checksum" errors after updating a flash BIOS. Flashing a BIOS IC will typically require you to clear the CMOS Setup and reconfigure the Setup again from scratch. Most current motherboards offer a "Clear CMOS" jumper which can be used to wipe out all the CMOS settings - this is sometimes referred to as a "CMOS clear" or "CMOS NVRAM clear". Try clearing the CMOS RAM, then load the BIOS defaults. At that point, the errors should stop, and you may need to optimize the CMOS Setup entries in order to tweak the system. If you documented the original CMOS Setup entries with <PrintScreen> before upgrading the BIOS, you should be able to reset key entries in a matter of minutes. Remember to save your changes when exiting.

Symptom 12-16. You notice that only some CMOS Setup entries are corrupted when running a particular application. This kind of error sometimes happens with several games and other programs on the market which access memory locations used by CMOS RAM and the BIOS Data Area (BDA) which are shadowed into the Upper Memory Area. This can alter or corrupt at least some CMOS locations. One solution is to contact the program maker and see if there is a patch or fix that will prevent CMOS access. Another solution to this problem is to exclude the C000h to CFFFh range in the EMM386 device line in your CONFIG.SYS file. This prevents programs from accessing the section of memory that the BIOS uses for shadowing. Here is an example:

DEVICE=C:\DOS\EMM386.EXE X=C000-CFFF

CMOS password troubleshooting

Passwords are usually regarded as a necessary evil - a means of keeping out the malicious and the curious. However, passwords also cause their share of problems. As systems are passed from person to person or department to department, passwords often become lost or forgotten. This means the system won’t start. The trick with all system passwords is that they are stored in CMOS RAM. If you can clear the CMOS RAM, you can effectively disable the CMOS password protection. Still, simply "clearing" the CMOS RAM is not always an acceptable solution because the myriad of CMOS settings are almost impossible to restore without a great deal of tweaking. The following steps will help you deal with unwanted CMOS passwords:

If you can’t find the proper jumper, remove the CMOS battery and wait for the CMOS RAM to clear. As a rule, you should wait for at least 30 minutes, but I’ve seen CMOS RAM hold a latent charge for days. To accelerate the process, you can short a 10kW resistor across the empty battery terminals (be sure to turn the power off first). If that doesn’t work, you can use the same resistor to short the CMOS RAM power pins directly as shown in Table 12-3. Again, remember that all system power should be off before you do this.

Once your CMOS RAM is clear, you will need to restore the setup (probably starting with defaults). After the CMOS is restored, be sure to take a <PrintScreen> of each setup page and keep them with the PC’s documentation.

CMOS battery maintenance

Ordinarily, the RTC/CMOS IC requires no maintenance. However, the backup battery will need to be replaced on a fairly regular basis (often every few years). Before replacing the battery (or battery pack), be sure that you have a valid CMOS backup - either on paper or floppy disk. Turn off system power, unplug the system, and remove the battery. This will cause the CMOS RAM IC to loose its contents. Discard the original battery and install the new one according to the system manufacturer's instructions. Secure the battery and re-start the system. When the system boots, go directly to the CMOS setup routine and restore each setting. If you have CMOS information recorded in a file, boot the system from a floppy disk and use the CMOS backup/restore utility to restore the file. You should then be able to restart the system as if nothing had ever happened.

NOTE: Some CMOS RAM ICs can retain their contents for hours on a "latent" charge, and may not have to be reprogrammed after replacing the battery. However, there is no guarantee of just how long CMOS contents will remain intact. Always be prepared to restore CMOS settings.

If you’re going to be storing old (replaced) motherboards for any period of time, make it a point to remove the CMOS backup battery FIRST. Batteries tend to be very safe and reliable, but there are many instances where they can and do leak. Since batteries use an acid-based electrolyte, battery leakage can easily damage battery contacts, or spill over onto the motherboard iteslf - damaging circuit traces and ruining the motherboard beyond repair.

Further study

That’s it for Chapter 12. Be sure to review the glossary and chapter questions on the accompanying CD. If you have access to the Internet, take some time to review a few of the BIOS and CMOS/RTC makers listed below:

American Megatrends: http://www.megatrends.com

Award BIOS: http://www.award.com

Dallas Semicon.: http://www.dalsemi.com/DocControl/Overviews.web/PnP_RTC/overview.html

MicroFirmware: http://www.firmware.com/catalog2.htm

IBM SurePath BIOS page: http://www.surepath.ibm.com/

Mr. BIOS: http://www.mrbios.com/

Unicore: http://www.unicore.com/

Backward Forward
Chapter: 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53

Reserve your copy at a
Beta Bookstore near you!
Contact Bet@books
© 1998 The McGraw-Hill Companies, Inc. All rights reserved.
Any use of this Beta Book is subject to the rules stated in the Terms of Use.

Beta Books | Beta Bookstores | Computing McGraw-Hill

Professional Publishing Home | Contact Us | Customer Service | For Authors | International Offices | New Book Alert | Search Catalog/Order | Site Map | What's New


A Division of the McGraw-Hill Companies
Copyright © 1998 The McGraw-Hill Companies. All rights reserved. Any use is subject to the Terms of Use; the corporation also has a comprehensive Privacy Policy governing information we may collect from our customers.