Benefits of BIOS Updates

Ethics require manufacturers to supplement each version of firmware with a detailed description explaining the differences between this version and all other versions. After reading this document, users would be able to decide whether they need this firmware version. An example of one such description is provided in Listing 31.1.

Listing 31.1: An example of the description of a BIOS firmware update
image from book
 8kt31a19.exe 2001-10-19 248.7 kb N/A Fixed HCT ACPI test failures under WIN2K. Fixed system hang when installing a SoundBlaster and Live Ware. Fixed WINXP installation failure with Nvidia Geforce 2MX AGP Card. Fixed abnormal FAN signal hanging BIOS. Fixed ACPI errors in event viewer under WINXP. Added new BIOS feature to differentiate between Athlon XP or Athlon MP. 
image from book
 

Such list might be incomplete (for example, the firmware version might fix problems that are not included on the list). Sometimes, such a list of fixed problems might be missing (which is typical for ASUS products). In general, a BIOS upgrade can solve only the following three issues:

  • Support for new devices (processors, RAM chips, disk drives )

  • Unlocking operating modes, clock frequencies, and timings previously unavailable

  • Eliminating hardware and software conflicts

Now, consider each of these issues in more detail.

Support for New Devices

There are only two types of devices that need the updated BIOS version: the processor and RAM chips.

For the processor to initialize and start up properly, it must be configured as appropriate. The processor is configured both at the hardware level (by passing appropriate logical signals to appropriate interface pins) and at the software level (by writing the configuration settings into the service registers). The bus controller built into the north bridge of the chipset and ensuring correct communications and interactions between the processor and all other equipment is configured with the processor. Having encountered an unknown processor, BIOS can either refuse to start it or implement incompletely its functional capabilities (for example, Hyper-Threading technology). If BIOS is loyal to over clocking, then it is possible to manually set the clock frequency both for the core and for the system bus, and even for unknown processors, without caring that BIOS identifies the processor incorrectly.

BIOS is also responsible for determining the type of installed memory chips and the configuration of the memory controller. In addition to the size, memory modules are characterized by lots of auxiliary parameters (such as the length of the DRAM page). Without taking these parameters into account, the controller would malfunction or even refuse to start. Thus, if a knowingly-operable DIMM has been installed on the motherboard but the motherboard doesn't recognize it, interprets it as a half of its actual size , or operates with it at reduced clock frequency, consult the user guide and find out the type of north bridge installed in your system. Then consult the chipset manufacturer to make sure that the memory controller supports this type of DIMM. If it does, then BIOS update might help. Otherwise , it would be better to either replace the entire motherboard or choose another memory module.

Correct support of storage drives is not as critical. Although ancient versions of BIOS do not support large hard disks, this doesn't affect Windows operation. In this situation, the most important issue is ensuring that the start-up files are located within the "visible" area. After initial start-up, device drivers will enter the scene and the disk will work as required, fully implementing its capabilities. If this doesn't happen, then you should download and install the newest service pack for an appropriate Windows version instead of upgrading BIOS.

Always remember that BIOS is simply a program. After updating BIOS firmware, no new controllers will appear on the motherboard, and its functional capabilities will remain the same, with all of the limitations typical for the hardware. For example, if the built-in controller doesn't support 48-bit logical block addressing and truncates the most significant bits, then you won't be able to work with large hard disks. In theory, the updated firmware version might be able to "see" the entire hard disk. However, if you attempt to write into the sector, for which the most significant bit is truncated, the least significant disk sector will be accessed and the file system will be destroyed .

The list of supported devices is strictly limited by the chipset, the specific features of the chipset's design, and the implementation typical for the specific motherboard. If the chipset doesn't support specific processors, memory modules, or disk drives, then a BIOS update won't help you. Thus, it is highly recommended that you read documentation about chipsets. Note that the manuals for the motherboards might keep silence about many capabilities implemented at the hardware level.

New Operating Modes

When comparing chipset characteristics with the characteristics of the mother- boards , on which they are installed, I often wonder why BIOS supports such a small fraction of the entire potential. Sometimes, however, a different situation can be encountered ” when BIOS supports undocumented, "overclocked" modes of chipset operation.

What are the possible reasons? They might vary widely. For example, assume that the motherboard manufacturer is not sure that a specific product is bug-free. In this case, most hardware manufacturers block the modes that haven't been fully tested . Sometimes, hardware manufacturers intentionally block the performance of cheap models to avoid competition with their high-end products and then, as the technology evolves, unblock some of the newer capabilities by releasing firmware updates.

To relieve yourself from constantly updating BIOS, I recommend that you choose the motherboard whose potential capabilities correspond to those of the chipset. In other words, the characteristics of the chipset must match the characteristics of the native BIOS. It is up to you to decide whether or not BIOS must provide overclocking potential. Anyway, it is much better to have something in reserve, and principally new functionalities are principally unable to provide support at the software level. Consider, for example, the Hyper-Threading technology. At first glance, it seems that to enable Hyper-Threading, it is enough to update BIOS. After that, Hyper-Threading presumably will start to operate . I said "presumably," because the multiprocessing has its own features of planning requests to the memory that require hardware optimization of the bus controller and memory controller; otherwise, the performance gain would be negligibly small (and sometimes there might be performance degradation instead of growth).

A different matter is that newer firmware versions often contain lots of goodies , such as the temperature-monitoring system that automatically reduces the processor or memory clock frequencies in case of overheating , or reduces the fan rotation speed when the processor or memory are cool enough, thus reducing the noise. However, even here there are potential problems. Temperature sensors installed in cheap motherboards are catastrophically unreliable. Their " readings " drift within quite wide limits, which often go beyond the allowable temperature limits for a given processor. Users become worried and press hard upon the hardware manufacturers, who, in turn , rewrite BIOS to make it provide more correct "readings." Therefore, if after upgrading the firmware the processor temperature has been reduced, BIOS has either configured the processor for a sparse (and lower performance) operating mode or intentionally lowered the actual readings. Processor-identification errors and incorrect voltage settings are a separate case. However, these are typical for cheap, low-end hardware that a user has overclocked incorrectly.

Resolving Conflicts

Having encountered a hardware conflicts or Blue Screen of Death, do not rush to blame BIOS. In most cases, BIOS is not responsible for this. The main source of errors and conflicts is the software from third-party manufacturers who neglect the recommendations of the operating system's manufacturer. As a result, the third-party software is not fully compatible with the operating system. Statistically, lowest positions in the ranking of potential sources of problems are taken by hardware malfunctions (this is especially typical for overclocked hardware) and incorrect configuration of the operating system and/or BIOS Setup. It is possible to upgrade BIOS; however, in most cases it won't produce any positive results.

How do BIOS conflicts appear? In most cases, Windows either doesn't find the conflicting device or identifies it incorrectly (for example, the sound card might be identified as a joystick). In other cases, one or more devices cannot be assigned a different interrupted request, DMA, or input/output, and even when you achieve this, the devices refuse to work simultaneously . This is a typical bug of the PNP Manager.

If all devices are identified normally but, when waking up after the hibernation state, disappear unexpectedly or cease to operate correctly, this means that either you are dealing with a BIOS bug or the device doesn't meet the requirements of the APC specification. Also, it is possible that you have installed an incorrect device driver, or that the driver is faulty. To be on the safe side, try to install the newest service pack for the specific Windows version, download the latest version of the device driver, and play with various Power Manager settings in BIOS Setup. Resort to upgrading BIOS only if all these steps do not produce any useful result. As a variant, it is possible to disable the hibernation mode.

BIOS design errors might become sources of the STOP errors (also known as Blue Screens of Death), listed in Listing 31.2. Similar STOP errors might be caused by hardware malfunctions, memory faults, bad sectors found on the hard disk, extreme overclocking, faulty drivers, etc. This list might be continued infinitely.

Listing 31.2: BSODs and critical application errors possibly caused by BIOS design errors
image from book
 Bug Check 0x1E: KMODE_EXCEPTION_NOT_HANDLED Bug Check 0x0A: IRQL_NOT_LESS_OR_EQUAL Bug Check 0x2E: DATA_BUS_ERROR Bug Check 0x7B: INACCESSIBLE_BOOT_DEVICE Bug Check 0x7F: UNEXPECTED_KERNEL_MODE_TRAP Bug Check 0x50: PAGE_FAULT_IN_NONPAGED_AREA Bug Check 0x77: KERNEL_STACK_INPAGE_ERROR Bug Check 0x7A: KERNEL_DATA_INPAGE_ERROR Exception Code 0xC0000221: STATUS_IMAGE_CHECKSUM_MISMATCH 
image from book
 

Thus, you should consider BIOS the source of the problem if such BSODs persistently appear only when running a newly-installed operating system and all hardware installed on the computer is known to be operable.

Note  

How are you going to test the hardware? The simplest way is running Quake under DOS. If there are no failures, then there are good chances that the hardware is OK.

Sometimes, the problem can be solved by disabling BIOS caching (this can be done starting BIOS Setup program and setting the Shadow BIOS or BIOS cacheable options to Disable ).

In some cases, Windows might refuse to be installed on a system with incompatible BIOS. In such cases, Windows Setup program would freeze, restart, or terminate abnormally. However, BIOS is unlikely to be the main source of the problem, because most self-respecting motherboard manufacturers test the firmware for compatibility with popular operating systems. The problem is probably caused by incorrect BIOS settings or by hardware conflicts (as a rule, the conflict is caused by a video adapter).



Shellcoder's Programming Uncovered
Shellcoders Programming Uncovered (Uncovered series)
ISBN: 193176946X
EAN: 2147483647
Year: 2003
Pages: 164

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net