TW201832078A - Method for generating a new version of firmware with unified extensible firmware interface generating a new version of firmware with an UEFI and XML profile without changing systematic firmware application codes - Google Patents

Method for generating a new version of firmware with unified extensible firmware interface generating a new version of firmware with an UEFI and XML profile without changing systematic firmware application codes Download PDF

Info

Publication number
TW201832078A
TW201832078A TW106105719A TW106105719A TW201832078A TW 201832078 A TW201832078 A TW 201832078A TW 106105719 A TW106105719 A TW 106105719A TW 106105719 A TW106105719 A TW 106105719A TW 201832078 A TW201832078 A TW 201832078A
Authority
TW
Taiwan
Prior art keywords
firmware
uefi
unified
interface
variable data
Prior art date
Application number
TW106105719A
Other languages
Chinese (zh)
Other versions
TWI601072B (en
Inventor
馬俊博
Original Assignee
台灣聚引移動有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 台灣聚引移動有限公司 filed Critical 台灣聚引移動有限公司
Priority to TW106105719A priority Critical patent/TWI601072B/en
Application granted granted Critical
Publication of TWI601072B publication Critical patent/TWI601072B/en
Publication of TW201832078A publication Critical patent/TW201832078A/en

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

A method for generating a new version of firmware with an Unified Extensible Firmware Interface, first includes steps of: establishing a native version of firmware with an Unified Extensible Firmware Interface (UEFI) firmware as a base, and simultaneously creating a shared variable data in the native Unified Extendable Firmware Interface (UEFI) firmware; loading the aforementioned native version of the Unified Extensible Firmware Interface (UEFI) firmware and an Extensible Markup Language (XML) profile through an editor of the computer platform window-based application. Therefore, allowing the Unified Extensible Firmware Interface (UEFI) firmware to dynamically add shared variable data to this firmware, and resulting in a new version of the Unified Extensible Firmware Interface (UEFI) firmware combining the native version of firmware with the Unified Extensible Firmware Interface (UEFI) firmware and Extensible Markup Language (XML) profile.

Description

產生新版統一可延伸韌體介面軔體之方法  Method for producing a new unified uniform extendable firmware interface body  

本發明是關於一種產生新版統一可延伸韌體介面軔體之方法,特別是關於一種不用觸及系統韌體程式碼,而產生新版的可延伸韌體介面基本輸入輸出系統之韌體檔案之方法,減少系統韌體開發時間及可用於衍生系統上。 The present invention relates to a method for generating a new version of a uniform extendable firmware interface body, and more particularly to a method for generating a firmware file of a new version of the extendable firmware interface basic input/output system without touching the firmware code of the system. Reduce system firmware development time and can be used on derivative systems.

所謂基本輸出入系統(Basic Input Output System,BIOS)是指存放在主機板上之快閃記憶體(Flash Memory),其中包含了許多例如電腦、平板電腦或智慧型手機等系統平台輸出入的基本副程式、在主機板上為處理軟體與硬體溝通設定,其BIOS的設定與系統平台之硬體具有關連性。例如,如果任意更換系統平台之主機板上的BIOS的話,很可能會造成系統平台無法啟動。 The basic input and output system (BIOS) refers to the flash memory stored on the motherboard, which contains a lot of basic input and output system platforms such as computers, tablets or smart phones. The subroutine, on the motherboard for processing software and hardware communication settings, its BIOS settings and the hardware of the system platform are related. For example, if you change the BIOS on the motherboard of the system platform arbitrarily, it is likely that the system platform will not start.

BIOS的功能是用來設定與控制中央處理單元(CPU)和各相關晶片的運作,時脈以及各種標準的周邊裝置作業之設定,例如:印表機、滑鼠、鍵盤、硬碟機與軟碟機。當BIOS啟動系統平台時,其首先會確定所有周邊是否就定位運作,再從硬碟或磁碟機將作業系統載入隨機存取記憶體(DRAM)。有了此BIOS,作業系統與應用程式可藉BIOS承繼輸出入裝置的詳細資料,如網路卡媒介存取控制(Medium Address Control,MAC位址)、磁碟機容量及位置等,倘若裝置變更,只需透過BIOS的更動,來通知作業系統或應用程式。 The function of the BIOS is to set and control the operation of the central processing unit (CPU) and related chips, the clock and various standard peripheral device settings, such as: printer, mouse, keyboard, hard drive and soft Disc player. When the BIOS boots the system platform, it first determines if all peripherals are located and then loads the operating system into random access memory (DRAM) from a hard drive or disk drive. With this BIOS, operating systems and applications can use the BIOS to inherit the details of the input and output devices, such as the network card media access control (Medium Address Control, MAC address), disk drive capacity and location, etc., if the device changes Just notify the operating system or application through the BIOS changes.

但是隨著資訊技術的發展,傳統的BIOS由於只能以 16位彙編程式碼,且又有許多基本且無法變更的開發限制,因此即使新型的中央處理器以及主機板具有再強大的能力也會為了配合傳統BIOS而降低效能。 However, with the development of information technology, the traditional BIOS can only assemble code in 16 bits, and there are many basic and unchangeable development restrictions, so even the new CPU and motherboard have more powerful capabilities. Reduce performance in conjunction with traditional BIOS.

因此,為了解決傳統BIOS跟不上科技進步的問題,開發出了統一可延伸韌體介面基本輸入輸出系統(Unified Extensible Firmware Interface Basic Input Output System,UEFI BIOS)。相較於傳統的BIOS,使用者可以在UEFI BIOS底下對計算機進行更多種設定。例如使用者可以設定中央處理器(Central Processing Unit,CPU)的基頻或倍頻等參數,並將目前計算機運行的參數儲存成為一設定檔。 Therefore, in order to solve the problem that the traditional BIOS cannot keep up with the advancement of science and technology, the Unified Extensible Firmware Interface Basic Input Output System (UEFI BIOS) has been developed. Compared to the traditional BIOS, users can make more settings for the computer under the UEFI BIOS. For example, the user can set parameters such as the fundamental frequency or multiplier of the Central Processing Unit (CPU), and store the parameters of the current computer operation as a configuration file.

統一可延伸韌體介面(UEFI)是一種電腦系統規格,用來定義作業系統與系統硬體之間的軟體介面,作為先前基本輸入輸出系統(BIOS)的替代方案。UEFI開機自我檢測(Power On Self Test,POST)、連繫作業系統以及提供連接作業系統與硬體的介面。 The Unified Extensible Firmware Interface (UEFI) is a computer system specification that defines the software interface between the operating system and the system hardware as an alternative to the previous basic input/output system (BIOS). UEFI Power On Self Test (POST), connected operating system and interface to provide a connection system and hardware.

由於UEFI程式架構相對於舊有BIOS相當龐大,所以每開發新的系統都需要花一定時間在編譯程式碼上面,每當為了驗證修改相關UEFI的設定就必須花費相對的時間。或,當有類似之衍生系統需要產生時,而此衍生系統可能只有少部分不一樣,比如記憶體規格不同,也都是一樣需要花費時間來修改與編譯程式碼而產生新的UEFI韌體於衍生系統上。因此如何更快速及更簡潔的方式完成新版的UEFI程式架構,成為本領域中急需被解決的問題。 Since the UEFI program architecture is quite large compared to the old BIOS, it takes a certain amount of time to compile the code every time a new system is developed, and it takes a relatively long time to modify the relevant UEFI settings for verification. Or, when a similar derivative system needs to be generated, and the derivative system may have only a small part, such as different memory specifications, it takes the same time to modify and compile the code to generate a new UEFI firmware. On the derivative system. Therefore, how to complete the new UEFI program architecture in a faster and more concise manner has become an urgent problem to be solved in the field.

於是,為解決習知產生新版統一可延伸韌體介面(UEFI)之程式架構的問題,本發明提供一種可以不用重新修改與編譯程式碼即可完成產生新版統一可延伸韌體介面軔體之方法, 減少相對應的UEFI軔體程式架構開發時間或/及快速產生新的UEFI韌體於衍生系統上,利用在開發新版的統一可延伸韌體介面韌體實作階段可以免去開發時需編譯程式碼之時間,亦可以應用在不同之衍生系統上之微調。 Therefore, in order to solve the problem of generating a new version of the Unified Extensible Firmware Interface (UEFI) program architecture, the present invention provides a method for generating a new unified extendable firmware interface body without re-modifying and compiling the code. , reduce the corresponding UEFI system architecture development time or / and quickly generate new UEFI firmware on the derivative system, using the development of the new version of the unified extensible firmware interface firmware stage can be saved without development The time of the code can also be applied to fine-tuning on different derivative systems.

為達上述目的,本發明揭露一種產生新版統一可延伸韌體介面軔體之方法,其包括:先建立一原生版統一可延伸韌體介面(UEFI)韌體為基底,同時創建出共用之變量資料於該原生版統一可延伸韌體介面(UEFI)韌體內;產生新版軔體時,透過一電腦平台視窗應用軟體的編輯器載入前述原生版的統一可延伸韌體介面(UEFI)韌體及一可擴展標記語言(XML)之設定檔;及透過編輯器的編譯將可擴展標記語言(XML)之設定檔內共用之變量資料導入加到該原生版統一可延伸韌體介面(UEFI)韌體檔案內,藉此讓統一可延伸韌體介面(UEFI)韌體動態新增共用之變量資料於此韌體內,產生包含原生版的統一可延伸韌體介面(UEFI)韌體與可擴展標記語言(XML)設定檔所結合的新版統一可延伸韌體介面(UEFI)韌體。 To achieve the above object, the present invention discloses a method for generating a new version of a uniform extendable firmware interface body, which comprises: first establishing a native version of the Unified Extensible Firmware Interface (UEFI) firmware as a base, and simultaneously creating a shared variable. The data is in the native version of the Unified Extensible Firmware Interface (UEFI) firmware; when a new version of the carcass is generated, the native version of the Unified Extensible Firmware Interface (UEFI) firmware is loaded through a computer platform software application editor. And an Extensible Markup Language (XML) profile; and the compiler's compilation adds the variable data shared in the Extensible Markup Language (XML) profile to the native Unified Extensible Firmware Interface (UEFI) Within the firmware file, the Unified Extensible Firmware Interface (UEFI) firmware dynamically adds the shared variable data to the firmware, resulting in a native version of the Unified Extensible Firmware Interface (UEFI) firmware and scalability. A new version of the Unified Extensible Firmware Interface (UEFI) firmware combined with the Markup Language (XML) profile.

其中,所述此變量資料是由全局唯一標識符(GUID)與變量名稱和數據(Data)所形成。 Wherein, the variable data is formed by a globally unique identifier (GUID) and a variable name and data (Data).

其中,該可擴展標記語言(XML)之設定檔內共用之變量資料導入加到該原生版統一可延伸韌體介面(UEFI)韌體內最後一筆變量資料的後面。該可擴展標記語言(XML)之設定檔內共用之變量資料將被導入到一統一可延伸韌體介面的非揮發性記憶體空間(NVRAM)。 The variable data imported in the Extensible Markup Language (XML) profile is added to the last variable data in the native unified extendable firmware interface (UEFI) firmware. The variable data shared in the Extensible Markup Language (XML) profile will be imported into a non-volatile memory space (NVRAM) of a unified extendable firmware interface.

本發明的優點在於,為了減少相對應之開發時間或與快速產生新的UEFI韌體於衍生系統上,本發明先建立原生版統一可延伸韌體介面韌體為基底,同時創建出共用之變量資料於原 生版上,藉由此變量資料是由全局唯一標識符(GUID)、變量名稱和數據(Data)所形成;再來使用視窗應用程式基於可擴展標記語言(XML)之方法產生新版的統一可延伸韌體介面韌體;而此應用軟體亦須加入共用之變量資料以及設計此變量資料之內容於可擴展標記語言上,最後參考所需要之系統設計來設定相關資料內容於此可擴展標記語言(XML)內,進而導入此可擴展標記語言(XML)設定檔與原生版統一可延伸韌體介面韌體於應用軟體上編譯而產生新的統一可延伸韌體介面韌體,整個新版軔體的產生過程中可以不用重新修改與編譯程式碼即可完成,使開發者大幅減少系統韌體開發時間或可用在衍生系統上而不用觸及系統韌體程式碼。 The invention has the advantages that in order to reduce the corresponding development time or to quickly generate a new UEFI firmware on the derivative system, the present invention first establishes a native unified extendable firmware interface firmware as a base, and simultaneously creates a shared variable. The data is on the native version, by which the variable data is formed by a globally unique identifier (GUID), variable name, and data (Data); then a new version is generated using a window application based on Extensible Markup Language (XML). Uniform extendable firmware interface firmware; this application software must also add the shared variable data and design the contents of this variable data in the extensible markup language. Finally, refer to the required system design to set the relevant data content for expansion. In the markup language (XML), the extended markup language (XML) profile and the native unified extendable firmware interface firmware are compiled on the application software to generate a new unified extendable firmware interface firmware. The process of carcass can be completed without re-editing and compiling the code, enabling developers to significantly reduce system firmware development time or In the system without having to touch the derived system firmware code.

100‧‧‧UEFI韌體裝置 100‧‧‧UEFI firmware device

110‧‧‧韌體空間開機區塊 110‧‧‧ firmware space boot block

120‧‧‧韌體空間主要區塊 120‧‧‧Main block of firmware space

130‧‧‧非揮發性記憶體空間 130‧‧‧Non-volatile memory space

200‧‧‧新版UEFI韌體裝置 200‧‧‧New UEFI firmware device

300‧‧‧加入新變量資料 300‧‧‧Add new variable data

S11、S12、S13、S14‧‧‧步驟 S11, S12, S13, S14‧‧ steps

S21、S22、S23、S24‧‧‧步驟 S21, S22, S23, S24‧‧ steps

圖1為本發明UEFI韌體裝置的空間區塊示意圖。 1 is a schematic diagram of a spatial block of a UEFI firmware device of the present invention.

圖2為本發明的原生版UEFI韌體運作之流程示意圖。 2 is a schematic flow chart of the operation of the native UEFI firmware of the present invention.

圖3為本發明產生新版UEFI軔體的流程示意圖。 FIG. 3 is a schematic flowchart of generating a new version of UEFI body according to the present invention.

圖4為本發明產生新版UEFI韌體裝置之區塊示意圖。 4 is a block diagram of a block for generating a new version of the UEFI firmware device according to the present invention.

茲有關本發明之詳細內容及技術說明,現以實施例來作進一步說明,但應瞭解的是,該等實施例僅為例示說明之用,而不應被解釋為本發明實施之限制。 The detailed description of the present invention and the technical description of the present invention are further illustrated by the embodiments, but it should be understood that these embodiments are for illustrative purposes only and are not to be construed as limiting.

由於統一可延伸韌體介面基本輸入輸出系統(UEFI BIOS)是遵循UEFI論壇的規範定義下開發的,所以在此先說明UEFI的開機流程如下: Since the Unified Extensible Firmware Interface Basic Input Output System (UEFI BIOS) is developed in accordance with the UEFI Forum specification, the UEFI boot process is described as follows:

1.SEC階段:SEC(安全性)階段其主要的特色為「cache as RAM」,即處理器的快取當成記憶體。由於C語言需要使用堆疊,在這個階段的系統記憶體尚未被初始化,在沒有記憶 體可用的情況下,便把處理器的快取當成記憶體來使用,在主記憶體被初始化之前來進行預先驗證CPU/晶片組及主機板。 1. SEC phase: The main feature of the SEC (security) phase is "cache as RAM", that is, the cache of the processor is treated as a memory. Since the C language needs to use the stack, the system memory at this stage has not been initialized. When no memory is available, the processor cache is used as a memory, and the main memory is pre-initialized before being initialized. Verify the CPU/chipset and motherboard.

2.PEI階段:和傳統BIOS的初始化階段類似,PEI(EFI前初始化)階段是用以喚醒CPU及記憶體初始化。這時候只起始了一小部分的記憶體。同時,晶片組和主機板也開始初始化。接下來的服務程式會確定CPU晶片組被正確的初始化,在此時,EFI驅動程式派送器將載入EFI驅動程式記憶體,進入了起始所有記憶體的DXE階段(驅動程式執行環境)。 2. PEI phase: Similar to the initialization phase of the traditional BIOS, the PEI (pre-EFI initialization) phase is used to wake up the CPU and memory initialization. At this time only a small part of the memory is started. At the same time, the chipset and motherboard are also initialized. The next service program will determine that the CPU chipset is properly initialized. At this point, the EFI driver dispatcher will load the EFI driver memory into the DXE phase (driver execution environment) that starts all memory.

3.DXE階段:DXE的主要功能在於溝通EFI驅動程式及硬體。也就是說此階段所有的記憶體、CPU(在此是指實體兩個或以上的非核心數目,也就是雙CPU插槽處理器甚至是四CPU插槽處理器)、PCI、USB、SATA和Shell都會被初始化。 3. DXE phase: The main function of DXE is to communicate EFI driver and hardware. In other words, all the memory, CPU (here refers to the number of non-cores of two or more entities, that is, dual CPU socket processors or even four CPU socket processors), PCI, USB, SATA, and The shell will be initialized.

4.BDS階段:在BDS(開機設備選擇)這個階段,使用者就可以自開機管理者程式頁面,選擇要從那個偵測到的開機設備來啟動。 4. BDS phase: In the BDS (boot device selection) phase, the user can boot from the boot manager program page and select from the detected boot device.

5.TSL階段:然後進入TSL(短暫系統載入)階段,由作業系統接手開機。除此之外,也可以在BDS階段選擇UEFIShell,讓系統進入簡單的命令列,進行基本診斷和維護。 5. TSL phase: Then enter the TSL (short system loading) phase, which is taken over by the operating system. In addition, UEFIShell can be selected during the BDS phase to allow the system to enter a simple command line for basic diagnostics and maintenance.

請參閱圖1,為本發明UEFI韌體裝置三大韌體空間區塊示意圖。一UEFI韌體裝置100主要可規劃出三大韌體空間區塊分別來放上述不同開機階段的程式碼與資料。一、韌體空間開機區塊(Firmware Volume Boot Block,FV BB)110用以存放UEFI前期開機相關之程式碼與資料,如SEC階段及PEI階段,亦可稱為可延伸韌體前初始化(Pre-EFI Initialization Environment,PEI)。二、韌體空間主要區塊(Firmware Volume Main Block,FV MAIN)120用以存放UEFI中後期開機相關之程式碼與資料,如DXE階段、BDS階 段及TSL階段。三、非揮發性記憶體空間(Non-Volatile RAM,NVRAM)130就是存放相關變量資料的地方,而變量資料的成員包含有GUID(全局唯一標識符(Globally Unique Identifier))/變量名稱/數據(Data)。而每個變量資料成員都有其獨一的GUID與變量名稱,所以編譯者可以制定一個新的空變量,也就是只定義出新的GUID與變量名稱,而數據(Data)則為空資料,待由視窗應用程式基於一可擴展標記語言(Extensible Markup Language,XML)之方法產生變量資料所要的數據(Data),如整數和/或字符串的。 Please refer to FIG. 1 , which is a schematic diagram of three major firmware space blocks of a UEFI firmware device according to the present invention. A UEFI firmware device 100 can mainly program three firmware space blocks to respectively program the code and data of the different boot stages. 1. The Firmware Volume Boot Block (FV BB) 110 is used to store the code and data related to the booting of the UEFI, such as the SEC phase and the PEI phase, and may also be referred to as the pre-initialization of the extendable firmware (Pre -EFI Initialization Environment, PEI). Second, the Firmware Volume Main Block (FV MAIN) 120 is used to store the code and data related to the booting of the UEFI in the middle and late stages, such as the DXE phase, the BDS phase, and the TSL phase. 3. Non-Volatile RAM (NVRAM) 130 is the place to store the relevant variable data, and the members of the variable data contain GUID (Globally Unique Identifier) / variable name / data ( Data). Each variable data member has its own unique GUID and variable name, so the compiler can create a new empty variable, that is, only define a new GUID and variable name, and the data (Data) is empty data. The data (Data), such as integers and/or strings, required by the variable data is generated by the Windows application based on an Extensible Markup Language (XML) method.

請參閱圖2,本方法在原生版UEFI程式碼運作部分,開始後首先進行步驟S11:建立共同變量資料。本發明首先要建立原生版的統一可延伸韌體介面(UEFI)韌體為基底,並建立出共用之變量資料與系統預設之變量數據,此變量資料的內容是由全局唯一標識符(GUID)、變量名稱和數據(Data)所形成,且此變量資料存在於該UEFI韌體裝置100的非揮發性記憶體空間(NVRAM)130。 Referring to FIG. 2, in the original UEFI code operation part, the method first starts step S11: establishing common variable data. The invention firstly establishes a native version of the Unified Extensible Firmware Interface (UEFI) firmware as a base, and establishes a shared variable data and a system preset variable data. The content of the variable data is a globally unique identifier (GUID). The variable name and data (Data) are formed, and the variable data exists in the non-volatile memory space (NVRAM) 130 of the UEFI firmware device 100.

接下來進行步驟S12:取得共同變量資料。此變量資料集系透過視窗應用軟體的編輯器(例如Win32)套用前述可擴展標記語言(XML)檔案設定而成。 Next, step S12 is performed: the common variable data is obtained. This variable data set is set by applying the aforementioned Extensible Markup Language (XML) file through the editor of the Windows application software (for example, Win32).

接續前述步驟S11及步驟S12進入步驟S13:判斷取得數據是否與符合主機板設定值,如果符合則套用共用之變量資料;或步驟S14:判斷取得數據是否與符合主機板設定值,如果不符合則採用系統的預設值。利用預設原始版的共用變量資料在導入到韌體空間開機區塊(Firmware Volume Boot Block,FV BB)前,必須先確認變量資料是否有被建立也就是說是否存在。若存在則將變量資料複製到區塊交接區域(Hand of Block,Hob),區塊交接區域為PEI階段所使用變量控制之方法。 Steps S11 and S12 are continued to proceed to step S13: determining whether the acquired data meets the set value of the motherboard, and if yes, applying the shared variable data; or step S14: determining whether the acquired data meets the set value of the motherboard, and if not, Use the system's default values. Before importing into the firmware volume boot block (FV BB), you must first confirm whether the variable data is created or not. If it exists, the variable data is copied to the Hand of Block (Hob), and the block handover area is the method of variable control used in the PEI stage.

當開始記憶體初始化時會先取得變量資料,若判斷 此資料符合此系統需求就會導入此變量資料,也就是系統所有硬體相關參數。反之若判斷此資料不符合此系統需求時,就會採用系統預設值來當輸入參數使用,完成啟動程序。 When the memory initialization is started, the variable data will be obtained first. If it is judged that the data meets the requirements of the system, the variable data will be imported, that is, all the hardware related parameters of the system. On the other hand, if it is judged that the data does not meet the requirements of the system, the system preset value is used to use the input parameter to complete the startup process.

請再參考圖3及圖4,接下來將說明新變量資料集的產生,即產生新的統一可延伸韌體介面(UEFI)韌體之流程。先透過一電腦平台視窗應用軟體的編輯器進行步驟S21:載入原生版的統一可延伸韌體介面(UEFI)韌體與可擴展標記語言(XML)之設定。此步驟定義編輯器所需參考之輸入參數,而其參數有兩個,第一個是前述UEFI韌體裝置100內原生版統一可延伸韌體介面(UEFI)韌體,第二個為可擴展標記語言(XML)的設定檔。前述中的”原生版”統一可延伸韌體介面(UEFI)韌體可以是”第一版統一可延伸韌體介面(UEFI)韌體”也可以是最接近新主機板所須驗證修改相關UEFI的設定或最接近類似新衍生系統的UEFI韌體裝置100內的UEFI韌體。 Referring again to Figures 3 and 4, the generation of a new variable data set, i.e., the process of generating a new Unified Extensible Firmware Interface (UEFI) firmware, will be described. First, through step S21 of the editor of a computer platform window application software, the settings of the native version of the Unified Extensible Firmware Interface (UEFI) firmware and Extensible Markup Language (XML) are loaded. This step defines the input parameters required by the editor, and there are two parameters. The first one is the native version of the Unified Extensible Firmware Interface (UEFI) firmware in the UEFI firmware device 100, and the second is scalable. Markup Language (XML) profile. The aforementioned "native" Unified Extensible Firmware Interface (UEFI) firmware may be "First Edition Unified Extensible Firmware Interface (UEFI) Firmware" or may be the closest to the new motherboard to verify the relevant UEFI. The setting is or closest to the UEFI firmware within the UEFI firmware device 100 similar to the new derivative system.

接下來透過視窗應用軟體的編輯器進行步驟S22:建立新的變量資料,新的變量資料內容包含新的全局唯一標識符(GUID)、變量名稱和數據(Data)的共用GUID(全局唯一標識符)與數據(Data)。透過編輯器由前步驟輸入之原生版統一可延伸韌體介面(UEFI)韌體裡面找出所有變量資料的存在,而所有變量資料皆存放在該UEFI韌體裝置100的非揮發性記憶體空間(NVRAM)130裡面,也就是必須從這非揮發性記憶體空間(NVRAM)130內找出存放最後一筆的變量資料。 Next, through step S22 of the window application software, a new variable data is created, and the new variable data content includes a new global unique identifier (GUID), a variable name, and a shared GUID of the data (data). ) with data (Data). The presence of all variable data is found in the native version of the Unified Extensible Firmware Interface (UEFI) firmware entered in the previous step through the editor, and all variable data is stored in the non-volatile memory space of the UEFI firmware device 100. Inside (NVRAM) 130, it is necessary to find the variable data of the last token from the non-volatile memory space (NVRAM) 130.

接下來透過視窗應用軟體的編輯器進行步驟S23:套用可擴展標記語言(XML)之設定於新變量資料。透過編輯器的編譯將步驟22所帶到的新的變量資料導入加到此最後一筆變量資料的後面,而加入的此共用變量資料部分即含全局唯一標識符 (GUID)、變量名稱與數據(Data),而所有變量資料即由可擴展標記語言(XML)之設定檔所取得。也就是讓新版的統一可延伸韌體介面(UEFI)韌體動態新增共用之變量資料於此新韌體內。 Next, step S23 is performed through the editor of the window application software: the setting of the Extensible Markup Language (XML) is set to the new variable data. Through the compilation of the editor, the new variable data imported in step 22 is added to the last variable data, and the shared variable data part is included with the global unique identifier (GUID), variable name and data ( Data), and all variable data is obtained from the Extensible Markup Language (XML) profile. That is to say, the new version of the Unified Extensible Firmware Interface (UEFI) firmware dynamically adds the shared variable data to this new firmware.

最後如步驟S24:產生一新版UEFI韌體裝置200。載入新的共用變量資料的非揮發性記憶體空間(NVRAM)130將與前述載有原生版的統一可延伸韌體介面(UEFI)韌體的UEFI韌體裝置100不同,而更新生成為新版UEFI韌體裝置200,如圖4中加入新變量資料300至該UEFI韌體裝置100的非揮發性記憶體空間(NVRAM)130後,使得該UEFI韌體裝置100將形成為含有新變量資料的新版UEFI韌體裝置200。 Finally, as in step S24: a new version of the UEFI firmware device 200 is generated. The non-volatile memory space (NVRAM) 130 loaded with the new shared variable data will be different from the aforementioned UEFI firmware device 100 carrying the native version of the Unified Extensible Firmware Interface (UEFI) firmware, and the update is generated as a new version. The UEFI firmware device 200, after adding the new variable data 300 to the non-volatile memory space (NVRAM) 130 of the UEFI firmware device 100, causes the UEFI firmware device 100 to be formed to contain new variable data. New version of UEFI firmware device 200.

也就是說,該新版UEFI韌體裝置200內的軔體將是包含原生版的統一可延伸韌體介面(UEFI)韌體與可擴展標記語言(XML)設定檔所結合新版的統一可延伸韌體介面(UEFI)韌體。最後使用者即可以使用該新版UEFI韌體裝置200內新的統一可延伸韌體介面(UEFI)韌體導入到新的系統或是衍生系統上面來做UEFI的開機流程運作。 That is to say, the new UEFI firmware device 200 will be a unified version of the new version of the Unified Extensible Firmware Interface (UEFI) firmware and the Extensible Markup Language (XML) profile. Body Interface (UEFI) firmware. Finally, the user can use the new Unified Extensible Firmware Interface (UEFI) firmware in the new UEFI firmware device 200 to import into the new system or the derivative system to perform the UEFI boot process.

在新的統一可延伸韌體介面(UEFI)韌體的應用情況下,相似於前述圖2中的原生版UEFI韌體運作之流程,再判斷取得的變量資料(包括原生版的變量資料及新加入的變量資料)是否與符合主機板設定值,如果符合則套用前述修改的變量資料;如果不符合則採用系統預設值。計藉由新修改的變量資料在韌體空間開機區塊(Firmware Volume Boot Block,FV BB)前,必須先確認變量資料是否有被建立也就是說是否存在。若存在則將變量資料複製到區塊交接區域(Hand of Block,Hob),區塊交接區域為PEI階段所使用變量控制之方法。 In the case of the application of the new Unified Extensible Firmware Interface (UEFI) firmware, similar to the process of the native UEFI firmware operation in Figure 2 above, the variable data obtained (including the original version of the variable data and the new Whether the added variable data) matches the set value of the motherboard, if it is met, the variable data of the above modification is applied; if it is not, the system preset value is adopted. Before the firmware variable boot block (FV BB) is updated by the newly modified variable data, it must be confirmed whether the variable data is created or not. If it exists, the variable data is copied to the Hand of Block (Hob), and the block handover area is the method of variable control used in the PEI stage.

當開始記憶體初始化時會先取得變量資料,若判斷 此資料符合此系統需求就會導入此變量資料,也就是系統所有硬體相關參數。反之若判斷此資料不符合此系統需求時,就會採用系統預設值來當輸入參數使用。 When the memory initialization is started, the variable data will be obtained first. If it is judged that the data meets the requirements of the system, the variable data will be imported, that is, all the hardware related parameters of the system. On the other hand, if it is judged that this data does not meet the requirements of this system, the system preset value will be used as the input parameter.

以下為本發明以實作目標為系統記憶體參數之修改設定實施例,主機板的主要參數有Reference Board ID/Data Width/Channel 1 Rank 0 Enable/Channel 1 Rank 1 Enable/Slot Density/DRAM Frequency Lo/DRAM Frequency Hi/DVFS Enable/DRAM Type/Memory Down/Slot Bus Width/DRAM Speed Grade。(Reference Board ID:參考板ID/Data Width:資料寬度(x8,x16,x32)/Channel 1 Rank 0 Enable:通道1容量0開啟/Channel 1 Rank 1 Enable:通道1容量1開啟/Slot Density:槽密度(1Gbit,2Gbit,4Gbit,8Gbit,16Gbit)/DRAM Frequency Lo:記憶體最低速(1066MHz)/DRAM Frequency Hi:記憶體最高速(1600MHz)/DVFS Enable:動態電壓頻率調整/DRAM Type:記憶體類別(DDR3L,LPDDR3)/Memory Down:嵌入式記憶體/Slot Bus Width:槽通道寬度(32bits,64bits)/DRAM Speed Grade:記憶體速度階層(Fast,Typical,Slow,Slow Slow))。 The following is an embodiment of the invention for modifying the setting of the system memory parameters. The main parameters of the motherboard are Reference Board ID/Data Width/Channel 1 Rank 0 Enable/Channel 1 Rank 1 Enable/Slot Density/DRAM Frequency Lo /DRAM Frequency Hi/DVFS Enable/DRAM Type/Memory Down/Slot Bus Width/DRAM Speed Grade. (Reference Board ID: Reference Board ID/Data Width: Data Width (x8, x16, x32)/Channel 1 Rank 0 Enable: Channel 1 Capacity 0 On / Channel 1 Rank 1 Enable: Channel 1 Capacity 1 On / Slot Density: Slot Density (1Gbit, 2Gbit, 4Gbit, 8Gbit, 16Gbit)/DRAM Frequency Lo: Memory minimum speed (1066MHz) / DRAM Frequency Hi: Memory maximum speed (1600MHz) / DVFS Enable: Dynamic voltage frequency adjustment / DRAM Type: Memory Category (DDR3L, LPDDR3)/Memory Down: Embedded Memory/Slot Bus Width: Slot channel width (32bits, 64bits) / DRAM Speed Grade: Fast, Typical, Slow, Slow Slow).

編輯器內的可擴展標記語言(XML)之設定片段內容如下: The set content of the Extensible Markup Language (XML) in the editor is as follows:

假設實施上系統A所需之記憶體設定為Reference Board ID=1,DRAM Frequency Hi:1066MHz,DRAM Type:LPDDR3...等,當此相關變量資料加入至新版UEFI韌體裝置200的新版的統一可延伸韌體介面(UEFI)韌體時,系統A即會判斷Reference Board ID是否為1,是的話就會導入上列新的相關變量資料設定,若不是的話則會載入含原生版的統一可延伸韌體介面(UEFI)韌體之預設值。如前述可擴展標記語言(XML)之設定片段內容Reference Board ID(參考板ID)的數據(Data)為3,所以不會導入上列新的相關變量資料設定,而是載入含原生版的統一可延伸韌 體介面(UEFI)韌體之預設值。 Assume that the memory required for implementing System A is set to Reference Board ID=1, DRAM Frequency Hi: 1066MHz, DRAM Type: LPDDR3, etc., when this relevant variable data is added to the new version of the new version of UEFI firmware device 200. When the Extendable Firmware Interface (UEFI) firmware is implemented, System A will judge whether the Reference Board ID is 1, and if so, it will import the new related variable data settings. If not, it will load the unified version with the original version. Preset value for the Extendable Firmware Interface (UEFI) firmware. As shown in the above Extensible Markup Language (XML), the data (Data) of the Reference Board ID (Reference Board ID) is 3, so the new related variable data settings are not imported, but the original version is loaded. The default value of the Unified Extensible Firmware Interface (UEFI) firmware.

惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。 The above is only the preferred embodiment of the present invention, and the scope of the invention is not limited thereto, that is, the simple equivalent changes and modifications made by the scope of the invention and the description of the invention are All remain within the scope of the invention patent.

Claims (4)

一種產生新版統一可延伸韌體介面軔體之方法,其包括:先建立一原生版統一可延伸韌體介面(UEFI)韌體為基底,同時創建出共用之變量資料於該原生版統一可延伸韌體介面(UEFI)韌體內;產生新版軔體時,透過一電腦平台視窗應用軟體的編輯器載入前述原生版的統一可延伸韌體介面(UEFI)韌體及一可擴展標記語言(XML)之設定檔;及透過編輯器的編譯將可擴展標記語言(XML)之設定檔內共用之變量資料導入加到該原生版統一可延伸韌體介面(UEFI)韌體內,藉此讓統一可延伸韌體介面(UEFI)韌體動態新增共用之變量資料於此韌體檔案內,產生包含原生版的統一可延伸韌體介面(UEFI)韌體與可擴展標記語言(XML)設定檔所結合的新版統一可延伸韌體介面(UEFI)韌體。  A method for generating a new version of a unified extendable firmware interface body, comprising: first establishing a native version of the Unified Extensible Firmware Interface (UEFI) firmware as a base, and simultaneously creating a shared variable data for the native version to be uniformly extendable Firmware Interface (UEFI) firmware; when creating a new version of the carcass, load the native version of the Unified Extensible Firmware Interface (UEFI) firmware and an Extensible Markup Language (XML) through a computer platform software application editor. The configuration file; and the compiler's compilation to import the variable data shared in the Extensible Markup Language (XML) profile into the native version of the Unified Extensible Firmware Interface (UEFI) firmware, thereby enabling unification The Extended Firmware Interface (UEFI) firmware dynamically adds the shared variable data to this firmware file to generate a Unified Extensible Firmware Interface (UEFI) Firmware and Extensible Markup Language (XML) profile containing the native version. A new version of the Unified Extensible Firmware Interface (UEFI) firmware.   如申請專利範圍第1項所述之方法,其中,所述變量資料是由全局唯一標識符(GUID)、變量名稱和數據(Data)所形成。  The method of claim 1, wherein the variable data is formed by a globally unique identifier (GUID), a variable name, and data (Data).   如申請專利範圍第2項所述之方法,其中,該可擴展標記語言(XML)之設定檔內共用之變量資料導入加到該原生版統一可延伸韌體介面(UEFI)韌體內最後一筆變量資料的後面。  The method of claim 2, wherein the variable data imported in the Extensible Markup Language (XML) profile is added to the last variable of the native unified extendable firmware interface (UEFI) firmware. Behind the information.   如申請專利範圍第3項所述之方法,其中,該可擴展標記語言(XML)之設定檔內共用之變量資料將被導入到一統一可延伸韌體介面的非揮發性記憶體空間(NVRAM)。  The method of claim 3, wherein the variable data shared in the Extensible Markup Language (XML) profile is imported into a non-volatile memory space (NVRAM) of a unified extendable firmware interface. ).  
TW106105719A 2017-02-21 2017-02-21 A New Way to Create Unified Extensible Firmware Interfaces TWI601072B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW106105719A TWI601072B (en) 2017-02-21 2017-02-21 A New Way to Create Unified Extensible Firmware Interfaces

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106105719A TWI601072B (en) 2017-02-21 2017-02-21 A New Way to Create Unified Extensible Firmware Interfaces

Publications (2)

Publication Number Publication Date
TWI601072B TWI601072B (en) 2017-10-01
TW201832078A true TW201832078A (en) 2018-09-01

Family

ID=61011108

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106105719A TWI601072B (en) 2017-02-21 2017-02-21 A New Way to Create Unified Extensible Firmware Interfaces

Country Status (1)

Country Link
TW (1) TWI601072B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI822973B (en) * 2020-03-09 2023-11-21 系微股份有限公司 Construct BIOS information processing system and information processing method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI748241B (en) * 2019-09-12 2021-12-01 神雲科技股份有限公司 Debug message automatically providing method of bios
CN113672477A (en) * 2020-05-15 2021-11-19 佛山市顺德区顺达电脑厂有限公司 Automatic debugging message providing method for basic input output system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI227443B (en) * 2003-04-16 2005-02-01 Insyde Software Corp A resource compatible system for EFI (extensible firm interface) and BIOS (basic input/output system)
US7191328B2 (en) * 2004-07-20 2007-03-13 Hewlett-Packard Development Company, L.P. System and method for using an extensible firmware interface (EFI) utility to build an EFI layer between an operating system and a legacy basic input/output system during a boot process
TWI273482B (en) * 2005-05-02 2007-02-11 Insyde Software Corp Driver loading method for extensible firmware interface
US7484083B1 (en) * 2005-10-07 2009-01-27 American Megatrends, Inc. Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment
US11194586B2 (en) * 2013-05-01 2021-12-07 Insyde Software Corp. Secure boot override in a computing device equipped with unified-extensible firmware interface (UEFI)-compliant firmware
TWI493463B (en) * 2013-10-30 2015-07-21 Insyde Software Corp Electronic device, universal extension firmware interface Basic input and output system firmware update method, recording media and computer program products
TWI480802B (en) * 2013-11-18 2015-04-11 Insyde Software Corp Platform system, universal extension firmware interface Basic input and output system Support for hardware configuration changes, recording media and computer program products

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI822973B (en) * 2020-03-09 2023-11-21 系微股份有限公司 Construct BIOS information processing system and information processing method

Also Published As

Publication number Publication date
TWI601072B (en) 2017-10-01

Similar Documents

Publication Publication Date Title
US9501289B2 (en) Method of a UEFI firmware and computer system thereof
TWI601072B (en) A New Way to Create Unified Extensible Firmware Interfaces
JP2011118900A (en) Method, device and computer program for accelerating start-up time of system
WO2023070823A1 (en) Bootloader loading method, apparatus and system, electronic device and medium
US10664598B1 (en) Firmware security patch deployment
US10025587B2 (en) Method of bootup and installation, and computer system thereof
US10402204B1 (en) Multi-platform firmware support
US9513762B1 (en) Static content updates
CN107135462B (en) Bluetooth pairing method of UEFI firmware and computing system thereof
US9672047B1 (en) Systems and methods for accessing a bootable partition on a serial peripheral interface device
JPWO2013088818A1 (en) Virtual computer system, virtualization mechanism, and data management method
JP5401561B2 (en) Application of platform-dependent routines within a virtual mechanism by embedding native code in a class file
US10185573B2 (en) Caching based operating system installation
US11663020B2 (en) Bootstrapping frameworks from a generated static initialization method for faster booting
JP7102524B2 (en) Firmware release of multiple binary images
TW201246068A (en) Methods and systems for mapping a function pointer to the device code
US10540151B1 (en) Graphical customization of a firmware-provided user interface (UI)
US11120166B1 (en) Generation of a firmware configured for use in restricting the use of a firmware tool
US11106457B1 (en) Updating firmware runtime components
US11200203B1 (en) Accessing files stored in a firmware volume from a pre-boot application
US7873807B1 (en) Relocating a program module from NVRAM to RAM during the PEI phase of an EFI-compatible firmware
US7757030B2 (en) Simulating hardware dynamic partitioning capabilities
US9778936B1 (en) Booting a computing system into a manufacturing mode
WO2019100704A1 (en) Starting method for multi-mode iot device, multi-mode iot device, and storage medium
CN113646745A (en) Disabling software persistence

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees