Method and system for linking firmware modules in a pre-memory execution environment
AssigneeIntel Corporation
InventorsWilliam A. Stevens, Jr., Andrew J. Fish, Kirk D. Brannock, Robert P. Hale, Ramamurthy Krithivas
Life of this patent
Estimating the term…
Abstract
A BIOS includes a core and multiple modules. The modules include both those that are platform specific and those that are not platform specific. Each module has a standard interface that allows the core (or other module) to call the module. A platform vendor constructs a BIOS by selecting modules from one or more vendors, which when executed can select modules that are suitable for the platform the BIOS resides in.
Claims15
A method comprising:
- executing a core module;
- initializing a plurality of firmware modules by the core module, wherein initializing comprises:
- examining at least two firmware modules to determine a required order of dispatch of the at least two firmware modules;
- dispatching an earlier of the at least two firmware modules by the core module and then dispatching a later of the at least two firmware modules by the core module;
- after the initializing of the plurality of firmware modules, initializing a system memory;
- and invoking a function contained in a third firmware module by the earlier of the at least two firmware modules during a dispatch of the earlier of the at least two firmware modules or by the later of the at least two firmware modules during a dispatch of the later of the at least two firmware modules, each of the at least two firmware modules including an interface to call the function contained in the third firmware module, wherein each of the plurality of firmware modules includes a daisy chain flag corresponding to an absent hardware component in an import table.
A computer-readable storage medium containing instructions to cause a programmable processor to perform operations comprising:
- determining dependencies among a plurality of firmware modules by a separate core module based on information about services imported from an import table of each of the plurality of firmware modules and services exported from an export table of each of the plurality of firmware modules before dispatching the plurality of firmware modules by the separate core module, and the services imported from the import table of each of the plurality of firmware modules dispatched by the separate core module are provided in another firmware module of the plurality of firmware modules dispatched by the separate core module;
- dispatching each of the plurality of firmware modules in an order that satisfies the dependencies;
- and initializing a volatile system memory after dispatching the plurality of firmware modules.
A system comprising:
- a hardware component to perform a function;
- a volatile memory that can store data after the volatile memory is initialized;
- and a non-volatile memory containing a Basic Input-Output System (“BIOS”) including a BIOS core and a plurality of firmware modules, wherein two of the plurality of firmware modules are to initialize hardware components to perform the function, and one of the two of the plurality of firmware modules is to initialize an absent hardware component that is not present in the system by iterating through each of the plurality of firmware modules within the BIOS to determine whether the absent hardware component is present, each of the plurality of firmware modules including a daisy chain flag corresponding to the absent hardware component in an import table, and the two of the plurality of firmware modules are to be dispatched before the volatile memory is initialized.
Dependencies are inferred from the claim text.