US 11,989,551 B2
Modular firmware composition
Cheng-Han Chen, Taoyuan (TW); Yi-Chun Liao, Taoyuan (TW); Kuo-Chun Liao, Taoyuan (TW); and Chong-Ren Guo, Taoyuan (TW)
Assigned to QUANTA COMPUTER INC., Taoyuan (TW)
Filed by QUANTA COMPUTER INC., Taoyuan (TW)
Filed on Mar. 18, 2021, as Appl. No. 17/205,818.
Prior Publication US 2022/0300276 A1, Sep. 22, 2022
Int. Cl. G06F 8/71 (2018.01); G06F 8/65 (2018.01); G06F 9/4401 (2018.01)
CPC G06F 8/71 (2013.01) [G06F 8/65 (2013.01); G06F 9/4401 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
accessing a firmware image from local storage of a computing device during each boot up of the computing device, the firmware image being a single file including a primary module, a module list, and a module library, the computing device including a main processor and an independent platform security processor;
executing, by the independent platform security processor, the primary module, wherein executing the primary module includes initializing one or more hardware resources of the computing device;
accessing, by the independent platform security processor during each boot up of the computing device, the module list associated with the firmware image, wherein the module list includes unique identification information associated with a selected set of modules of the module library, wherein the module library includes a plurality of executable modules that includes the selected set of modules and one or more non-selected modules, the selected set of modules and the one or more non-selected modules being part of the single file of the firmware image;
composing, by the independent platform security processor, a firmware bundle based on the selected set of modules during each boot up of the computing device, wherein composing the firmware bundle includes accessing each module of the selected set of modules;
accessing, by the independent platform security processor, configuration parameters from the firmware image and storing the configuration parameters in system memory, the configuration parameters including an indication of a module firmware version to use;
storing, by the independent platform security processor, a module sequence in the system memory, wherein the module sequence is indicative of an order for executing the modules of the firmware bundle; and
executing, by the main processor, the firmware bundle and booting up the computing device, wherein executing the firmware bundle further includes executing each module of the firmware bundle in the order indicated by the module sequence, and wherein executing the firmware bundle includes using the configuration parameters to select one out of a plurality of available versions for at least one of the modules of the firmware bundle.