TWI311282B - Method and system for linking firmware modules in a pre-memory execution environment - Google Patents

Method and system for linking firmware modules in a pre-memory execution environment Download PDF

Info

Publication number
TWI311282B
TWI311282B TW092102237A TW92102237A TWI311282B TW I311282 B TWI311282 B TW I311282B TW 092102237 A TW092102237 A TW 092102237A TW 92102237 A TW92102237 A TW 92102237A TW I311282 B TWI311282 B TW I311282B
Authority
TW
Taiwan
Prior art keywords
module
modules
firmware
execution
call
Prior art date
Application number
TW092102237A
Other languages
English (en)
Other versions
TW200405209A (en
Inventor
A Stevens William Jr
J Fish Andrew
D Brannock Kirk
p hale Robert
Krithivas Ramamurthy
Original Assignee
Intel Corporatio
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 Intel Corporatio filed Critical Intel Corporatio
Publication of TW200405209A publication Critical patent/TW200405209A/zh
Application granted granted Critical
Publication of TWI311282B publication Critical patent/TWI311282B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

1311282 (Ο (發明說明應敘明.發明所屬之技術領域、先前技術、内容、實施方叙圊式簡單說 發明所屬之技術領域 本發明大致係相關於電腦系統,特別地,係相關於電腦 系統的基本輸入輸出系統(BI0S)。 先前技術 該BIOS包含執行程式與用以初始化電腦系統的其他元件 的資料的集合。—旦開啟(或者重置)該電腦系統,該電腦 系統會執行非揮發性記憶體中的該BIOS,像是唯讀記憶體 (ROM)晶片’或等同物。在許多電腦系統中,該刪會載入 所有或口P刀的作業系統’其通常係儲存在該電腦系統的硬 碟中或者,該作業系統可以從光碟機(CD-ROM)或是軟碟 機中載人θ載人的作業纟統會依序地呼q — bIQS常式或 元件。 在月'J置5己憶體執行環境中的BIOS(在此也稱作為勤體) 通常係為嚴謹限制的物件碼,其係為了—特定組態或系統 設計(在此也稱作為平台)來建造。也就是,不同平台典型 也.、有不同的BIOSs。更特別土也,該m〇s典型地包含用以提 供特定功能或服務的碼(在此也稱鳴體模組),其依次
地取決於該平台。你丨‘ ^ L 例如’一特殊服務的韌體模組對於奔騰 励處理器的平台相較於奔騰處理器的平台係不同的。 BIOS廠商典型地將會發展數種以支援各種平 〃非所願地增加測試、維修及文件化該多重BI〇Ss的成 。 再者,該傳統的發屁& + Λ 1 展程序要求軟體開發者以該主要韌體
O:\83\83227.D0O6\LAN (2) !311282
執行碼來編譯及連結他們的韌體模組。此外,竽 °》紅序常常 會要求έ亥軟體開發者針對每個廠商的主要勃體執行竭客 制化該韌體模組。該非所願的程序要求該開發者測試該韌 體模組在母個韌體環境中能否適當操作,這會增加開發 間及成本。 ""X 發明内容 本發明係關於一基本輸入/輸出系統(BI〇s),包含—核心 及多重模組。該等模組包含特定平台的模組及非特定平台 的模组。每個模組具有允許該核心(或其他模組)呼叫該= 組的標準介面。平台廠商利用從—或更多廠商中挑選模組 來建構一 BIOS,當執行時,其能夠選擇適合用以讓該扭 常駐的平台的模組。 實施方式 圖1根據本發明的一實施例說明一電腦系統1〇〇 ^電腦系 統100包含一處理器103、一非揮發性記憶體1〇5、—主要圮 憶體浙、裝置购到109_N,及一匯流排m。此外,電腦 統100包含一儲存在非揮發性記憶體105中的模組化Bi〇s 處理益103可以係為一常見的為處理器,像是但並不限於 :英特爾X86或奔騰系列微處理器、一摩托羅拉系列微處理 益及相同的東西。非揮發性記憶體105能夠以多種方式來 實行。、例如’實行非揮發性記憶體iQ5可以使用包含但不限 於可拭除且可程式唯讀記憶體(EpR〇M)裝置、電子抹除式可 編程唯讀記憶體(EEPR0M)裝置、快閃記憶體裝置,及相同
O:\83\83227.DOC7\LAN (3) 1311282
的裝置。實行主要記憶體1〇7可以# Λ便用包含但不限於動態隨 機存取記憶體_)、靜態隨機存記憶體(嶋),及相同 之物。裝置109-1到胸係為典型用於_電腦系統中的裝 置’像是但是不限於顯示器、螢幕、硬碟、光碟機、網路 介面卡_)、音效卡、印表機' 掃描器、指標裝置(例如滑 鼠、執料、觸控板)及才目同之物。主要記憶體ι〇7、非揮發 性記憶體105、處理器103,及展置靡領綱所有都輕合到 匯流排111。 應了解的是電腦系統100係為許多可能具有不同架構的 電腦系統的一個例子。例如’使用該微軟視窗作業系統與 英特爾微處理器相結合的電腦系統f常具有多重匯流排, 其中之-可說是週邊裝置匯流排。網路電腦也被視同與本 發明-起使用的電腦系、统。此外,手持式或掌上型電腦、(有 時係稱之為個人數位助理(PDAS))也可以視同與本發明一起 使用的電腦系、统。一典型的電腦系統通常包含至少—處理 器103、一主要記憶體1〇7、一非揮發性記憶體1〇5,及—匯 流排111。 同樣應了解的是在一實施例中,電腦系統100係由作業系 統軟體所控制,該軟體包含檔案管理系統,像是磁碟作業 系2,其係為該作業系統軟體的一部分。例如,本發明的 貫施例係使用微軟視窗作為該電腦系統丨⑻的作業系 統在其他實施例中,其他作業系統包含但不限於頻果麥 金塔⑧作業系統、微軟視窗作業系統、Unix作業系、統、Palm⑧ 作業系統’及類似可以根據本發明的學說使用的作業系
0:\»3\*3227.DO〇7\LAN 1311282
似於一作業系統與驅動程式如何允許一電腦系統能夠與多 重週邊裝置互用的方式互用。 圖3說明核心210與韌體模組212-1到212-M間及該等韌體模 組本身之間的功能的互連。在一實施例中,每個韌體模組 212-1到212-M包含一用以與核心21〇溝通的公用核心/模組介 面(未顯示);及一用以與其他韌體模組溝通的公用模組/模 組介面(未顯示)。例如,核心21〇能夠使用該公用核心/模組 介面與勃體模組212-1相溝通,如同雙箭頭3〇1所指示,而韌 體模組212-2到212-M也是如此。此外,韌體模組212-1能夠使 用該公用模組/模組介面與韌體模組212_2相溝通,如同雙箭 頭303所指示。雖然沒有顯示在圖3中,其他韌體模組212_3 到212-M也可配置該公用模組/模組介面以與其他韌體模組 相溝通。這些元件會相連結到圖6進一步描述於下。 圖4 A根據本發明的一實施例說明使用模組化BI〇s 12〇 (圖 1)所執行的基本初始化程序,在該實施例中,在經過一建 立程序之後,模組化BI〇s 12〇已經載入到非揮發性記憶體 105(圖1)内’這可用以編譯及連結在啟動方塊2〇1 (圖2)内的 核心210及韌體模組212-1到212-M。參考圖1、2及4,模組化 BIOS 120執行如下的該程序的實施例。 在方塊402中’電腦系統100係開啟或重置。特別地,當電 腦1〇〇係開-啟時,處理器ι〇3開始執行BI0S 12〇。在一實施例 中’使用者可以開動一切換器以提供能源給電腦系統丨〇〇或 重置電腦系統1〇〇。在許多實施例中,使用者也可以經由執 行在該電腦系統100上的作業系統所提供的使用者介面(例 O:\83\83227.DOC\7\LAN • 10 - 1311282
配’以允_電腦系統100能夠合適地操作。在一實施例中, 核心210包含用以檢查韌體模組212-1到212-Μ的資源清單(與 圖6有關描述於下)的指令,以決定這些韌體模組的哪些係 被要求。 在方塊428中’該等要求韌體模組的執行係被排程。在一 實施例中’核心210排程該等要求韌體模組的執行。例如, 核心210係基於在上面的方塊424中每個韌體模組的要求,排 程韌體模組執行。在一示範實施例中,核心21〇可以利用該 下列次序來排程韌體模組:中央處理器單元(cpu^I/〇(輸入/ 輸出)服務、PCI組態存取服務、:[CH(I/〇控制器集合)元件平 台初始化服務、SMBs (系統管理匯流排)協定存取服務、 MCH (記憶體控制器集合)元件平台初始化服務等等,這些在 初始化程序中係典型地早期所需要的。 在方塊432中,該等要求韌體模組係被分配(即是由處理器 103所執行)。在一實施例中,核心21〇係使用處理器ι〇3的一 暫存器來儲存一位元陣列,其指示著哪些韌體模組是被分 配的。該位元陣列的示範實施例係與圖5 一起進一步描述於 下。 圖5根據本發明的一實施例,說明一用以追蹤韌體模組分 配的資料結構。在該實施例中,對於在BIOS 120中最大為64 個韌體模組來說,該資料結構係為一位元陣列5〇〇,其能夠 使用處理器1〇3(圖”的一單一 64位元的暫存器來儲存之。位 兀陣列500的每個位元係映射於韌體模組2124到212_m的一 對應杈組。更特別地,在該圖5的實施例中,位元陣列5〇〇
O:\83\M227.DOQ7\LAN 1311282 的一位元512-1對應於韌體模組212-1,如同虛線514-1所示; 一位元512-2對應於韌體模組212-2,如同虛線514-2所示;...; 及一位元512-M對應於韌體模組212-M,如同虛線514-M所示。 在該實施例中,當位元陣列500的一位元係設定成1時,則 該對應的韌體模組已經係被分配。 圖6根據本發明的一實施例,說明一示範的韌體模組212 的元件。也就是,韌體模組212-1到212-M(圖2)的某些實施例 具有與韌體模組212相同的元件。在該實施例中,韌體模組 212包含一全球唯一代號(GUTD)601、一資源清單603、一輸入 表605、一輸出表607、服務609-1到609-L、一服務介面611及 一模組間介面6 1 3。在某些實施例中,韌體模組212係組織 成一表頭(header)及一執行影像(image)。該表頭係包含資源清 單603、輸入表605、輸出表607及一些由韌體模組212所提供 的服務(未顯示)。該可執行影像包含用於每個服務的碼。 韌體模組212的這些元件會在下面進一步描述。 GUID 601係獨特地識別韌體模組212。在一實施例中,當創 造出韌體模組212時,GUID 601係為一個使用該發送管理基準 版本 2.0 (Wired For Manageability Baseline Version 2.0)的標準所產生 的16位元組的數字。 資源清單603係為韌體模組212要能夠正常地作用所需要 的一些資-源。例如,資源清單603包含其他韌體模組的 GUIDs,服務或其他韌體模組所提供的模組對模組介面的 GUIDs。資源清單603係產生於當創造出韌體模組212時。 輸入表605列出由韌體模組212所輸入或呼叫的該等韌體 O:\83\83227.D0O7\LAK -13- (10) 1311282 貫際上所執行的服務係針對該平台的環境或硬體所配置的 服務β 服務介面611係作為韌體模組212到核心210(圖2)的介面。 例如,由於核心210呼叫韌體模組212,核心210能執行一包 含像疋該初體模組212的實體位址及一到核心21〇的回歸位 址(return address)的資訊的指令。對於所有韌體模組,服務介 面611係為一標準介面,使得核心21〇能夠呼叫任何韌體模組 (從任意廠商)。因此’核心210能夠以一單一格式來傳送參 數等等到任何韌體模組,其依次地為該韌體模組合適地操 作。 模組間介面613係當做為該韌體模組212對其他韌體模組 的介面。例如,由於韌體模組212呼叫其他韌體模組,韌體 模組212會執行一包含像是該其他韌體模組2丨2的實體位址 及一韌體模組212或在某些實施例係為在離菊鏈程序中的 核心210的轉回位址(與圖8有關而進一步描述於下)的資訊 的指令。在某些實施例中,介面611及613係相同的。 圖7A根據本發明的一實施例,說明輸入表6〇5。如同圖7A 所不,不範的輸入表6〇5包含一或更多的服務(即I—到 I_Service X)其係當初體模組212執行時可以呼叫。在該實施 例中’每個I—Service具有一名稱、一組的旗標,及一位址。 在貫%例中,該名稱係為該I_Service的GUID。該等旗標係 為用以指示先前決定組態屬性是否已經設定(例如雛菊 鍵、樹樁'網、内部網路等等)的位元。該位址係為一實體記 憶體位址,其代表著會被呼叫的韌體模組的起始位址加上
O:\83\83227.D0O7\LAN •15- 1311282 ㈧
~wM 該服務離該起始位址的偏移。該輸入表6〇5的項目係在該建 立程序的期間填滿。例如,該建立工具或應用可以決定合 被吟叫的勤體模組的起始位址,然後將該位址加上該: 移,該建立工具可以從被呼叫的韌體模組的輸出表中檢索。 圖7B根據本發明的一實施例,說明輸出表如同圖祀 所示,示範的輸出表·包含一或更多的服務(即 到E-SemCe-Y)。在該實施例中,每個E—Service具有一名稱、 一組的旗標,及一偏移。在-實施財,如同在-I—Service(圖 7A),該名稱係為一 GUID,及該等旗標係為用以指示先前決 定組態屬性是否已經設定(例如離菊鏈、回送介面等等)的 =元。該位址係為一實體記憶體位址,其代表著離該韌體 模組212的起始位址的該E_Seryice的偏移。該輸出表⑻7的項 目係藉由該韌體模組212的編譯及連結來填滿。該偏移係可 在該建立程序期間供該建立工具(如前文參考圖7A之說明 所述)使用以填滿輸入表605。 圖8根據本發明的一實施例,說明一建立程序。在一實施 例中,該建立程序係由該BI〇s廠商使用一建立工具來執 行,其實際上係用以編譯及連結該韌體模組與該Bi〇s的核 在方塊801中’選擇包含在該BI〇s中的韌體模組。在一實 施例中’該BIOS廠商從各種來源收集韌體模組。該特徵便 利地提供彈性,及能夠幫助該BIOS廠商避免發展自己本身 的韌體模組或模組群的需要。此外,一旦一韌體模組已經 測試過並且驗證係相容的,該BIOS廠商的測試要求係可以 〇:\83\83227D〇a7\LAN • 16- 1311282 (12) __ mmm 簡化的’因為軸體模崎明係可靠。更進—步地,該特 徵係允許-BIG㈣商能夠快速地提供新平纟的臟,因為 非$可此地,、有该BI〇S碼的—小部分需要開發。這些選擇 的勒體模組接著會放在—檔案内,而由m具操作於 其上。 ' 在方塊805中,母個選擇的動體模組的該等服務呼叫係被 檢索。在-實施例中,對於每㈣體模組,該建立工具獲 得來自該韌體模組的輸入表的服務呼叫。例如,在一第一 通過中’該建立工具檢查一第一動體模組(在方塊所選 擇)的輸入表,然後獲得該第一韌體模組呼叫的所有該等韌 體模組的起始位址。該建立工具接著會檢查一第二款體模 組的輸人表以獲得該第4龍組啤叫的所㈣等勃體模 組的起始位址,等等諸如此類。 在方塊809中m個呼叫的服務或知體模組的實體位 址。在-實施例中,該建立卫具檢查該等,叫勤體模組的 輸出表。如前面所描述,每個韌體模組的輸出表包含韌體 杈組提供的每個服務的偏移。因此,該建立工具能夠藉由 相加該啤叫服務的偏移與包含該服務的&體模㈣起始位 址來決定一呼叫服務的實體位址。 在方塊813,該呼叫服務或韌體模組的實體位址係被儲 存。在一實施例中,該建立工具儲存這些實體位址於該合 適韌體模組的輸入表。例如,在一實施例中,該建立工具 利用執行方塊805、809及813來做出一第一通過遍及該等韌 體模組,以填滿一第—韌體模組的輸入表。該建立工
O:\83\83227.DOC\7\LAN -17· 1311282 (13) -一 丨— _ 嗎」 —利用執行方塊8〇5、8〇9及813來做出一第二通過遍及所有 的該等韌體模組,以填滿一第二韌體模組的輸入表,及等 等諸如此類’直到所有在方塊8〇1中所選擇的該等韌體模組 的輸入表都已經填滿。 圖9根據本發明之一實施例說明一呼叫操作。一呼叫媒介 (例如核心210或圖2的韌體模組212-1到212_m之一),當執行 時’係會呼叫勤體模組212]到212懒其他模組的服務。在 回應下,該呼叫的服務接著會被執行’伴隨著當該呼叫的 服務完成執行時會回到該呼叫媒介的操作流程。該呼叫操 作的一實施例係描述於下。 、 在方塊9—02中,決定被呼叫的該初體模組或服務的實體位 在實%例中,該呼叫媒介在該呼叫媒介所保持的表 中查詢該韌體模組或服務的實體位址。例如,一呼叫韌體 :組會在其輪入表中查詢該實體位址。核心训具有所有該 專勃體模組及服務的實體健的表,該表係在 期間被填滿(見圖8)。核心21〇舍/兮主士士 程序 實體位址。 核心會在該表中㈣料叫服務的 在方塊906中。亥呼叫媒介保存該回歸位址(即在執行該呼 叫服務之後,執行會回到的位址),使得該操作流程會回到 匕在f呼叫媒介的執行期間所停止的點。在-實施例中, 該回歸位址係存在處理請(圖!)的暫存器中。因此,再一 實施例中’只有處理器,的兩個暫存 酬圖2)的該前置記憶體執行的期 ::: 500使用,而另-個供”…… 個供位兀陣列 固仏該回知位址使用。因此,該實施例便
O:\83\83227.DOD7\LAN -18- 1311282
(Η) 利地為了其他目的,釋放處理器1〇3的龙 — k 他暫存器。再其他 貫施例中’方塊906係在方塊902之前執行。 在方塊9H)中’執行該呼叫服務。更特別地,在該實施例 中’該呼叫媒介造成處理器啊圖!)能夠執行儲存在方境 902中所發現的實體位址的指令(即該呼叫服務的開始指 令)。在完成該呼叫服務的執行之後,執行方塊914,盆中該 操作流程會使㈣存在方塊,的回歸位址來回到、料 叫媒介。
圖10根據本發明的一實施例說明一離菊鏈操作。該離菊 鏈特徵允許刪12_υ能夠在沒有存在於該平台中的硬 體的特定知識下執行。例如,該雛菊鏈特徵係便利地使用 於當麵12G係使用於多重平台巾的時候。特別地,刪⑶
包含多重韌體模組,一些韌體模組係設計用於可能或可能 不會出現在該平台中的特殊硬體組件。例如,該平台廠商 會選擇數個執行相同功能的$同硬體組件之—,每個具有 可以操作該硬體組件㈣體模組。在該實施例中,針對該 硬體組件的該韌體模組係具有識別該操作該硬體組件的服 務的相同GUID。當彳叫該GUID服務的時候,必須執行對應 於出現在該平纟巾#真實硬體、组件的該勃體模組。離菊鏈 便利地允許該動體模組本身決定哪個韌體模組應該針對出 現在該平-台中的硬體組件來執行。 該難菊鍵操作的—實施例係使用示範的韌體模組212a、 212B及212C來描述於下。在該例中,韌體模組212A_212C的輸 入及輸出表具有—”離菊鏈”旗標(見圖7A及7B),其係為了對
O:\83\83227-D0C\7\LAN •19- (15) _ 1311282 應於該,,多重硬體組件”GUID的特定服務而設定。在該建立 程序期Μ,當該建立工具先找到具有該雛菊鏈旗標設定(即 在該範例中的勒體模組212Α)時,該建立工具則會檢查該剩 餘韌體模組的輸入表,直到他發現具有該相同的的服 務在°亥例中,该下個韌體模組係為韌體模組212B。該建 立工具儲存該服務的實體位止㈣體模組212A的變數内 (在該為變數ρνεχτ)^^重複該程序以發現下 個韌體权組(即在该例中為韌體模組21%)的實體位址以菊 鏈到韌體模組212B。在該例中,只有動體模組212A_212C具有 該相同GUID的服務,所以該建立卫具不會發現―實體位址 以載入韌體模組212C的變數ΡΝΕχτ。因此,在該例中,變數 ΡΝΕΧΤ係設定成零(即空值卜其他服務係具有菊鍵的動體模 徂的數目係不同於該例的數目(即任何大於或等於2的數 字)。菊鏈的一實施例操作如下。 在方塊1001Α中,當勤體模組212Α係執行,勤體模組212Α $定該服務所設計用以與該硬體組件操作是否存在該平 台。在一實施例中,韌體模組212Α藉由檢查保持在硬體内 的組態暫存器來執行該操作。 假如忒硬體組件係存在,則韌體模組2ΐ2Α會繼續執行, 以執行在方塊1〇03Α中的呼叫服務。在韌體模組2ΐ2Α完成執 行之後,該操作流程會回到在方塊1〇〇5Α中的呼叫媒介。 然而,假如在方塊1001Α中,該硬體組件並沒有存在於該 平台,則該操作流程會進行到方塊丽Α。在方塊黯Α中, 該程序決定在該離菊鏈中是否有下個韌體模組。在一實施
0:V83\«3227.D〇a7\LAN 1311282 (16) I發锔 例中,韌體模組212A檢查變數PNEXT以查看他是否持有一實 體位址。例如,韌體模組212A能夠測試變數PNEXT是否係空 值(藉此指示在該離菊鏈中沒有下個連結)。 假如變數PNEXT係為空值,該操作流程會進行到方塊 1009A,在其中韌體模組212A指示已發生錯誤。在一項實施 例中,韌體模組212A會經由電腦系統100(圖1)的顯示器或監 視器(未顯示)來顯示一錯誤訊息。該操作流程接著會進行 到方塊1005A(描述於上)。 相反地,假如變數PNEXT並非係空值(即在該雛菊鏈中持 有該下個韌體模組的實體位址),該操作流程會跳到在方塊 1011A中的變數PNEXT所載入的該實體位址,以執行在該雛 菊鏈中的下個韌體模組。在該示範的實施例中,該下個韌 體模組係為韌體模組212B。 韌體模組212B基本上係以如同上面所描述的韌體模組 212A的方法來執行。以就是說,上面對於韌體模組212A的描 述利用將附加該參考數字後面的字母ΠΑΠ改成字母"B”,可以 相當等同施加於韌體模組212Β。 韌體模組212C基本上也可利用與韌體模組212Α相同的方 法來操作。然而,因為韌體模組212C在該示範實施例中, 係為該雛菊鏈的最後連結,韌體模組212C的變數PNEXT在該 建立程序期間,應該要設定成NULL。因此,方塊1011C不會 以正常操作來執行。 圖11根據本發明之一實施例,說明在BIOS 120(圖1)中使用 的過濾模組1100。過濾模組1100係屬於特定平台,能夠便利 O:\83\83227.D007\LAN -21 - (18) 1311282
他平台可以配置成使用一 SMBus以存取處理器1〇3(圖丨),而 其他SMBus控制係用以存取記憶體模組。在該實施例中,該 π啤叫中”勃體模組1104-1到11〇4_R係配置成在不知道該等多 重SMBus控制器服務的情形下,藉由使用過濾模組11〇〇的 GUID來簡單啤叫一 SMBus控制器服務。該平台特定過濾模組 1100係配置以中斷對它的GUJD的呼·叫,及回應下,呼叫該 等韌體模組1106-1到ii〇6-S中的合適的SMBus控制器服務。因 此在該例子中,該呼叫該等各種可用的SMBus服務中的一個 合適服務的程序對於"呼叫中"韌體模組丨川冬丨到u〇4_R係為 透明可見的,只是其必須要配置成呼叫過濾模組11〇〇。結 果,只有過濾模組1100需要係特定平台,同時韌體模組 到1104-R及莉體模組1106-1到1106-S可以係非特定平台,以供 各種平台使用。 種用以在一則置記憶體環境中連結韌體模組的系統及 方法的實施例係描述於此。在該下面描述中,數種特定細 節提供對本發明的實施例的徹底了解。然而,熟悉該項技 藝者應了解的本發明可以在沒有一或更多的該等特定細 節、或其他方法、元件、材料等等的情形下實行。在其他 範例中,為人熟知的結構、材料或操作並沒有詳細地顯示 或描述以避免混淆本發明的各方面。 在整個-該說明書中,對”一種實施例,,或"一個實施例"的 參考係指與該實施例有關聯所描述的特定特徵、結構或特 性係包含在本發明的至少一實施例中。因此,” 一種實施例 •’或"一個實施例,,的說法在該說明書中到處所放置各種的 O:\83\83227.D0O7\LAN -23- (19) ____ 1311282 表示並不需要所有都參考相同的眘 U幻貫施例。再者,該等料接 特徵 '結構或特性可以在_戋更$ Μ杳& / & 寸付殊 的方式組合。 以夕的貫施例中以任何合適 在該下面描述中,為了解釋起見,❹料的術語 底了解本發m ’對熟悉該項技藝者應明白的是 5賣該描述之後’並不會要求這此胜—4 — 二特疋細節以實行本發明。 所跟隨的該料細描述的―些部分係崎作在於— 電腦記憶體中的資訊的演算法及符號代表的項目來表: 這些演算描述及代表能夠讓熟悉該項技藝者所使用,二 達他們的工作的内容給其他熟悉該項 項孜蝥者。此處的演苴 法則通常係認為能夠導向所要結果的有調理的順序的步 或操作。這些步驟或操作係要求物理量的物理運用。通;, 雖然並非必須,這些量採取電氣、磁場 ^琢取1:磁#號的形式, 其能夠儲存、轉換、結合、比較或其他的運用。這些信號 通常在此係指位元、位元組、字植、叙杜 —- 數值、元件、符號、 字元、項目、數字或相似的東西。 除非其他特定的描述,像是"處理”、"計算,,、I,決定” ” 顯:”或相似的項目都係指一電腦系統或其他類二電、子’ 汁鼻裝置的動作及程序。特別土也,這些動作及程序會運用, 並且將在該電腦系統的暫存器及記憶體内所代表物理量 (如上面所-述)的資料轉換成其他在該電腦系統的記憶體或 暫存器或其他資訊儲存器、傳輸或顯示裝置内所代表物理 量(如上面所述)的資料。 本發明也相關於-或更多用以執行在此所描述的操作的 O:\83\83227.DOC\t\LAN -24· () i 1311282 裝置。一裝置可以為了所要求的目的特別地製作,或包含 一可選擇地由儲存在該電腦内的電腦程式啟動或配置的通 用電腦。該一電腦程式可以儲存在一電腦可讀式儲存媒 體,像是但不限於任何類型的磁碟,其包含軟碟、光學碟 片壓縮光碟(CDs)及磁光碟片。其他儲存媒體包含唯讀記 隐體(ROMs),其包含可拭除且可程式唯讀記憶體及電子抹 除式可編程唯讀記憶體(EPROMs及EEPR0Ms);隨機存取記憶 體(RAMs),包含靜態及動態RAMs ;及磁性或光學卡片。 在此所呈現的演算法則及顯示本來並沒有相關於任何特 2電腦或其他裝置’除非其他另有特定的說明。各種通用 …統’特殊裝置也是,都係根據在此的學說的程式來使用。 ^明本發明並沒有參考特定的程式化語言來描述。按照 =二悉該項技藝者可以使用各種可程式語言,不須 在過度的貫驗下實行本發明的學說。 二=::::的實施例的描述,包含在該摘要中 所揭露的嚴二ΓίΓ非常詳細或是將本發明限制於 為了說明發明的特定實施例或範例係在此 係可行的,、…2,各種等效的修正在本發明的範圍内 按照該上面詳細描述:==所了解的。 在該下面毕务月作出返些修正。該等使用 丨平明專利範圍的 成在該說明書及該等申性該未構成將本發明限制 例。再者,本發明的r D'洋“巳圍中所揭露的特定實施 I巳圍來決定,其用該打面的申請專利 申"專利範_釋的⑽立原理所 〇;«3\83227.〇〇〇^ -25- (21) 1311282
架構而成。 圖式簡單說明 ^ 5月的非限制及非詳盡的實施例係參考該等下列圖示 來描述其中在該等各式視圖中的相同參考數字係指相同 零件,除非有其他規定。 圖1係為—方塊圊,根據本發明的一實施例,說明一具有 模組化的BIOS的電腦系統。 圖2係為一圖示,根據本發明的—實施例,說明一模組化 的 BIOS。 圖3係為一圖示,根據本發明的一實施例,說明一模組化 的BIOS的模組間的通訊連結。 圖4A及4B係為流程圖,根據本發明的一實施例,說明一 模組化的BIOS的基本初始化操作。 圖5係為一圖示,根據本發明的一實施例,說明用以追蹤 韌體模組的調度。 圖6係為一方塊圖,根據本發明的一實施例,說明一韌體 模組的元件。 圖7A及7B係為根據本發明的—實施例,分別地圖示輸入 (import)及輸出(export)表。 圖8係為一流程圖,根據本發明的一實施例,說明一用以 連結在該BIOS中的韌體模組的程序。 圖9係為一流程圖,根據本發明的一實施例,說明一模組 啤叫操作。 圖10係為一流程圖,根據本發明的一實施例,說明一離 O:\83\e3227.DOC\7\LAN -26 - 1311282 _ (22) 5明$明續旯 菊鍵(daisy chaining)操作。 圖11係為一圖示,根據本發明的一實施例,說明一過濾 模組。 O:\83\83227.DOC7\LAN -27- 1311282 (23) 發雨祝明續頁 <圖式代表符號說明> 100 電腦系統 103 處理器 105 非揮發性記憶體 107 主記憶體 109-1 〜109-N 裝置 111 匯流排 120 模組化基本輸入輸出糸統 201-204 方塊 208 重置向量 210 核心 212-1 〜212-M 韋刀體模組 301-303 雙箭頭 500 位元陣列 512-1 〜512-M 位元 601 全球唯一代號 603 服務介面 605 輸入表 607 輸出表 609-1〜609-L 服務 611 服務介面 613 模組間介面 1100 過濾模組 1102 介面 1104-1 〜1104-R 韌體模組 1106-1 〜1106-S 韌體模組 O:\83\83227.DOC\7\LAN -28-

Claims (1)

  1. 包含: 131128Si〇2237號專利申請案 中文申請專利範圍替換本(98年2月) 拾、申請專利範圍 丨 1. 一種連結韌體模組之方法 開始執订一基本輸入輸出系統(BI〇s),該bi〇s具 個韌體模組; 仍疋热钹數個勒體模組的每一個所要求的動體資源 該等勤體資源要求係與一或多個其他_組相關:、 決定該複數㈣體模組之—子集,_物體模組可呼叫 決定該複數個勤體模組之一子集,其呼叫該!^ 組,排程該複數個勒體模組的執行’執行基於考慮… 決定所需的韌體資源;及 ^ 配該等用以執行的已排程之複數個知體模电。 2.如申凊專利範圍第】項之方法,尚包含在分配 之複數個動體模組之後,初始 X 系 …請專利範圍㈣之方法,尚包 體模組的其絲體模組的期間,呼叫3^硬數㈣ 數個勒體模組的—_模組。用以執行的複 4.如申請專利範圍第3項之方法,其中 組的-韌體模組,尚包含: n項數個韌體模 儲存一回歸位址; 決定該模組的實體位址; 及 回歸位址的指 ,行儲存在該模組的實體位址的指令; 當執行完該模組時,執行儲存在該錯存 Ο * 83227-980205.doc 1311282 申請專剎範囱續_ 'I _ ** -» ϊ -V Ο 5_如申請專利範圍第4項之方法,Α ,,.^ ^ ^ ”甲决定該模組的實體位 二在該其他模組的輸入表中的實體位址。 申::利範圍第1項之方法,其中1體模組包含: -王球唯-代號(GUID)’用卩識別該模植. 的^源清單,用關存該模組操作所需要的識別資源 一=表,用以儲存在執行時,該模組會呼叫該複數 韌體杈組中一組模組的實體位址丨 =服務’當執行時’會執行—縣決定的功能; 值了:出表,用以儲存一對應於該服務的實體位址的數 務作上係、資源清單、該服 二輸入表,及該輸出表’其中該介面係利用一呼叫 中媒"經由該GUID而為可定 存κ㈣“供_叫中媒介 子取》亥貝源〉…該服務、該輸入表,及 7. 如申請專利範圍第6項之方法,其中該輸 值係為離該知體模組的起始位址的偏移。⑽的數 8. :::二利範圍第6項之方法’其中該輸八表係用以儲存 ^ ?個韌體模組的該組模組的GUIDs。 9. 如申請專利範圍第1項之方法,尚包含: 開始執行該等複數個韌體模組的一第—模組; 組:】:第-模組是否與該等複數鋪體模組的其他模 假如該第-模組係為可連結的,決定—與該第—模組 83227-980205.doc 1311282 請專則Μ圍碘頁 有關的硬體組件是否是存在於該平台中; 假如與該第一模組有闕的該硬體組件係存在於該平台 令,完成該第一模組的執行;及 假如與該第一模組有關的該硬體組件沒有存在於該平 台中,開始該等複數個韌體模組的一第二模組的執行χ。 10. 如申請專利範圍第9項之方法,其中該第一模組包含—資 料結構,用以儲存該第二模組的實體位址。 、 11. 如申請專利範圍第9項之方法,尚包含·· 假如該第-模组係可連結,決定一與該複數個勒體模 組的该第二模組有闕的硬體組件是否存在於該平台; 假如與該第二模組有關的硬體組件係存在於該平台 内,完成該第二模組的執行; 假如與該第二模組有關的硬體模組沒有存在於該平台 内决疋一第三模組是否連結到該第二模組;及 第假二=模組係連結到該第二模組,在沒有完成該 弟:=的執行下,執行該複數個動體模 第11項之方法,其中完成該第二模組的 執饤尚包含回歸到呼叫該第一 α如申請專利範圍第W之方法,尚包含”媒" 二呼複數個勤體模組的-第-模組所 的#彳ΙΪ1 r ’ Η係為一組呼叫中之一,該組呼叫 該複數個勒體模組的-組模組的-模組』 關^相關性係取決於該平台的組態; 口該呼叫,開始該複數個勒體模組的該第一模組的 83227-980205.doc !311282 執行; " 決定該組模組的哪個模組係與該呼叫有關;及 開始與該呼叫有關的模組的執行。 14·:申請專利範圍第13項之方法,尚包含當完成與該呼叫 有關的模組的執行時,回歸到該呼叫媒介。 15·如申請專利範圍第1項之方法,進一步包含: 執行一核心模組; 利用該核心模組初始化該複數個韌體模組,其中該初 始化包括: 檢驗至少二動體模組以決定發送該等韌體模 組的要求次序; 發送該二韌體模組中一較早的及隨後發送該 一韋刃體模組中一較晚的; 在初始化該複數個韌體模組後,初始化一系統 記憶體;及 在發送该杈早韌體模組或該較晚韌體模組期間喚起一 包含於一第三韌體模組中的功能。 16. -種機器可讀媒體,其包含一些指令,當由一機器所執 行時,讓該機器能夠執行一些操作,包含: 開始一 BI0S的執行’該BIOS具有複數個韌體模組; 決定每一該複數個韌體模組所要求的韌體資源,該等 早刃體資源係與一或多個其他韌體模組相關; 決疋遠複數個韌體模組之一子集,一韌體模組可呼叫; 決定該複數個韌體模組之一子集,其呼叫該韌體模 83227-980205.doc 1311282 申請專利範圍續頁 _ ............. _' - .............' f 組;排程該複數個㈣模組的執行,基於考慮 所需的韌體資源;及 、疋 分配該等用以執行的排程複數個韌體模组。 17.如申請專利範圍第16項之機器可讀媒體,尚包含 令’當由該機器所執行時,造成 “曰 已排程之模組之後,執行初始化該機分配該等 -如申請專利範圍第16項之機器可讀 令,當由該機器所執行時,造成該二 組的其他模組的執行的期間,執行該複數個㈣ 杈、且中用以執行的模組的操作。 I9·如申請專利範圍第ls項之機 數個動體模組的一模組尚包含一呼叫該複 執行時,造成該機器能夠執行;:二=該機器所 儲存一回歸位址; 3 決定該模組的實體位址; 執行儲存在該模組的實體 畲完成該模組的執行時, 的指令。 位址的指令; 執行儲存在該 及 儲存回歸位址 20.如申凊專利範圍第I6項之機哭_p 4 π〈機器可讀媒體 組包含: 其中一韌體模 一全球唯一代號(GUID),用 一資源清單,用以儲存該模 資源的資訊; 以識別該模組; 組用以執行所需要的識別 一輸入表 用以儲存在執行時 該模組會呼叫該複數 83227-980205.doc 1311282 個韌體模組中一組模 姨,,且的實體位址; —服務,當執行時,舍拥y —輸4»# B 會執仃一預先決定的功能. %出表,用以徽在 "月b, 值,·及 ^應於該服務的實體位址的數 務、該輸入表,及二Γ該⑽D、資源清單、該服 中媒介經由該咖而二:,其中該介面係利用-呼叫 源清單、該服務、該 Τ“ 21.:申:專利範圍第16項之機器可讀媒體,尚=二 ::::該機器所執行時,造成該機器能夠執行一 開始執行該等複數個_組的一第,. 組第一模組是否與該等複數個動體模組的其他模 假如該第-模組係為可連結的,決定一與該第一模租 有關的硬體組件是否是存在於該平台中; 、、 假如與該第一模組有關的該硬體組件係存在於該平台 中’完成該第一模組的執行;及 σ 假如與該第一模組有關的該硬體組件沒有存在於該平 台中,開始該等複數個韌體模組的一第二模組的執行。 22·如申請專利範圍第21項之機器可讀媒體,尚包含一些指 令,當由該機器所執行時,造成該機器能夠執行一些操 作,包含: 假如。亥第一模組係可連結,決定一與該複數個韌體模 83227-980205.doc 1311282 申請專神範薗續頁 組的該第二模組有M..... 假如與該第二模組 ;^機态, 内,完成該第二模組的執行 件係存在於該機器 假如與該第二模組有關 内,氺宗一筮-& J灭經棋組/又有存在於該機器 决疋-第二模組是否連結到該第二模組;及 第=;模組係連結到該第二模組,在沒有完成該 23如;真二:仃下’執行該複數㈣體模組的第三模組。 圍第22項之機器可讀媒體,其中完成該第 m灯尚包含一些指令,當由該機器所執行時, =機器能夠執行回歸到呼叫該第一模組的 的操作。 24·如申請專利範圍第16項之機器可讀媒體,尚包含一歧指 令’當由該機器所執行時,造成該機器能夠執行 作,包含: —# 執行哞叫媒介對該複數個勃體模組的一第一模粗所 做的呼叫’其中該呼叫係、為—組呼叫中之―,該組呼叫 的每:個係與該複數個韋刀體模組的一組模組的一模組有 關’該等相關性係取決於該機器的組態; 回應為呼叫,開始該複數個勃體模組的該第一模組的 執行; 決疋忒、、且模組的哪個模組係與該呼叫有關;及 開始與該呼叫有關的模組的執行。 25·:申:專利範圍第24項之機器可讀媒體,尚包含一些指 文田由邊機器所執行時,造成該機器能夠當完成與該 83227-980205.doc 1311282 —..二\Λ' ;Γ: I 申請專利 呼叫有關的模組的執行時’回歸到該呼叫媒介的操作。 %如申請專利範圍第16項之機器可讀媒體,尚包含一此指 令’當由該機器所執行時,造成該機器能夠執行操作, 包括: ::-分離核心模組,基於該等_模組每一個輪入 的服務資訊,在該複數個動體模組間衫相依關 y ,、中由該複數㈣體模組的每—個輸人的該等服務 係位於該複數個韌體模組的另一個中; 依照滿足該等相依關係的次序發送該複數個勒體模組 的每一個;及 發送該複數個_模組後,初純—揮發㈣ 體。 27_ —種連結韌體模組之系統,包含: 複數個硬體組件; 热摘^躺°己隐體^件’用以儲存一職,該BI〇S包括複 數個韌體模組,該BIOS尚包含·· 決疋構件’用以決定每—該複數個㈣模 :源,該等勒體資源要求係與一或多個其他勒體 關, 排程構件 分配構件 程模組;及 一處理器 用以排程該複數個韌體模組的執行;及 用以分配用以執行決定要求_資源的排 耦合到該等複數個硬體組件及該第一記憶體元: 在其上執行該複數個韌體模組,該處理器 83227-980205.doc 1311282 二:\ :p 請專 申叫專利範圍第27項之系統,其中該Bi〇s尚包含初始 化構件,用卩在分配該等排程模組之Μ,初始化該系統 的記憶體。 ’ 申明專利範圍第27項之系統,其中該BI〇s尚包含呼叫 構件,肖α纟該複數個章刀體模组的其他模组的執行的期 間’呼叫用以執行的該複數個韌體模組的一模組。 30.如申請專利範圍第29項之系統,其中該呼叫構件,用以 呼叫該複數個韌體模組的一模組,尚包含: 儲存構件,用以儲存一回歸位址; 決定構件 執行構件 令;及 執行構件 用以決定該模組的實體位址; 用以執行儲存在該模組的實體位址的指 計 用以當完成該模組執行時,執行儲存在該 储存回歸位址的指令。 31:申:專利範圍第27項之系統’其中該複數個_模組 的一模組包含: 一 Μ唯—㈣以識別該模組; =貝源清單,用以健存該模/ 資源的資訊; …高所需要的識別 輸入表用以儲存在執行時,該模組會呼叫兮複數 個韌體模組中一組模組的實體位址; ° 一服務’當執行時’會執行-預先決定的功能· 值;及 f應於該服務的實體位址的數 83227-980205.doc 1311282 \ 利範圍績頁 二面’其操作上係耦合到該嶋、資源清單、該服 二二輪入表,及該輸出表,其中該介面係利用一呼叫 由該⑽⑽為可定址的,以提供該 源料、該服務、該輸人表,及該輸出表。 申2專利範圍第27項之系、统,其中該卿尚包含: 構件’用以開始執行該等複數個勃體模組 —模組; ^疋構#用以決疋该第—模組是否與該等複數個款 體拉組的其他模組相連結; ―:定構件’假如該第-模組係為可連結的,用以決定 中该第一模組有關的硬體組件是否是存在於該平台 成構件假如與該第—模組有關的該硬體組件係存 該平台卜用以完成該第-模組的執行;及 :行構件’假如與該第_模組有關的該硬體組件沒有 一子::該平台中,用以開始該等複數個動體模組的一第 一模組的執行。 33.如申料利範㈣32項之系統,其中該娜尚包含: ^構件’假如該第-模組係可連結,用以決定一盘 勤體模組的該第二模組有關的硬體組件是否; 在於該系統; 于 執行構件’假如與該第二 有關的硬體組件係存在 於該糸統内,用以完成該第二模組的執行. 決定構件’假如與該第二模組有關的硬體模組沒有存 83227-980205.doc 10 1311282 丄 一.一.. 」I申讀,專利範圍續頁 在於該系統内,用以決定—第^ 模組;及 疋否連結到該第二 執行構件,假如該第三模 沒有完成該第二模組的執行下=、:。到該第二模組,在 模組的第三模組β M執行該複數個韌體 34. 如申請專利範圍第33項之 完成該第二模組的執行,尚包含仃構件,用以 叫該第—模組的呼叫媒^ V構件’用以回歸呼 35. 如申請專利範圍第3〇項之 執行構件,用以執行—t 中該_尚包含: ^ f % ^ . "叫媒介對該複數個fe? M la ^ 衩組所做的呼叫,甘士 β β 之-,二“ t 十巧’其中該呼叫係為一組呼叫中 模电的二個係與該複數㈣體模組的-组 等相關性係取決於該機器的組態; 的該第-模組的執行; 幵1始該複數個物體模組 决定構件,用以決 有關;及 、疋该組杈組的哪個模組係與該呼叫 執行構件,用以開始盥該 36. —種連站4有關的杈、,且的執行。 埂、.。韌體模組之系統,包含·· 複數個硬體組件; 1己_'體元件’帛以儲存—BIOS,該BIOS包含: 以提供S 7靭體杈組’該複數個韌體模組的每個模組用 Μ提供至少_服敌 _ At ’至 >、二模組提供一模組間介面以致 月b 3哀至少二模组 、'’、彳由其他模組提供的一服務,該複數 83227-980205.doc 1311282 個… … 個韌體模組的每—模組 —- 關的—資源清單; 3 /、一或多個其他韌體模組相 核心:=操作上稱合到該複數個動體模組,”咳 核〜基於#作用以從$ '、亥 前的前置記憶體執行…:體的初始化及可利用性之 中選擇用以執行的欲執行的該複數個物體模組 憶體::理器,—複二硬體組件及該第一記 37.如申請專利範圍第%項之 組的一第_掇Μ # ,'、冼,其中在該複數個韌體模 的第模組的執行期間 叫該複數個章刀體模組用以執 、、選擇地呼 -·如申請專利範圍第37項之二模組。 輸入表,用以儲存該第二:二=該第-模組包含- 尚用以在呼叫該第二模組 模,,且 理器的暫存器。 回歸位址儲存在該處 39.如申請專利範圍第%項 的一模組,包含: 糸、,先’其中該複數個動體模組 一 Ϊ球唯—钱(_),^識別該模組; 一資源清單,用以儲存該 資源的資訊; 、,帛以執仃所需要的識別 :輸入表’用以儲存在執行時’該模組會呼叫該複數 個轫體杈組中一組模組的實體位址. 一服務,當執行時,會勃 -輸出表,用以儲存一;=先決定的功能; 對應於該服務的實體位址的數 83227-980205.doc •12- 1311282 範圍續頁 值;及 ……‘ —'+… - 一介面’其操作上係耦合到該GUID、資源清單、該服 務、該輸人表,及該輸出表,其中該介面係利用一;叫 中媒,經由該GUID而為可^址的’以提供該呼叫中媒介 40 it 5亥資源清單、該服務、該輸入表’及該輸出表。 _ :請專利範圍第36項之系統,其中該複數個勤體模組 組模組具有全球唯—代號(GUID)。 41=申請專利範圍第40項之系統,其中在該組模組的一第 -’:組的執行期間’該處理器用以當與該第—模組有關 的一弟:硬體組件係存在於該系統中時,完成該第一模 、且的執仃’該第-硬體組件係為該等複數個硬體組件之 0 公.2請專利範圍第41項之系統,其中該第—模組用以當 人硬體、、且件不存在於該系統中時,呼叫該組模植的 一第二模組。 申β專利乾圍第36項之系統,其中在該複數個韌體模 ,且的帛-模組的執行期間’該第—模組用以呼叫該複 :個動體模組的一第二模組以執行一服務,該第二模組 以呼叫一第三模組以作為該系統的組態的功能,該第 :模組係為該複數個_組的-組模組之-,每個係 j供该第一模組所啤叫的服務的該複數個硬體組件中 不同硬體組件有關。 硬體組件,其執行一功能; 44·如申請專利範圍第綱之系統 一描胁二八, ν υ · 83227-980205.doc 13· 1311282
    申請專利範®續頁 一揮發性記憶體,其能在該揮發性記憶體被初始 化後儲存資料; 一包含BIOS的非揮發性記憶體,該BIOS包括一 BIOS核心,及複數個韌體模組, 其中該複數個韌體模組中的二個係初始化硬體組 件,以便執行該功能,及 該複數個韌體模組中的二個中的一個用於初始化 一出現在該系統中的硬體組件,係藉由疊代該BIOS 内的該複數個韌體模組中的每一個,以決定是否該 硬體組件是否出現,及 該複數個韌體模組中的二個係發送於該揮發性記 憶體初始化之前。 83227-980205.doc 14- 1311282 第〇921〇2237號專利申請案 中文圖式替換頁(96年10月)
    402 406 410 414 418 圖 4A 0:\83\83227.DOQ1J\LAN 1311282 ·Λ r* /Ί ? · 第號專利申請案 中文圖式替換頁(96年10月) 500 SJ2-1 512-2 S12-3 512-4 512-S SJ2-M 512-64 514-1 一 514-M- 514-2 核心 模組-1 模組-2 ~2iQ ^212-1 ^212-2 圖 212 Of 模組-Μ ^212-Μ Η 601 全球唯一代號 資源清單 693 模組 輸入表 JSERVICE-1 .SERVICE-2 輸出表: J5SRVICE-i SERVICE-1 607 r-> 60S SERVICE--euw SERVICE-2 -0VJJ) 609-1 609-2 SERYICE-L -GUJD 611 613 609-L 服務介面 模組間介面 I/F
TW092102237A 2002-02-11 2003-01-30 Method and system for linking firmware modules in a pre-memory execution environment TWI311282B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/073,495 US7454603B2 (en) 2002-02-11 2002-02-11 Method and system for linking firmware modules in a pre-memory execution environment

Publications (2)

Publication Number Publication Date
TW200405209A TW200405209A (en) 2004-04-01
TWI311282B true TWI311282B (en) 2009-06-21

Family

ID=27659683

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092102237A TWI311282B (en) 2002-02-11 2003-01-30 Method and system for linking firmware modules in a pre-memory execution environment

Country Status (9)

Country Link
US (2) US7454603B2 (zh)
EP (1) EP1481322B1 (zh)
CN (1) CN1313922C (zh)
AT (1) ATE438893T1 (zh)
AU (1) AU2003216113A1 (zh)
DE (1) DE60328663D1 (zh)
HK (1) HK1068174A1 (zh)
TW (1) TWI311282B (zh)
WO (1) WO2003069471A2 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454603B2 (en) 2002-02-11 2008-11-18 Intel Corporation Method and system for linking firmware modules in a pre-memory execution environment
US20030188146A1 (en) * 2002-03-28 2003-10-02 Hale Robert P. Method of ordered execution of firmware modules in a pre-memory execution environment
US6986035B2 (en) * 2002-07-31 2006-01-10 Intel Corporation Modular bios for detecting resources of a system and reporting information about the resources during two separate phases
US20070277036A1 (en) 2003-05-23 2007-11-29 Washington University, A Corporation Of The State Of Missouri Intelligent data storage and processing using fpga devices
US8181020B2 (en) * 2005-02-02 2012-05-15 Insyde Software Corp. System and method for securely storing firmware
US7516252B2 (en) * 2005-06-08 2009-04-07 Intel Corporation Port binding scheme to create virtual host bus adapter in a virtualized multi-operating system platform environment
US7558804B1 (en) 2005-08-26 2009-07-07 American Megatrends, Inc. Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
US7500094B2 (en) * 2005-10-18 2009-03-03 American Megatrends, Inc. BIOS identification, initialization and management
US8135943B1 (en) * 2005-11-15 2012-03-13 American Megatrends, Inc. Method, apparatus, and computer-readable medium for generating a dispatching function
US20070118496A1 (en) * 2005-11-21 2007-05-24 Christof Bornhoevd Service-to-device mapping for smart items
US8131838B2 (en) * 2006-05-31 2012-03-06 Sap Ag Modular monitor service for smart item monitoring
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US7840482B2 (en) 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
US8966308B2 (en) * 2006-08-18 2015-02-24 Dell Products L.P. System and method for clock domain management
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
US10229453B2 (en) 2008-01-11 2019-03-12 Ip Reservoir, Llc Method and system for low latency basket calculation
CA3059606C (en) 2008-12-15 2023-01-17 Ip Reservoir, Llc Method and apparatus for high-speed processing of financial market depth data
CN102033756A (zh) * 2009-09-27 2011-04-27 环旭电子股份有限公司 基本输入输出***支持多种触控屏幕的方法
TW201115341A (en) * 2009-10-20 2011-05-01 Inventec Corp Method for protecting redundant data
US8510788B2 (en) * 2009-11-12 2013-08-13 Echostar Technologies L.L.C. Build profile for a set-top box
JP6045505B2 (ja) 2010-12-09 2016-12-14 アイピー レザボア, エルエルシー.IP Reservoir, LLC. 金融市場における注文を管理する方法および装置
CN102681893B (zh) * 2011-03-09 2016-06-29 腾讯科技(深圳)有限公司 可执行程序的跨平台实现方法及移动终端
JP2013004036A (ja) * 2011-06-21 2013-01-07 Fuji Xerox Co Ltd 情報処理装置および画像形成装置
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US9235404B2 (en) 2012-06-27 2016-01-12 Microsoft Technology Licensing, Llc Firmware update system
US9110761B2 (en) * 2012-06-27 2015-08-18 Microsoft Technology Licensing, Llc Resource data structures for firmware updates
US8972973B2 (en) 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
US9720703B2 (en) * 2012-11-26 2017-08-01 International Business Machines Corporation Data driven hardware chips initialization via hardware procedure framework
TWI507893B (zh) * 2014-12-09 2015-11-11 Inventec Corp 儲存擴充裝置自動識別系統及儲存擴充裝置自動識別配置方法
US11249767B2 (en) * 2019-02-05 2022-02-15 Dell Products L.P. Boot assist zero overhead flash extended file system
US11550917B2 (en) * 2019-06-28 2023-01-10 Intel Corporation Standardized interface for intellectual property blocks
CN112241277A (zh) * 2019-07-19 2021-01-19 瑞昱半导体股份有限公司 Ic固件更新方法
US11989551B2 (en) * 2021-03-18 2024-05-21 Quanta Computer Inc. Modular firmware composition
US11507385B1 (en) * 2021-04-30 2022-11-22 Cortina Access, Inc. Embedded electronic device, boot method, and embedded electronic device readable recording medium with stored program

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5671413A (en) * 1994-10-31 1997-09-23 Intel Corporation Method and apparatus for providing basic input/output services in a computer
US5752032A (en) * 1995-11-21 1998-05-12 Diamond Multimedia Systems, Inc. Adaptive device driver using controller hardware sub-element identifier
US5943673A (en) * 1996-05-10 1999-08-24 General Signal Corporation Configuration programming system for a life safety network
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
US5999989A (en) * 1997-06-17 1999-12-07 Compaq Computer Corporation Plug-and-play
US6173350B1 (en) * 1997-10-17 2001-01-09 Eveready Battery Company Inc. System and method for writing data to a serial bus from a smart battery
US6081890A (en) * 1998-11-30 2000-06-27 Intel Corporation Method of communication between firmware written for different instruction set architectures
US6199159B1 (en) * 1998-12-22 2001-03-06 Intel Corporation Booting an operating system
US6381693B2 (en) * 1998-12-31 2002-04-30 Intel Corp. Arrangements having firmware support for different processor types
US6353924B1 (en) * 1999-02-08 2002-03-05 Incert Software Corporation Method for back tracing program execution
JP2001056766A (ja) * 1999-08-18 2001-02-27 Denso Corp マルチモジュールシステム及び対話システム
US6633976B1 (en) * 2000-08-10 2003-10-14 Phoenix Technologies Ltd. Method of storing BIOS modules and transferring them to memory for execution
US7000249B2 (en) * 2001-05-18 2006-02-14 02Micro Pre-boot authentication system
US7454603B2 (en) 2002-02-11 2008-11-18 Intel Corporation Method and system for linking firmware modules in a pre-memory execution environment

Also Published As

Publication number Publication date
CN1313922C (zh) 2007-05-02
EP1481322A2 (en) 2004-12-01
AU2003216113A1 (en) 2003-09-04
US7454603B2 (en) 2008-11-18
ATE438893T1 (de) 2009-08-15
US8086833B2 (en) 2011-12-27
WO2003069471A2 (en) 2003-08-21
US20030154368A1 (en) 2003-08-14
TW200405209A (en) 2004-04-01
EP1481322B1 (en) 2009-08-05
DE60328663D1 (de) 2009-09-17
US20090006832A1 (en) 2009-01-01
WO2003069471A3 (en) 2004-04-01
CN1630851A (zh) 2005-06-22
HK1068174A1 (en) 2005-04-22

Similar Documents

Publication Publication Date Title
TWI311282B (en) Method and system for linking firmware modules in a pre-memory execution environment
US5748980A (en) System for configuring a computer system
US6842856B2 (en) System and method for dynamic management of a startup sequence
JP5362974B2 (ja) ソフトウェア製品の出荷用仮想化ソフトウェアの使用方法
ES2724523T3 (es) Método de enumeración de dispositivo USB que incluye detectar un tipo de sistema operativo de anfitrión USB
CN100380353C (zh) 在计算节点的热插拔期间枚举处理器的装置和方法
US7308511B2 (en) System for allocating resources in a computer system
US8392697B1 (en) BIOS configuration and management
TWI262443B (en) Method, system and recording medium for automatically configuring data processing system
TW200813721A (en) Method and system for uniquely identifying peripheral component devices
KR100311583B1 (ko) 컴퓨터시스템에대해운영체제및지원을제공하는방법
JP2003527654A (ja) 自動的デバイスドライバコンフィギュレーション用方法、システム及びコンピュータ読取可能格納媒体
JPH09212444A (ja) ホストコンピュータ間におけるデバイスドライバの可搬性を実現するための方法および装置
JP2012525639A5 (zh)
US6907597B1 (en) Method and apparatus for constructing an executable program in memory
CN112035299A (zh) 用基于存储器的通信协议进行仿真设备测试的***和方法
CN113326105B (zh) 基于主机迁移的硬件设备配置方法、装置及设备
CN114417373A (zh) 一种NVMe-oF用户态客户端的数据访问方法和装置
TW200404254A (en) Automated method for installing and configuring a test suite on a unit under test
US20100146509A1 (en) Selection of transaction managers based on transaction metadata
JP2001075812A (ja) コンピュータプリ−ブート作動の際にアプリケーションを実行する方法と装置
JP2023547070A (ja) アプリケーションの実行を停止しない更新された共有ライブラリの再読み込み
CN103842980A (zh) 协议中立织物
US7406549B2 (en) Support for non-standard device containing operating system data
US7596685B2 (en) Apparatus and method for building, storing, uploading, relocating and executing DOS based software module during system startup time