为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

BIOS Boot Specification

2010-03-11 46页 pdf 178KB 76阅读

用户头像

is_113303

暂无简介

举报
BIOS Boot Specification Compaq Computer Corporation Phoenix Technologies Ltd. Intel Corporation BIOS Boot Specification Version 1.01 January 11, 1996 This specification has been made available to the public. You are hereby granted the right to use, implement, reproduce, and distribu...
BIOS Boot Specification
Compaq Computer Corporation Phoenix Technologies Ltd. Intel Corporation BIOS Boot Specification Version 1.01 January 11, 1996 This specification has been made available to the public. You are hereby granted the right to use, implement, reproduce, and distribute this specification with the foregoing rights at no charge. This specification is, and shall remain, the property of Compaq Computer Corporation (“Compaq”), Phoenix Technologies Ltd (“Phoenix”), and Intel Corporation (“Intel”). NEITHER COMPAQ, PHOENIX NOR INTEL MAKE ANY REPRESENTATION OR WARRANTY REGARDING THIS SPECIFICATION OR ANY PRODUCT OR ITEM DEVELOPED BASED ON THIS SPECIFICATION. USE OF THIS SPECIFICATION FOR ANY PURPOSE IS AT THE RISK OF THE PERSON OR ENTITY USING IT. COMPAQ, PHOENIX AND INTEL DISCLAIM ALL EXPRESS AND IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND FREEDOM FROM INFRINGEMENT. WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, NEITHER COMPAQ, PHOENIX NOR INTEL MAKE ANY WARRANTY OF ANY KIND THAT ANY ITEM DEVELOPED BASED ON THIS SPECIFICATION, OR ANY PORTION OF IT, WILL NOT INFRINGE ANY COPYRIGHT, PATENT, TRADE SECRET OR OTHER INTELLECTUAL PROPERTY RIGHT OF ANY PERSON OR ENTITY IN ANY COUNTRY. 1 2 3 4 5 Table of Contents .0 INTRODUCTION 5 1.1 REVISION HISTORY 5 1.2 RELATED DOCUMENTS 5 1.3 PURPOSE 5 1.4 TERMS 6 .0 OVERVIEW 9 2.1 DESCRIPTION 9 .0 IPL DEVICES 10 3.1 REQUIREMENTS FOR IPL DEVICES 10 3.1.1 IPL TABLE 10 3.1.2 PRODUCT NAME STRING 11 3.2 BAIDS 11 3.3 DEVICES WITH PNP EXPANSION HEADERS 11 3.4 LEGACY IPL DEVICES 12 3.5 IDENTIFYING IPL DEVICES 13 3.5.1 BAIDS 14 3.5.2 PNP EXPANSION HEADER 14 3.5.3 PCI DEVICES 14 3.5.4 IDENTICAL IPL DEVICES 15 .0 IPL PRIORITY 16 4.1 MAINTAINING THE IPL PRIORITY 16 4.2 IPL PRIORITY PSEUDOCODE 18 .0 BCV PRIORITY 19 5.1 INTRODUCTION 19 5.2 INT 13H DEVICE CONTROLLERS 19 5.2.1 ATA DRIVE SUPPORT IN THE BIOS 19 5.2.2 PNP CARDS WITH BCVS 20 5.2.3 LEGACY CARDS WITH OPTION ROMS 20 5.2.4 HARD DRIVE BAID 20 5.2.5 CONTROLLER INSTALLATION GUIDELINES 20 5.2.6 NOTES ON INT 13H DEVICES 21 5.3 INSTALLATION ORDERING 21 2 5.4 POST PSEUDOCODE 23 6.0 POST SEQUENCE 24 6.1 POWER-ON INITIALIZATION 24 6.1.1 INITIALIZING BAIDS 24 6.1.2 PNP BOOT DEVICES 24 6.2 PNP OPTION ROM INITIALIZATION 24 6.3 CHECK IPL PRIORITY AND BCV PRIORITY 25 6.4 INT 13H DEVICE CONTROLLER INSTALLATION 25 6.4.1 BOOT CONNECTION VECTORS 26 6.4.2 DISCONNECT VECTOR 26 6.4.3 LEGACY ROM SCAN 27 6.4.4 ON-BOARD ATA SUPPORT 27 6.5 INT 19H PROCESSING 27 6.5.1 BOOTING FROM BAIDS 29 6.5.2 BOOTING FROM BEVS 29 6.6 INT 19H PSEUDOCODE 30 6.7 INT 18H PSEUDOCODE 30 6.8 NOTES ON THE POST PROCESS 31 APPENDIX A: DATA STRUCTURES 32 A.1 IPL TABLE AND BCV TABLE ENTRY DATA STRUCTURE 32 A.2 PNP OPTION ROM HEADER 33 A.3 PNP EXPANSION HEADER 33 A.4 PCI DATA STRUCTURE 33 APPENDIX B: RUN-TIME FUNCTIONS (OPTIONAL) 34 FUNCTION 60H - GET VERSION AND INSTALLATION CHECK 35 FUNCTION 61H - GET DEVICE COUNT 36 FUNCTION 62H - GET PRIORITY AND TABLE 37 FUNCTION 63H - SET PRIORITY 38 FUNCTION 64H - GET IPL DEVICE FROM LAST BOOT 39 FUNCTION 65H - GET BOOT FIRST 40 FUNCTION 66H - SET BOOT FIRST 41 APPENDIX C: BOOT MENU (OPTIONAL) 42 C.1 BOOT MENU POP-UP 42 C.2 BOOT MENU INT 19H PSEUDOCODE 42 C.3 BOOT FIRST RUN-TIME FUNCTIONS 42 APPENDIX D: RECOMMENDED BOOT SECTOR CHANGES (OPTIONAL) 43 D.1 USE DL FOR DRIVE NUMBER 43 3 D.2 INT 18H ON BOOT FAILURE 43 APPENDIX E: PCI WITH MULTIPLE PNP HEADERS (OPTIONAL) 44 E.1 DESCRIPTION 44 E.2 REQUIREMENTS 44 E.3 OPTION ROM INITIALIZATION 44 E.3.1 BEFORE OPTION ROM PLACEMENT 44 E.3.2 PLACING THE PCI OPTION ROM 44 E.3.3 CALLING THE PCI OPTION ROM 45 E.3.4 NO DEVICES PRESENT 45 E.3.5 DEVICES ARE PRESENT 45 E.4 ENUMERATING PNP EXPANSION HEADERS 46 E.5 CALLING THE BCVS 46 4 1.0 Introduction 1.1 Revision History Version Changes 0.80 Original version. 0.81 Grammatical corrections. 1.00 Finalized for public release. 1.01 Added the BiosSelector parameter to the run-time functions. Moved run-time functions 65h and 66h from Appendix C to Appendix B. Cleaned up documentation on the run-time functions. You may obtain the latest copy of the BIOS Boot Specification from the Phoenix world wide web site at http://www.ptltd.com, or by contacting a representative from one of the authoring companies. Technical Editor: Scott Townsend Phoenix Technologies Ltd. 2575 McCabe Way Irvine, CA 92714 Phone: (714) 440-8000 Fax: (714) 440-8300 Email: Scott_Townsend@ptltd.com 1.2 Related Documents Title Version Author Plug and Play BIOS Specification 1.0A Compaq/Phoenix/Intel Hardware Design Guide for Microsoft Windows 95 1.0 Microsoft Corporation Enhanced Disk Drive Specification 1.1 Phoenix “El Torito” Bootable CD-ROM Format Specification 1.0 Phoenix/IBM PCI Local Bus Specification 2.1 PCI Special Interest Group 1.3 Purpose The purpose of this specification is to describe a methodology by which the BIOS will identify all IPL (Initial Program Load) devices in the system, prioritize them in the order the user selects, and then sequentially go through each device and attempt to boot. The BIOS must become more intelligent about booting because the Plug and Play BIOS Specification places additional requirements on the BIOS during the boot process, and there are now more devices that are bootable such as CD-ROM, network remote boot, PCMCIA, etc. It is important that this specification define a boot scheme that is generic and flexible enough to allow booting from virtually any existing IPL device, and for the definition of future IPL devices as well. 5 1.4 Terms To avoid confusion and to be consistent with the Plug and Play BIOS Specification, definitions of some of the terminology used in this document are listed below. ATA An Advanced Technology Attachment drive, also known as an IDE drive, is a hard drive with the interface built-in. ASCIIZ An ASCIIZ string is simply a string of ASCII characters terminated by a NULL (0 byte). BAID A BIOS Aware IPL Device is any device that can boot an O/S, but requires the BIOS to have specific code to support it. Some examples are: the first floppy drive, the first hard drive, ATAPI CD-ROM, PCMCIA, embedded network adapter, etc. BCV A Boot Connection Vector is a pointer that points to code inside the option ROM that will perform device initialization, detect if a peripheral (such as a SCSI hard drive) is attached, and optionally hook INT 13h. The BCV resides in a PnP option ROM Expansion Header. An example of an option ROM with a BCV is a PnP ISA SCSI controller. BDA The BIOS Data Area is a data storage area in RAM. The BDA is used by the BIOS to manage the various peripherals and resources in the system. The BDA starts at segment address 0040h. BEV A Bootstrap Entry Vector is a pointer that points to code inside an option ROM that will directly load an O/S. The BEV resides in a PnP option ROM Expansion Header. An example of an option ROM with a BEV is a PnP ISA ethernet controller. BIOS The Basic Input/Output System is the software embedded on a chip located on the computer’s main board. The BIOS executes POST to test and initialize the system components and then loads (boots) the O/S. The BIOS also handles the low-level input/output to the various peripheral devices connected to the computer. 6 Boot Device A Boot Device is any device that must be initialized prior to loading the O/S. This includes the primary input device (keyboard), the primary output device (display), and the initial program load device (floppy drive, hard drive, etc.). An IPL device is one form of a boot device. CDR Conflict Detection and Resolution is a method by which a PnP BIOS first detects the resource requirements for PnP cards, and then allocates them in a conflict-free way. CSN A Card Select Number is a number that uniquely identifies a PnP ISA card and is used to communicate exclusively to that card. The CSN is assigned by the PnP BIOS to each PnP ISA card in the system. DDIM The Device Driver Initialization Model is a method of initializing an option ROM whereby the option ROM is first copied to shadow RAM, then its initialization vector is called with the shadow RAM write-enabled. When the option ROM completes initialization it may dispose of code not needed at run-time by re-sizing the ROM memory footprint. Finally, after the option ROM returns and the BIOS regains control, the ROM is write-protected. DV A Disconnect Vector is a pointer that points to code inside the option ROM that will perform clean-up after the Boot Connection Vector has already been called. The DV resides in a PnP option ROM Expansion Header. An example of an option ROM with a DV is a PnP ISA SCSI controller. IPL Device An Initial Program Load Device is any device in the system that can boot and load an O/S. In standard AT machines, this is the floppy drive or hard drive. Legacy Card A Legacy Card is a standard ISA card that contains no PnP compatible configurability, and no PnP Expansion Header. NV Non-Volatile memory is memory that is retained even when the power has been shut off. The most common type of NV memory on a PC is the CMOS RAM that is used to store system configuration information. O/S An Operating System is loaded from an IPL device when that device is selected for booting. 7 PFA A PCI Function Address is a unique number assigned to a PCI function on a PCI device. The PFA consists of a function number, a device number, and a bus number. PnP Plug and Play is a term used to identify anything defined by the Plug and Play BIOS specification or the Plug and Play ISA specification. The term will typically be used to reference some device or behavior that is specific to PnP technology. PnP Cards PnP Cards consist of any cards that contain an option ROM with a PnP Expansion Header. POST The Power-On Self Test is the part of the BIOS that takes control immediately after the computer is turned on. POST initializes the computer hardware so that an O/S can be loaded. Setup The system Setup program is the part of the BIOS that is executed after a user specified is pressed during the BIOS initialization. Setup allows the user to set up and configure the system as well as select the IPL Priority of the system. 8 2.0 Overview 2.1 Description The BIOS Boot Specification defines a feature within the BIOS that creates and maintains a list of all the IPL devices found in the system and stores this list in NV memory. IPL devices come in three flavors: BAID, PnP Card, and Legacy. Only BAIDs and PnP Cards are enumerated. Legacy devices are not supported for several reasons. First, they tend to take control of the boot process altogether making them rather unfriendly. Second, they provide no means for identifying themselves as an IPL device. Finally, the BIOS cannot selectively boot from one of several Legacy IPL devices in a system. The BIOS Boot Specification provides one basic feature, the IPL Priority. The IPL Priority is a user-specified priority of IPL devices that is arranged in Setup. This boot order is similar to the common feature of boot A: then C: or vice versa, but supports additional IPL devices. Also, the number of IPL devices in the system may vary from one power-on to another. Each time the user turns on the system all IPL devices in the system are enumerated. Additionally, the BIOS Boot Specification defines the BCV Priority. The BCV Priority is a user-specified priority list of INT 13h Device Controllers that is arranged in Setup. This list specifies the order that the controllers will be called to install their INT 13h drive support during POST. If an IPL device fails to load an O/S, the BIOS regains control and attempts to boot from the next available IPL device. This procedure will continue until all possible IPL devices have been exhausted. Only then will the BIOS display a message that an O/S cannot be found, wait for a key stroke, and then invoke INT 19h again. This method ensures that the BIOS has intelligently made every attempt to boot. The BIOS Boot Specification encompasses the boot process of both PnP and non-PnP systems. The support for PnP Cards wherever mentioned is only pertinent to systems which include PnP support in their BIOS. A standard AT compatible system (also called a Legacy system) is much simpler than one with a PnP BIOS because it only supports BAIDs. A Legacy system does not need to provide any dynamic IPL device enumeration or configuration, nor does it support PnP Cards in their native mode. This is because the number of IPL devices in such a system will never change. 9 3.0 IPL Devices 3.1 Requirements for IPL Devices An IPL device can be virtually any device that has the ability to load and execute an O/S. This includes floppy drives, hard drives, CD-ROM drives, PCMCIA controllers/cards, PnP Cards, Legacy cards, and could, in the future, include virtually any devices such as serial ports, parallel ports, etc. An IPL device falls into one of three categories: BAID, Legacy IPL Device, or PnP Card. There are two varieties of PnP Cards, BCV devices and BEV devices. One of the key points of concern about an IPL device is that it be able to return back to the BIOS with an error if the O/S load fails. The BIOS Boot Specification defines INT 18h as the recovery vector for failed boot attempts. For example, if a PnP ISA network card was configured to boot from the network, but the network cable wasn’t attached, the card’s option ROM should signal to the BIOS that it cannot boot by invoking INT 18h. If a Legacy card’s option ROM code hooks INT 19h during its initialization call it controls the boot process. If a Legacy card hooks INT 18h, the boot failure recovery will not work. For this reason, it is recommended that all future Legacy boot devices include the PnP Expansion Header and its associated support in their option ROMs so that their priority in the booting process can be controlled. 3.1.1 IPL Table Each BAID and BEV device must have corresponding entries in the IPL Table. An IPL Table for a typical PC would have two BAID entries, one for diskette drive A: and one for hard drive C:, and one for each BEV device found. A sample IPL Table is shown in section 4.1. The information stored in the IPL Table consists of identification information, pointers to description strings, and pointers to handlers that will initiate an O/S load. The IPL Table and BCV Table data structure is defined in detail in Appendix A. 10 3.1.2 Product Name String The Plug and Play BIOS Specification defines fields in the PnP Expansion Header for optional description strings. Vendors of PnP Cards must have meaningful strings in the Product Name String and Manufacturer String fields of the PnP Expansion Header. The Product Name String is particularly important since it will be displayed to the user as an identifier for that device. Although the only current limitation to these strings is that they be terminated by a NULL (0 byte), it is declared here that only the first 32 characters (bytes) of the Product Name String are significant. Characters beyond 32 will not be displayed. This is a reasonable length to provide the user with a unique name for that device. Product Name Strings shorter than 32 will be displayed in their entirety. 3.2 BAIDs BAIDs include the first floppy drive, the first hard drive, and any other bootable device that has specific code in the BIOS to support it. A BAID is able to launch a bootstrap only because the BIOS has built-in support as part of the INT 19h service routine. Some examples of this might be an ATAPI compatible CD-ROM drive or a PCMCIA card/controller. BAIDs do not have option ROMs, nor can they function without specific code embedded in the BIOS. Each BAID will have an entry in the IPL Table. This entry will contain the following information: the device type, a device sub-type, a pointer to a description string, and a pointer to code that will attempt to boot from the device. The INT 19h handler will read this table and be able to boot from any one of these devices without having to know what type of device it is. The table consists of a contiguous array of data structures of which each corresponds to a particular IPL device. Note that only the first floppy drive and the first hard drive are considered IPL devices. The main reason why a system cannot boot from other drives is that the boot sector code specifically addresses only these drives (00h for floppy and 80h for hard drive) when INT 13h is called to load the O/S. See Appendix D for recommended changes to the O/S boot sector that could solve this problem. 11 3.3 Devices with PnP Expansion Headers All IPL devices with option ROMs must contain a valid option ROM header that resides between system memory addresses C0000h and EFFFFh on a 2k boundary and begins with 55AAh. A Device’s booting can only be controlled if it has a PnP Expansion Header. The Expansion Header, whose address resides within the standard option ROM header at offset +1Ah, contains important information used to configure the device. It also contains pointers to code in the device’s option ROM (BCV or BEV) that the BIOS will call to boot from the device. See Appendix A for the structure of the PnP Expansion Header. There are two ways an IPL device with a PnP Expansion Header can be booted. It must contain a BCV or a BEV. A BEV device, typically a network card, is booted by the BIOS making a far call directly to its BEV. If the device fails to boot, it executes an INT 18h which returns control back to the BIOS. BEV devices behave much like BAIDs in that they are selectively bootable. A BCV device, typically a SCSI controller, is not directly bootable. Rather, it merely adds its drives to the system by hooking into the BIOS’ INT 13h services and appending drive numbers to any existing drives. Since only drive 80h is bootable, a BCV would only be able to boot one of its drives if it installed before any other drives in the system. For this reason, it is necessary to control the order that all drives are installed into the system, including on-board ATA drives and those controlled by Legacy devices such as older SCSI controllers. The only way to control a BCV device’s drives in the boot order is by allowing the user to specify the order of initialization among ATA, BCV, and Legacy option ROMs. This will be discussed in detail in section 5.0. 3.4 Legacy IPL Devices This is a standard ISA card with a valid option ROM that resides in system memory address space between C0000h and EFFFFh on a 2k boundary. An example of this type of device is a Legacy SCSI hard drive controller with a bootable ROM installed. Legacy IPL devices do not contain PnP Expansion Headers in their option ROMs. Option ROMs are detected during the BIOS’ scan and their initialization vectors a
/
本文档为【BIOS Boot Specification】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索