TWI754317B - Method and system for optimal boot path for a network device - Google Patents

Method and system for optimal boot path for a network device Download PDF

Info

Publication number
TWI754317B
TWI754317B TW109122795A TW109122795A TWI754317B TW I754317 B TWI754317 B TW I754317B TW 109122795 A TW109122795 A TW 109122795A TW 109122795 A TW109122795 A TW 109122795A TW I754317 B TWI754317 B TW I754317B
Authority
TW
Taiwan
Prior art keywords
post
hardware components
boot
computing device
hardware
Prior art date
Application number
TW109122795A
Other languages
Chinese (zh)
Other versions
TW202136996A (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 廣達電腦股份有限公司
Publication of TW202136996A publication Critical patent/TW202136996A/en
Application granted granted Critical
Publication of TWI754317B publication Critical patent/TWI754317B/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2294Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Abstract

A system and method for providing multiple options for booting-up a remote computing device is disclosed. The system has a remote management station, in network communication with a computing device. The computing device has hardware components and a Unified Extensible Firmware Interface (UEFI) basic input output system (BIOS), including multiple power-on self-test (POST) routines. A controller is in communication with the UEFI BIOS and in network communication with the remote management station. The controller receives a selection of one of the plurality of POST routines from the management station. The controller boots up the computing device with the selected POST routine. The POST routines include a normal POST and other specialized routines such as a fast boot option, a safety boot option, a diagnostic boot option and a factory boot option.

Description

用於網路裝置之最佳啟動路徑之方法和系統 Method and system for optimal boot paths for network devices

本發明有關於一種用於計算裝置的啟動程序。更具體地,本發明有關一種系統,其包括多個啟動選項可繞過所選擇的模組以促進網路裝置的快速開機。 The present invention relates to a startup program for a computing device. More particularly, the present invention relates to a system that includes a plurality of boot options to bypass selected modules to facilitate fast booting of network devices.

伺服器被大量用於高需求的應用上,例如基於網路的系統或資料中心上。用於計算應用的雲端應用(cloud)的出現增加了對資料中心的需求。資料中心有許多伺服器,其儲存資料並運行由計算裝置使用者透過遠端連接存取的應用程序。典型的資料中心具有物理機架結構,並有相應的電源和通訊連接。每個機架可以容納多個計算伺服器和儲存伺服器。 Servers are heavily used in high-demand applications such as web-based systems or data centers. The advent of cloud applications for computing applications has increased the demand for data centers. A data center has many servers that store data and run applications that are accessed by users of computing devices over remote connections. A typical data center has a physical rack structure with corresponding power and communication connections. Each rack can hold multiple compute and storage servers.

資料中心的伺服器為企業提供了許多服務,包括執行應用程序、提供虛擬化服務以及促進互聯網商務。隨著公司越來越依賴資料中心伺服器的這些服務,穩定的正常運行時間變得越來越重要和有價值。伺服器停機時,生產力會降低或完全停止,從而降低企業的盈利能力。儘管資料中心管理員會採取一切預防措施來防止因伺服器 故障而中斷服務,但是伺服器停機時間的問題很難完全消除。伺服器停機的主要原因可能包括伺服器硬體故障、進行硬體升級、進行軟體升級以及網路攻擊引起的事故或伺服器維護。考慮到大量停機的潛在高成本和破壞性成本,資料中心管理通常會制定計劃來應對伺服器停機,並針對停機原因定制不同的突發事件。但是,在恢復伺服器時,必須重新啟動每個伺服器。通常每個伺服器會通過開機自檢(power-on self-test,POST)程序進行開機以開始運行。在計算機系統(例如伺服器上的處理器核心)的POST程序期間,處理器核心執行基本輸入輸出系統(basic input output system,BIOS),以初始化伺服器的硬體。重新啟動的過程會花費大量時間,特別是由於諸如軟體或硬體升級之類的原因使多個伺服器停機時更是如此。 Servers in data centers provide businesses with many services, including executing applications, providing virtualization services, and facilitating Internet commerce. As companies increasingly rely on these services from data center servers, stable uptime becomes increasingly important and valuable. When servers are down, productivity is reduced or stopped altogether, reducing the profitability of the business. Although data center administrators take all precautions to prevent Failure to interrupt service, but the problem of server downtime is difficult to completely eliminate. The main reasons for server downtime may include server hardware failures, hardware upgrades, software upgrades, and incidents or server maintenance caused by cyber attacks. Considering the potentially high and disruptive cost of mass downtime, data center management often develops plans to deal with server downtime and tailors different contingencies to the cause of the downtime. However, when restoring servers, each server must be restarted. Typically, each server is powered on through a power-on self-test (POST) procedure to begin operation. During the POST procedure of a computer system (eg, a processor core on a server), the processor core executes a basic input output system (BIOS) to initialize the server's hardware. The process of restarting can take a lot of time, especially when multiple servers are down for reasons such as software or hardware upgrades.

因此,需要一種系統,此系統包括啟動選項(boot option),以消除某些不必要的過程以加速啟動路徑的POST程序。也需要一種啟動選項,此選項允許透過帶內(in-band)和帶外(out-of-band)對伺服器進行診斷。還需要為資料中心、工廠或服務中心中常見的方案提供不同的啟動選項。 Therefore, there is a need for a system that includes a boot option to eliminate certain unnecessary processes to speed up the POST procedure of the boot path. There is also a need for an enable option that allows diagnostics for the server both in-band and out-of-band. There is also a need to provide different startup options for scenarios commonly found in data centers, factories, or service centers.

根據本發明之一實施例,揭露一種用於啟動一遠端計算裝置之提供多個選項的系統和方法。系統具有一遠端管理站、一網路以及一計算裝置。網路與遠端管理站通訊。計算裝置具有多個硬體組件和一統一可延伸韌體界面(unified extensible firmware interface, UEFI)基本輸入輸出系統(BIOS)。UEFI BIOS包括多個開機自檢(POST)程序。控制器與UEFI BIOS通訊,並與遠端管理站進行網路通訊。控制器用以從管理站接收多個POST程序之一的一選擇。控制器用以利用選擇的POST程序來啟動計算裝置。POST程序包括一一般POST程序、一前可延伸韌體介面(pre-extensible firmware interface,pre-EFI)初始化環境階段、一驅動程序執行環境階段、一啟動裝置選擇階段及一暫態系統載入階段。一般POST程序具有一安全階段。pre-EFI初始化環境階段用於初始化和配置計算裝置的硬體組件。POST程序更包括一第二不同的POST程序。 According to one embodiment of the present invention, a system and method for enabling a remote computing device to provide multiple options is disclosed. The system has a remote management station, a network and a computing device. The network communicates with the remote management station. The computing device has multiple hardware components and a unified extensible firmware interface (unified extensible firmware interface, UEFI) Basic Input Output System (BIOS). UEFI BIOS includes several power-on self-test (POST) procedures. The controller communicates with UEFI BIOS and network communication with remote management station. The controller is used to receive a selection of one of a plurality of POST procedures from the management station. The controller is used to start the computing device using the selected POST procedure. The POST procedure includes a general POST procedure, a pre-extensible firmware interface (pre-EFI) initialization environment stage, a driver execution environment stage, a boot device selection stage, and a transient system loading stage . A typical POST procedure has a security phase. The pre-EFI initialization environment phase is used to initialize and configure the hardware components of the computing device. The POST procedure further includes a second different POST procedure.

在一實施例中,控制器為一基板管理控制器。另一實施例中,計算裝置為一伺服器。在另一實施例中,管理站通過計算裝置的帶內通訊發送POST程序之選擇。另一實施例中,管理站通過計算裝置的帶外通訊發送POST程序之選擇。另一實施例中,通過UEFI變數進行選擇。另一實施例中,第二POST程序為一快速啟動,其包括繞過計算裝置的至少某些硬體組件的初始化和配置、以及使用來自一般POST程序的持續性記憶體中儲存的資料結構來恢復計算裝置的暫存器。另一實施例中,第二個POST程序為一安全啟動,其包括讀取故障的硬體組件的評估報告,以確定有功能的硬體組件、禁用故障的硬體組件、以及初始化有功能的硬體組件。另一實施例中,第二個POST程序是工廠供應啟動,其包括載入一韌體配置、禁用一糾錯機制、以及對硬體組件執行壓力測試。另一實施例中,第二POST程序為一診斷選項,其包括從計算裝置的安全測試中收集除錯訊息、以及 收集硬體組件的硬體錯誤狀態資料。另一實施例中,除錯訊息是由與一聯合測試工作群組(joint test action group,JTAG)掃描鏈連接之一JTAG主機所產生。 In one embodiment, the controller is a baseboard management controller. In another embodiment, the computing device is a server. In another embodiment, the management station sends the selection of the POST procedure via in-band communication of the computing device. In another embodiment, the management station sends the selection of the POST procedure via out-of-band communication from the computing device. In another embodiment, selection is made through UEFI variables. In another embodiment, the second POST procedure is a fast boot that includes bypassing initialization and configuration of at least some hardware components of the computing device and using data structures stored in persistent memory from the normal POST procedure to Restore the scratchpad of the computing device. In another embodiment, the second POST procedure is a secure boot that includes reading the evaluation report of the failed hardware component to determine a functional hardware component, disabling the failed hardware component, and initializing a functional hardware component. hardware components. In another embodiment, the second POST procedure is a factory provisioning start, which includes loading a firmware configuration, disabling an error correction mechanism, and performing a stress test on hardware components. In another embodiment, the second POST procedure is a diagnostic option that includes collecting debug messages from a security test of the computing device, and Collects hardware error status data for hardware components. In another embodiment, the debug messages are generated by a JTAG host connected to a joint test action group (JTAG) scan chain.

根據本發明之另一實施例,提供一種用於計算機裝置之選擇一啟動程序的方法。通過一網路從一遠端管理站傳輸多個開機自檢(POST)程序之一的一選擇至一計算裝置。計算裝置包括一控制器、多個硬體組件和一統一可延伸韌體介面(UEFI)基本輸入輸出系統(BIOS),UEFI BIOS包括多個POST程序。從控制器上的遠端管理站接收多個POST程序之一的選擇。使用選擇的POST程序啟動計算裝置。多個POST程序包括一一般POST程序、一pre-EFI初始化環境階段、一驅動程序執行環境階段、一開機裝置選擇階段及一暫態系統載入階段。一般POST程序具有一安全階段。pre-EFI初始化環境階段用於初始化和配置計算裝置的硬體組件。多個POST程序更包括一第二不同的POST程序。 According to another embodiment of the present invention, a method for selecting a startup program for a computer device is provided. A selection of one of a plurality of power-on self-test (POST) procedures is transmitted over a network from a remote management station to a computing device. The computing device includes a controller, a plurality of hardware components, and a Unified Extensible Firmware Interface (UEFI) Basic Input Output System (BIOS). The UEFI BIOS includes a plurality of POST programs. Receive a selection of one of several POST procedures from a remote management station on the controller. The computing device is powered on using the POST procedure of choice. The plurality of POST procedures include a general POST procedure, a pre-EFI initialization environment stage, a driver execution environment stage, a boot device selection stage, and a transient system loading stage. A typical POST procedure has a security phase. The pre-EFI initialization environment phase is used to initialize and configure the hardware components of the computing device. The plurality of POST procedures further includes a second different POST procedure.

在一實施例中,控制器為一基板管理控制器,且計算裝置為一伺服器。另一實施例中,POST程序的選擇是通過計算裝置之一帶內通訊來發送。另一實施例中,POST程序的選擇是通過計算裝置的一帶外通訊來發送。另一實施例中,通過設定一UEFI變數進行選擇。另一實施例中,第二POST程序為一快速啟動,其包括繞過計算裝置的至少某些硬體組件的初始化和配置、以及使用來自一般POST程序的持續性記憶體中儲存的資料結構來恢復計算裝置的暫存器。另一實施例中,第二個POST程序為一安全啟動,其包括讀取故障的硬 體組件的評估報告,以確定有功能的硬體組件、禁用故障的硬體組件、以及初始化有功能的硬體組件。另一實施例中,第二個POST程序為工廠供應啟動,其包括載入一韌體配置、禁用一糾錯機制、以及對硬體組件執行壓力測試。另一實施例中,第二POST程序為一診斷選項,其包括從計算裝置的安全測試中收集除錯訊息、以及收集硬體組件的硬體錯誤狀態資料。 In one embodiment, the controller is a baseboard management controller and the computing device is a server. In another embodiment, the selection of the POST procedure is sent via in-band communication with one of the computing devices. In another embodiment, the selection of the POST procedure is sent via out-of-band communication of the computing device. In another embodiment, the selection is made by setting a UEFI variable. In another embodiment, the second POST procedure is a fast boot that includes bypassing initialization and configuration of at least some hardware components of the computing device and using data structures stored in persistent memory from the normal POST procedure to Restore the scratchpad of the computing device. In another embodiment, the second POST procedure is a secure boot that includes a hard drive to read the failure. evaluation reports of the hardware components to determine functional hardware components, disable faulty hardware components, and initialize functional hardware components. In another embodiment, the second POST procedure is a factory supply start, which includes loading a firmware configuration, disabling an error correction mechanism, and performing a stress test on hardware components. In another embodiment, the second POST procedure is a diagnostic option that includes collecting debug messages from security testing of the computing device and collecting hardware error status data for hardware components.

以上發明內容並非旨在表示本發明的每個實施例或每個方面。而是,前述發明內容提供本文闡述一些新穎方面和特徵的示例。為了對本發明之上述特徵及優點及其他特徵及優點有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下。 The above summary is not intended to represent each embodiment or every aspect of the present invention. Rather, the foregoing summary provides examples of some of the novel aspects and features set forth herein. In order to have a better understanding of the above-mentioned features, advantages and other features and advantages of the present invention, embodiments are given below and described in detail with the accompanying drawings as follows.

100:啟動系統 100: Start the system

102:遠端伺服器管理和服務站 102: Remote Server Management and Service Station

104:網路 104: Internet

106:伺服器 106: Server

110:基板管理控制器(BMC) 110: Baseboard Management Controller (BMC)

112:網路介面控制器 112: Web Interface Controller

120:統一可延伸韌體介面(UEFI)基本輸入輸出系統(BIOS) 120: Unified Extensible Firmware Interface (UEFI) Basic Input Output System (BIOS)

130,132,134:硬體組件 130, 132, 134: Hardware Components

136:持續性記憶體 136: Persistent memory

140:作業系統(OS) 140: Operating System (OS)

142:通用序列匯流排(USB)埠 142: Universal Serial Bus (USB) port

200:示意圖 200: Schematic

210:安全階段 210: Security Phase

212:PEI階段 212: PEI stage

214:DXE階段 214: DXE stage

216:BDS階段 216: BDS Stage

218:TSL階段 218:TSL Stage

220:預驗證器 220: Pre-validator

222:Ucode修補 222: Ucode Patching

224:矽基安全程序 224: Silicon Security Program

230:UPI/XGMI拓撲發現過程 230:UPI/XGMI topology discovery process

232:起始記憶體參考代碼過程 232: Start memory reference code process

234:初始平台移植過程 234: Initial Platform Porting Process

240:裝置、匯流排或服務驅動程序 240: Device, bus or service driver

242:PCI掃描和資源分配過程 242: PCI scan and resource allocation process

244:創建啟動和運行時間服務過程 244: Create startup and runtime service procedures

246:發布ACPI和SMBIOS表過程 246: Publish ACPI and SMBIOS table procedures

250:啟動分配器過程 250: Start the dispenser process

252:掃描啟動載入器過程 252: Scan bootloader process

260:暫態作業系統啟動載入器過程 260: Transient operating system boot loader process

262:作業系統切換過程 262: Operating system switching process

300:BMC系統錯誤日誌文件 300: BMC system error log file

302記憶體錯誤糾正代碼(ECC) 302 Memory Error Correction Code (ECC)

304:CPU機器檢查異常錯誤(MCERR) 304: CPU machine check exception error (MCERR)

306:PCIe不可糾正 306: PCIe uncorrectable

308:高溫 308: high temperature

400:表 400: table

410:BIOS屬性註冊請求 410: BIOS attribute registration request

420:描述 420: Description

500:RESTful或IPMI通道 500: RESTful or IPMI channel

510:開啟待用電源 510: Turn on standby power

512:BMC啟動 512: BMC start

518:POST啟動 518:POST start

524:POST結束 524: POST end

514,516,520,522,526,528,610,612,614,616,618,620,622,624,626,628,630,632,634,640,644,646,648,650,652,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,810,812,814,816,818,820,822,824,826,828,910,912,914,916,918,920,922,924,930,932,934,936,938,940,942,944,946:步驟 514,516,520,522,526,528,610,612,614,616,618,620,622,624,626,628,630,632,634,640,644,646,648,650,652,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,810,812,814,816,818,820,822,824,826,828,910,912,914,916,918,920,922,924,930,932,934,936,938,940,942,944,946: Step

600,700,800,900:流程圖 600,700,800,900: Flowchart

為了對本發明之各方面有更佳的瞭解,以下將配合所附圖式詳細說明。須注意的是,這些附圖僅描繪了示例性實施例,因此不應視為對各種實施例或請求項的範圍的限制。 For a better understanding of various aspects of the present invention, the following detailed description will be provided with the accompanying drawings. It is to be noted that these drawings depict only exemplary embodiments and are therefore not to be considered limiting of the scope of the various embodiments or claims.

第1圖繪示根據本發明之一方面的具有啟動最佳化程序之系統之方塊圖。 Figure 1 shows a block diagram of a system with an activation optimization procedure in accordance with an aspect of the present invention.

第2圖繪示根據本發明之一方面的透過不同啟動路徑存取的不同功能之示意圖。 FIG. 2 illustrates a schematic diagram of different functions accessed through different activation paths in accordance with an aspect of the present invention.

第3圖繪示根據本發明之一方面的在診斷啟動程序期間的BMC和UEFI BIOS的功能之示意圖。 FIG. 3 illustrates a schematic diagram of the functionality of the BMC and UEFI BIOS during a diagnostic boot procedure according to an aspect of the present invention.

第4圖示出根據本發明之一方面的用於啟動路徑選項的Redfish JSON 資料的表。 Figure 4 shows Redfish JSON for boot path options according to an aspect of the present invention data table.

第5圖示出根據本發明之一方面的用於選擇的啟動路徑的POST程序的通訊流程之示意圖。 FIG. 5 shows a schematic diagram of the communication flow of the POST procedure for the selected startup path according to an aspect of the present invention.

第6圖示出根據本發明之一方面的一般和快速啟動POST程序選項的流程圖。 Figure 6 illustrates a flow diagram of general and quick start POST program options in accordance with an aspect of the present invention.

第7圖示出根據本發明之一方面的安全啟動POST程序選項的流程圖。 Figure 7 illustrates a flow diagram of a secure boot POST program option in accordance with an aspect of the present invention.

第8圖示出根據本發明之一方面的工廠供應POST程序選項的流程圖。 Figure 8 illustrates a flow diagram of a factory-supplied POST program option in accordance with an aspect of the present invention.

第9圖示出根據本發明之一方面的診斷啟動POST程序選項的流程圖。 Figure 9 illustrates a flow diagram of a diagnostic launch POST program option in accordance with an aspect of the present invention.

本發明可進行各種修改和替代形式。本發明已通過示例的方式在附圖中示出了一些代表性的實施例,並且在此將對其進行詳細描述。然而,應當理解的是,本發明並不限於所公開的特定形式。相反地,本發明將涵蓋由所附申請專利範圍所限定的本發明的精神和範圍內的所有修改、均等形式及替代形式。 The present invention is capable of various modifications and alternative forms. Some representative embodiments of this invention have been shown by way of example in the accompanying drawings and will now be described in detail. It should be understood, however, that the invention is not limited to the specific forms disclosed. On the contrary, this invention covers all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.

本發明可以許多不同的形式實施。代表性實施例在附圖中示出,並且將在本文中詳細描述。本公開用以示例或說明原理,並非將本公開限於所示出的實施例。例如在摘要、發明內容和實施方式部分中公開但在申請專利範圍中未明確提出的要素和限制,不應通過暗示、推論,單獨或共同地併入申請專利範圍中。為了本發明詳細描述的目的,除非特別聲明,否則單數包括複數,反之亦然。「包括」一詞的意思是「包括但不限於」。此外,在本文中可以使用諸如「大約」、「幾乎」、「實質上」、 「近似」等的近似詞來表示例如「在...處」、「鄰近...」或「在...附近」或「3-5%之內」或「在可接受的製造公差之內」或其任意的邏輯組合。 The present invention may be embodied in many different forms. Representative embodiments are shown in the accompanying drawings and will be described in detail herein. This disclosure is intended to illustrate or illustrate principles, and not to limit the disclosure to the embodiments shown. Elements and limitations, such as those disclosed in the Abstract, SUMMARY, and EMBODIMENT sections but not expressly set forth in the scope of the claims, should not be incorporated into the scope of the claims, either individually or collectively, by implication, inference. For the purposes of the detailed description of the present invention, unless specifically stated otherwise, the singular includes the plural and vice versa. The word "including" means "including but not limited to". In addition, terms such as "about", "almost", "substantially", Approximate words such as "approximately" to mean, for example, "at", "adjacent to" or "near" or "within 3-5%" or "within acceptable manufacturing tolerances" "within" or any logical combination thereof.

本發明公開的實施例包括一系統,其用於為伺服器的啟動路徑的開機自檢(POST)程序提供各種選項。各種選項包括通過繞過某些初始化步驟來減少POST程序時間的選項。各種選項更包括通過帶外啟動(out-of-band)之診斷程序,而無需更改伺服器的配置。 Embodiments disclosed herein include a system for providing various options for a power-on self-test (POST) procedure of a server's boot path. Various options include options to reduce POST procedure time by bypassing certain initialization steps. Options include out-of-band diagnostics without changing server configuration.

第1圖繪示啟動系統100,其允許伺服器的啟動路徑具有不同選項。啟動系統100包括一遠端伺服器管理和服務站102、一網路104以及一遠端計算裝置(例如一伺服器106)。遠端伺服器管理和服務站102可被資料中心操作員存取。遠端伺服器管理和服務站102允許資料中心操作員存取管理介面,以允許操作員通過帶外啟動來執行伺服器106的遠端診斷或設定啟動路徑策略,其如下所述。遠端伺服器管理和服務站102可以通過網路104產生用於伺服器106之啟動路徑的控制訊號。 FIG. 1 shows a startup system 100 that allows different options for the startup path of a server. The startup system 100 includes a remote server management and service station 102, a network 104, and a remote computing device (eg, a server 106). The remote server management and service station 102 is accessible to data center operators. The remote server management and service station 102 allows a data center operator to access a management interface to allow the operator to perform remote diagnostics of the server 106 or to set a boot routing policy through out-of-band boot, as described below. The remote server management and service station 102 may generate control signals for the activation path of the server 106 through the network 104 .

伺服器106包括一基板管理控制器(BMC)110。BMC 110包括一網路介面卡或一網路介面控制器112,其耦接到網路104。BMC 110耦接至一啟動韌體120,例如一統一可延伸韌體介面(UEFI)基本輸入輸出系統(BIOS)。伺服器106包括硬體組件130、132及134,其可執行諸如儲存、計算和切換的功能。例如,硬體組件130可為一中央處理器(CPU)。其他硬體組件132和134可為其他處理器、記憶體裝置、快速周邊組件互連(peripheral component interconnect express,PCIe)裝置插槽等。如第1圖所示,僅繪示三個硬體組件,可以理解的是,一典型的伺服器上可能有更多的硬體組件。在此實施例中,伺服器106包括一持續性記憶體136,例如一 快閃記憶體或一I2C EEPROM,其可以被分割用於不同用途,例如儲存UEFI BIOS 120。 The server 106 includes a baseboard management controller (BMC) 110 . The BMC 110 includes a network interface card or a network interface controller 112 , which is coupled to the network 104 . The BMC 110 is coupled to a boot firmware 120, such as a Unified Extensible Firmware Interface (UEFI) Basic Input Output System (BIOS). Server 106 includes hardware components 130, 132, and 134 that perform functions such as storage, computation, and switching. For example, the hardware component 130 may be a central processing unit (CPU). Other hardware components 132 and 134 may be other processors, memory devices, peripheral component interconnect express (PCIe) device slots, and the like. As shown in FIG. 1, only three hardware components are shown, and it is understood that there may be more hardware components on a typical server. In this embodiment, the server 106 includes a persistent memory 136, such as a Flash memory or an I2C EEPROM, which can be partitioned for different purposes, such as storing UEFI BIOS 120.

BMC 110讀取從遠端伺服器管理和服務站102獲得的啟動路徑的策略。啟動韌體120最佳化伺服器106的硬體組件(例如硬體組件130、132及134)的硬體初始化。BMC 110也可對伺服器106的硬體組件(例如硬體組件130、132及134)執行硬體診斷。BMC 110更可監視伺服器106的硬體組件(例如硬體組件130、132及134)的健康狀況。當啟動路徑的POST程序完成後,一作業系統(OS)140開始伺服器106的操作。伺服器106還包括一通用序列匯流排(USB)埠142。 The BMC 110 reads the policy for the activation path obtained from the remote server management and service station 102 . Startup firmware 120 optimizes hardware initialization of hardware components of server 106 (eg, hardware components 130 , 132 , and 134 ). BMC 110 may also perform hardware diagnostics on hardware components of server 106 (eg, hardware components 130 , 132 , and 134 ). BMC 110 may further monitor the health of hardware components of server 106 (eg, hardware components 130 , 132 , and 134 ). An operating system (OS) 140 starts the operation of the server 106 when the POST procedure of the startup path is completed. Server 106 also includes a Universal Serial Bus (USB) port 142 .

第2圖繪示從開機(Power-on)到平台初始化到啟動(Boot-up)的過渡期間的不同可用功能的示意圖200,其可以根據本發明實施例之啟動選項來實現。示意圖200示出啟動路徑的POST程序的不同序列階段。因此,第一行210代表一安全階段。第二行212代表一可延伸框架界面(EFI)初始化環境(PEI)階段。第三行214代表一驅動程序執行環境(DXE)階段。第四行216代表一啟動裝置選擇(BDS)階段。第五行218代表一暫態系統載入(TSL)階段。 FIG. 2 shows a schematic diagram 200 of different available functions during the transition from power-on to platform initialization to boot-up, which may be implemented according to the boot options of an embodiment of the present invention. Diagram 200 shows the different sequential stages of the POST procedure of the startup path. Thus, the first row 210 represents a security phase. The second row 212 represents an extensible framework interface (EFI) environment initialization (PEI) phase. The third row 214 represents a driver execution environment (DXE) stage. The fourth row 216 represents a Boot Device Selection (BDS) phase. The fifth row 218 represents a transient system load (TSL) phase.

安全階段210透過預驗證器(pre-verifier)220而被啟動。預驗證器220應用Ucode修補222並啟動矽基安全程序(silicon-based security routines)224。PEI階段212包括一UPI/XGMI拓撲發現過程(UPI/XGMI topology discovery process)230、一起始記憶體參考代碼過程232及一初始平台移植過程234。在此實施例中,某些啟動路徑選項可能會繞過記憶體參考代碼過程232。 The security phase 210 is initiated by a pre-verifier 220 . The pre-verifier 220 applies the Ucode patch 222 and enables silicon-based security routines 224. The PEI stage 212 includes a UPI/XGMI topology discovery process 230 , an initial memory reference code process 232 and an initial platform porting process 234 . In this embodiment, some boot path options may bypass the memory reference code process 232.

一組驅動程序240(例如裝置驅動程序、匯流排驅動程序或服務驅動程序)實現DXE階段214。每個驅動程序按序列執行直到DXE階段214結束。此階段包括一PCI掃描和資源分配過程242、一創建啟動和運行時間服務過程244以及一發布ACPI和SMBIOS表過程246。所有的過程242、244和246可能會被某些啟動路徑選項所繞過。 A set of drivers 240 (eg, device drivers, bus drivers, or service drivers) implements the DXE stage 214 . Each driver is executed in sequence until the end of the DXE stage 214. This phase includes a PCI scan and resource allocation process 242, a create startup and runtime services process 244, and a publish ACPI and SMBIOS table process 246. All processes 242, 244 and 246 may be bypassed by certain boot path options.

啟動裝置選擇階段216包括一啟動分配器過程250及一掃描啟動載入器過程252。暫態系統載入(TSL)階段218包括一暫態作業系統啟動載入器過程260及一作業系統切換過程262。在暫態系統載入階段218結束時,將控制移交給OS啟動載入器(例如Linux GRUB),且作業系統140啟動並開始。 Boot device selection phase 216 includes a boot allocator process 250 and a scan boot loader process 252 . Transient system load (TSL) phase 218 includes a transient OS boot loader process 260 and an OS switch process 262 . At the conclusion of the transient system loading phase 218, control is transferred to an OS boot loader (eg, Linux GRUB), and the operating system 140 is booted and started.

本發明之實施例提供了POST啟動路徑的多個選項,每個選項具有不同的POST程序。在實施例中,POST啟動路徑選項包括一一般啟動選項、一快速啟動選項、一安全啟動選項、一工廠供應選項及一硬體診斷選項。這些選項可通過帶內實施存取伺服器106上的OS 140的應用程序來操作。應用程序將允許操作員為伺服器106選擇啟動選項。這些選項也可以通過帶外實施透過網路104從伺服器106的BMC 110接收命令來操作。快速啟動和安全啟動選項繞過了第2圖所示的某些過程,以增加啟動操作的速度。 The embodiment of the present invention provides multiple options of the POST startup path, and each option has a different POST procedure. In an embodiment, the POST boot path options include a general boot option, a fast boot option, a secure boot option, a factory-supplied option, and a hardware diagnostic option. These options may be manipulated by applications that access OS 140 on server 106 through an in-band implementation. The application will allow the operator to select startup options for the server 106 . These options can also be manipulated by an out-of-band implementation that receives commands from the BMC 110 of the server 106 over the network 104 . The Fast Boot and Safe Boot options bypass some of the processes shown in Figure 2 to increase the speed of the boot operation.

舉例來說,快速啟動選項提供了最短的POST時間來啟動進入作業系統(OS)140,並使網路裝置(例如第1圖中的伺服器106)能夠運行。硬體組件的某些初始化和配置會被繞過。如果伺服器106上沒有硬體更改,則由UEFI BIOS 120恢復設定。例如,如果軟體修補被加到OS 140,則 伺服器將重新啟動。重新啟動之程序可以跳過不必要的硬體組件初始化而恢復硬體設定。 For example, the fast boot option provides the shortest POST time to boot into the operating system (OS) 140 and enable a network device (eg, server 106 in FIG. 1 ) to run. Some initialization and configuration of hardware components is bypassed. If there are no hardware changes on the server 106, the UEFI BIOS 120 restores the settings. For example, if software patching is added to OS 140, then The server will restart. The restart procedure can skip unnecessary initialization of hardware components and restore hardware settings.

在硬體診斷選項中,UEFI BIOS 120和基板管理控制器(BMC)110負責對第1圖中的伺服器106進行故障排除和報告資訊。在此選項中,沒有任何軟體配置或硬體配置被更改,因此診斷選項對資料中心環境的影響很小。 Among the hardware diagnostic options, UEFI BIOS 120 and Baseboard Management Controller (BMC) 110 are responsible for troubleshooting and reporting information to server 106 in FIG. 1 . In this option, no software configuration or hardware configuration is changed, so the diagnostic option has little impact on the data center environment.

第3圖是在硬體診斷啟動過程期間之伺服器106的組件的作用示意圖。當伺服器106開機時,UEFI BIOS 120執行POST包(POST package)修復、啟用韌體除錯訊息,並檢測輸入/輸出速度和鏈接寬度。BMC 110檢查硬碟驅動程序和背板組件的健康狀況。BMC 110識別伺服器106上所有韌體的版本。BMC 110轉存伺服器106的CPU錯誤暫存器。BMC 110檢查伺服器106的溫度資料、風扇速度和電壓。 FIG. 3 is a schematic diagram of the functioning of the components of the server 106 during the hardware diagnostic start-up process. When server 106 is powered on, UEFI BIOS 120 performs POST package repair, enables firmware debug messages, and detects input/output speed and link width. The BMC 110 checks the health of hard disk drivers and backplane components. The BMC 110 identifies all firmware versions on the server 106 . The BMC 110 dumps the CPU error register of the server 106 . The BMC 110 checks the server 106 temperature data, fan speed and voltage.

在開機並執行上述初始功能後,UEFI BIOS 120從BMC 110的USB埠載入ISO映像。這是BMC 110的特殊功能,它可以模擬USB埠(通過在主機USB埠142和BMC埠之間鏈接連接)作為標準USB可啟動映像。例如,ISO映像可以儲存在插入USB埠142的USB相容之記憶體裝置中。此ISO可啟動映像可以包含嵌入式Linux OS+除錯工具+腳本文件。因此,UEFI BIOS 120可以將ISO映像識別為與其他USB鏈接的可啟動裝置相同。可以從USB埠啟動ISO映像,以從嵌入式Linux OS中執行腳本文件。UEFI BIOS 120運行啟動診斷作業系統並運行腳本文件。UEFI BIOS 120向伺服器施加壓力並收集BMC系統錯誤日誌文件300。系統錯誤日誌文件300可以包括由UEFI BIOS 120確定的項目,例如一記憶體錯誤糾正代碼(ECC)項目302、一CPU 機器檢查異常(MCERR)錯誤項目304,一PCIe不可糾正項目306或一高溫項目308。 After booting up and performing the above-mentioned initial functions, the UEFI BIOS 120 loads the ISO image from the USB port of the BMC 110 . This is a special feature of the BMC 110, which can emulate a USB port (by linking between the host USB port 142 and the BMC port) as a standard USB bootable image. For example, the ISO image can be stored on a USB compatible memory device inserted into the USB port 142 . This ISO bootable image can contain embedded Linux OS + debug tools + script files. Therefore, the UEFI BIOS 120 can recognize the ISO image as the same as other USB-linked bootable devices. The ISO image can be booted from the USB port to execute script files from the embedded Linux OS. UEFI BIOS 120 runs a boot diagnostic operating system and runs script files. UEFI BIOS 120 stresses the server and collects BMC system error log files 300. System error log file 300 may include entries determined by UEFI BIOS 120, such as a memory error correction code (ECC) entry 302, a CPU Machine Check Exception (MCERR) error item 304 , a PCIe uncorrectable item 306 or a high temperature item 308 .

通常,啟動路徑的一般POST程序選項包括在第2圖之示意圖200中列出的所有過程。這些過程必須按照第2圖所示的序列進行處理,直到第2圖中的作業系統140載入為止。啟動路徑的一般POST程序的主要目的是將硬體組件初始化為就緒狀態,並準備用於作業系統的與平台相關之資料結構。硬體組件的初始化是一個複雜的過程。初始化從安全檢查開始,然後是硬體組件檢測,接著設定硬體暫存器編程。一般選項的啟動路徑的POST通常是一個固定的序列,並且對於大規模的各種硬體組件和軟體要求亦係如此。啟動路徑所花費的時間取決於硬體組件和可啟動裝置的數量。 In general, the general POST program options for the boot path include all the processes listed in the schematic diagram 200 of FIG. 2 . These processes must be processed in the sequence shown in FIG. 2 until the operating system 140 in FIG. 2 loads. The main purpose of the general POST procedure of the boot path is to initialize the hardware components to a ready state and to prepare the platform-dependent data structures for the operating system. The initialization of hardware components is a complex process. Initialization starts with a security check, followed by hardware component detection, followed by programming of the hardware registers. The POST of the boot path of the general options is usually a fixed sequence, and it is also true for the large-scale various hardware components and software requirements. The time it takes to boot the path depends on the hardware components and the number of bootable devices.

本發明之實施例所揭露之系統包括啟動路徑的其他POST程序。這些選項包括快速啟動選項、安全啟動選項、工廠供應選項和硬體診斷選項。這些選項可通過伺服器106的帶內和帶外控制來操作。帶內控制是通過伺服器106的主機系統的界面所進行,而帶外控制是通過BMC 110從遠端IPMI介面與例如第1圖中的站102的遠端裝置通訊所進行。一些啟動路徑選項的不同POST程序加快了伺服器重新啟動的時間,並且還為資料中心、服務站或工廠的操作員提供了靈活的操作選擇。 The system disclosed in the embodiment of the present invention includes other POST procedures of the startup path. These options include fast boot options, safe boot options, factory supply options and hardware diagnostic options. These options can be manipulated through in-band and out-of-band control of the server 106 . In-band control is performed through the interface of the host system of server 106, while out-of-band control is performed through BMC 110 communicating with a remote device such as station 102 in FIG. 1 from a remote IPMI interface. Different POST procedures for some startup path options speed up server restart times and also provide flexible operating options for operators of data centers, service stations, or factories.

因此,一般的啟動選項是綜合的POST啟動序列。第1圖中的UEFI BIOS韌體120啟用信任根安全路徑(root of trust secure path)、初始化伺服器106的所有硬體組件、創建可啟動裝置路徑、以及在載入作業系統140之前建立平台相關的資料結構。UEFI BIOS 120包括啟動選項,並且讀取UEFI變數以執行啟動路徑之選擇的一般POST程序。一般啟動選項是綜合的 POST序列,除了UEFI BIOS 120必須完成所有必要的硬體初始化並為OS準備平台資訊外。在一般啟動選項中,UEFI BIOS 120還將所需的硬體暫存器內容、所需的UEFI啟動元素內容以及所需的OS資訊內容儲存到持續性記憶體136中。 Therefore, the general boot option is the combined POST boot sequence. The UEFI BIOS firmware 120 in FIG. 1 enables the root of trust secure path, initializes all hardware components of the server 106 , creates the bootable device path, and establishes platform dependencies before loading the operating system 140 data structure. The UEFI BIOS 120 includes boot options and reads the UEFI variables to perform the general POST procedure of boot path selection. General startup options are comprehensive POST sequence, except that the UEFI BIOS 120 must complete all necessary hardware initialization and prepare platform information for the OS. In general boot options, UEFI BIOS 120 also stores required hardware scratchpad contents, required UEFI boot element contents, and required OS information contents into persistent memory 136 .

伺服器106首次在資料中心啟動時執行正常啟動。當資料中心操作員更改硬體配置或替換伺服器106的可替換單元時,也會執行一般啟動選項。 The server 106 performs a normal startup when the data center starts up for the first time. The general startup options are also executed when the data center operator changes the hardware configuration or replaces a replaceable unit of the server 106 .

在此實施例中,UEFI BIOS變數、BMC變數以及OEM IPMI命令或RegistryEntries的Redfish AttributeName通過帶內或帶外確定啟動路徑的哪個POST程序選項被選擇。BMC變數允許BMC 110從外部裝置(如第1圖中的服務站102)獲得啟動選項。UEFI BIOS 120讀取UEFI變數的值以確定要執行哪個啟動路徑。UEFI變數是通過OEM IPMI命令或來自BMC 110的Redfish命令設定的。Redfish儲存庫(ResiryEntries的AttributeName)具有優先級和依賴性來決定最終的啟動路徑選擇。AttributeName是名稱變數,以及RegistryEntry是Redfish中的名稱儲存庫。通過這些實施例所示之命令,資料中心的服務器管理和服務器106的作業系統140可以直接接收POST選項,然後設定啟動路徑的POST程序。這些命令可以在伺服器106上設定選擇的啟動路徑,直到由資料中心操作員或通過伺服器106上的應用程序發布啟動路徑的新POST選項為止。因此,第一個示例OEM IPMI命令REQ為“Get POST ofBootpath”。此命令是UEFI BIOS 120和BMC 110之間的通訊協定。UEFIBIOS 120使用此命令來檢索由遠端資料中心操作員發出的需求,並為選擇的啟動選項設定UEFI BIOS變數。設定的變數用於檢索配置參 數和啟動路徑選項的返回POST程序。此變數受來自BMC 110的帶內編程或帶外編程命令的結果的影響。get命令的優先權是強制性的。在此實施例中,NetFN ix為0X30,而CMD為0xDA。第二個OEM IPMI命令REQ是“Set POST of Boot path”,其用於設定配置參數和啟動路徑的POST。set命令的優先權是強制性的。在此實施例中,NetFN為0X30,而CMD為0xDB。 In this embodiment, UEFI BIOS variables, BMC variables, and OEM IPMI commands or the Redfish AttributeName of RegistryEntries determine which POST program option of the boot path is selected in-band or out-of-band. The BMC variables allow the BMC 110 to obtain boot options from an external device (eg, the service station 102 in FIG. 1). UEFI BIOS 120 reads the values of UEFI variables to determine which boot path to execute. UEFI variables are set via OEM IPMI commands or Redfish commands from BMC 110. Redfish repositories (AttributeName of ResiryEntries) have priorities and dependencies to determine the final startup path selection. AttributeName is the name variable and RegistryEntry is the name repository in Redfish. Through the commands shown in these embodiments, the server management of the data center and the operating system 140 of the server 106 can directly receive the POST options, and then set the POST procedure of the startup path. These commands may set the selected launch path on the server 106 until a new POST option to launch the path is issued by the data center operator or by an application on the server 106 . So the first example OEM IPMI command REQ is "Get POST ofBootpath". This command is the communication protocol between UEFI BIOS 120 and BMC 110. UEFIBIOS 120 uses this command to retrieve requests issued by remote data center operators and to set UEFI BIOS variables for selected boot options. The set variables are used to retrieve configuration parameters The number and startup path options are returned to the POST program. This variable is affected by the result of an in-band programming or out-of-band programming command from the BMC 110. The priority of the get command is mandatory. In this example, NetFN ix is 0x30 and CMD is 0xDA. The second OEM IPMI command REQ is "Set POST of Boot path", which is a POST for setting configuration parameters and boot paths. The priority of the set command is mandatory. In this example, NetFN is 0x30 and CMD is 0xDB.

第4圖是用於實施例之啟動路徑選項的Redfish JSON資料的表400,其可以代替OEM IPMI命令使用。表400包括一BIOS屬性註冊請求410以及一對應的描述420。如在描述中可以看到的,值名稱(value name)確定哪個啟動路徑被使用於POST。從一般啟動(normal boot)、快速啟動(fast boot)、安全啟動(safety boot)、工廠供應(factory provision)及診斷(diagnostic)中選擇的POST程序將取決於所選的值名稱。 Figure 4 is a table 400 of Redfish JSON data for boot path options of an embodiment, which may be used in place of an OEM IPMI command. Table 400 includes a BIOS attribute registration request 410 and a corresponding description 420 . As can be seen in the description, the value name determines which startup path is used for POST. The POST procedure selected from normal boot, fast boot, safety boot, factory provision and diagnostic will depend on the value name selected.

第5圖是在UEFI BIOS 120、BMC 110和作業系統140或網路資料中心管理站102之間針對所選擇的啟動路徑的POST程序的通訊流程圖。通訊通道(例如RESTful或IPMI通道500)可以用作帶外機制,以在伺服器管理站102與BMC 110之間以及在BMC 110與UEFI BIOS 120之間交換命令。帶內機制可以從作業系統140向BMC 110交換命令。 FIG. 5 is a communication flow diagram of the POST procedure for the selected boot path between the UEFI BIOS 120 , the BMC 110 and the operating system 140 or the network data center management station 102 . A communication channel (eg, RESTful or IPMI channel 500 ) can be used as an out-of-band mechanism to exchange commands between server management station 102 and BMC 110 and between BMC 110 and UEFI BIOS 120 . An in-band mechanism may exchange commands from operating system 140 to BMC 110 .

首先開啟待用電源(510)。這使得BMC 110被啟動(512)。資料中心的操作員設定選擇的啟動路徑的POST程序(514)。POST程序的設定通過RESTful或IPMI通道500傳遞到BMC 110。UEFI BIOS 120從RESTful或IPMI通道500讀取選擇的啟動路徑的POST程序,並將其保存為UEFI變數(516)。然後,啟動選擇的POST程序(518)。然後,UEFI BIOS 120根據從BMC 110接收到的啟動路徑選項執行UEFI POST程序(520)。 UEFI BIOS 120將啟動路徑的POST程序的狀態發送到BMC 110(522)。然後POST程序結束(524),允許作業系統140被啟動(524)。資料中心的操作員可以通過管理和服務站102讀取啟動路徑(526)的POST程序的當前選項。資料中心的操作員還可以通過管理和服務站102讀取選擇的啟動路徑的POST程序的最新狀態(528)。 The standby power is first turned on (510). This causes the BMC 110 to be activated (512). The operator of the data center sets the POST procedure for the selected activation path (514). The settings of the POST procedure are passed to the BMC 110 via the RESTful or IPMI channel 500 . UEFI BIOS 120 reads the POST procedure of the selected boot path from RESTful or IPMI channel 500 and saves it as a UEFI variable (516). Then, the selected POST procedure is initiated (518). Then, the UEFI BIOS 120 executes the UEFI POST procedure according to the boot path options received from the BMC 110 (520). UEFI BIOS 120 sends the status of the POST procedure of the boot path to BMC 110 (522). The POST procedure then ends (524), allowing operating system 140 to be started (524). The operator of the data center can read the current options for the POST procedure of the initiation path (526) through the management and service station 102. The data center operator can also read through the management and service station 102 the latest status of the POST procedure for the selected activation path (528).

快速啟動選項是啟動選項中最有效的POST啟動序列。在快速啟動選項中,UEFI BIOS韌體120啟用信任安全路徑的根、初始化伺服器106的較少但重要的硬體組件、使用在先前的一般啟動路徑中復制的資料結構來還原硬體暫存器和舊版記憶體內容、並用固定的可啟動裝置載入作業系統140。如果沒有硬體配置更改,則快速啟動選項比一般啟動選項更有效率。對於快速啟動選項,UEFI BIOS 120僅執行強制性的硬體初始化。從持續性儲存器136中恢復所需的內容到硬體組件,然後從固定的可啟動裝置載入作業系統。因此,UEFI BIOS 120將硬體組件配置和複雜硬體暫存器的設置複製到持續性儲存器136的保留空間中。在快速啟動選項期間,UEFI BIOS 120重用該資訊來對硬體組件進行編程,而不是對組件執行序列初始化。因此,儲存的設定(例如訊號時序,PCIe匯流排鏈路寬度和PCIe速度)會被載入,而不是從硬體組件確定這些設置。 The fast boot option is the most efficient POST boot sequence of the boot options. Among the fast boot options, UEFI BIOS firmware 120 enables the root of the trusted secure path, initializes fewer but important hardware components of server 106, restores hardware scratchpad using data structures copied in the previous normal boot path Server and legacy memory content, and loaded into the operating system 140 with a fixed bootable device. If there are no hardware configuration changes, the fast boot option is more efficient than the normal boot option. For the fast boot option, UEFI BIOS 120 only performs mandatory hardware initialization. The desired content is restored from persistent storage 136 to the hardware components, and then loaded into the operating system from the fixed bootable device. Therefore, UEFI BIOS 120 copies the hardware component configuration and the settings of complex hardware registers into the reserved space of persistent storage 136 . During fast boot options, the UEFI BIOS 120 reuses this information to program hardware components instead of performing serial initialization of the components. Therefore, stored settings such as signal timing, PCIe bus link width and PCIe speed are loaded instead of determining these settings from hardware components.

當由於升級或降級作業系統軟體而在資料中心中發生伺服器重新啟動時,執行快速啟動選項。當伺服器重新啟動而硬體配置沒有任何變化時,也會執行快速啟動。與一般POST程序相比,快速啟動選項在POST程序可節省約30%的時間。 Executes the quick start option when a server restart occurs in the data center due to an upgrade or downgrade of operating system software. A fast start is also performed when the server restarts without any changes to the hardware configuration. Compared with the general POST procedure, the quick start option can save about 30% time in the POST procedure.

安全啟動選項是彈性的POST啟動序列,其中UEFI BIOS韌體120從BMC 110讀取伺服器106的硬故障(hard faults)的估計報告。在安全啟動選項中,UEFI BIOS韌體140根據硬故障自動禁用硬體組件、初始化伺服器106的健康和有功能的硬體組件、創建一個可用的可啟動裝置路徑、以及在載入作業系統之前建立平台相關資料結構。資料中心的服務器管理站102禁用不良和/或故障硬體組件的界面,例如處理器(禁用核心插槽)、記憶體(禁用DIMM插槽)、PCIe IO(禁用PCIe插槽)以及機載裝置界面。然後,安全啟動程序會初始化其餘硬體組件,直到成功載入作業系統140。 The secure boot option is a flexible POST boot sequence in which the UEFI BIOS firmware 120 reads from the BMC 110 an estimated report of server 106 hard faults. In the secure boot option, the UEFI BIOS firmware 140 automatically disables hardware components upon hard faults, initializes the server 106 for healthy and functional hardware components, creates a usable bootable device path, and before loading the operating system Establish a platform-related data structure. The server management station 102 in the data center disables interfaces for bad and/or faulty hardware components, such as processors (core sockets disabled), memory (DIMM sockets disabled), PCIe IO (PCIe sockets disabled), and onboard devices interface. The secure boot program then initializes the remaining hardware components until the operating system 140 is successfully loaded.

安全啟動的主要目的是恢復伺服器106的上線狀態。當故障的硬體組件被禁用後載入作業系統時,安全啟動選項為資料中心操作員檢索重要的業務信息以進行資料備份和遷移。當因硬體故障而在資料中心中發生伺服器重新啟動時,執行安全引導選項。當發生硬體故障時,資料中心操作員通常會希望從伺服器106取回重要資料,然後修復故障的硬體組件。與一般POST程序相比,使用安全啟動選項可以節省POST程序約30%的時間。 The main purpose of secure boot is to restore the online state of the server 106 . The Safe Boot option allows data center operators to retrieve critical business information for data backup and migration when a failed hardware component is disabled and loaded into the operating system. Execute the secure boot option when a server restart occurs in the data center due to a hardware failure. When a hardware failure occurs, data center operators often wish to retrieve critical data from server 106 and then repair the failed hardware component. Compared with the general POST procedure, using the secure boot option can save about 30% of the POST procedure time.

工廠供應啟動選項是UEFI BIOS韌體120的唯一POST啟動序列。工廠供應啟動選項基於生產線要求來載入韌體設定並啟用特定硬體配置以進行伺服器106的壓力測試。工廠供應選項序列將啟動路徑的POST程序的選擇保存到UEFI BIOS變數、開始初始化、並讀取UEFI變數。然後,UEFI BIOS 120自動載入預設的韌體配置。UEFI BIOS 120提供安全功能啟用,並禁用用於不良硬體組件識別和根除機制的壓力測試的錯誤校正。當 在工廠的生產線中啟動或重新啟動伺服器時,將發生工廠供應啟動。與一般POST程序相比,工廠供應啟動選項可節省POST程序約10%的時間。 The factory-supplied boot option is the only POST boot sequence for UEFI BIOS firmware 120. Factory-supplied startup options load firmware settings and enable specific hardware configurations for stress testing of the server 106 based on production line requirements. The factory-supplied option sequence saves the POST program selection of the boot path to the UEFI BIOS variables, starts initialization, and reads the UEFI variables. Then, the UEFI BIOS 120 automatically loads the default firmware configuration. UEFI BIOS 120 provides security feature enablement and disables error correction for stress tests for bad hardware component identification and eradication mechanisms. when A factory supply start occurs when a server is started or restarted in a factory's production line. The factory-supplied start-up option can save about 10% of the POST procedure time compared to the normal POST procedure.

硬體診斷選項是故障排除POST啟動序列,用於資料中心的排定維護和服務站的排定維護。硬體診斷序列將啟動路徑的選擇的POST程序保存到UEFI BIOS變數、開始初始化、並讀取UEFI變數。因為軟體和硬體的改變被禁止,所以UEFI BIOS 120和BMC 110都必須執行新的和獨立的診斷服務程序,而不必接觸客戶的機密資料和資訊。硬體診斷選項的主要目的是收集安全測試的所有除錯訊息、伺服器106的所有硬體錯誤狀態資料(例如處理器、PCIe裝置、週邊儲存裝置和週邊IO裝置)、以及伺服器106運行時之系統錯誤日誌。資料中心的操作員可以使用此資料執行硬體故障分析並確定根本原因。因此,硬體診斷選件可檢查硬體健康狀況。例如,可以進行作業系統用戶層配置的調整,以安裝其他支援功能和軟體。然而,這種改變可能與資料中心的使用模型背道而馳而引起關注。因此,硬體診斷必須在獨立的作業系統環境中執行,其不存取伺服器106的主機作業系統的軟體配置。 The hardware diagnostic option is a troubleshooting POST boot sequence for scheduled maintenance at the data center and scheduled maintenance at the service station. The hardware diagnostic sequence saves the selected POST procedure of the boot path to the UEFI BIOS variables, starts initialization, and reads the UEFI variables. Because software and hardware changes are prohibited, both UEFI BIOS 120 and BMC 110 must implement new and independent diagnostic services without having access to customer confidential data and information. The main purpose of the hardware diagnostics option is to collect all debug messages for security testing, all hardware error status data for server 106 (eg, processor, PCIe devices, peripheral storage, and peripheral IO devices), and server 106 runtime the system error log. Data center operators can use this data to perform hardware failure analysis and determine the root cause. Therefore, the hardware diagnostics option checks hardware health. For example, adjustments to the operating system user-level configuration can be made to install additional support functions and software. However, such a change could be a cause for concern as it runs counter to the data center usage model. Therefore, hardware diagnostics must be performed in a separate operating system environment that does not access the software configuration of the host operating system of server 106 .

在硬體診斷選項中,UEFI BIOS 120啟用最大除錯級別。在診斷選項中,UEFI BIOS韌體120將所有級別的除錯訊息從POST程序之軟體和硬體初始化公開給伺服器106的BMC 110。例如,記憶體訓練錯誤可能導致發送記憶體裝置的DIMM編號至BMC 110進行記錄。BMC 110將運行控制庫的ISO映像安裝到伺服器106,並執行JTAG主掃描引擎驅動程序以抓取所有級別的系統錯誤、週邊IO裝置錯誤,儲存器錯誤、熱級別狀態、以及電源供應狀態。JTAG是工業標準介面,其用於驗證設計和測試主機板。在此 實施例中,伺服器106上的硬體組件支援JTAG,因此可以與BMC 110中的JTAG主控連接。這允許BMC 110執行JTAG命令,以從對應的硬體組件獲得可用的資料。 In the hardware diagnostic options, UEFI BIOS 120 enables the maximum debug level. In the diagnostic option, the UEFI BIOS firmware 120 exposes all levels of debug messages to the BMC 110 of the server 106 from the software and hardware initialization of the POST procedure. For example, a memory training error may cause the DIMM number of the memory device to be sent to the BMC 110 for recording. The BMC 110 installs the ISO image of the runtime control library to the server 106 and executes the JTAG main scan engine driver to capture all levels of system errors, peripheral IO device errors, memory errors, thermal level status, and power supply status. JTAG is an industry standard interface used to verify designs and test motherboards. here In an embodiment, the hardware components on the server 106 support JTAG and thus can interface with the JTAG master in the BMC 110 . This allows the BMC 110 to execute JTAG commands to obtain available data from the corresponding hardware components.

因此,所有POST序列都將除錯文本字串公開給串行控制台埠和與BMC 110連接的LAN串行(Serial Over LAN,SOL)。這些除錯訊息包括在伺服器106中運行的所有序列服務程序名稱、在POST程序期間所創建的軟體資料結構的結果、以及裝置和由UEFI BIOS 120所編程的晶片之間的互連訊號。UEFI BIOS 120創建必要的資料結構並將資料結構公開給作業系統以用於平台設計的識別。例如,資料結構可以是ACPI表的PCI樹或SMBIOS的CPU核心數量。在POST程序執行後,此資料將留在實體記憶體中。通常,只有設計人員可以通過特定工具查看此資料。然而,在此實施例中,UEFI BIOS 120可以複製記憶體的這些內容,並通過串行控制台埠和SOL將輸出重定向到遠端伺服器管理(例如服務站102)。此資訊可用於設計人員進行伺服器106的更深層除錯。相同的概念可以應用於硬體訊號方面。UEFI BIOS 120可以通過硬體控制器微調訊號強度。此資料可以作為除錯訊息輸出,且可由設計人員遠端存取。在發生硬體故障的情況下,設計人員可以通過與資料結構進行比較來識別故障。BMC 110將運行控制庫的ISO映像安裝到伺服器主機板USB埠142、將ISO映像模擬為可啟動裝置;然後允許UEFI BIOS 120執行ISO映像使其作為嵌入式作業系統、並執行診斷應用程序。 Therefore, all POST sequences expose debug text strings to the serial console port and the Serial Over LAN (SOL) connected to the BMC 110. These debug messages include the names of all serial service programs running in the server 106 , the results of the software data structures created during the POST procedure, and the interconnect signals between the device and the chip programmed by the UEFI BIOS 120 . UEFI BIOS 120 creates the necessary data structures and exposes the data structures to the operating system for identification of the platform design. For example, the data structure can be the PCI tree of ACPI tables or the number of CPU cores of SMBIOS. After the POST procedure is executed, this data will remain in physical memory. Typically, only designers can view this material through specific tools. However, in this embodiment, UEFI BIOS 120 can copy these contents of memory and redirect the output to remote server management (eg, service station 102) via the serial console port and SOL. This information can be used by the designer for deeper debugging of the server 106 . The same concept can be applied to hardware signals. UEFI BIOS 120 can fine-tune the signal strength through the hardware controller. This data can be output as debug messages and can be accessed remotely by the designer. In the event of a hardware failure, designers can identify the failure by comparing with the data structure. The BMC 110 installs the ISO image of the runtime control library to the server motherboard USB port 142, emulates the ISO image as a bootable device; then allows the UEFI BIOS 120 to execute the ISO image as an embedded operating system and execute diagnostic applications.

在此實施例中,BMC 110啟用除錯和編程介面,例如JTAG主機,其連接伺服器106的主處理器的JTAG掃描鏈。基礎圖像傳輸協定 (ITP),例如EnterDebugMode、ReadMSR及WriteIO,被提供在BMC 110的韌體堆疊中。遠端應用程式,例如Python-based的CScripts,可提供在遠端伺服器管理和服務站102上。資料中心操作員可以使用應用程序以獲取所有必要暫存器的內容和錯誤狀態讀取(例如Intel At-Scale協定)。 In this embodiment, the BMC 110 enables a debug and programming interface, such as a JTAG host, which connects to the JTAG scan chain of the host processor of the server 106 . Basic Image Transfer Protocol (ITP), such as EnterDebugMode, ReadMSR, and WriteIO, are provided in the firmware stack of the BMC 110. Remote applications, such as Python-based CScripts, may be provided on the remote server management and server station 102. Data center operators can use the application to obtain the contents of all necessary scratchpads and read error status (eg Intel At-Scale protocol).

當伺服器106在資料中心進行維護而被重新啟動時,硬體診斷選項可被執行。當伺服器106在服務站進行分析而被啟動時,此選項也可以被執行。因此,當伺服器(例如伺服器106)的故障主機板被發送到服務站進行除錯時,硬體診斷選項允許服務工程師快速確定詳細的硬體故障資訊,而無需設定複雜的主機診斷軟體環境。在此診斷選項中,禁止對伺服器106進行硬體和軟體的更改。與一般啟動程序相比,此選項沒有節省時間。 The hardware diagnostic option may be executed when the server 106 is restarted for maintenance in the data center. This option can also be executed when the server 106 is started at the service station for analysis. Therefore, when a faulty motherboard of a server (eg, server 106 ) is sent to a service station for debugging, the hardware diagnostic option allows the service engineer to quickly determine detailed hardware fault information without having to set up a complex host diagnostic software environment. In this diagnostic option, hardware and software changes to the server 106 are prohibited. This option does not save time compared to normal startup programs.

第6至9圖中的流程圖表示用於第1圖中之系統100中之POST程序啟動路徑的不同選項的機器可讀取指令。在此實施例中,機器可讀取指令包括一種演算法,此演算法由以下各項執行:(a)處理器、(b)控制器、和/或(c)一個或多個其他適合的處理裝置。此演算法可以在軟體中其儲存在有形介質(例如快閃記憶體、CD-ROM、軟碟、硬碟、數位影像(多功能)光碟(DVD)或其他記憶體裝置)中。然而,本領域通常知識者將容易意識到,整個演算法和/或其部分可以可選地由處理器以外的裝置執行和/或以眾所周知的方式體現在韌體或專用硬體中(例如,它可以由專用集成電路(ASIC)、可編程邏輯裝置(PLD)、現場可編程邏輯裝置(FPLD)、現場可編程閘陣列(FPGA)、離散邏輯等來實現)。例如,介面的任何或所有組件可以通過軟體、硬體和/或韌體來實現。而且,流程圖表示的一些或全部機器可讀取指令可以手動實現。此外,雖然實施例之 演算法如第6至9圖的流程圖所示,但本領域通常知識者將容易理解,實現機器可讀取指令的許多其他方法也可以替代地使用。例如,可以改變區塊的執行序列、和/或所描述的一些區塊可以改變、刪除或組合。 The flowcharts in FIGS. 6-9 represent machine-readable instructions for different options of the POST program startup path in the system 100 of FIG. 1 . In this embodiment, the machine-readable instructions include an algorithm executed by: (a) a processor, (b) a controller, and/or (c) one or more other suitable processing device. The algorithm may be stored in software on a tangible medium such as flash memory, CD-ROM, floppy disk, hard disk, digital video (DVD) or other memory device. However, those of ordinary skill in the art will readily appreciate that the entire algorithm and/or portions thereof may optionally be executed by means other than a processor and/or embodied in firmware or dedicated hardware in a well-known manner (eg, It may be implemented by an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable logic device (FPLD), a field programmable gate array (FPGA), discrete logic, etc.). For example, any or all components of the interface may be implemented by software, hardware and/or firmware. Furthermore, some or all of the machine-readable instructions represented by the flowcharts may be implemented manually. In addition, although the embodiment of The algorithms are shown in the flowcharts of Figures 6 to 9, but those of ordinary skill in the art will readily appreciate that many other methods of implementing machine-readable instructions may alternatively be used. For example, the execution sequence of blocks may be changed, and/or some of the blocks described may be changed, deleted, or combined.

第6圖繪示用於一般啟動和快速啟動選項的流程圖600,其可以通過管理和服務站102與伺服器(例如第1圖中的伺服器106)上的遠端控制器(例如BMC 110)進行通訊來啟動。BMC 110將選擇的啟動選項傳送到UEFI BIOS(例如第1圖中的UEFI BIOS 120)。通過UEFI BIOS設定UEFI變數從BMC 110檢索啟動路徑之選擇的POST程序之後,則POST程序開始(610)。程序首先確定是否有對啟動選項的更改請求(612)。如果有更改請求,則程序將啟動路徑的POST程序選項的新選擇保存到UEFI變數(614)。然後,程序開始晶片組的初始化(616)。如果沒有更改請求(612),則程序使用先前選擇的啟動選項,並且直接進行到初始化晶片組(616)。 FIG. 6 depicts a flow diagram 600 for general startup and quick startup options that can be accessed through management and service station 102 and a remote controller (eg, BMC 110 ) on a server (eg, server 106 in FIG. 1 ). ) to communicate to start. The BMC 110 communicates the selected boot options to the UEFI BIOS (eg, UEFI BIOS 120 in Figure 1). After setting the UEFI variables through the UEFI BIOS to retrieve the POST procedure of the selection of the boot path from the BMC 110, the POST procedure begins (610). The program first determines if there is a change request for the startup option (612). If there is a change request, the program saves the new selection of the POST program option for the boot path to a UEFI variable (614). The program then begins the initialization of the wafer set (616). If there is no change request (612), the program uses the previously selected boot option and proceeds directly to initialize the chipset (616).

在晶片組被初始化之後,程序讀取UEFI啟動路徑變數(618)。基於變數的值,程序確定所選擇的啟動路徑是一般啟動還是快速啟動選項(620)。如果一般啟動選項被選擇,則程序在伺服器106上識別處理器插槽和記憶體插槽(例如DIMM插槽)(622)。然後程序初始化處理器和伺服器106的記憶體,並將設定保存到持續性記憶體(例如第1圖中的儲存器136)(624)。然後,程序識別週邊IO裝置插槽並創建可啟動裝置路徑(626)。然後,程序初始化IO硬體暫存器,並將設定儲存到持續性儲存器136(628)。然後,程序載入可啟動裝置驅動程序(630)。然後,程序建立平台資訊並執行UEFI啟動服務(632)。平台資訊(例如CPU記憶體和PCI樹)被建立在實體記憶體中,用於OS載入器識別。UEFI啟動服務 用於從硬碟驅動程序中查找可啟動分區,並從網路驅動程序中查找可啟動映像。然後,程序將POST程序的結果記錄到BMC 110維護的系統錯誤日誌(SEL)中(634)。 After the chipset is initialized, the program reads the UEFI boot path variable (618). Based on the value of the variable, the program determines whether the selected startup path is a normal startup or a fast startup option (620). If the normal boot option is selected, the program identifies processor sockets and memory sockets (eg, DIMM sockets) on server 106 (622). The program then initializes the processor and server 106 memory and saves the settings to persistent memory (eg, storage 136 in Figure 1) (624). The program then identifies peripheral IO device slots and creates bootable device paths (626). The program then initializes the IO hardware registers and stores the settings to persistent storage 136 (628). Then, the program loads the bootable device driver (630). Then, the program builds platform information and executes UEFI boot service (632). Platform information (such as CPU memory and PCI tree) is built in physical memory for OS loader identification. UEFI Boot Service Used to find bootable partitions from hard drives and bootable images from network drivers. The program then logs the results of the POST procedure into the system error log (SEL) maintained by the BMC 110 (634).

如果快速啟動選項被選擇(620),則程序在伺服器106上識別處理器插槽和記憶體插槽(例如DIMM插槽)(640)。程序基於識別的處理器和記憶體硬體介面,確定是否發生了硬體更改(642)。如果發生硬體更改,則持續初始化處理器和伺服器106的記憶體,並將設定儲存到持續性儲存器(例如第1圖中的儲存器136)中(624)。然後,程序完成上述一般啟動序列。 If the fast boot option is selected (620), the program identifies processor sockets and memory sockets (eg, DIMM sockets) on server 106 (640). The program determines whether a hardware change has occurred based on the identified processor and memory hardware interfaces (642). If a hardware change occurs, the memory of the processor and server 106 is continuously initialized and the settings are stored in persistent storage (eg, storage 136 in Figure 1) (624). The program then completes the general startup sequence described above.

如果沒有發生硬體更改(642),則從持續性記憶體136恢復處理器記憶體的設定(644)。然後,程序識別週邊IO裝置插槽並創建可啟動裝置路徑(646)。程序基於識別的週邊裝置插槽,確定是否發生了週邊硬體更改(648)。如果週邊硬體發生了更改,程序初始化IO硬體暫存器,並將設定儲存到持續性儲存器中(628)。然後,程序完成一般啟動序列。 If no hardware changes have occurred (642), the processor memory settings are restored from persistent memory 136 (644). The program then identifies peripheral IO device slots and creates bootable device paths (646). The program determines whether a peripheral hardware change has occurred based on the identified peripheral device slot (648). If the peripheral hardware is changed, the program initializes the IO hardware registers and saves the settings to persistent storage (628). The program then completes the general startup sequence.

如果未發生週邊硬體更改(648),則程序從持續性儲存器136恢復硬體暫存器設定(650)。然後,程序載入可啟動裝置驅動程序(650)。然後,程序執行平台資訊和UEFI啟動服務(632)。然後,程序將POST程序的結果記錄到BMC維護的系統錯誤日誌中(634)。 If no peripheral hardware changes have occurred (648), the program restores the hardware register settings from persistent storage 136 (650). Then, the program loads the bootable device driver (650). The program then executes platform information and UEFI boot services (632). The program then logs the results of the POST procedure to the system error log maintained by the BMC (634).

第7圖繪示示例性安全啟動選項的流程圖700。從BMC 110檢索選擇的啟動路徑的POST程序選項之後,安全啟動選項程序與POST程序繼續進行。首先,程序確定是否存在對POST程序的更改請求,類似於第6圖中的一般啟動選項。如果有更改請求,程序會將啟動路徑的新POST程序 選項儲存到UEFI變數。然後,程序開始晶片組的初始化。如果沒有更改請求(612),則程序直接進行初始化晶片組(第6圖中的610、612、614、616)。 FIG. 7 illustrates a flowchart 700 of an exemplary secure boot option. After retrieving the POST procedure options for the selected boot path from the BMC 110, the secure boot options procedure continues with the POST procedure. First, the program determines if there is a change request to the POST program, similar to the general startup options in Figure 6. If there is a change request, the program will start a new POST program of the path Options are stored to UEFI variables. Then, the program starts the initialization of the chipset. If there is no change request (612), the program proceeds directly to initialize the chipset (610, 612, 614, 616 in Figure 6).

然後,程序讀取UEFI變數(710)。基於讀取的UEFI變數,程序確定此程序是否是安全啟動選項(712)。如果所選擇的選項不是安全啟動選項,則程序使用另一個啟動選項啟動POST程序(714)。如果安全啟動選項被選擇(712),則程序在伺服器106上識別處理器插槽和記憶體插槽(例如DIMM插槽)(716)。程序從BMC 110讀取錯誤報告的估計,並將錯誤報告條目與資源表進行比較(718)。資源表是一種軟體資料結構,其中列出了所有硬體組件的類別,ID和系統資源佔用(例如記憶體的範圍和IO)。資源表提供了一種簡便方法,其比較系統錯誤日誌的錯誤報告條目並確定哪些硬體組件發生故障風險更高。可以根據SEL記錄確定較高的故障風險,此SEL記錄顯示特定硬體組件多次發生未糾正的錯誤。然後,程序確定如果現有硬體組件在SEL的錯誤報告條目中記錄了未糾正的錯誤,則是否應該發出禁用請求(720)。如果存在禁用請求,則程序根據錯誤報告的估計禁用硬體組件(例如處理器或記憶體)(722)。然後,程序初始化其餘的處理器和記憶體(724)。如果沒有發生禁用請求,則程序進行到初始化其餘的處理器和記憶體(724)。 Then, the program reads the UEFI variables (710). Based on the UEFI variables read, the program determines whether the program is a secure boot option (712). If the selected option is not a secure boot option, the program starts the POST procedure using another boot option (714). If the secure boot option is selected (712), the program identifies processor sockets and memory sockets (eg, DIMM sockets) on server 106 (716). The program reads the estimate of the error report from the BMC 110 and compares the error report entry to the resource table (718). A resource table is a software data structure that lists the class, ID, and system resource usage (such as memory range and IO) of all hardware components. Resource tables provide an easy way to compare error report entries in the system error log and determine which hardware components are at higher risk of failure. A higher risk of failure can be determined from SEL records showing multiple occurrences of uncorrected errors for a particular hardware component. The program then determines whether a disable request should be issued if the existing hardware component recorded an uncorrected error in the error report entry of the SEL (720). If there is a disable request, the program disables a hardware component (eg, processor or memory) based on the estimate of the error report (722). The program then initializes the remaining processors and memory (724). If no disable request has occurred, the program proceeds to initialize the remaining processors and memory (724).

然後,程序從BMC 110讀取與週邊IO裝置(例如PCIe插槽和根控制器)有關的錯誤報告的估計,並將其與資源表進行比較(728)。週邊裝置的資源表是一種軟體結構,其中包括連接到PCIe插槽的裝置的硬體裝置訊息,以允許啟用或禁用此類裝置而不會影響根控制器的一般功能。然後,程序確定是否應當發起與週邊IO裝置有關的禁用請求(730)。例如, 如果資源表上的硬體裝置具有記錄在BMC 110的SEL的錯誤報告條目中的許多未更正的錯誤,則程序可以決定發起禁用請求。如果存在禁用請求,則程序從錯誤報告的估算中禁用PCIe根埠及週邊IO(732)。然後,程序初始化其餘的週邊IO(734)。如果沒有發生禁用請求(730),則程序進行到初始化其餘的週邊IO(734)。 The program then reads estimates of error reports related to peripheral IO devices (eg, PCIe slots and root controllers) from BMC 110 and compares them to the resource table (728). A peripheral resource table is a software construct that includes hardware device information for devices connected to a PCIe slot, allowing such devices to be enabled or disabled without affecting the general functionality of the root controller. The program then determines whether a disable request related to the peripheral IO device should be initiated (730). E.g, If the hardware device on the resource table has many uncorrected errors recorded in the error report entry of the BMC 110's SEL, the program may decide to initiate a disable request. If there is a disable request, the program disables the PCIe root port and peripheral IO from the estimation of the error report (732). The program then initializes the remaining peripheral IOs (734). If no disable request has occurred (730), the program proceeds to initialize the remaining peripheral IO (734).

然後,程序載入可啟動裝置驅動程序(736)。然後,程序準備平台資訊和UEFI啟動服務(738)。然後,程序將POST的結果記錄到BMC 110的系統錯誤日誌中(740)。 The program then loads the bootable device driver (736). Then, the program prepares platform information and UEFI boot services (738). The program then logs the results of the POST to the system error log of the BMC 110 (740).

第8圖是用於工廠供應選項的流程圖800。從BMC 110檢索選擇的啟動路徑的POST之後,工廠供應啟動選項程序繼續進行POST啟動。程序首先確定是否存在與一般啟動選項相似的更改請求。如果有更改請求,程序會將啟動路徑選項的POST儲存到UEFI變數。然後,程序開始晶片組的初始化。如果沒有更改請求(612),則程序直接進行初始化晶片組(第6圖中的610、612、614、616)。 FIG. 8 is a flowchart 800 for factory supply options. After retrieving the POST of the selected boot path from the BMC 110, the factory-supplied boot options program continues with the POST boot. The program first determines if there is a change request similar to the general startup options. If there is a change request, the program will store the POST of the boot path options to UEFI variables. Then, the program starts the initialization of the chipset. If there is no change request (612), the program proceeds directly to initialize the chipset (610, 612, 614, 616 in Figure 6).

然後,程序讀取UEFI變數(810)。基於所讀取的UEFI變數,程序確定此程序是否為工廠供應啟動選項(812)。如果所選的選項不是工廠供應啟動選項,則程序將使用另一個啟動選項來啟動POST(814)。如果工廠供應啟動選項被選擇(812),則程序將目前韌體配置載入到UEFI變數(816)。程序確定是否存在壓力請求(818)。如果存在壓力請求,則程序禁用系統的糾錯機制(820)。這樣可以在啟動後運行有壓力要求的應用程序。有壓力要求的應用程序允許因素操作者識別伺服器106的硬體組件和商品是否可以用於運輸。因此,UEFI BIOS必須向工廠操作員開放相關 UEFI變數的權限,並允許工廠操作員將其設定為禁用糾錯機制。如果沒有壓力請求(818),則程序確定安全供應選項是否已經被選擇(822)。安全供應是在啟動後可以運行的另一個應用程序。此安全供應允許工廠操作員啟用安全性功能,例如通過公共密鑰的密鑰供應以及將待啟用之伺服器106的硬碟加密。 Then, the program reads the UEFI variables (810). Based on the UEFI variables read, the program determines whether the program supplies the factory with boot options (812). If the selected option is not a factory-supplied boot option, the program will use another boot option to initiate POST (814). If the factory-supplied boot option is selected (812), the program loads the current firmware configuration into UEFI variables (816). The program determines if there is a pressure request (818). If there is a stress request, the program disables the system's error correction mechanism (820). This allows stressful applications to run after startup. The stressful application allows the factor operator to identify whether the hardware components and merchandise of the server 106 are available for shipping. Therefore, UEFI BIOS must be open to factory operators Permissions for UEFI variables and allow factory operators to set it to disable error correction mechanisms. If there is no pressure request (818), the program determines whether the secure provisioning option has been selected (822). Security Provisioning is another application that can run after startup. This security provisioning allows the plant operator to enable security functions, such as key provisioning through public keys and encryption of the hard disk of the server 106 to be enabled.

如果安全供應已被選擇,則程序啟用安全功能並允許待啟用客戶公共密鑰和設定供應(824)。實施例中之安全功能可包括Microsoft bitlocker、Intel TXT或SGX。工廠操作員還可硬碟中安裝平台的公共密鑰和客戶映像的加密。這是一種安全功能,其確保作業系統為安全且可靠。客戶可以首先使用私鑰對伺服器106的主作業系統進行加密。當UEFI BIOS 120識別出具有啟用的安全性功能之可啟動作業系統時,UEFI BIOS 120使用公共密鑰來解密作業系統和切換控制。因此,工廠站點必須將公共密鑰安裝到伺服器106中,並將客戶私鑰的加密映像複製到伺服器106的硬碟上。如果沒有安全供應、或者在錯誤糾正機制被禁用之後、或者安全功能被啟用之後,則程序將載入客戶韌體設定(826)。接著,程序將POST的結果記錄到BMC 110的系統錯誤日誌中(828)。在程序完成之後,可以在伺服器106上執行壓力測試。壓力測試可包括壓力應用程序、腳本文件和支援此測試的嵌入式OS。 If secure provisioning has been selected, the program enables the security function and allows the to-be-enabled client public key and settings provisioning (824). Security functions in embodiments may include Microsoft bitlocker, Intel TXT or SGX. The factory operator can also install the platform's public key and encryption of the customer image on the hard drive. This is a safety feature that ensures that the operating system is safe and reliable. The client may first encrypt the host operating system of the server 106 using the private key. When UEFI BIOS 120 identifies a bootable operating system with enabled security features, UEFI BIOS 120 uses the public key to decrypt the operating system and switch controls. Therefore, the factory site must install the public key into the server 106 and copy the encrypted image of the customer's private key onto the server 106 hard disk. If there is no security provision, or after the error correction mechanism is disabled, or after the security function is enabled, the program will load the client firmware settings (826). Next, the program logs the results of the POST to the system error log of the BMC 110 (828). After the procedure is complete, a stress test can be performed on the server 106 . Stress tests can include stress applications, script files, and embedded OSs that support this test.

第9圖是診斷選項的流程圖900。從BMC 110檢索選擇的啟動路徑的POST之後,診斷選項程序繼續進行POST啟動。程序首先確定是否存在與一般啟動選項相似的更改請求。如果有更改請求,程序會將啟動路徑選項的POST儲存到UEFI變數。然後,程序開始晶片組的初始化。如果沒有 更改請求(612),則程序直接進行初始化晶片組(第6圖中之610、612、614、616)。 FIG. 9 is a flowchart 900 of diagnostic options. After retrieving the POST of the selected boot path from the BMC 110, the diagnostic options program proceeds with the POST boot. The program first determines if there is a change request similar to the general startup options. If there is a change request, the program will store the POST of the boot path options to UEFI variables. Then, the program starts the initialization of the chipset. if there is not If the change request ( 612 ) is made, the program directly proceeds to initialize the chipset ( 610 , 612 , 614 , and 616 in FIG. 6 ).

然後,程序讀取UEFI變數(910)。基於讀取的UEFI變數,程序確定程序是否為診斷供應啟動選項(912)。如果選擇的選項不是診斷啟動選項,則程序使用另一個啟動選項啟動POST(914)。如果診斷啟動選項被選擇(912),則程序將確定除錯訊息的級別(916)。除錯訊息級別的範圍為0到3,其中0為無、3表示最大除錯訊息輸出。通過UEFI BIOS變數設定除錯訊息的級別,此變數可以在帶內或帶外進行編程。如果除錯訊息被接收,則程序啟用最大除錯級別(918)。此外,如果除錯訊息被接收,則UEFI 7為日誌文件(920)。BMC 110安裝診斷ISO映像至伺服器主機板USB埠(922)。BMC 110通過管理網路104將診斷結果上傳到管理站102(924)。 Then, the program reads the UEFI variables (910). Based on the UEFI variables read, the program determines whether the program supplies boot options for diagnostics (912). If the selected option is not a diagnostic boot option, the program starts POST with another boot option (914). If the diagnostic enable option is selected (912), the program will determine the level of the debug message (916). The debug message level ranges from 0 to 3, where 0 is none and 3 is the maximum debug message output. The level of debug messages is set through a UEFI BIOS variable that can be programmed in-band or out-of-band. If a debug message is received, the program enables the maximum debug level (918). Also, if a debug message is received, UEFI 7 is a log file (920). The BMC 110 installs the diagnostic ISO image to the server board USB port (922). The BMC 110 uploads the diagnostic results to the management station 102 via the management network 104 (924).

如果沒有除錯訊息、或者程序啟用最大除錯級別,則程序初始化處理器、記憶體和主機板之週邊IO(930)。然後,程序初始化IO硬體(932)。然後,程序將安裝啟動服務(934)。然後,程序安裝運行服務(936)。然後,程序從USB埠142識別具有ISO映像的可啟動裝置(例如記憶體裝置)(938)。程序確定是否可以找到ISO映像(940)。如果找到IOS映像,則從BMC 110安裝的USB可啟動映像中載入嵌入式作業系統(942)。然後,程序將診斷結果儲存到BMC 110(944)。如果未找到ISO映像、或者在儲存診斷結果之後,程序將POST的結果記錄到BMC 110的系統錯誤日誌中。 If there is no debug message, or the program enables the maximum debug level, the program initializes the processor, memory, and peripheral IO of the motherboard (930). The program then initializes the IO hardware (932). The program will then install the startup service (934). Then, the program installs the run service (936). The program then identifies a bootable device (eg, a memory device) with an ISO image from the USB port 142 (938). The program determines if the ISO image can be found (940). If an IOS image is found, the embedded operating system is loaded from the USB bootable image installed by the BMC 110 (942). The program then stores the diagnostic results to the BMC 110 (944). If the ISO image is not found, or after storing the diagnostic results, the program logs the results of the POST to the BMC 110's system error log.

本發明中所使用的術語「組件」、「模組」、「系統」等通常是指與計算機有關的實體、或者是硬體(例如電路)、硬體和軟體的組合、軟體、或與具有一個或多個特定功能的操作機器有關的實體。例如,組件可以是但不限於在一處理器(例如,數位訊號處理器)上運行的一程序、一處理器、一物件、一可執行文件、一可執行緒、一程序和/或一電腦。作為說明,在控制器上運行的應用程序以及控制器都可以是組件。一個或多個組件可以在程序和/或執行緒中,並且組件可以位於一台計算機上和/或分佈在兩個或多個計算機之間。此外,「裝置」可以採用專門設計的硬體形式、通過在其上執行軟體使之專門化的通用硬體,期能夠執行特定功能;儲存在計算機可讀取媒體上的軟體、或其組合。 The terms "component," "module," "system," etc. as used herein generally refer to a computer-related entity, or hardware (eg, circuitry), a combination of hardware and software, software, or a One or more specific functions related to the operation of a machine. For example, a component may be, but is not limited to, a program, a processor, an object, an executable, an executable thread, a program, and/or a computer running on a processor (eg, a digital signal processor) . As an illustration, both the application running on the controller and the controller can be components. One or more components can be in a program and/or thread, and a component can be localized on one computer and/or distributed between two or more computers. In addition, a "means" may take the form of specially designed hardware, general-purpose hardware that is specialized by executing software thereon, capable of performing a particular function; software stored on a computer-readable medium, or a combination thereof.

在此使用的術語僅出於描述特定實施例為目的,而不是限制本發明。除非上下文另外明確指出,否則如本文所使用的單數形式的「一」、「一個」和「該」也意圖包括複數形式。此外,就在詳細描述和/或請求項中使用術語「包括」、「包含」、「具有」、「具」或其變形而言,這些術語旨在於以類似於術語「包含」的方式包含在內。 The terminology used herein is for the purpose of describing particular embodiments only and not for the purpose of limiting the invention. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. Further, to the extent that the terms "comprise," "include," "have," "have," or variations thereof are used in the detailed description and/or claims, these terms are intended to be included in a manner similar to the term "comprising" Inside.

除非另有定義,否則本文中使用的所有術語(包括技術和科學術語)與本發明所屬領域的普通技術人員通常所理解的具有相同含義。此外,諸如在常用字典中定義的那些術語應被解釋為與相關領域中它們的含義一致的含義,並且除非在此明確地定義,否則將不以理想化或過於正式的意義來解釋。 Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Also, terms such as those defined in commonly used dictionaries should be interpreted as meanings consistent with their meanings in the relevant art, and should not be interpreted in an idealized or overly formal sense unless explicitly defined herein.

儘管上面已經描述了本發明的各種實施例,但是應當理解的是,它們僅是示例,並非限制本發明。儘管已經於一個或多個實施方式示 出和描述了本發明,但是本領域的其他技術人員在閱讀和理解本說明書和附圖之後將想到同等的變更和修改。另外,儘管僅針對多種實施方式中的一種實施方式揭露了本發明的特定特徵,但是根據任何給定或特定的應用之優點,這種特徵可以與其他實施方式的一個或多個其他特徵組合。因此,本發明的廣度和範圍不應受到任何上述實施例的限制。而是,本發明的範圍應根據所附請求項及其同等物來限定。 While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation of the present invention. Although shown in one or more embodiments The present invention has been shown and described, but equivalent changes and modifications will occur to others skilled in the art after reading and understanding this specification and the accompanying drawings. Additionally, although a particular feature of the invention is disclosed for only one of the various embodiments, such feature may be combined with one or more other features of other embodiments to the advantage of any given or particular application. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described embodiments. Rather, the scope of the invention should be defined in light of the appended claims and their equivalents.

綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。 To sum up, although the present invention has been disclosed by the above embodiments, it is not intended to limit the present invention. Those skilled in the art to which the present invention pertains can make various changes and modifications without departing from the spirit and scope of the present invention. Therefore, the protection scope of the present invention shall be determined by the scope of the appended patent application.

100:啟動系統 100: Start the system

102:遠端伺服器管理和服務站 102: Remote Server Management and Service Station

104:網路 104: Internet

106:伺服器 106: Server

110:基板管理控制器(BMC) 110: Baseboard Management Controller (BMC)

112:網路介面控制器 112: Web Interface Controller

120:統一可延伸韌體介面(UEFI)基本輸入輸出系統(BIOS) 120: Unified Extensible Firmware Interface (UEFI) Basic Input Output System (BIOS)

130,132,134:硬體組件 130, 132, 134: Hardware Components

136:持續性記憶體 136: Persistent memory

140:作業系統(OS) 140: Operating System (OS)

142:通用序列匯流排(USB)埠 142: Universal Serial Bus (USB) port

Claims (10)

一種具有用於啟動一遠端計算裝置之多個選項的系統,該系統包括:一遠端管理站;一網路,與該遠端管理站通訊;一計算裝置,具有複數個硬體組件和一統一可延伸韌體介面(UEFI)基本輸入輸出系統(BIOS),該UEFI BIOS包括複數個開機自檢(POST)程序;以及一控制器,與該UEFI BIOS進行通訊並與該遠端管理站進行網路通訊,其中該控制器可用於:從該遠端管理站接收該些POST程序之一的一選擇;以及使用該選擇的POST程序啟動該計算裝置,其中該些POST程序包括一一般POST程序、一前可延伸韌體介面(pre-EFI)初始化環境階段、一驅動程序執行環境階段、一開機裝置選擇階段及一暫態系統載入階段、一第二POST程序以及一第三POST程序,該一般POST程序具有一安全階段,該pre-EFI初始化環境階段用於初始化和配置該計算裝置的該些硬體組件,該第二POST程序為一快速啟動,該快速啟動包括繞過該計算裝置的至少一些硬體組件的初始化和配置,該第三POST程序為一安全啟動,該安全啟動包括禁用故障的該些硬體組件。 A system having options for activating a remote computing device, the system comprising: a remote management station; a network in communication with the remote management station; a computing device having a plurality of hardware components and a unified extensible firmware interface (UEFI) basic input output system (BIOS), the UEFI BIOS including a plurality of power-on self-test (POST) programs; and a controller in communication with the UEFI BIOS and with the remote management station communicating over the network, wherein the controller is operable to: receive a selection of one of the POST procedures from the remote management station; and start the computing device using the selected POST procedure, wherein the POST procedures include a general POST procedure procedures, a pre-extensible firmware interface (pre-EFI) initialization environment stage, a driver execution environment stage, a boot device selection stage and a transient system loading stage, a second POST procedure and a third POST procedure , the general POST procedure has a security phase, the pre-EFI initialization environment phase is used to initialize and configure the hardware components of the computing device, the second POST procedure is a fast boot, the fast boot includes bypassing the computing Initialization and configuration of at least some of the hardware components of the device, the third POST procedure is a secure boot that includes disabling the faulty hardware components. 如請求項1所述之系統,其中該快速啟動還包括: 使用該一般POST程序中儲存在一持續性記憶體中的資料結構來恢復該計算裝置的暫存器。 The system of claim 1, wherein the quick start further comprises: The scratchpad of the computing device is restored using the data structures stored in a persistent memory in the normal POST procedure. 如請求項1所述之系統,其中該安全啟動還包括:讀取關於故障的該些硬體組件的估計報告以確定有功能的該些硬體組件;以及初始化有功能的該些硬體組件。 The system of claim 1, wherein the secure boot further comprises: reading an estimate report on the failed hardware components to determine the functional hardware components; and initializing the functional hardware components . 如請求項1所述之系統,其中該些POST程序還包括一工廠供應啟動,包括:加載一韌體配置;禁用一糾錯機制;以及允許對該些硬體組件執行一壓力測試。 The system of claim 1, wherein the POST procedures further include a factory provisioning start including: loading a firmware configuration; disabling an error correction mechanism; and allowing a stress test to be performed on the hardware components. 如請求項1所述之系統,其中該些POST程序還包括一診斷選項,該診斷選項包括:從該計算裝置的安全測試中收集除錯訊息;以及收集該些硬體組件的硬體錯誤狀態資料。 The system of claim 1, wherein the POST procedures further include a diagnostic option, the diagnostic option comprising: collecting debug messages from a security test of the computing device; and collecting hardware error states of the hardware components material. 一種用於計算機裝置之選擇啟動程序的方法,該方法包括:通過一網路從一遠端管理站傳輸複數個POST程序之一的一選擇至一計算裝置,其中該計算裝置包括一控制器、複數個硬體組件和一UEFI BIOS,該UEFI BIOS包括該些POST程序; 從該控制器上的該遠端管理站接收該些POST程序之一的該選擇;以及使用該選擇的POST程序啟動該計算裝置,其中該些POST程序包括一一般POST程序、一pre-EFI初始化環境階段、一驅動程序執行環境階段、一開機裝置選擇階段及一暫態系統載入階段、一第二POST程序以及一第三POST程序,該一般POST程序具有一安全階段,該pre-EFI初始化環境階段用於初始化和配置該計算裝置的該些硬體組件,該第二POST程序為一快速啟動,該快速啟動包括繞過該計算裝置的至少一些硬體組件的初始化和配置,該第三POST程序為一安全啟動,該安全啟動包括禁用故障的該些硬體組件。 A method of selecting a startup program for a computer device, the method comprising: transmitting a selection of one of a plurality of POST programs from a remote management station over a network to a computing device, wherein the computing device includes a controller, a plurality of hardware components and a UEFI BIOS, the UEFI BIOS includes the POST procedures; Receive the selection of one of the POST procedures from the remote management station on the controller; and start the computing device using the selected POST procedure, wherein the POST procedures include a general POST procedure, a pre-EFI initialization Environment stage, a driver execution environment stage, a boot device selection stage and a transient system loading stage, a second POST procedure and a third POST procedure, the general POST procedure has a security stage, the pre-EFI initialization The environment phase is used to initialize and configure the hardware components of the computing device, the second POST procedure is a fast boot that includes bypassing initialization and configuration of at least some hardware components of the computing device, the third The POST procedure is a secure boot that includes disabling the faulty hardware components. 如請求項6所述之方法,其中該快速啟動還包括:使用該一般POST程序中儲存在一持續性記憶體中的資料結構來恢復該計算裝置的暫存器。 The method of claim 6, wherein the fast boot further comprises: restoring a scratchpad of the computing device using a data structure stored in a persistent memory in the general POST procedure. 如請求項6所述之方法,其中該安全啟動還包括:讀取關於故障的該些硬體組件的估計報告以確定有功能的該些硬體組件;以及初始化有功能的該些硬體組件。 The method of claim 6, wherein the secure boot further comprises: reading an estimate report on the faulty hardware components to determine the functional hardware components; and initializing the functional hardware components . 如請求項6所述之方法,其中該些POST程序還包括一工廠供應啟動,包括: 加載一韌體配置;禁用一糾錯機制;以及允許對該些硬體組件執行一壓力測試。 The method of claim 6, wherein the POST procedures further include a factory supply start, comprising: Loading a firmware configuration; disabling an error correction mechanism; and allowing a stress test to be performed on the hardware components. 如請求項6所述之方法,其中該些POST程序還包括一診斷選項,該診斷選項包括:從該計算裝置的安全測試中收集除錯訊息;以及收集該些硬體組件的硬體錯誤狀態資料。 The method of claim 6, wherein the POST procedures further include a diagnostic option, the diagnostic option comprising: collecting debug messages from a security test of the computing device; and collecting hardware error states of the hardware components material.
TW109122795A 2020-03-16 2020-07-06 Method and system for optimal boot path for a network device TWI754317B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/820,367 US11126518B1 (en) 2020-03-16 2020-03-16 Method and system for optimal boot path for a network device
US16/820,367 2020-03-16

Publications (2)

Publication Number Publication Date
TW202136996A TW202136996A (en) 2021-10-01
TWI754317B true TWI754317B (en) 2022-02-01

Family

ID=77664858

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109122795A TWI754317B (en) 2020-03-16 2020-07-06 Method and system for optimal boot path for a network device

Country Status (3)

Country Link
US (1) US11126518B1 (en)
CN (1) CN113489597B (en)
TW (1) TWI754317B (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11416615B2 (en) * 2020-09-02 2022-08-16 Dell Products, L.P. Configuring trusted remote management communications using UEFI
CN112463431B (en) * 2020-12-11 2022-07-19 苏州浪潮智能科技有限公司 BIOS error positioning method, device, equipment and storage medium
KR20220091955A (en) * 2020-12-24 2022-07-01 에스케이하이닉스 주식회사 Memory system discarding method and memory system thereof
US20230102099A1 (en) * 2021-09-22 2023-03-30 Texas Instruments Incorporated Techniques for peripheral utilization metrics collection and reporting
US11620199B1 (en) 2021-12-23 2023-04-04 Quanta Computer Inc. Method and system for detection of post routine deviation for a network device
US11934838B2 (en) * 2022-02-09 2024-03-19 Quanta Computer Inc. Storing EFI variables in a BMC using an API
CN114564240B (en) * 2022-02-25 2024-02-27 苏州浪潮智能科技有限公司 Server starting method, system, computer equipment and storage medium
US11922174B2 (en) * 2022-04-08 2024-03-05 Dell Products L.P. Management controller requests in a UEFI pre-boot environment of an information handling system
US20230409342A1 (en) * 2022-06-17 2023-12-21 Arista Networks, Inc. Supporting different security schemes with different boot personalities for network devices
US20240039795A1 (en) * 2022-07-28 2024-02-01 Dell Products L.P. Connectivity Management System Which Optimizes Embedded Connectivity Management System Operations
US11863414B1 (en) * 2022-12-29 2024-01-02 Lenovo Enterprise Solutions (Singapore) Pte Ltd. Running network diagnostics on a server

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201303636A (en) * 2011-04-08 2013-01-16 Insyde Software Corp System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
TW201319942A (en) * 2011-11-04 2013-05-16 Asrock Inc Method for flashing firmware and booting method and electronic apparatus using the method thereof
TW201339970A (en) * 2012-03-27 2013-10-01 Asrock Inc Electronic apparatus and booting method
TW201416879A (en) * 2012-10-26 2014-05-01 Delta Electronics Inc Cloud system and the boot up and deployment method for the cloud system
TW201430705A (en) * 2012-12-04 2014-08-01 Microsoft Corp Virtual machine-preserving host updates
TW201432567A (en) * 2013-02-04 2014-08-16 Wistron Corp Booting method and electronic device
TW201510866A (en) * 2013-09-09 2015-03-16 Insyde Software Corp System and method of UEFI BIOS booting and updating, recording medium and computer program products
TW201524150A (en) * 2013-12-05 2015-06-16 Inventec Corp Remote booting system for computer and method thereof
TW201525688A (en) * 2013-12-17 2015-07-01 Inventec Corp Electronic apparatus and operational methods thereof
TWM518365U (en) * 2015-10-13 2016-03-01 Univ Taipei Chengshih Science Remote boot-up system
TWI553490B (en) * 2015-07-29 2016-10-11 廣達電腦股份有限公司 Method and system for remote system configuration management and non-transitory computer-readable storage medium
TW201729123A (en) * 2016-02-05 2017-08-16 廣達電腦股份有限公司 Method and server for remote launching deployment utility
TW201839544A (en) * 2017-04-26 2018-11-01 精英電腦股份有限公司 Debug device
TW201839622A (en) * 2017-04-27 2018-11-01 廣達電腦股份有限公司 Automatic firmware and custom setting provision for server device
TW201944239A (en) * 2018-04-12 2019-11-16 神雲科技股份有限公司 Server and method for restoring a baseboard management controller automatically

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978912A (en) * 1997-03-20 1999-11-02 Phoenix Technologies Limited Network enhanced BIOS enabling remote management of a computer without a functioning operating system
US6584499B1 (en) * 1999-07-09 2003-06-24 Lsi Logic Corporation Methods and apparatus for performing mass operations on a plurality of managed devices on a network
EP1442388A2 (en) * 2001-10-03 2004-08-04 Shield One, LLC Remotely controlled failsafe boot mechanism and remote manager for a network device
CN1421781A (en) * 2001-11-30 2003-06-04 英业达股份有限公司 Method of initiating several PDA operation systems via menu
KR100575156B1 (en) * 2004-05-19 2006-04-28 삼성전자주식회사 Computer system and control method thereof
US7568090B2 (en) * 2005-06-23 2009-07-28 Hewlett-Packard Development Company, L.P. Speedy boot for computer systems
CN100366000C (en) * 2005-12-19 2008-01-30 北京交通大学 SNMP-based IPv6 sensor network node management method
US8607040B2 (en) * 2010-11-16 2013-12-10 Intel Corporation Method of provisioning firmware in an operating system (OS) absent services environment
CN104679540B (en) * 2013-11-29 2017-12-19 英业达科技有限公司 Computer system and computer system starting method
JP6256063B2 (en) * 2014-02-05 2018-01-10 富士通株式会社 Information processing system and program management method
US9122501B1 (en) * 2014-09-08 2015-09-01 Quanta Computer Inc. System and method for managing multiple bios default configurations
CN105630530A (en) * 2014-11-15 2016-06-01 航天恒星科技有限公司 Multilevel boot method and system of digital signal processor
US9501289B2 (en) * 2014-12-26 2016-11-22 American Megatrends Inc. Method of a UEFI firmware and computer system thereof
US9817673B2 (en) * 2015-03-03 2017-11-14 Intel Corporation Technologies for fast low-power startup of a computing device
CN104731617A (en) * 2015-03-25 2015-06-24 浪潮集团有限公司 Server starting device determining method
US9810736B2 (en) * 2015-12-17 2017-11-07 Raytheon Company System and apparatus for trusted and secure test ports of integrated circuit devices
US10333772B2 (en) * 2016-06-07 2019-06-25 Quanta Computer Inc. Remote keyboard-video-mouse technologies
CN109144596B (en) * 2017-06-16 2020-09-18 腾讯科技(深圳)有限公司 Quick starting method, device, terminal, server and system
US11550593B2 (en) * 2019-01-08 2023-01-10 Dell Products L.P. Information handling system quick boot
US11194589B2 (en) * 2019-01-08 2021-12-07 Dell Products L.P. Information handling system adaptive component reset
US11106272B2 (en) * 2019-01-11 2021-08-31 Dell Products L.P. Bios-based user-selectable power control
US11513808B2 (en) * 2019-06-28 2022-11-29 Intel Corporation Automatic switching and deployment of software or firmware based USB4 connection managers

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201303636A (en) * 2011-04-08 2013-01-16 Insyde Software Corp System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
TW201319942A (en) * 2011-11-04 2013-05-16 Asrock Inc Method for flashing firmware and booting method and electronic apparatus using the method thereof
TW201339970A (en) * 2012-03-27 2013-10-01 Asrock Inc Electronic apparatus and booting method
TW201416879A (en) * 2012-10-26 2014-05-01 Delta Electronics Inc Cloud system and the boot up and deployment method for the cloud system
TW201430705A (en) * 2012-12-04 2014-08-01 Microsoft Corp Virtual machine-preserving host updates
TW201432567A (en) * 2013-02-04 2014-08-16 Wistron Corp Booting method and electronic device
TW201510866A (en) * 2013-09-09 2015-03-16 Insyde Software Corp System and method of UEFI BIOS booting and updating, recording medium and computer program products
TW201524150A (en) * 2013-12-05 2015-06-16 Inventec Corp Remote booting system for computer and method thereof
TW201525688A (en) * 2013-12-17 2015-07-01 Inventec Corp Electronic apparatus and operational methods thereof
TWI553490B (en) * 2015-07-29 2016-10-11 廣達電腦股份有限公司 Method and system for remote system configuration management and non-transitory computer-readable storage medium
TWM518365U (en) * 2015-10-13 2016-03-01 Univ Taipei Chengshih Science Remote boot-up system
TW201729123A (en) * 2016-02-05 2017-08-16 廣達電腦股份有限公司 Method and server for remote launching deployment utility
TW201839544A (en) * 2017-04-26 2018-11-01 精英電腦股份有限公司 Debug device
TW201839622A (en) * 2017-04-27 2018-11-01 廣達電腦股份有限公司 Automatic firmware and custom setting provision for server device
TW201944239A (en) * 2018-04-12 2019-11-16 神雲科技股份有限公司 Server and method for restoring a baseboard management controller automatically

Also Published As

Publication number Publication date
US11126518B1 (en) 2021-09-21
US20210286692A1 (en) 2021-09-16
TW202136996A (en) 2021-10-01
CN113489597A (en) 2021-10-08
CN113489597B (en) 2023-05-02

Similar Documents

Publication Publication Date Title
TWI754317B (en) Method and system for optimal boot path for a network device
US8417774B2 (en) Apparatus, system, and method for a reconfigurable baseboard management controller
CN107209671B (en) Dynamic automatic monitoring and control of boot operations in a computer
WO2022198972A1 (en) Method, system and apparatus for fault positioning in starting process of server
US10754955B2 (en) Authenticating a boot path update
US8856776B2 (en) Updating firmware without disrupting service
US7484084B1 (en) Use of a baseboard management controller to facilitate installation of firmware in a processing system
US20170228228A1 (en) Remote launch of deploy utility
JP2013532864A (en) Providing platform independent memory logic
US20090282142A1 (en) Boot controlling method of managed computer
US20090150528A1 (en) Method for setting up failure recovery environment
US20070288737A1 (en) Service processor host flash update over LPC
WO2021057795A1 (en) System starting method and apparatus, node device and computer-readable storage medium
US20180088932A1 (en) Multi-platform installer
WO2024022212A1 (en) Configuration information management method and apparatus, and server
WO2023098052A1 (en) Server operation and maintenance method and apparatus, and device and storage medium
TWI779682B (en) Computer system, computer server and method of starting the same
US11204704B1 (en) Updating multi-mode DIMM inventory data maintained by a baseboard management controller
US11586536B1 (en) Remote configuration of multi-mode DIMMs through a baseboard management controller
US11354109B1 (en) Firmware updates using updated firmware files in a dedicated firmware volume
US11212269B2 (en) Secure remote online debugging of firmware on deployed hardware
Sakthikumar et al. White Paper A Tour beyond BIOS Implementing the ACPI Platform Error Interface with the Unified Extensible Firmware Interface
JP7389877B2 (en) Network optimal boot path method and system
TWI554876B (en) Method for processing node replacement and server system using the same
TWI777664B (en) Booting method of embedded system