WO2012155439A1 - Système et procédé d'amorçage d'un bios - Google Patents

Système et procédé d'amorçage d'un bios Download PDF

Info

Publication number
WO2012155439A1
WO2012155439A1 PCT/CN2011/080541 CN2011080541W WO2012155439A1 WO 2012155439 A1 WO2012155439 A1 WO 2012155439A1 CN 2011080541 W CN2011080541 W CN 2011080541W WO 2012155439 A1 WO2012155439 A1 WO 2012155439A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
service routine
rom
operating system
opt
Prior art date
Application number
PCT/CN2011/080541
Other languages
English (en)
Chinese (zh)
Inventor
程旭
李皓
郑衍松
佟冬
管雪涛
Original Assignee
北京北大众志微系统科技有限责任公司
济南众志信息技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京北大众志微系统科技有限责任公司, 济南众志信息技术有限公司 filed Critical 北京北大众志微系统科技有限责任公司
Publication of WO2012155439A1 publication Critical patent/WO2012155439A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Definitions

  • the present invention relates to the field of computer applications, and in particular, to a basic input/output system (BIOS) booting system and method.
  • BIOS basic input/output system
  • the general-purpose PC BIOS consists of two parts: First, the board-level module, which is specific to each system platform, is used to initialize all the devices in the system platform to a stable state that can work, including the central processing unit (CPU), south bridge, north bridge.
  • CPU central processing unit
  • south bridge north bridge
  • the hardware modules connected to the north and south bridges one is the interface module, which is generally applicable to all platforms, and serves as a general-purpose interface, and communicates with the board-level device by abstracting the board-level device to the unified interface of the operating system.
  • Its functions mainly include: 1) Power On Self Test (POST), after the computer system is powered on, control is given to the BIOS, and the BIOS performs system detection, including initialization of the CPU and various conventional devices.
  • POST Power On Self Test
  • Programming interval timer Programming interval timer, programmable interrupt controller, direct memory access controller, etc.; 2) Initialize the registers of the cache memory, motherboard chipset, graphics card and related peripherals; 3) Save system settings, store in non-volatile In the memory; 4) Save the interrupt service routine in memory, and provide the call to the operating system startup process and running process.
  • Typical interrupt service routines include INT10H's graphics service routines, INT13H's disk service routines, INT16H's keyboard service routines, and more.
  • PC BIOS is not open due to hardware and software interfaces, industry industry specifications are extensive, PC BIOS running under x86 system is mostly implemented in assembly language, and assembly language provides less language-level abstraction. Complex, and the constant addition of new functional modules in the PC BIOS makes the size and capacity of the traditional PC BIOS huge and redundant, obscure, outdated, slow to start and bugs (BUG). Therefore, before the introduction of the Extensible Firmware Interface (UEFI) specification, open source BIOS emerged, such as the coreboot system (formerly known as LinuxBIOS) created by Los Alamos National Laboratory, and now by Germany's DENX Software Engineering Center Wolfgang Denk.
  • UEFI Extensible Firmware Interface
  • the main functions of the open source BIOS include: 1) Power-on self-test (POST). When the computer system is powered up, the system control is given to the open source BIOS, and the open source BIOS performs system detection, including CPU registers, programmable interval timers, and Program interrupt controller and direct memory access controller; 2) Initialize the registers of the cache, motherboard chipset, graphics card and related peripherals; 3) Save the system settings and store them in non-volatile memory.
  • POST Power-on self-test
  • the problem to be solved by the present invention is to provide a BIOS-based booting system and a booting method that can support both an open source operating system and a non-open source commercial operating system.
  • BIOS startup method which includes: an interrupt service routine of an operating system interface (INTERFACE) module of a basic input/output system (BIOS), using optional read-only memory (Option) ROM) module (Module) mode implementation;
  • INTERFACE operating system interface
  • BIOS basic input/output system
  • Option read-only memory
  • Mode Mode
  • the BIOS-level board-level core module (CORE) initializes the board-level device and outputs system information
  • the BIOS's board-level core module abstraction layer (MAPPER) module converts the system information according to the system information.
  • a system information table identified by the operating system interface module, wherein the board level core module sequentially initializes the interrupt service routine included in the operating system interface module according to information in the system information table, where the system information includes The hardware list of the computer system, the corresponding port address, and the information of the memory size.
  • the operating system interface module implements the interrupt service routine by using an Option ROM Module.
  • the operating system interface module includes multiple Option ROMs, and each Option ROM corresponds to a service routine.
  • the ROM includes the service routine, an initialization routine of the service routine, and an optional read-only memory header (Option ROM Header),
  • the initialization routine of the service routine includes entry address information of the service routine, and the Option ROM Header includes information of a size of the Option ROM and an initialization routine address of the service routine.
  • the board level core module is an extensible open source BIOS; and the MAPPER module is related to the open source BIOS.
  • the board-level core module further saves an address range of the operating system interface module, and the step of sequentially performing the initialization of the Option ROM includes:
  • the board core module scans the operating system interface module within the address range of the operating system interface module according to the size of the data unit specified by the Option ROM, and scans to the first Option.
  • a ROM calling a function entry of a service routine initialization routine of the Option ROM specified in an Option ROM Header of the Option ROM, and initializing a monthly service routine corresponding to the Option ROM;
  • the board core module scans the next Option ROM of the Option ROM in the operating system interface module, and invokes the Option specified in the Option ROM Header of the Option ROM that is currently scanned.
  • the function routine of the ROM service routine initialization routine initializes the service routine corresponding to the current Option ROM until the service routine corresponding to the last Option ROM of the operating system interface module is initialized.
  • the Option ROM header further includes signature information
  • the step of the board core module determining to scan the Option ROM includes: the board level core module is configured according to a size of the data unit specified by the Option ROM.
  • the operating system interface module is scanned within the address range of the operating system interface module. If the first two bytes are detected as the signature information, one of the Option ROMs is scanned.
  • the board-level core module scans the Option ROM, and after scanning the signature, performs parity check on the entire Option ROM according to the information about the size of the corresponding service routine saved in the Option ROM Header. If the parity check is correct, the service routine corresponding to the Option ROM is initialized.
  • the method further includes: after the parity check is correct, the board core module initializes a service routine corresponding to the Option ROM, and further, according to the Option ROM Header
  • the saved information of the service routine size updates the base address of the Option ROM scanning algorithm; if the parity check is incorrect, the board level core module is updated in units of data unit sizes provided in the Option ROM Header The base address of the Option ROM scanning algorithm;
  • the board-level core module After updating the base address of the scanning algorithm, the board-level core module further determines whether the base address exceeds an address range of the operating system interface module, and if so, loads the file into a floppy disk, a hard disk, or a CD ROM according to user settings. The operating system, if no, scans the next Option ROM.
  • the step of the Option ROM corresponding to the service routine being initialized according to the system information table includes:
  • the operating system interface module obtains the system information table maintained by the MAPPER module by querying the system information table maintained by the MAPPER module when the service routine needs to determine whether the related hardware of the service routine operation exists or when the port address or the available memory size is queried.
  • the required information, the system information table is stored in a BIOS data area or a non-volatile memory (Non-Volatile RAM).
  • the service routine initialization routine in the Option ROM further registers an entry address of the service routine into an Interrupt Vector Table (Interrupt Vector Table).
  • Interrupt Vector Table is maintained by the MAPPER module.
  • the interrupt service routine of the operating system interface module is a service routine required for starting the computer operating system, including a graphics service routine INT10H, a memory size service routine INT12H, a disk service routine INT13H, and a miscellaneous service.
  • the present invention also provides a BIOS booting system, which includes a board level core module, a board level core module abstraction layer (MAPPER) module, and an operating system interface module, wherein:
  • the board level core module is configured to: after the computer system is powered on, initialize the board level device and output system information, where the system information includes a hardware list of the computer system, a corresponding port, and a memory size information;
  • the MAPPER module is configured to: convert, according to the system information, a system information table that is identifiable by the operating system interface module;
  • the operating system interface module is configured to: implement an interrupt service routine by using an optional ROM (Option ROM) module, and sequentially initialize the interrupt service routine according to the system information table.
  • Option ROM optional ROM
  • the operating system interface module includes a plurality of Option ROMs, each Option ROM corresponding to a service routine, where the Option ROM includes a service routine itself, an initialization routine of the service routine, and a selective Read the memory head (Option ROM Header), where
  • the initialization routine of the service routine is configured to: save entry address information of the service routine, configure hardware, and register entry address information of the service routine into an interrupt vector table;
  • the Option ROM Header is set to: store information of a size of the service routine and an initialization routine address of the service routine.
  • the board level core module is further configured to: after initializing the board level device, jumping to the MAPPER module, where the board level core module is an expandable open source BIOS;
  • the MAPPER module is further configured to: perform an initialization function of the internal initialization function, read and parse the system information output by the board core module, and create and maintain the system information table according to the system information, and jump To the board level core module, the MAPPER module is related to the open source BIOS.
  • the board level core module is further configured to: save an address range of the operating system interface module, initialize an INTERFACE module, scan the INTERFACE module according to the address range, scan to the first Option ROM, and save the location a base address of the Option ROM, calling a function entry of a service routine initialization routine of the Option ROM specified in an Option ROM Header of the Option ROM, jumping back from the Option ROM, and scanning the operating system interface module Updating the base address of the scanning algorithm according to the size of the Option ROM specified in the Option ROM Header of the Option ROM that is currently scanned, and determining whether the base address is exceeded.
  • the address range of the operating system interface module if yes, loading the operating system into the floppy disk, the hard disk, or the CD ROM according to the user setting, and if not, scanning the next Option ROM of the current Option ROM;
  • the MAPPER module is further configured to: maintain a BIOS data area and an interrupt service vector table;
  • the operating system interface module is further configured to: a function entry of a service routine initialization routine of the Option ROM is invoked, and the Option ROM is executed An initialization routine of the corresponding service routine initializes the service routine, and the initialization completes jumping back to the board-level core module;
  • the service routine initialization routine of the Option ROM of the operating system interface module is further configured to: register an entry address of the service routine to the interrupt service vector table.
  • the Option ROM header further includes signature information, where
  • the board-level core module is further configured to: scan the INTERFACE module according to the address range of the INTERFACE module, and if the first two bytes are detected as the signature information, scan the Option ROM, according to the Option ROM.
  • the information about the size of the corresponding service routine saved in the header is parity-checked to the entire Option ROM. If the parity is correct, the Option ROM specified in the Option ROM header of the Option ROM is called.
  • a function entry of the service routine initialization routine updating the base address of the scan algorithm according to the information of the size of the service routine saved by the Option ROM Header; if the parity check is incorrect, updating in units of 512 bytes a base address of the scan algorithm, after updating the base address of the scan, determining whether the base address exceeds an address range of the operating system interface module, and if so, loading operations to a floppy disk, a hard disk, or a CD ROM according to user settings The system, if no, scans the next Option ROM.
  • the operating system interface module is further configured to: query, when the service routine needs to determine whether the related hardware of the service routine exists or query a port address or an available memory size, query the MAPPER module.
  • the maintained system information form gets the information you need.
  • the board level core module selects an open source basic input/output system (BIOS) to initialize a board level device, and outputs system information, and the system information includes a memory size and a device type, etc.
  • BIOS basic input/output system
  • the Interrupt Service Routine in the system interface module is implemented by using an Option ROM module, and the interrupt service routine converts the system information table that can be recognized by the operating system interface (INTERFACE) module according to the system information conversion. Initialize in sequence, and register the interrupt service routine into the interrupt vector table.
  • INTERFACE operating system interface
  • MAPPER board-level core module abstraction layer
  • the interface between the interface modules, and the operating system interface module uses the Option ROM module to implement the service routines required for the startup of the computer operating system, and develops a BIOS system combining the operating system interface module and the open source BIOS, which can not only support open source.
  • the operating system can also support non-open source commercial operating systems, such as the Windows operating system, with good compatibility.
  • FIG. 1 is a schematic diagram showing the structure of a computer system based on a BIOS system and method according to an embodiment of the present invention
  • FIG. 2(a) is a schematic structural diagram of a BIOS system based on an open source BIOS in a computer flash memory (FLASH) according to an embodiment of the present invention
  • FIG. 2(b) is a schematic structural diagram of a BIOS system based on an open source BIOS in a computer memory according to an embodiment of the present invention
  • FIG. 3 is a schematic structural diagram of a BIOS system based on an open source BIOS according to Embodiment 1 of the present invention
  • FIG. 4 is a flowchart of a method for a BIOS system in a computer startup process according to an embodiment of the present invention
  • FIG. 5 is a flowchart of a method according to an embodiment of the present invention.
  • the board-level core module CORE initializes the flow chart of an Option ROM of the operating system interface module INTERFACE.
  • FIG. 1 is a schematic structural diagram of a computer system based on a BIOS system and method according to the present invention, including an interconnected south bridge and a north bridge, a central processing unit (CPU) connected to the north bridge, a graphics card and a memory, and a large connection with the south bridge.
  • CPU central processing unit
  • LPC less pin interface
  • PCI peripheral component interconnect standard
  • PCI device connected to the PCI bus.
  • the structure of the System BIOS of the present application in the flash memory (FLASH) is as shown in FIG. 2(a), including Board Level Core Module (CORE), Board Level Core Module Abstraction Layer (MAPPER) module and Operating System Interface Module (INTERFACE).
  • the BIOS system of the present application is obtained by extending the open source BIOS.
  • the operating system interface module implements an interrupt service routine by using an optional read-only memory (Option ROM) module, which is a compressed binary code formed by compressing the compiled binary code. .
  • Option ROM optional read-only memory
  • BIOS of the application After the BIOS of the application is powered on by the computer hardware system, in order to obtain a faster execution speed, the board-level core module and the MAPPER module are copied into the memory for execution, and the operating system interface module is decompressed and copied into the memory for execution.
  • the service routine in the operating system interface module is decompressed into binary code.
  • the structure of the BIOS in memory is as shown in Figure 2(b), including the System BIOS (ie, the board-level core module, the MAPPER module, and the operating system interface module), the VGA BIOS and the data area, in descending order of address, Traditional DOS application workspace, BIOS data area, and interrupt vector table.
  • the board-level core module is configured to: after the computer hardware system is powered on, initialize the board-level device and output system information, and jump to the MAPPER module, the system information includes a hardware list of the computer system, a corresponding port address, and a memory size. Information, also used to save the address range of the operating system interface module.
  • the board-level core module is open source BIOS-related, and its function and structure depend on the function and structure of the open source BIOS.
  • the board level core module abstraction layer (MAPPER) module is configured to: execute an internal initialization function to complete its own initialization, read and parse system information output by the board level core module, and create and maintain according to the system information.
  • the system information table identified by the operating system interface (INTERFACE) module jumps to the board level core module, and the MAPPER module is related to the open source BIOS.
  • the format of the system information table is determined according to the open source BIOS and stored in the BIOS data area or Non-Volatile RAM.
  • the MAPPER module is also used to maintain an interrupt service vector table.
  • the operating system interface module is configured to: implement an interrupt service routine required for starting the computer operating system by using an optional read-only memory (Option ROM) module, and the interrupt service routine is maintained according to the MAPPER module.
  • Option ROM optional read-only memory
  • the system information table is initialized in sequence.
  • the operating system interface module includes multiple Option ROMs, and each Option ROM corresponds to one service.
  • the Option ROM includes a service routine, an initialization routine of the service routine, and an optional ROM head (Option ROM Header), wherein
  • the initialization routine of the service routine is set to: configure the hardware and save the entry address information of the service routine;
  • the Option ROM Header is set to: save the signature information, the size of the Option ROM, and the address of the initialization routine address of the service routine.
  • the size of the service routine is an integer multiple of the data unit size specified by the Option ROM.
  • the data unit of the Option ROM is exemplified by 512 bytes.
  • the service routine is a compressed binary code formed by compression of the compiled binary code.
  • the board-level core module and the MAPPER module of the BIOS system are directly copied into the memory for execution, and the service routine in the operating system interface module is decompressed into binary code and copied into the memory. .
  • the board core module scans the first Option ROM in the operating system interface module, saves the base address of the Option ROM, and scans the signature in the Option ROM Header according to the Option ROM.
  • the information about the size of the corresponding service routine saved in the header is parity-checked to the entire Option ROM. If the parity is correct, the service routine initialization example of the Option ROM specified in the Option ROM Header of the Option ROM is called.
  • the function entry of the program, and the base address of the update scan algorithm is the sum of the base address of the current Option ROM scan algorithm and the size of the current Option ROM, and the base address of the scan algorithm is still an integer multiple of 512 bytes.
  • the board core module updates the scanned base address in a set size address segment, such as 512 bytes. After updating the scanned base address, it is determined whether the base address is exceeded. The address range of the operating system interface module, if yes, indicates that all Option ROMs are initialized, and the operating system can be loaded into the floppy disk, the hard disk, or the CD ROM according to the user settings. If not, the next Option ROM is scanned.
  • the operating system interface module is further configured to: the function entry of the service routine initialization routine of the Option ROM is invoked, execute an initialization routine of the service routine corresponding to the Option ROM, and initialize the service routine, the Option ROM
  • the service routine initialization routine registers the entry address of the service routine to the interrupt service vector table maintained by the MAPPER module, and the initialization completes the jump back to the board level core module.
  • the board core module scans the next Option ROM of the current Option ROM in the operating system interface module, and scans the signature of the Option ROM according to the corresponding service example saved in the Option ROM Header. The size of the information is parity checked on the entire Option ROM.
  • the function entry of the service routine initialization routine of the Option ROM specified in the Option ROM Header of the Option ROM is invoked.
  • the information of the service routine size saved by the Option ROM Header updates the base address of the scan algorithm, and calls the function entry of the service routine initialization routine of the Option ROM specified in the Option ROM Header of the Option ROM currently scanned, as described above.
  • the parity check is incorrect, and the board level core module updates the scanned base address in units of 512 bytes.
  • the board-level core module determines whether the base address exceeds an address range of the operating system interface module.
  • the operating system can be loaded into a floppy disk, a hard disk, or a CD ROM according to user settings. If no, the next Option ROM of the current Option ROM is scanned to initialize the service routine corresponding to the next Option ROM in the same manner.
  • the interrupt service routine stored by the operating system interface module includes the service routines necessary for the computer system to start, including the graphics service routine INT10H, the memory size service routine INT12H, the disk service routine INT13H, the miscellaneous service routine INT15H, the keyboard The service routine INT16H and the external device interconnection bus device basic input/output system (PCI BIOS) service routine INT1AH and the like.
  • PCI BIOS PCI BIOS
  • the operating system interface module is further configured to: need to determine whether the relevant hardware of the service routine operation exists during the initialization of the service routine, or query the system information table maintained by the MAPPER module when querying the port address or the available memory size Information. If the disk service routine INT13H needs to determine whether there is a floppy disk, a hard disk or a CD, the operating system interface module queries the hardware list in the system information table maintained by the MAPPER module to obtain the required information. If the corresponding hardware exists, the Option The initialization routine of the service routine corresponding to the ROM registers the function entry address of the service routine INT13H into the interrupt service vector table maintained by the MAPPER. For INT12H, which is used to report the memory size to the operating system, during the INT12H initialization process, the operating system interface module does not need to detect the size of the memory, and directly queries the system information table maintained by the MAPPER module.
  • BIOS startup method based on open source basic input/output system (BIOS) of embodiment of the present invention
  • BIOS operating system interface module is implemented by an optional read-only memory (Option ROM) module.
  • Option ROM optional read-only memory
  • the BIOS initializes the board level device and outputs system information when the computer hardware system is powered on, the system information includes a hardware list of the computer system, a corresponding port address, and a memory size, and the operating system interface module is configured according to the operating system interface module.
  • the system information table recognized by the operating system interface (INTERFACE) module obtained by the system information conversion sequentially initializes the Option ROM therein. The details will be described below in conjunction with specific embodiments.
  • the schematic diagram of the structure of the open source BIOS based BIOS system of this embodiment is shown in FIG. 3, and the open source BIOS is an expandable BIOS.
  • the BIOS system shown in Figure 3 is 4Mb in size, and its physical addresses OxDOOOO to OxFFFFF include a board-level core module (CORE), a board-level core module abstraction layer (MAPPER) module, and an operating system interface module (INTERFACE).
  • the physical addresses OxFOOOO to OxFFFFFFF include the board-level core module and the board-level core module abstraction layer module.
  • the board-level core module is located at a high-order address starting from OxFFFFF
  • the MAPPER module is located at a low level of the board-level core module, and the specific location is compiled. When determined.
  • Board Level Core Module Set to control the computer system after power up, initialize board level equipment, including central processing unit, cache memory, memory controller, north bridge and north bridge related equipment and south bridge And the south bridge related device, etc., output system information, and jump to the MAPPER module, the system information includes a hardware list of the computer system, a corresponding port address, and a memory size information, and is further configured to: save the The address range of the operating system interface module, jumps back from the MAPPER module, and scans the Option ROM of the operating system interface module.
  • CORE Board Level Core Module
  • the MAPPER module is set to: execute an internal initialization function to complete its own initialization, read and parse the system information output by the board-level core module, and create and maintain according to the system information by the operating system interface (INTERFACE)
  • the system information table identified by the module jumps to the board level core module and maintains the interrupt service vector table.
  • Operating system interface module From the physical address OxDOOOO to OxEFFFF, set to: use the optional read-only memory (Option ROM) module mode to implement the interrupt service routine, the Option ROM is based on the MAPPER module.
  • the maintained system information table is initialized in sequence.
  • the operating system interface module of this embodiment includes three Option ROMs, each Option ROM.
  • the size is an integer multiple of 512 bytes.
  • the physical address OxDOOOO to OxDFFFF contains two Option ROMs, so there are two Option ROM Headers. These two Option ROMs provide the INT 16H keyboard service routine (Keyboard Service) and the INT 15H miscellaneous service routine (System). Service) belong
  • the Disk ROM of the INT 13H is provided by the Option ROM whose physical address ranges from OxEOOOO to OxEFFFF.
  • the invention does not limit the size of the Option ROM, and the in-memory service routine Option ROM The location within the operating system interface module.
  • the operating system interface module In order to ensure independence, and to provide compatibility support for the operating system interface module to provide advanced operating systems such as Windows operating system and Linux operating system boot, the operating system interface module also conforms to the ROM in the Plug and Play BIOS Specification. The standard format.
  • the board-level core module scans the Option ROM in the operating system interface module, scans the Option ROM Header in the operating system interface module, and queries the signature saved in the Option ROM Header according to the corresponding saved in the Option ROM Header.
  • the information of the service routine size is parity-checked to the entire Option ROM. If the parity check is correct, the search or the search is performed according to the information about the size of the service routine corresponding to the Option ROM provided in the Option ROM Header. Update the base address of the scan algorithm, call the entry function of the service routine initialization routine of the Option ROM, and jump to the operating system interface module to initialize the corresponding function.
  • the board-level core module updates the base address of the scan algorithm in units of 512 bytes. After updating the scan base address, the board level core module further determines whether the base address exceeds the address range of the operating system interface module. If yes, it indicates that all Option ROMs have been initialized, and can continue to be based on user settings to the floppy disk and the hard disk. Or load the operating system in the CD ROM. If no, scan the next Option ROM.
  • the operating system interface module obtains control, that is, after the function entry of the service routine initialization routine of the Option ROM is invoked, the initialization routine of the service routine corresponding to the Option ROM is executed, and the service routine is initialized.
  • the service routine initialization routine of the Option ROM registers the entry address of the service routine to the interrupt service vector table maintained by the MAPPER module, and the initialization completes the jump back to the board-level core module.
  • the board-level core module scans the next Option ROM and initializes the service routine corresponding to the Option ROM.
  • the operating system interface module is further configured to: determine the service during the initialization of the service routine If the relevant hardware of the routine operation exists, or when querying the port address or the available memory size, query the system information table maintained by the MAPPER module to obtain the required information. If the disk service routine INT13H needs to determine whether there is a floppy disk, a hard disk or a CD, the operating system interface module queries the hardware list in the system information table maintained by the MAPPER module to obtain the required information. If the corresponding hardware exists, the Option The initialization routine of the service routine corresponding to the ROM registers the function entry address of the service routine INT13H into the interrupt service vector table maintained by the MAPPER. For the INT12H information for reporting the memory size to the operating system, during the INT12H initialization process, the operating system interface module does not need to detect the size of the memory, and directly queries the information from the system information table maintained by the MAPPER module.
  • the board-level core module, MAPPER module, and operating system interface module are all stored in non-volatile read-only memory.
  • the BIOS system of the present invention is extensible, and the one or more Option ROMs and their corresponding service examples can be set as needed, because the BIOS system uses the Option ROM module to implement services required during startup or operation of the operating system. Cheng. Because the open source BIOS system provides the same functionality as the industrial PC BIOS, it is compatible with industrial PC BIOS and provides a hardware and software interface compatible with industrial PC BIOS.
  • the open source BIOS system also includes a system detection module, a BIOS Extensible Firmware Interface (UEFI) module, and a system debug tool module.
  • UEFI BIOS Extensible Firmware Interface
  • the computer system supported by the firmware BIOS based on the open source BIOS system includes an X86 compatible processor, a computer supporting the PCI bus standard, and an advanced operating system such as a Windows operating system and a Linux operating system, including but not limited to DOS, Windows 98, and Windows. 2000, Windows XP, Windows Vista, Window 7, and Linux major distributions.
  • the X86 processor is taken as an example, and the BIOS startup method processing process based on the open source BIOS is as shown in FIG. 4, and includes the following steps:
  • Step 301 The computer system is powered on, and the central processor fetches instructions from the physical address 0xF000: OxFFFO of the BIOS, invokes the board-level core module, and gives control to the board-level core module, copying
  • the board level core module and the MAPPER module are in memory, the board level core module decompresses and copies the operating system interface module into the memory, initializes the board level device in the computer system, and outputs system information;
  • the system information includes a list of hardware of the computer system, corresponding port addresses, and information about the size of the memory.
  • the board level core module invokes an entry function of the MAPPER module, and the MAPPER module performs an initialization function saved internally by the module to complete its own initialization, and reads and parses system information output by the board level core module. And creating and maintaining the system information table according to the system information.
  • the table includes a list of hardware for the computer system, corresponding port addresses, and memory size information.
  • the MAPPER module also initializes data in the BIOS data area (BDA) and extended BIOS data area (EBDA), maintains the table prepared for booting the operating system including the Programmable Interrupt Request (PIRQ) table and the Advanced Configuration and Power Interface (ACPI) ) forms, etc.
  • the board-level core module and the MAPPER module are both open source BIOS-related, that is, their function and structure depend on the function and structure of the open source BIOS.
  • Step 302 The board core module is set to scan the Option ROM algorithm to scan the base address as
  • the operating system interface module includes a plurality of Option ROMs, each Option ROM corresponding to a service routine, the Option ROM including a service routine, an initialization routine of the service routine, and an optional read-only memory head (Option ROM Header) ).
  • the initialization routine of the service routine includes entry address information of the service routine
  • the ROM Header includes information on the signature, size, and initialization routine address of the service routine.
  • the size information of the service routine is information about the size of the memory space when the service routine is uncompressed.
  • the format of the Option ROM is compatible with the industry "Plug and Play BIOS Specification".
  • Step 303 The board-level core module scans the Option ROM in the operating system interface module according to the saved scan algorithm base address, and performs parity check.
  • the board-level core module scans the Option ROM Header at the address OxDOOOO to check whether it contains the signature "55AA". If yes, it determines that there is an Option ROM at the address. Otherwise, the board-level core module updates the scan in units of 512 bytes. Base address. The board level core module is definitely An Option ROM exists in the address, and the information about the size of the service routine stored in the Option ROM Header is also queried, and the entire Option ROM is parity-checked according to the size of the Option ROM.
  • Step 304 The board level core module determines whether the parity check is correct, correct, step 305 is performed, otherwise, step 306 is performed;
  • the parity of the Option ROM as a whole is to ensure data integrity, and other verification algorithms for ensuring data integrity, such as the CRC algorithm, are also applicable to the method of the present invention.
  • Step 305 The board-level core module initializes the Option ROM, and performs step 307;
  • the board-level core module updates the start address of the scan Option ROM algorithm according to the information indicating the size of the Option ROM in the Option ROM Header, and invokes the initialization routine of the service routine corresponding to the Option ROM specified in the Option ROM Header.
  • Function entry initialize the service routine.
  • the initialization routine of the service routine corresponding to the Option ROM registers the entry address of the service routine into the interrupt service vector table (IVT) maintained by the MAPPER module.
  • IVTT interrupt service vector table
  • the operating system interface module queries the system information table maintained by the MAPPER module to obtain the required information. If the disk service routine INT13H needs to determine whether there is a floppy disk, a hard disk or a CD, the operating system interface module queries the hardware list in the system information table maintained by the MAPPER module to obtain the required information. If there is corresponding hardware, the Option The initialization routine of the service routine corresponding to the ROM registers the function entry address of the service routine INT13H into the interrupt service vector table maintained by the MAPPER module. For INT12H, which is used to report the memory size to the operating system, during the INT12H initialization process, the operating system interface module does not need to detect the size of the memory, and directly queries the system information table maintained by the MAPPER module.
  • Step 306 The board-level core module is incremented by 1 unit in units of 512 bytes, and the base address of the scan Option ROM algorithm is incremented by one unit, and step 307 is performed;
  • Step 307 Determine whether the scan algorithm base address is greater than OxEFFFF, if yes, go to step 308, otherwise, go to step 303;
  • Step 308 After the operating system interface module is initialized, the board core module loads the operating system from the specified address according to the user's setting, and the specified address is a floppy disk, a hard disk, or a CD ROM;
  • Step 309 Boot and run the operating system.
  • the control right is given to the MAPPER module, and the MAPPER module executes an INT19H interrupt processing routine through a function call, and the routine outputs display information, prompting the user to input information to select to start, and operate. The guidance of the system.
  • the processing of the Option ROM in the operating system interface module of the board-level core module is as shown in FIG. 5, and the service routine corresponding to the Option ROM uses the disk service routine INT13H as an example. Specifically, the following steps are included:
  • Step 401 The board-level core module scans an Option ROM in the operating system interface module, and scans the signature of the Option ROM "55AA";
  • Step 402 Calculate a parity checksum of the entire Option ROM according to the information indicating the size of the service routine corresponding to the Option ROM in the Option ROM Header.
  • the data unit of the Option ROM is in units of 512 bytes, and the size of the service routine corresponding to the Option ROM is an integer multiple of 512 bytes.
  • Step 403 Determine whether the parity check is correct, if yes, go to step 405, otherwise go to step 404;
  • Step 404 In increments of 512 bytes, the starting address of the scanning Option ROM algorithm is incremented by one unit, and step 409 is performed;
  • Step 405 Update the base address of the scan Option ROM algorithm according to the Option ROM size information in the Option ROM Header, call the Option ROM specified in the Option ROM Header, that is, the function entry of the INT13H, and call and execute the INT13H service routine.
  • Initialization routine initializes the interrupt service routine INT13H and registers the entry address of the INT13H service routine into the interrupt service vector table maintained by the MAPPER module; Steps 406-408 are all related to the Option ROM in the operating system interface module.
  • Step 406 The control is given to the Option ROM in the operating system interface module, INT13H;
  • INT13H is critical for large commercial non-open source operating systems, such as the Windows operating system, which is responsible for booting the entire operating system.
  • Step 407 The Option ROM detects and initializes INT13H related hardware, including a floppy disk, a hard disk, and a CD ROM, and initializes a corresponding controller;
  • the Option ROM checks whether the hardware is damaged by reading the hardware register information, detects and initializes, and modifies the corresponding vector INT13H*4 in the interrupt vector table, and writes the entry address of the service routine of the Option ROM into the interrupt service vector table.
  • the entry address can be written to the interrupt service vector table in the form of segment values and offsets, and the detected hardware information is stored in a non-volatile memory, such as a complementary metal oxide semiconductor (CMOS), for operation.
  • CMOS complementary metal oxide semiconductor
  • Step 408 The current Option ROM gives up the control right, and returns the control right to the board core module;
  • Step 409 The board core module regains control and scans the next Option ROM to perform detection of the next Option ROM.
  • Both the board-level core module and the operating system interface module of the embodiment of the present invention support the Option ROM Header format, and communicate using the information in the Option ROM Header. Since the Option ROM in the operating system interface module is independent of the board level core module, the present invention can conveniently provide the necessary support for the open source BIOS to support non-open source operating systems, such as the Windows operating system.
  • the development environment of the board-level core module and the operating system interface module of the present invention may be the same or different, and the development environment includes: a programming language, a compilation environment, and a cross-compilation requirement.
  • the board level core module selects an open source basic input/output system (BIOS) to initialize a board level device, and outputs system information, and the system information includes a memory size and a device type, and an interrupt service example in the operating system interface module.
  • the Interrupt Service Routine is implemented by using an Option ROM module, and the interrupt service routine is sequentially initialized according to the system information table recognized by the operating system interface (INTERFACE) module by the system information conversion, and the interrupt service is registered.
  • the routine is in the interrupt vector table.
  • the board level core module abstraction layer (MAPPER) module is introduced as the interface between the board level core module and the operating system interface module, and the operating system interface module uses the Option ROM module mode to implement the computer operating system boot.
  • MAPPER board level core module abstraction layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Un procédé et un système d'amorçage d'un BIOS ont trait au domaine de l'application informatique. Le procédé prévoit que la routine du service d'interruption du module d'interface de système d'exploitation du BIOS est implémentée sous la forme d'un module de mémoire morte optionnelle. Quand le système d'exploitation de l'ordinateur est lancé, le module de cœur sur carte du BIOS initialise des dispositifs sur carte et sort les informations du système, un module de mappeur convertit les informations du système en une fiche d'informations du système pouvant être reconnue par le module d'interface de système d'exploitation, le module de cœur sur carte initialise la routine du service d'interruption en séquence sur la base des informations de la fiche d'informations du système. La solution fournie par l'invention peut être appliquée au système informatique comportant le BIOS libre de droits basé sur le système du BIOS pour amorcer le système d'exploitation libre de droits et le système d'exploitation payant diffusé à grande échelle.
PCT/CN2011/080541 2011-05-16 2011-10-08 Système et procédé d'amorçage d'un bios WO2012155439A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110126311.9 2011-05-16
CN201110126311.9A CN102169446B (zh) 2011-05-16 2011-05-16 一种基于开源系统基本输入输出系统的bios系统和方法

Publications (1)

Publication Number Publication Date
WO2012155439A1 true WO2012155439A1 (fr) 2012-11-22

Family

ID=44490612

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/080541 WO2012155439A1 (fr) 2011-05-16 2011-10-08 Système et procédé d'amorçage d'un bios

Country Status (2)

Country Link
CN (1) CN102169446B (fr)
WO (1) WO2012155439A1 (fr)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169446B (zh) * 2011-05-16 2014-01-15 北京北大众志微系统科技有限责任公司 一种基于开源系统基本输入输出系统的bios系统和方法
CN105955822A (zh) * 2016-04-22 2016-09-21 浪潮电子信息产业股份有限公司 一种提高BIOS Legacy Option ROM空间利用率的方法
CN108460282A (zh) * 2017-02-22 2018-08-28 北京大学 一种基于异构多核芯片的计算机安全启动方法
CN107832238B (zh) * 2017-10-09 2021-08-31 江苏航天龙梦信息技术有限公司 一种基于龙芯处理器平台的高速缓存作内存的方法
CN109032581A (zh) * 2018-07-19 2018-12-18 北京首汽智行科技有限公司 多模块项目的集成方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023812A1 (en) * 2001-06-19 2003-01-30 Nalawadi Rajeev K. Initialization with caching
CN1977243A (zh) * 2004-06-30 2007-06-06 英特尔公司 模拟实模式内存访问时访问扩展内存的系统和方法
CN102033763A (zh) * 2010-11-26 2011-04-27 武汉噢易科技有限公司 一种利用undi实现网络通信的方法
CN102169446A (zh) * 2011-05-16 2011-08-31 北京北大众志微系统科技有限责任公司 一种基于开源系统基本输入输出系统的bios系统和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671413A (en) * 1994-10-31 1997-09-23 Intel Corporation Method and apparatus for providing basic input/output services in a computer
CN101609406B (zh) * 2009-07-17 2012-07-04 浪潮电子信息产业股份有限公司 一种多bios映像并行初始化的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023812A1 (en) * 2001-06-19 2003-01-30 Nalawadi Rajeev K. Initialization with caching
CN1977243A (zh) * 2004-06-30 2007-06-06 英特尔公司 模拟实模式内存访问时访问扩展内存的系统和方法
CN102033763A (zh) * 2010-11-26 2011-04-27 武汉噢易科技有限公司 一种利用undi实现网络通信的方法
CN102169446A (zh) * 2011-05-16 2011-08-31 北京北大众志微系统科技有限责任公司 一种基于开源系统基本输入输出系统的bios系统和方法

Also Published As

Publication number Publication date
CN102169446B (zh) 2014-01-15
CN102169446A (zh) 2011-08-31

Similar Documents

Publication Publication Date Title
US9501289B2 (en) Method of a UEFI firmware and computer system thereof
JP6124994B2 (ja) レガシーos環境から統合拡張可能ファームウェア・インターフェース(uefi)ブート前環境への復元を行うための方法およびシステム、ならびにコンピュータ・プログラム
US10139876B2 (en) Efficient reboot of an operating system executed in a virtual machine
EP3491519B1 (fr) Processus optimisé de redémarrage d'interface uefi
US7017039B2 (en) Method of booting a computer operating system to run from a normally unsupported system device
US7134007B2 (en) Method for sharing firmware across heterogeneous processor architectures
US11169819B2 (en) Information handling system (IHS) and method to proactively restore firmware components to a computer readable storage device of an IHS
US8352721B1 (en) Initiating an operating system boot from firmware
JP5307196B2 (ja) シリコンに一体化されたコードのシステムへの提供
US7146512B2 (en) Method of activating management mode through a network for monitoring a hardware entity and transmitting the monitored information through the network
CN110069361B (zh) 用于tpm故障切换的方法和装置
US20110055540A1 (en) Pre-Boot Loader for Reducing System Boot Time
EP1485797B1 (fr) Procede de lancement
WO2012155439A1 (fr) Système et procédé d'amorçage d'un bios
US20060212609A1 (en) Effecting a processor operating mode change to execute device code
US10586048B2 (en) Efficient reboot of an operating system
US9348603B2 (en) Electronic apparatus and booting method
US20190068772A1 (en) Computer system and method thereof for bluetooth data sharing between uefi firmware and os
US9778936B1 (en) Booting a computing system into a manufacturing mode
Dice Quick boot: a guide for embedded firmware developers
JP5348813B2 (ja) ブートrom搭載ボード
TWI765329B (zh) 基本輸入輸出系統的切換系統及方法
Crouse et al. Breaking the Chains—Using LinuxBIOS to Liberate Embedded x86 Processors
CN107291423A (zh) 构建运行环境的方法和装置
CN117075974A (zh) 一种基于risc-v服务器cpu的新型edk2启动引导方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11865900

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11865900

Country of ref document: EP

Kind code of ref document: A1