Pre-Boot Application Firmware Volume File Access via Cross-Reference Table
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Porting OS-level applications to a pre-boot execution environment is challenging due to the lack of support for file access in firmware volumes using standard I/O functions, requiring rewriting of program code to access files on mass storage devices.
Innovation Solution
Modifying standard I/O library functions to enable access to files stored in firmware volumes by using a file cross-reference table that maps filenames to globally unique identifiers (GUIDs), allowing pre-boot applications to access files without rewriting existing code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If standard I/O library functions are used to access files, then mass storage device access is supported, but firmware volume access is not supported
Solution Approach 1:
A file cross-reference table is introduced as an intermediary data structure that maps filenames to GUIDs. This table enables the standard I/O library functions to indirectly access firmware volume files by translating filename references into actual file identifiers, bridging the gap between standard I/O interfaces and firmware-specific file systems without modifying the core I/O library code.
Solution Approach 2:
The standard I/O library functions are enhanced to perform multiple functions: they can access both traditional mass storage devices and firmware volumes using the same interface. By integrating firmware volume access capability into the existing I/O library, the system achieves universal file access functionality without requiring separate code paths for different storage types.
2Adaptability or versatility
If OS-level applications are ported to pre-boot environment, then execution in firmware environment is enabled, but code rewriting is required
Solution Approach 1:
The file cross-reference table is prepared in advance during firmware initialization, organizing all firmware volume files with their GUIDs and filenames before any application execution. This preliminary organization enables applications to immediately access files using standard I/O functions without requiring runtime file system initialization or code modifications, significantly reducing porting time.
Solution Approach 2:
The invention creates a virtual file system layer that copies the interface of standard mass storage file access into the firmware environment. By replicating the familiar I/O function interface and underlying it with firmware-specific access mechanisms, applications can be ported without code changes while still accessing firmware volumes.
3Reliability
If files are stored in firmware volume, then dependency on mass storage is reduced, but access mechanism complexity increases
Solution Approach 1:
The file access mechanism is extracted into a separate, modular file cross-reference table that can be independently managed. This extraction allows the core I/O library to remain simple while the complexity of firmware volume access is isolated in the cross-reference table structure, enabling storage independence without proportionally increasing overall system complexity.
Data Source
AI summary
Standard I/O library functions for accessing files stored on mass storage devices are modified to enable access to files stored in firmware volumes. An application can be compiled against the modified standard I/O library functions to generate a pre-boot application. When the pre-boot application is executed within a pre-boot execution environment, it can utilize standard I/O library functions to access files stored in a firmware volume. In response to receiving a request to open a file from a pre-boot application, the called I/O function searches a file cross-reference table to locate the filename for the file. If the filename is in the file cross-reference table, the GUID associated with the filename is retrieved from the file cross-reference table and used to obtain a file handle to the file. The file handle can then be returned to the pre-boot application and used to perform other types of operations on the file.


