Terminal Firmware Startup Segmentation for Customization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current firmware startup solutions, primarily based on TianoCore+UEFI, are inflexible and unable to meet user customization requirements due to limited UEFI firmware resources and bloated feature programs, leading to inefficiencies and inability to repair firmware issues in a timely manner.
Innovation Solution
A terminal firmware startup method that replaces target feature programs in initial firmware with a target loader, such as Linux binary, to initialize core hardware and generate operating system startup signals, allowing for flexible customization and efficient platform initialization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If TianoCore+UEFI solution is used for firmware startup, then platform initialization can be completed, but function customization is difficult and firmware startup flexibility is poor
Solution Approach 1:
The firmware is segmented into two distinct parts: initial firmware (providing basic hardware initialization) and a custom loader (providing platform-specific customization). This segmentation allows the system to maintain the stability of the initial firmware while enabling full customization in the loader portion, resolving the contradiction between adaptability and complexity.
Solution Approach 2:
The customization functionality is extracted from the traditional UEFI firmware and placed into a separate loader component. This extraction allows the main firmware structure to remain simple and stable while the extracted loader handles all customization requirements, achieving both low complexity and high adaptability.
2Ease of repair
If IBV-provided firmware solution is used, then firmware startup can be achieved, but troubleshooting and repair are difficult due to closed-source nature
Solution Approach 1:
The system enables self-service troubleshooting by allowing users to independently modify and rebuild the loader component. Since the loader is a separate, user-modifiable component, users can diagnose and fix issues without requiring vendor intervention, maintaining reliability while dramatically improving ease of repair.
Solution Approach 2:
The firmware system allows parameter changes in the loader portion without affecting the core initial firmware. Users can modify loader parameters, configuration, and code to troubleshoot issues, while the reliable initial firmware remains unchanged, ensuring both ease of repair and maintained reliability.
3Productivity
If UEFI firmware with many feature programs is used, then comprehensive functionality is provided, but firmware size increases and startup efficiency decreases
Solution Approach 1:
Essential hardware initialization functions are extracted and placed in the minimal initial firmware, while the rest of the functionality is moved to the external loader. This extraction reduces the initial firmware size significantly, improving startup efficiency, while the full functionality remains available in the loader that loads afterward.
Solution Approach 2:
Only the critical hardware initialization actions are performed in the minimal initial firmware before loading the full loader. This preliminary action approach allows the system to start up quickly with minimal code, then load the comprehensive functionality as needed, achieving both high startup efficiency and full functionality.
Data Source
AI summary
The present disclosure relates to a terminal firmware startup method and apparatus, an electronic device, and a storage medium. The startup method includes: replacing a target feature program in initial firmware with a target loader to obtain target firmware; loading hardware code in the target firmware that is used for initializing core hardware to complete hardware initialization, and generating a hardware initialization complete instruction; loading the target loader according to the hardware initialization complete instruction to complete platform initialization, and generating an operating system startup signal; and starting an operating system.


