Wednesday, March 21, 2007

BIOS upgrade

The BIOS needs to be updated every few years when technology changes to accommodate the operation of new parts. The update is normally obtained from the maker of the computer, or in the case of a non-brand computer, from the maker of the motherboard or sometimes the BIOS maker itself. Before we get into the nitty gritty, here's some basic information you need to know.The BIOS (or basic input/output system) is software. In newer computers it exists on a special chip called CMOS (complementary metal oxide semiconductor). If the CMOS is a flash memory chip, it can be updated. So an older BIOS can be updated to a newer version. Most Pentium computers and some 486 PCs have these chips installed and can be updated. The BIOS contains all the technical information about key components of the computer like disk drives, keyboards and display settings. It also keeps track of the date and time. In recent years some computers required BIOS updates to make them better operate with plug and play features built into Windows. BIOS updates were also required to accommodate larger hard drives.Before you do anything to your BIOS, it's always a good idea to record the settings on a sheet of paper that can be kept in a safe place.The BIOS can normally be accessed when you start your computer. You may see a reference to "setup" when you turn your computer on. That's your opportunity to get into the BIOS. It usually requires the push of a function key, such as F10, to get access to it. That "F" key varies between computers.If a logo screen is displayed during the start up process instead, then you may want to check with your computer maker for a command to turn off that screen and display the start up information, which is listed when a computer is powered on.Now for the nitty gritty.To do a BIOS upgrade you need to figure out where to get a BIOS update program. Most computer makers such as IBM, Dell, Compaq and Packard Bell have these updates on their web sites. Support for older Packard Bell computers (which the reader has) is run by a company called Alorica at www.priorityonesupport.com. As with most PC maker sites, you need to sign up for free, to get access to the system updates. The site requires that you enter a five-digit Zip code. (Note to Canadians: you can circumvent this by typing "11111".)The BIOS updates are generally downloadable from these sites. Once downloaded to your hard drive, run the update program and you may be prompted to create a floppy disk, which can then be used to update the BIOS.
However some newer programs will do a BIOS upodate without the need to create a floppy disk (they are obsolete now). You just the run the update and the BIOS is updated after a reboot.In the event that your PC maker won't provide a BIOS update, you can often acquire one from the motherboard maker. You'll have to do some detective work to figure out what brand and model of motherboard is in the system that you have to update. If you bought your PC from a small shop, a manual for the motherboard is usually included with the system's documentation.For those that are a little flummoxed by all this, your local computer store can probably do the update for you for the price of an hour's labour.

Enable System BIOS Shadowing

Enable System BIOS Shadowing
Shadowing is the process of copying slower ROM code into underlying RAM memory to improve performance of the ROM routines. The most commonly-shadowed ROM is the system BIOS ROM. Enabling the BIOS ROM shadowing feature will result in a small performance improvement.
Note: It is unusual in my experience for problems to result from using this setting, so if you are having trouble enabling this you may want to troubleshoot your memory or motherboard.

The PC Boot Process - Windows XP.

Power supply switched on.

The power supply performs a self-test. When all voltages and current levels are acceptable, the supply indicates that the power is stable and sends the Power Good signal to the processor. The time from switch-on to Power Good is usually between .1 and .5 seconds.





The microprocessor timer chip receives the Power Good signal.

With the arrival of the Power Good signal the timer chip stops sending reset signals to the processor allowing the CPU to begin operations.





The CPU starts executing the ROM BIOS code.

The CPU loads the ROM BIOS starting at ROM memory address FFFF:0000 which is only 16 bytes from the top of ROM memory. As such it contains only a JMP (jump) instruction that points to the actual address of the ROM BIOS code.





The ROM BIOS performs a basic test of central hardware to verify basic functionality.

Any errors that occur at this point in the boot process will be reported by means of 'beep-codes' because the video subsystem has not yet been initialized.





The BIOS searches for adapters that may need to load their own ROM BIOS routines.

Video adapters provide the most common source of adapter ROM BIOS. The start-up BIOS routines scan memory addresses C000:0000 through C780:0000 to find video ROM. An error loading any adapter ROM generates an error such as: XXXX ROM Error where XXXX represents the segment address of the failed module.





The ROM BIOS checks to see if this is a 'cold-start' or a 'warm-start'

To determine whether this is a warm-start or a cold start the ROM BIOS startup routines check the value of two bytes located at memory location 0000:0472. Any value other than 1234h indicates that this is a cold-start.





If this is a cold-start the ROM BIOS executes a full POST (Power On Self Test). If this is a warm-start the memory test portion of the POST is switched off.

The POST can be broken down into three components: The Video Test initializes the video adapter, tests the video card and video memory, and displays configuration information or any errors.The BIOS Identification displays the BIOS version, manufacturer, and date.The Memory Test tests the memory chips and displays a running sum of installed memory.



Errors the occur during the POST can be classified as either 'fatal' or 'non-fatal'. A non-fatal error will typically display an error message on screen and allow the system to continue the boot process. A fatal error, on the other hand, stops the process of booting the computer and is generally signaled by a series of beep-codes.

The BIOS locates and reads the configuration information stored in CMOS.

CMOS (which stands for Complementary Metal-Oxide Semiconductor) is a small area of memory (64 bytes) which is maintained by the current of a small battery attached to the motherboard. Most importantly for the ROM BIOS startup routines CMOS indicates the order in which drives should be examined for an operating systems - floppy first, CD-Rom first, or fixed disk first.
Fixed Disk




If the first bootable disk is a fixed disk the BIOS examines the very first sector of the disk for a Master Boot Record (MBR). For a floppy the BIOS looks for a Boot Record in the very first sector.

On a fixed disk the Master Boot Record occupies the very first sector at cylinder 0, head 0, sector 1. It is 512 bytes in size. If this sector is found it is loaded into memory at address 0000:7C00 and tested for a valid signature. A valid signature would be the value 55AAh in the last two bytes. Lacking an MBR or a valid signature the boot process halts with an error message which might read: NO ROM BASIC - SYSTEM HALTEDA Master Boot Record is made up of two parts - the partition table which describes the layout of the fixed disk and the partition loader code which includes instructions for continuing the boot process.




MBR
With a valid MBR loaded into memory the BIOS transfers control of the boot process to the partition loader code that takes up most of the 512 bytes of the MBR.

The process of installing multiple operating systems on a single PC usually involves replacing the original partition loader code with a Boot Loader program that allows the user to select the specific fixed disk to load in the next step of the process




Partition Table
The partition loader (or Boot Loader) examines the partition table for a partition marked as active. The partition loader then searches the very first sector of that partition for a Boot Record.

The Boot Record is also 512 bytes and contains a table that describes the characteristics of the partition (number of bytes per sectors, number of sectors per cluster, etc.) and also the jump code that locates the first of the operating system files (IO.SYS in DOS).
Operating System



Boot Record
The active partition's boot record is checked for a valid boot signature and if found the boot sector code is executed as a program.

The loading of Windows XP is controlled by the file NTLDR which is a hidden, system file that resides in the root directory of the system partition. NTLDR will load XP in four stages:1) Initial Boot Loader Phase 2) Operating System selection 3) Hardware Detection 4) Configuration Selection




NTLDRInitial Phase
During the initial phase NTLDR switches the processor from real-mode to protected mode which places the processor in 32-bit memory mode and turns memory paging on. It then loads the appropriate mini-file system drivers to allow NTLDR to load files from a partition formatted with any of the files systems supported by XP.

Windows XP supports partitions formatted with either the FAT-16, FAT-32, or NTFS file system.




NTLDROS SelectionBOOT.INI
If the file BOOT.INI is located in the root directory NTLDR will read it's contents into memory. If BOOT.INI contains entries for more than one operating system NTLDR will stop the boot sequence at this point, display a menu of choices, and wait for a specified period of time for the user to make a selection.

If the file BOOT.INI is not found in the root directory NTLDR will continue the boot sequence and attempt to load XP from the first partition of the first disk, typically C:\.




F8
Assuming that the operating system being loaded is Windows NT, 2000, or XP pressing F8 at this stage of the boot sequence to display various boot options including "Safe Mode" and "Last Known Good Configuration"

After each successful boot sequence XP makes a copy of the current combination of driver and system settings and stores it as the Last Known Good Configuration. This collection of settings can be used to boot the system subsequently if the installation of some new device has caused a boot failure.




NTLDRHardware Detection
If the selected operating system is XP, NTLDR will continue the boot process by locating and loading the DOS based NTDETECT.COM program to perform hardware detection.

NTDETECT.COM collects a list of currently installed hardware components and returns this list for later inclusion in the registry under the HKEY_LOCAL_MACHINE\HARDWARE key.




NTLDRConfiguration Selection
If this computer has more than one defined Hardware Profile the NTLDR program will stop at this point and display the Hardware Profiles/Configuration Recovery menu.

Lacking more than one Hardware Profile NTLDR will skip this step and not display this menu.




Kernel Load
After selecting a hardware configuration (if necessary) NTLDR begins loading the XP kernel (NTOSKRNL.EXE).

During the loading of the kernel (but before it is initialized) NTLDR remains in control of the computer. The screen is cleared and a series of white rectangles progress across the bottom of the screen. NTLDR also loads the Hardware Abstraction Layer (HAL.DLL) at this time which will insulate the kernel from hardware. Both files are located in the \system32 directory.




NTLDRBootDevice Drivers
NTLDR now loads device drivers that are marked as boot devices. With the loading of these drivers NTLDR relinquishes control of the computer.

Every driver has a registry subkey entry under HKEY_LOCAL_MACHINE\SYSTEM\Services. Any driver that has a Start value of SERVICE_BOOT_START is considered a device to start at boot up. A period is printed to the screen for each loaded file (unless the /SOS switch is used in which case file names are printed.




Kernel Initialization
NTOSKRNL goes through two phases in its boot process - phase 0 and phase 1. Phase 0 initializes just enough of the microkernel and Executive subsystems so that basic services required for the completion of initialization become available.. At this point, the system display a graphical screen with a status bar indicating load status.

XP disables interrupts during phase 0 and enables them before phase 1. The HAL is called to prepare the interrupt controller; the Memory Manager, Object Manager, Security Reference Monitor, and Process Manager are initialized.Phase 1 begins when the HAL is called to prepare the system to accept interrupts from devices. If more than one processor is present the additional processors are initialized at this point. All Executive subsystems are reinitialized in the following order:1) Object Manager2) Executive3) Microkernel4) Security Reference Monitor5) Memory Manager6) Cache Manager7) LPCS8) I/O Manager9) Process Manager




I/O Manager
The initialization of I/O Manager begins the process of loading all the systems driver files. Picking up where NTLDR left off, it first finishes the loading of boot devices. Next it assembles a prioritized list of drivers and attempts to load each in turn.

The failure of a driver to load may prompt NT to reboot and try to start the system using the values stored in the Last Known Good Configuration.




SMSS
The last task for phase 1 initialization of the kernel is to launch the Session Manager Subsystem (SMSS). SMSS is responsible for creating the user-mode environment that provides the visible interface to NT.

SMSS runs in user-mode but unlike other user-mode applications SMSS is considered a trusted part of the operating system and is also a native application (it uses only core Executive functions). These two features allow SMSS to start the graphics subsystem and login processes.




win32k.sys
SMSS loads the win32k.sys device driver which implements the Win32 graphics subsystem.

Shortly after win32k.sys starts it switches the screen into graphics mode. The Services Subsystem now starts all services mark as Auto Start. Once all devices and services are started the boot is deemed successful and this configuration is saved as the Last Known Good Configuration.




Logon
The XP boot process is not considered complete until a user has successfully logged onto the system. The process is begun by the WINLOGON.EXE file which is loaded as a service by the kernel and continued by the Local Security Authority (LSASS.EXE) which displays the logon dialog box.

This dialog box appears at approximately the time that the Services Subsystem starts the network service.
BIOS Feature Setup

PCI/VGA Palette Snoop
Options : Enabled, Disabled
This option is only useful if you use an MPEG card or an add-on card that makes use of the graphics card's Feature Connector. It corrects incorrect colour reproduction by "snooping" into the graphics card's framebuffer memory and modifying (synchronizing) the information delivered from the graphics card's Feature Connector to the MPEG or add-on card. It will also solve the problem of display inversion to a black screen after using the MPEG card.

Assign IRQ For VGA
Options : Enabled, Disabled
Many high-end graphics accelerator cards now require an IRQ to function properly. Disabling this feature with such cards will cause improper operation and/or poor performance. Thus, it's best to make sure you enable this feature if you are having problems with your graphics accelerator card.
However, some low-end cards don't need an IRQ to run normally. Check your graphics card's documentation (manual). If it states that the card does not require an IRQ, then you can disable this feature to release an IRQ for other uses. When in doubt, it's best to leave it enabled unless you really need the IRQ.

MPS Version Control For OS
Options : 1.1, 1.4
This option is only valid for multiprocessor motherboards as it specifies the version of the Multiprocessor Specification (MPS) that the motherboard will use. The MPS is a specification by which PC manufacturers design and build Intel architecture systems with two or more processors.
MPS version 1.4 added extended configuration tables to improve support for multiple PCI bus configurations and improve future expandability. It is also required for a secondary PCI bus to work without the need for a bridge. Newer versions of server operating systems will generally support MPS 1.4 and as such, you should change the BIOS Setup from the default of 1.1 to 1.4 if your operating system supports version 1.4. Leave it as 1.1 only if you are running older server OSes.
Eugene Tan informed me that the setting for WinNT should be 1.4.
According to Dan Isaacs, users of the ABIT BP6 motherboard and Windows 2000 should set the MPS version to 1.1. This is because Windows 2000 has a problem with the BP6 motherboard using MPS version 1.4. When you set the MPS version to 1.4 in the ABIT BP6, Windows 2000 will not use the second processor. So, if you are using the ABIT BP6 motherboard and Windows 2000, set the MPS Version Control For OS to 1.1. Thanks, Dan! :)

64MB">OS Select For DRAM > 64MB
Options : OS/2, Non-OS/2
When the system memory is more than 64MB in size, OS/2 differs from other operating systems (OS) in the way it manages the RAM. However, this is only true for older versions of OS/2. If you are still running an older version of IBM's OS/2 operating system, you will need to select OS/2.
Starting with OS/2 Warp v3.0 or if you have installed the FixPaks that IBM has been releasing over the years, you should select Non-OS/2 instead. Otherwise, it will cause erroneous memory detection, i.e. if you have 64MB of RAM, it may only register as 16MB or if you have more than 64MB of RAM, it may register as only 64MB of RAM.
For other operating systems, use the Non-OS/2 setting.
Many thanks to Britt Turnbull and Serenity Systems for updates on this feature! :)

HDD S.M.A.R.T. Capability
Options : Enabled, Disabled
This option enables/disables support for the hard disk's S.M.A.R.T. capability. The S.M.A.R.T. (Self Monitoring Analysis And Reporting) technology is supported by all current hard disks and it allows the early prediction and warning of impending hard disk disasters. You can enable it if you are using S.M.A.R.T. aware utilities to monitor the hard disk's condition. Enabling it also allows the monitoring of the hard disk's condition over a network.
However, there's a possibility that enabling S.M.A.R.T. may cause spontaneous reboots in networked computers. Johnathan P. Dinan mentioned such an experience with S.M.A.R.T. enabled. S.M.A.R.T. may be sending packets of data through the network even though there's nothing monitoring those data packets. This may have caused the spontaneous reboots that he had experienced (Comment #103). So, try disabling HDD S.M.A.R.T. Capability if you experience reboots or crashes while you are on a network.
For most users, the S.M.A.R.T. capability isn't really useful or necessary. In fact, all the constant S.M.A.R.T. traffic eats up some bandwidth. So, if you don't use S.M.A.R.T. aware utilities or don't need that level of real-time reporting, disable it for better system performance.

Report No FDD For Win95
Options : Enabled, Disabled
If you are using Windows 95/98 without a floppy disk drive, select Enabled to release IRQ6. This is required to pass Windows 95/98's SCT test. You should also disable the Onboard FDC Controller in the Integrated Peripherals screen when there's no floppy drive in the system. If you set this feature to Disabled, the BIOS will not report the missing floppy drive to Win95/98.

Delay IDE Initial (Sec)
Options : 0, 1, 2, 3, ..., 15
The booting process of new BIOSes is much faster these days. Thus, some IDE devices may not be able to spin up fast enough for the BIOS to detect them during the booting up process. This setting is used to delay the initialization of such IDE devices during the booting up process.
Leave it at 0 if possible for faster system booting. But if one or more of your IDE devices fail to initialize while booting, increase the value of this setting until they all initialize properly.