UEFI Memory Descriptor Alignment for Legacy OS Boot
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Information handling systems face challenges in booting with different operating system configurations due to variations in memory descriptor support, leading to potential failure conditions when older OS versions encounter UEFI memory maps with multiple descriptors.
Innovation Solution
The system retrieves a UEFI image, initializes UEFI runtime services, and aligns them with a common memory descriptor, enabling boot compatibility with both single and multiple runtime memory descriptor-supported operating systems by copying the aligned services and memory maps to system memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the system uses multiple memory descriptors in UEFI runtime services to support modern operating systems, then the system can support larger and more complex memory configurations, but older operating systems that only support single runtime memory descriptors will fail to boot
Solution Approach 1:
The system dynamically determines the number of memory descriptors at runtime based on the operating system's capabilities. The UEFI runtime service checks whether the loaded operating system supports multiple memory descriptors and adjusts the memory map configuration accordingly, allowing the same hardware to support both modern and legacy operating systems without modification
Solution Approach 2:
The system changes the parameter of memory descriptor count based on the detected operating system version. When an older operating system is detected (one that only supports single runtime memory descriptor), the system configures the UEFI runtime service to use a single memory descriptor instead of multiple descriptors, ensuring compatibility while maintaining the ability to use multiple descriptors with modern systems
2Reliability
If the system configures UEFI runtime services for single memory descriptor to ensure compatibility with older operating systems, then boot reliability improves, but the system cannot utilize advanced memory features requiring multiple descriptors
Solution Approach 1:
The system dynamically determines the number of memory descriptors at runtime based on the operating system's capabilities. The UEFI runtime service checks whether the loaded operating system supports multiple memory descriptors and adjusts the memory map configuration accordingly, allowing the same hardware to support both modern and legacy operating systems without modification
Solution Approach 2:
The system changes the parameter of memory descriptor count based on the detected operating system version. When an older operating system is detected (one that only supports single runtime memory descriptor), the system configures the UEFI runtime service to use a single memory descriptor instead of multiple descriptors, ensuring compatibility while maintaining the ability to use multiple descriptors with modern systems
Data Source
AI summary
A method, information handling system (IHS) and sub-system for enabling booting of the IHS using different operating system configurations. The method includes retrieving, via a processor, a unified extensible firmware interface (UEFI) image from a storage device and initializing at least one UEFI runtime service. The processor determines if a memory map corresponding to the UEFI runtime service defines multiple memory descriptors. In response to determining that the memory map defines multiple memory descriptors, a common memory descriptor is identified. The UEFI runtime service and the corresponding memory map are aligned to the common memory descriptor. The aligned UEFI runtime service and the corresponding memory map are copied to a system memory of the IHS. The operating system is booted, wherein the aligned UEFI runtime service and the corresponding memory map are compatible with operating systems that support single runtime memory descriptors.


