In this section, you learn how ROM BIOS upgrades can improve a system in many ways. You also learn why upgrades can be difficult and can require much more than plugging in a generic set of ROM chips. The ROM BIOS provides the crude brains that get your computer's components working together. A simple BIOS upgrade can often give your computer better performance and more features. The BIOS is the reason various operating systems can operate on virtually any PC-compatible system despite hardware differences. Because the drivers in the BIOS communicate with the hardware, the BIOS must be specific to the hardware and match it completely. As discussed earlier, instead of creating their own BIOS, many computer makers buy a BIOS from specialists such as American Megatrends, Inc. (AMI) or Phoenix Technologies Ltd. A motherboard manufacturer that wants to license a BIOS must tailor the BIOS code to the hardware. This is what makes upgrading a BIOS somewhat problematic; the BIOS usually resides on ROM chips on the motherboard and is specific to that motherboard model or revision. In other words, you must get your BIOS upgrades from your motherboard manufacturer or from a BIOS upgrade company that supports the motherboard you have, rather than directly from the BIOS developer. Often, in older systems, you must upgrade the BIOS to take advantage of some other upgrade. To install some of the larger and faster ATA hard drives and LS-120 (120MB) floppy drives in older machines, for example, you might need a BIOS upgrade. Some of the machines you have might be equipped with older BIOSs that do not support hard drives larger than 8GB, for example. The following list shows some of the primary functions of a ROM BIOS upgrade; the exact features and benefits of a particular BIOS upgrade depend on your system:
Part of the PC 2001 standard published by Intel and Microsoft requires something called Fast POST to be supported. Fast POST means that the time it takes from turning on the power until the system starts booting from disk must be 12 seconds or less (for systems not using SCSI as the primary storage connection). This time limit includes the initialization of the keyboard, video card, and ATA bus. For systems containing adapters with onboard ROMs, an additional 4 seconds are allowed per ROM. Intel calls the Fast POST feature Rapid BIOS Boot (RBB), and it is supported in all its motherboards from 2001 and beyondsome of which can begin booting from power-on in as little as 6 seconds or less. If you install newer hardware or software and follow all the instructions properly, but you can't get it to work, specific problems might exist with the BIOS that an upgrade can fix. This is especially true for newer operating systems. Many systems need to have a BIOS update to properly work with the Plug and Play features of Windows 9x, Me, XP, and 2000. Because these problems are random and vary from board to board, it pays to periodically check the board manufacturer's website to see whether any updates are posted and what problems they fix. Because new hardware and software that are not compatible with your system could cause it to fail, I recommend you check the BIOS upgrades available for your system before you install new hardware or software, particularly processors. You can use the BIOS Wizard utility available from eSupport.com (formerly Unicore) to test your BIOS for compatibility with popular BIOS features, such as Zip/LS-120 booting, ACPI power management, PCI IRQ routing, and more. Download it from www.esupport.com/techsupport/award/awardutils.htm. Where to Get Your BIOS UpdateFor most BIOS upgrades, you must contact the motherboard manufacturer by phone or download the upgrade from its website. The BIOS manufacturers do not offer BIOS upgrades because the BIOS in your motherboard did not actually come from them. In other words, although you think you have a Phoenix, AMI, or Award BIOS, you really don't! Instead, you have a custom version of one of these BIOS, which was licensed by your motherboard manufacturer and uniquely customized for its board. As such, you must get any BIOSs upgrades from the motherboard or system manufacturer because they must be customized for your board or system as well. As noted numerous times earlier in this chapter, a company called eSupport (formerly Unicore) specializes in providing Award BIOS upgrades. The company might be able to help you if you can't find your motherboard manufacturer or if it is out of business. Determining Your BIOS VersionWhen seeking a BIOS upgrade for a particular motherboard (or system), you need to know the following information:
You usually can identify the BIOS you have by watching the screen when the system is first powered up. It helps to turn on the monitor first because some take a few seconds to warm up and the BIOS information is often displayed for only a few seconds. Note Many newer PCs now do not display the typical POST screen. Instead, many show a logo for the motherboard or PC manufacturer, which is usually referred to as a splash screen. To enter BIOS Setup, you must press a key or keys (specific to the BIOS manufacturer). See the section "Running or Accessing the CMOS Setup Program," later in this chapter, for more information. You might hear some in the industry refer to displaying a manufacturer's logo instead of the default POST screen as a quiet boot. Often you can change these BIOS splash screens to your own liking, even including your own company logo or graphic of choice. Intel has free software at developer.intel.com/design/motherbd/gen_indx.htm that enables you to change or restore the splash screen on Intel motherboards. Tip Look for any copyright notices or part number information. Sometimes you can press the Pause key on the keyboard to freeze the POST, allowing you to take your time to write down the information. Pressing any other key then causes the POST to resume. In addition, you often can find the BIOS ID information in the BIOS Setup screens. eSupport also offers a downloadable BIOS Agent that can be used to determine this information, as well as the motherboard chipset and Super I/O chip used by your motherboard. After you have this information, you should be able to contact the motherboard manufacturer to see whether a new BIOS is available for your system. If you go to the website, check to see whether a version exists that is newer than the one you have. If so, you can download it and install it in your system. Most BIOS display version information onscreen when the system is first powered up. In some cases, the monitor takes too long to warm up, and you might miss this information because it is displayed for only a few seconds. Try turning on your monitor first, and then your system, which makes this information easier to see. You usually can press the Pause key on the keyboard when the BIOS ID information is being displayed, which freezes it so you can record the information. Pressing any other key allows the system startup to resume. Checking the BIOS DateOne method of determining the relative age and capabilities of your motherboard ROM is to check the date. The BIOS date is stored in virtually all PCs as an 8-byte text string at memory address FFFF5h. The date generally indicates when the BIOS code was last updated or compiled by the motherboard manufacturer. Knowing the date of a particular BIOS might give you some clue as to which features might or might not be present. You can use the DEBUG command-line utility supplied with Windows and DOS to view these addresses. DEBUG is a command-line program that presents a - prompt of its own, to which you can enter various commands. For example, the ? command displays help information. To find the BIOS date, open a command-prompt window (or boot to a DOS floppy) and execute the DEBUG command. Then at the DEBUG - prompt, enter D FFFF:5 L 8, which instructs DEBUG to display memory at FFFF5 for a length of 8 bytes. DEBUG then displays both the hexadecimal and ASCII codes found at those addresses. When the - prompt returns, you can enter Q to quit DEBUG and return to the command prompt. Figure 5.6 shows how this looked when I ran it on my system. Figure 5.6. Using DEBUG to display the motherboard ROM BIOS date.In this example, the system shows a motherboard ROM BIOS date of 03/22/05. Backing Up Your BIOSOne often-overlooked benefit of an EPROM programmer is that you can use it to essentially back up your ROMs in case they are later damaged. Many hardware vendors do not sell preprogrammed ROM chips for their systems, and the only way to repair an older motherboard or card with a damaged ROM is to burn a new copy from a backup. The backup can be in the form of another EPROM or flash ROM chip with the original program burned in or even in the form of a disk file. I keep files containing images of the ROMs in each of my motherboards and expansion cards in case I have to burn a new copy to repair one of my systems. A file-based backup of your ROMs can also prove interesting for snooping around because you can look for the copyright and other strings, disassemble the code to see how it works, and otherwise check it out. To create a disk-file copy of your motherboard ROM BIOS, you can place the ROM in an EPROM programmer and use the function provided by the device to read the EPROM into a disk file, or you can use the DOS DEBUG program to read your ROM BIOS from memory and transfer it to disk as a file. Because most ROMs are soldered in, removal is difficult at best, so the DEBUG routine is much easier. The ROM code in a PC normally consumes 128KB of RAM in two 64KB segments, E0000EFFFF and F0000FFFFF. Video and other auxiliary BIOS routines normally reside in C0000CFFFF and D0000DFFFF. Because of the nature of DEBUG, each 64KB segment must be saved separately. To use DEBUG to save segments E000 and F000 in this manner, follow these instructions: C:\>DEBUG ;Run DEBUG -R BX ;Change BX register (high-order file size) BX 0000 ; from 0 :1 ; to 1 (indicates 64K file) -N SEG-E.ROM ;Name the file -M E000:0 FFFF CS:0 ;Move 64K of BIOS data to current code segment -W 0 ;Write file from offset 0 in code segment Writing 10000 bytes ; 10000h = 64K -N SEG-F.ROM ;Name the file -M F000:0 FFFF CS:0 ;Move 64K of BIOS data to current code segment -W 0 ;Write file from offset 0 in code segment Writing 10000 bytes ; 10000h = 64K -Q ;Quit DEBUG Figure 5.7 shows how this will look when entered in a Windows XP command-prompt window. Figure 5.7. Using DEBUG to save E0000EFFFF and F0000FFFFF as files.
These instructions effectively save the 64K segment ranges E0000EFFFF and F0000FFFFF as files by first setting up the size of the file to be saved, then setting up the name of the file, and then moving (essentially, copying) the ROM BIOS code to the current code segment when DEBUG was loaded. The data then can be written to the disk. If you want to save the segments including the video BIOS and other possible adapter card ROMs in your system, repeat the previous procedure but use C000:0 and D000:0 as the starting addresses in the DEBUG commands. Be sure to use different file names as well. Note that the video BIOS might not use all of the C0000 segment; also, you might not have any other adapters using ROM in the remainder of the C0000 and D0000 segments, in which case Windows can sometimes use this area for other code. One important quirk of this procedure is that the commands should be entered in the relative order indicated here. In particular, the Name command must precede the Move command; otherwise, some of the data at the beginning of the current code-segment area will be trashed. Backing Up Your BIOS's CMOS SettingsA motherboard BIOS upgrade usually wipes out the BIOS Setup settings in the CMOS RAM. Therefore, you should record these settings, especially the important ones such as hard disk parameters. Some software programs, such as the Norton Utilities, can save and restore CMOS settings, but unfortunately, these types of programs are often useless in a BIOS upgrade situation. This is because sometimes the new BIOS offers new settings or changes the positions of the stored data in the CMOS RAM, which means you don't want to do an exact restore. Also, with the variety of BIOS available, I have yet to find a CMOS RAM backup and restore program that works on more than just a few specific systems. You are better off manually recording your BIOS Setup parameters, or possibly connecting a printer to your system and using the Shift+Prtsc (Print Screen) function to print each of the setup screens. Turn on your printer, start your computer normally, and restart it without turning off the system to initialize the printer to try this option. Some shareware programs could print or even save and restore the BIOS Setup settings stored in the CMOS RAM, but these were BIOS version specific and would not work on any other system. Most of these programs were useful during the 286/386 era, but most systems released sinceespecially those with Plug and Play capabilitieshave rendered most of these older programs useless. Tip If you are unable to print your screens, use a digital camera to take a picture of each BIOS setup screen. Be sure to set the camera to its close-up mode, and use the LCD display rather than the optical viewfinder to ensure you get the entire screen in the photo.
Using a Flash BIOSVirtually all PCs built since 1996 include a flash ROM to store the BIOS. A flash ROM is a type of EEPROM chip you can erase and reprogram directly in the system without special equipment. Older EPROMs required a special ultraviolet light source and an EPROM programmer device to erase and reprogram them, whereas flash ROMs can be erased and rewritten without even removing them from the system. On many recent systems, the flash ROM is not a separate chip but might be incorporated into the South Bridge chip. Using flash ROM enables you to download ROM upgrades from a website or receive them on disk; you then can load the upgrade into the flash ROM chip on the motherboard without removing and replacing the chip. Normally, these upgrades are downloaded from the manufacturer's website, and then an included utility is used to create a bootable floppy with the new BIOS image and update program. It is important to run this procedure from a boot floppy so that no other software or drivers are in the way that might interfere with the update. This method saves time and money for both the system manufacturer and end user. Sometimes the flash ROM in a system is write-protected, and you must disable the protection before performing an updateusually by means of a jumper or switch that controls the lock on the ROM update. Without the lock, any program that knows the correct instructions can rewrite the ROM in your systemnot a comforting thought. Without the write-protection, virus programs could be written that copy themselves directly into the ROM BIOS code in your system. Even without a physical write-protect lock, modern flash ROM BIOSs have a security algorithm that helps prevent unauthorized updates. This is the technique Intel uses on its motherboards. Note that motherboard manufacturers will not notify you when they upgrade the BIOS for a particular board. You must periodically log on to their websites to check for updates. Usually, any flash updates are free. Before proceeding with a BIOS upgrade, you first must locate and download the updated BIOS from your motherboard manufacturer. Consult the Vendor List on the accompanying DVD to find the website address or other contact information for your motherboard manufacturer. Log on to its website, and follow the menus to the BIOS updates page; then select and download the new BIOS for your motherboard. Note If a flash BIOS upgrade is identified as being for only certain board revisions of a particular model, be sure you determine that it will work with your motherboard before you install it. You might need to open your system and look for a revision number on the motherboard or for a particular component. Check the vendor's website for details. The BIOS upgrade utility is contained in a self-extracting archive file that can initially be downloaded to your hard drive, but it must be extracted and copied to a floppy before the upgrade can proceed. Different motherboard manufacturers have slightly different procedures and programs to accomplish a flash ROM upgrade, so you should read the directions included with the update. I include instructions here for Intel motherboards because they are by far the most common. Intel and other typical flash BIOS upgrades fit on a bootable floppy disk; some recent BIOS upgrades from Intel and other vendors can also be run from within the Windows GUI. Although that might sound scary, what it really does is to configure the system to reboot directly into the flash upgrade program before Windows actually starts. Then, after the BIOS is upgraded, the system reboots back into Windows. Older Intel and some other flash BIOS upgrades also provide the capability to save and verify the current BIOS version before replacing it with the new version and also provide the capability to install alternative languages for BIOS messages and the BIOS setup utility. Tip Before you start the flash BIOS upgrade process, you should disconnect all USB devices except for your keyboard and mouse. On some systems, leaving USB drives connected prevents a BIOS upgrade from working properly. If you have Byte Merge enabled in an Award BIOS or a FirstBIOS-based system, disable this feature before you perform the BIOS upgrade. On some systems, leaving byte merge enabled during a BIOS upgrade can destroy your BIOS. You can re-enable this feature after you complete the upgrade. If the BIOS setup is performed with a bootable floppy or CD, the first step in the upgrade after downloading the new BIOS file is to enter the CMOS Setup and write down or record your existing CMOS settings because they will be erased during the upgrade. Then, you create a DOS boot floppy or burn the CD with the BIOS upgrade files you downloaded. Next, you reboot to the newly created upgrade disk and follow the menus for the actual reflash procedure. The iFlash procedure covered in this section is similar to the BIOS update process used by most non-Intel motherboards and must be used for systems running Windows 95, MS-DOS, or non-Windows operating systems such as Linux. Here is a step-by-step procedure for the process using Intel's iFlash (DOS-based) BIOS update:
Caution If you do not set the values back to default, the system might function erratically. Note If you encounter a CMOS checksum error or other problems after rebooting, try rebooting the system again. CMOS checksum errors require that you enter Setup, check and save your settings, and exit Setup a second time. Note The procedure for older Intel BIOS upgrades differs from that described previously. If your BIOS upgrade contains the BIOS.EXE program, see the BIOS upgrade description contained in Upgrading and Repairing PCs, 12th Edition, included in electronic form on the DVD packaged with this book. Flash BIOS RecoveryWhen you performed the flash reprogramming, you should have seen a warning message onscreen similar to the following: The BIOS is currently being updated. DO NOT REBOOT OR POWER DOWN until the update is completed (typically within three minutes)... If you fail to heed this warning or something interrupts the update procedure, you will be left with a system that has a corrupted BIOS. This means you will not be able to restart the system and redo the procedure, at least not easily. Depending on the motherboard, you might have to replace the flash ROM chip with one that was preprogrammed by the motherboard manufacturer. This is an unfortunate necessity because your board will be nonfunctional until a valid ROM is present. This is why I still keep my trusty ROM burner around; it is very useful for those motherboards with socketed flash ROM chips. In minutes, I can use the ROM burner to reprogram the chip and reinstall it in the board. If you need a ROM programmer, I recommend Andromeda Research Labs (see the Vendor List on the accompanying DVD). In many of the latest systems, the flash ROM is soldered into the motherboard so it can't be replaced, rendering the reprogramming idea moot. However, this doesn't mean the only way out is a complete motherboard replacement. Most motherboards with soldered-in flash ROMs have a special BIOS Recovery procedure that can be performed. This hinges on a special nonerasable part of the flash ROM that is reserved for this purpose. In the unlikely event that a flash upgrade is interrupted catastrophically, the BIOS might be left in an unusable state. Recovering from this condition requires the following steps. A minimum of a power supply, a speaker, and a floppy drive configured as drive A: should be attached to the motherboard for this procedure to work:
When you power the system back on, the new BIOS should be installed and functional. However, you might want to leave the BIOS upgrade floppy in drive A: and check to see that the proper BIOS version was installed. Note Note that this BIOS recovery procedure is often the fastest way to update a large number of machines, especially if you are performing other upgrades at the same time. This is how it is typically done in a system assembly or production environment. Using IML System Partition BIOSIBM and Compaq used a scheme similar to a flash ROM, called Initial Microcode Load (IML), in some of their older Pentium and 486 systems. IML is a technique in which the BIOS code is installed on the hard disk in a special hidden-system partition and is loaded every time the system is powered up. Of course, the system still has a core BIOS on the motherboard, but all that BIOS does is locate and load updated BIOS code from the system partition. This technique enabled Compaq and IBM to distribute ROM updates on disk for installation in the system partition. The IML BIOS is loaded every time the system is reset or powered on. Along with the system BIOS code, the system partition contains a complete copy of the Setup and Diagnostics or Reference Disk, which provides the option of running the setup and system-configuration software at any time during a reboot operation. This option eliminates the need to boot from this disk to reconfigure the system and gives the impression that the entire Setup and Diagnostics or Reference Disk is contained in ROM. One drawback to this technique is that the BIOS code is installed on the hard disk; the system can't function properly without the correctly set-up hard disk connected. You can always boot from the Reference Disk floppy should the hard disk fail or become disconnected, but you can't boot from a standard floppy disk. Although this might seem similar to newer systems using the host protected area (reserved space past the "end" of the hard disk), it is not quite the same thing. Systems using the HPA use it only for recovery, diagnostic, and backup applications. The BIOS itself, as well as the BIOS Setup, is still contained in the actual ROM (flash ROM) chip. Motherboard CMOS RAM AddressesIn the original IBM AT system, a Motorola 146818 chip was used as the real-time clock (RTC) and CMOS RAM chip. This special chip had a simple digital clock that used 14 bytes of RAM and an additional 50 more bytes of leftover RAM in which you could store anything you wanted. The designers of the IBM AT used these extra 50 bytes to store the system configuration. Modern PC systems don't use the Motorola chip; instead, they incorporate the functions of this chip into the motherboard chipset (South Bridge) or Super I/O chip, or they use a special battery and NVRAM module from companies such as Dallas or Benchmarq. Table 5.6 shows the standard format of the information stored in the 64-byte standard CMOS RAM module. This information controls the configuration of the system and is read and written by the system setup program.
Note that many newer systems have extended CMOS RAM with 2KB, 4KB, or more. The extra room is used to store the Plug and Play information detailing the configuration of adapter cards and other options in the system. As such, no 100% compatible standard exists for how CMOS information is stored in all systems. You should consult the BIOS manufacturer for more information if you want the full details of how CMOS is stored because the CMOS configuration and Setup program typically are part of the BIOS. This is another example of how close the relationship is between the BIOS and the motherboard hardware. Backup programs and utilities are available in the public domain for CMOS RAM information, which can be useful for saving and later restoring a configuration. Unfortunately, these programs are BIOS specific and function only on a BIOS for which they are designed. As such, I don't usually rely on these programs because they are too motherboard and BIOS specific and will not work on all my systems seamlessly. Table 5.7 shows the values that might be stored by your system BIOS in a special CMOS byte called the diagnostic status byte. By examining this location with a diagnostics program, you can determine whether your system has set trouble codes, which indicate that a problem previously has occurred.
If the diagnostic status byte is any value other than 0, you typically get a CMOS configuration error on bootup. These types of errors can be cleared by rerunning the setup program. Replacing a BIOS ROMSystems dating from 1995 or earlier usually don't have a flash ROM and instead use an EPROM. To upgrade the BIOS in one of these systems, you replace the EPROM chip with a new one preloaded with the new BIOS. As with a flash ROM upgrade, you must get this from your motherboard manufacturer. There is usually a fee for this because the manufacturer must custom-burn a chip just for you and mail it out. Most boards older than 1995 are probably not worth upgrading the BIOS, so this option might no longer be available. Even if it is available, it most likely doesn't make sense to spend up to $50 on a new BIOS for an ancient board when a more modern board can be had for nearly the same costespecially since that new board will include a flash BIOS and many other new features. The procedure for replacing the BIOS chip is also useful if you have made a backup copy of your socketed system BIOS chip and need to replace a damaged original with the backup copy. This can also be useful if you have a socketed flash ROM, which was common on motherboards without a BIOS recovery jumper. To replace the BIOS chip, follow these steps:
As you can see, things are much easier with a modern motherboard with a flash ROM because you usually don't even have to remove the lid (unless the flash BIOS is write-protected as discussed earlier in this chapter). Year 2000 BIOS IssuesAll systems now in use should be compliant with twenty-first century dates, either through BIOS updates or through software or hardware patches. However, if you are returning stored systems built before 1999 to service, you might want to test them for year-2000 compliance. For details, see Upgrading and Repairing PCs, 12th Edition, available in electronic form on the DVD packaged with this book. |