SMI Code Relocation via Embedded Signatures
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing information handling systems face challenges in efficiently relocating system management interface (SMI) code due to the need for large relocation tables, which consume ROM space and introduce potential errors, especially when using virtual memory mechanisms or fixed address methods.
Innovation Solution
Embedding relocation entries within the SMI code using a signature pattern, allowing the SMI code loader to identify and relocate addresses during power-on self-test, eliminating the need for a relocation table and minimizing overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a relocation table is added to the SMI code in ROM to enable relocation, then the SMI code can be relocated to different memory addresses, but the relocation table consumes over 1K bytes of ROM space
Solution Approach 1:
The patent merges the relocation table with the SMI code by embedding relocation entries directly within the SMI code itself. This integration eliminates the need for a separate relocation table in ROM, thereby reducing ROM space consumption while maintaining relocation functionality. The relocation entries are embedded at specific locations within the SMI code and are identified by a signature pattern.
Solution Approach 2:
The patent extracts the relocation table functionality from being a separate ROM-resident structure and transforms it into embedded entries within the SMI code. By taking out the relocation table as a distinct component and integrating it into the code itself, the patent eliminates the overhead of storing a separate relocation table in ROM.
2Adaptability or versatility
If virtual memory mechanism is used to relocate SMI code, then the SMI code can be relocated dynamically, but subtle errors may occur in the code due to incorrect address references
Solution Approach 1:
The patent applies preliminary action by pre-calculating and embedding the correct relocated addresses within the SMI code during the relocation process. Rather than using virtual memory mechanisms that require runtime address translation and may introduce errors, the patent performs address relocation in advance and hardcodes the correct addresses into the SMI code, ensuring reliability while maintaining relocation capability.
3Ease of manufacture
If HSEG method is used to hide SMI memory at a fixed address, then the SMI code can be built with known address, but the size of the SMI code is limited
Solution Approach 1:
The patent applies dynamics by making the SMI code location flexible rather than fixed. Instead of being constrained to a fixed address region like HSEG, the SMI code can be relocated to different memory addresses using the embedded relocation entries. This dynamic positioning capability allows the SMI code to grow beyond fixed size limitations while maintaining build process simplicity through automated address calculation.
4Adaptability or versatility
If TSEG method is used to place SMI code at the top of installed memory, then the SMI code can accommodate variable memory sizes, but a relocation table is required which consumes ROM space
Solution Approach 1:
The patent merges the relocation table with the SMI code by embedding relocation entries directly within the SMI code itself. This integration eliminates the need for a separate relocation table in ROM, thereby reducing ROM space consumption while maintaining relocation functionality. The relocation entries are embedded at specific locations within the SMI code and are identified by a signature pattern.
Data Source
AI summary
A method for relocating system management interface code in an information handling system which includes extracting a relocation table from the system management interface code, inserting a relocation identifier in each entry of the system management interface code having an address, searching the system management code for the relocation identifier during execution of the information handling system, and inserting an address based upon a relocation address for each entry in the system management interface code having a relocation identifier.


