PDA

View Full Version : BIOS POST & the beep


Sylvander
07-05-2005, 05:52 AM
On my older PC [Award BIOS], when switched on the screen would begin black and I could see various LED activity on the HDD & CD drives.
Then there would be the POST beep and the monitor would begin to display.
It would show the BIOS info, then the memory test, then the BIOS extension, then the drive detection & configuration.

On my slightly newer PC [Phoenix BIOS] it behaves differently:
When I switch on, the monitor immediately begins to display a Hewlett Packard logo.
If I hit "Esc" the logo disappears and behind it I can then see what the BIOS [POST?] is displaying. It doesn't show 3 tests being completed on the RAM [which the old PC did]. The display finishes with the detection of the HDD and only one of my two CD drives [strange that the slave CD doesn't show but works ok].
Then it beeps and displays a menu of possible boot drives to select.

I had previously thought that the beep was generated when the POST had completed successfully, and only then was the video card enabled.
Am I wrong?
Does the BIOS have its own video driver? How does it display so early?
I have a Phoenix ".pdf" file [does anyone know how to convert that to a text file?][for a generic BIOS] that lists all the POST actions/tests, and this shows that the beep is not the last thing done [almost last] by the POST program.

LAST 4 STEPS
1. Output one beep
2. Clear huge segment
3. Boot to Mini DOS
4. Boot to Full DOS

Sylvander
07-05-2005, 06:12 AM
Here's the full list:

Code_Beeps_POST Routine Description
02h Verify Real Mode
03h Disable Non-Maskable Interrupt (NMI)
04h Get CPU type
06h Initialize system hardware
07h Disable shadow and execute code from the ROM.
08h Initialize chipset with initial POST values
09h Set IN POST flag
0Ah Initialize CPU registers
0Bh Enable CPU cache
0Ch Initialize caches to initial POST values
0Eh Initialize I/O component
0Fh Initialize the local bus IDE
10h Initialize Power Management
11h Load alternate registers with initial POST values
12h Restore CPU control word during warm boot
13h Initialize PCI Bus Mastering devices
14h Initialize keyboard controller
16h 1-2-2-3 BIOS ROM checksum
17h Initialize cache before memory Auto size
18h 8254 timer initialization
1Ah 8237 DMA controller initialization
1Ch Reset Programmable Interrupt Controller
20h 1-3-1-1 Test DRAM refresh
22h 1-3-1-3 Test 8742 Keyboard Controller
24h Set ES segment register to 4 GB
28h Auto size DRAM
29h Initialize POST Memory Manager
2Ah Clear 512 kB base RAM
2Ch 1-3-4-1 RAM failure on address line xxxx*
2Eh 1-3-4-3 RAM failure on data bits xxxx* of low byte of memory bus
2Fh Enable cache before system BIOS shadow
32h Test CPU bus-clock frequency
33h Initialize Phoenix Dispatch Manager
36h Warm start shut down
38h Shadow system BIOS ROM
3Ah Auto size cache
3Ch Advanced configuration of chipset registers
3Dh Load alternate registers with CMOS values
41h Initialize extended memory for RomPilot
42h Initialize interrupt vectors
45h POST device initialization
46h 2-1-2-3 Check ROM copyright notice
47h Initialize I20 support
48h Check video configuration against CMOS
49h Initialize PCI bus and devices
4Ah Initialize all video adapters in system
4Bh QuietBoot start (optional)
4Ch Shadow video BIOS ROM
4Eh Display BIOS copyright notice
4Fh Initialize MultiBoot
50h Display CPU type and speed
51h Initialize EISA board
52h Test keyboard
54h Set key click if enabled
55h Enable USB devices
58h 2-2-3-1 Test for unexpected interrupts
59h Initialize POST display service
5Ah Display prompt "Press F2 to enter SETUP"
5Bh Disable CPU cache
5Ch Test RAM between 512 and 640 kB
60h Test extended memory
62h Test extended memory address lines
64h Jump to UserPatch1
66h Configure advanced cache registers
67h Initialize Multi Processor APIC
68h Enable external and CPU caches
69h Setup System Management Mode (SMM) area
6Ah Display external L2 cache size
6Bh Load custom defaults (optional)
6Ch Display shadow-area message
6Eh Display possible high address for UMB recovery
70h Display error messages
72h Check for configuration errors
76h Check for keyboard errors
7Ch Set up hardware interrupt vectors
7Dh Initialize Intelligent System Monitoring
7Eh Initialize coprocessor if present
80h Disable onboard Super I/O ports and IRQs
81h Late POST device initialization
82h Detect and install external RS232 ports
83h Configure non-MCD IDE controllers
84h Detect and install external parallel ports
85h Initialize PC-compatible PnP ISA devices
86h Re-initialize onboard I/O ports.
87h Configure Motherboard Configurable Devices (optional)
88h Initialize BIOS Data Area
89h Enable Non-Maskable Interrupts (NMIs)
8Ah Initialize Extended BIOS Data Area
8Bh Test and initialize PS/2 mouse
8Ch Initialize floppy controller
8Fh Determine number of ATA drives (optional)
90h Initialize hard-disk controllers
91h Initialize local-bus hard-disk controllers
92h Jump to UserPatch2
93h Build MPTABLE for multi-processor boards
95h Install CD ROM for boot
96h Clear huge ES segment register
97h Fix up Multi Processor table
98h 1-2 Search for option ROMs. One long, two short beeps on checksum failure
99h Check for SMART Drive (optional)
9Ah Shadow option ROMs
9Ch Set up Power Management
9Dh Initialize security engine (optional)
9Eh Enable hardware interrupts
9Fh Determine number of ATA and SCSI drives
A0h Set time of day
A2h Check key lock
A4h Initialize typematic rate
A8h Erase F2 prompt
AAh Scan for F2 key stroke
ACh Enter SETUP
AEh Clear Boot flag
B0h Check for errors
B1h Inform RomPilot about the end of POST.
B2h POST done - prepare to boot operating system
B4h 1 One short beep before boot
B5h Terminate QuietBoot (optional)
B6h Check password (optional)
B7h Initialize ACPI BIOS
B9h Prepare Boot
BAh Initialize SMBIOS
BBh Initialize PnP Option ROMs
BCh Clear parity checkers
BDh Display MultiBoot menu
BEh Clear screen (optional)
BFh Check virus and backup reminders
C0h Try to boot with INT 19
C1h Initialize POST Error Manager (PEM)
C2h Initialize error logging
C3h Initialize error display function
C4h Initialize system error handler
C5h PnPnd dual CMOS (optional)
C6h Initialize note dock (optional)
C7h Initialize note dock late
C8h Force check (optional)
C9h Extended checksum (optional)
CAh Redirect Int 15h to enable remote keyboard
CBh Redirect Int 13h to Memory Technologies Devices such as ROM, RAM, PCMCIA, and serial disk
CCh Redirect Int 10h to enable remote serial video
CDh Re-map I/O and memory for PCMCIA
CEh Initialize digitizer and display message
D2h Unknown interrupt
The following are for boot block in Flash ROM
E0h Initialize the chipset
E1h Initialize the bridge
E2h Initialize the CPU
E3h Initialize system timer
E4h Initialize system I/O
E5h Check force recovery boot
E6h Checksum BIOS ROM
E7h Go to BIOS
E8h Set Huge Segment
E9h Initialize Multi Processor
EAh Initialize OEM special code
EBh Initialize PIC and DMA
ECh Initialize Memory type
EDh Initialize Memory size
EEh Shadow Boot Block
EFh System memory test
F0h Initialize interrupt vectors
F1h Initialize Run Time Clock
F2h Initialize video
F3h Initialize System Management Manager
F4h Output one beep
F5h Clear Huge Segment
F6h Boot to Mini DOS
F7h Boot to Full DOS

Paleo Pete
07-05-2005, 08:36 AM
I can then see what the BIOS [POST?] is displaying

POST.

Basic Input Output System - data stored on the CMOS chip that is necessary to boot.

Power On Self Test - The initial boot process that reads that data and tests/identifies/initializes hardware.

I had previously thought that the beep was generated when the POST had completed successfully, and only then was the video card enabled.
Am I wrong?

Yep, you're wrong, which is a pretty rare occurance. The video card is the very first thing initialized. On many older computers you can see the video BIOS screen long eough to identify your video card. A lot of newer machines boot so fast the POST is well under way before the monitor warms up enolugh to display a picture.

Does the BIOS have its own video driver? How does it display so early?

I'm not sure about the first half, BIOS may have a very basic generic video driver but I'm not sure. As for the second half, the video card itself has its own BIOS, built into the card, that allows it to display video with no drivers installed, which is how DOS manages to run and Windows/Linux/Unix/MacOS etc manage to get installed in the first place. Quite often with Windows you have to install a driver to allow full functionality of the card after Windows is up and running.

Nope, I don't know how to convert PDF to text file, but I'd be willing to bet it could be done.

Again going back to older machines, you can see that the beep is not the last thing POST does, (although I never really thought much about it until you posted this). The hardware is tested and if all is found to be alive and well you hear a beep, THEN the second POST screen is displayed, showing the hardware POST identified and the I/O addresses and IRQs assigned to certain devices, then our old buddy "Verifying Pool Data", then a search through the drives in the order set in the boot sequence for system files, so POST can hand things over to the OS, which can be on floppy CD ROM or hard drive.


Almost forgot...The three RAM tests occur when the Fast Boot option is NOT enabled in BIOS. Depending on BIOS it may be named differently, I think Award calls it Quick Boot. When enabled it will only test RAM once. I think it skips other non-essential tests too, but not positive.

Sylvander
07-05-2005, 10:03 AM
Thanks Pete, great help. :)
It's about time I tried to figure out all of this.

I found that Adobe Reader 6.0.1 includes an option to save the document as a text file, so I did that, saved it to my CD-RW disk for this PC [drivers etc], and copied part of it [the list above] to this thread.

"The video card is the very first thing initialized"
The odd thing is, that in my older PC the beep came immediately before the video being enabled, which was some way in, after it had polled some of the hardware.
In the list above for this PC's POST, "Initialize all video adapters in system" comes quite a way down the list. But then perhaps that can still be considered an early stage?

"On many older computers you can see the video BIOS screen long enough to identify your video card"
On my older PC, if it flashed up at all, it was so quick it was impossible to read. It's the 1st thing that is displayed after the beep and then the display coming up.

"BIOS may have a very basic generic video driver"
That's what I'm inclined to think.

"the video card itself has its own BIOS, built into the card, that allows it to display video with no drivers installed"
Didn't think of that. Must hammer that into my mind.

"which is how DOS manages to run"
Nor that! So obvious when you say it. :) When DOS is running, no Windows video driver has been loaded.

"with Windows you have to install a driver to allow full functionality of the card"
I suppose the Windows video driver gives greater functionality than the [video card] BIOS video driver.

"When enabled it will only test RAM once. I think it skips other non-essential tests too"
In my older Award BIOS it's named "Quick Power on Self Test", which can be disabled [for the full test] or enabled [for the quick test]. I had it disabled.

Paleo Pete
07-06-2005, 07:30 AM
Hmmm...I didn't read through the list to see where video is, I'll take your word for it, that's a long list...but since it does usually take a few seconds before the video BIOS is displayed I see no reason at all why a few other routines shouldn't run that require no video or user interaction, making video not necessary. So in reality, video might not actually be the first thing activated, as I thought, just the first visible indication that anything is happening. I never thought about it until your comment about it being way down the list. If that list is the actual order of what is done during POST, then everything listed above it would be already finished when video is initialized. I thought it was the very first thing to happen.

Odd that your older machine displayed the video BIOS after the beep, I've never seen one do that, it's usually displayed first then the visible part of POST commences with RAM count before the beep and drive identification usually just afterward. I think I've seen the RAM count come after the beep as well, but never video BIOS. I suppose you had one I've never run across...

Windows driver...yeah a lot more functionality. Ever see a DOS machine handle 3D or OpenGL? Direct X? Also the more commonplace things you take for granted like 1024x768 16 Bit True Color...pictures that look right...and other ranges of color saturation and resolution. Reset your video to 640x480 and 256 or even 16 colors, open a picture and you'll notice a huge difference, and DOS can't handle even that with no third party drivers. With most DOS machines you have 4 color and a fairly decent resolution that's acceptable for DOS work, I can't remember the specific numbers, but nothing like what's available under Windows (or Linux). It's interesting to boot up an older IBM XT or 286 and see some of the graphics the games at that time used, compared to just a simple Windows or Linux desktop with a single plain color, no frills or wallpaper. The DOS machine is what the video card can do with no help from drivers loaded into the OS. An ISA video card with 1 MB memory or less can handle all DOS can throw at it plus some.