JP2009544085A - Efiベースのファームウェアにおいてpeiモジュールについてグローバル変数を利用する方法 - Google Patents
Efiベースのファームウェアにおいてpeiモジュールについてグローバル変数を利用する方法 Download PDFInfo
- Publication number
- JP2009544085A JP2009544085A JP2009519776A JP2009519776A JP2009544085A JP 2009544085 A JP2009544085 A JP 2009544085A JP 2009519776 A JP2009519776 A JP 2009519776A JP 2009519776 A JP2009519776 A JP 2009519776A JP 2009544085 A JP2009544085 A JP 2009544085A
- Authority
- JP
- Japan
- Prior art keywords
- driver image
- data
- code
- section
- modification
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Read Only Memory (AREA)
Abstract
【解決手段】 EFI前初期化(PEI)におけるグローバル変数の読み書き動作を可能とする方法を提供する。当該方法は、ドライバイメージを生成することを含む。ドライバイメージは、コード(つまりテキスト)セクション、データセクション、および再配置セクションを少なくとも有する。ドライバイメージに対して第1回目の修正を実施して、アドレスデータ項目すべてを不揮発性メモリ絶対アドレスで修正する。ドライバイメージに対して第2回目の修正を実施して、データセクションを指し示す、第1回目の修正で修正されたアドレスデータ項目すべてをランダムアクセスメモリ(RAM)としてのキャッシュ絶対アドレスで修正する。修正されたドライバイメージは不揮発性メモリデバイスに焼き付けられる。不揮発性メモリデバイスのブート時に、焼き付けられたドライバイメージのデータセクションをRAMとしてのキャッシュ(CAR)に複写する。テキストセクションの実行可能コードの実行によって、スタティック変数およびグローバル変数はCARから読み書きアクセスが可能となる。
【選択図】 図1
Description
Claims (26)
- EFI前初期化(PEI)におけるグローバル変数読み書き動作を可能とする方法であって、
コードセクション、データセクション、および再配置セクションを有するドライバイメージを生成する段階と、
前記ドライバイメージに対して第1回目の修正を実施して、すべてのアドレスデータ項目を不揮発性メモリ絶対アドレスによって修正する段階と、
前記ドライバイメージに対して第2回目の修正を実施して、ランダムアクセスメモリ(RAM)としてのキャッシュ絶対アドレスによって前記データセクションを指し示す、前記第1回目の修正で修正されたすべてのアドレスデータ項目を修正する段階と、
前記修正されたドライバイメージを不揮発性メモリデバイスに焼き付ける段階と
を備え、
前記不揮発性メモリデバイスのブート時に、前記焼き付けられたドライバイメージの前記データセクションをRAMとしてのキャッシュ(CAR)に複写し、前記コードセクションの実行可能コードを実行することによって、スタティック変数およびグローバル変数は前記CARから読み書きアクセスが可能となる
方法。 - 前記ドライバイメージは、Portable Executable 32(PE32)イメージを含む
請求項1に記載の方法。 - 前記ドライバイメージは、前記不揮発性メモリで実行される
請求項1に記載の方法。 - 前記不揮発性メモリは、フラッシュメモリデバイスを含む
請求項1に記載の方法。 - 第1回目の修正を実施する段階は、
前記再配置セクション内の各ポイントを解析する段階と、
前記再配置セクション内の各ポイントに対応付けられている各アドレスデータ項目を、前記不揮発性メモリ絶対アドレスで更新する段階と
を有する
請求項1に記載の方法。 - 第2回目の修正を実施する段階は、
前記第1回目の修正において修正された前記アドレスデータ項目が前記データセクションを指し示しているか否か判断する段階と、
前記第1回目の修正において修正された前記アドレスデータ項目が前記データセクションを指し示している場合には、前記修正されたアドレスデータ項目を前記CAR絶対アドレスで更新する段階と
を有する
請求項1に記載の方法。 - EFI前フェーズでグローバル変数を利用する方法であって、
ドライバイメージのコード部分および再配置部分からデータ部分を分離する段階と、
ランダムアクセスメモリ(RAM)として利用されているプロセッサキャッシュの領域に前記データ部分を複写する段階と、
前記ドライバイメージを実行するために前記ドライバイメージのイメージエントリポイントに制御を移行する段階と
を備え、
前記グローバル変数は、RAMとして利用されている前記プロセッサキャッシュからアクセスされる
方法。 - 前記ドライバイメージの前記コード部分および前記再配置部分から前記データ部分を分離する段階に先立って、
第1回目の修正および第2回目の修正を実施して前記コード部分にパッチを適用し、前記パッチが適用されたコードを不揮発性メモリに焼き付ける
請求項7に記載の方法。 - 不揮発性メモリは、フラッシュメモリデバイスを含む
請求項8に記載の方法。 - 第1回目の修正を実施する段階は、前記再配置部分を用いて、特定される不揮発性メモリベースで前記ドライバイメージを修正する段階を含む
請求項8に記載の方法。 - 第2回目の修正を実施する段階は、前記不揮発性メモリで前記ドライバイメージの前記コード部分を実行している間にRAMとして利用される前記プロセッサキャッシュで前記データを処理するべく、前記データ部分にアクセスする前記コード部分のコードすべてと前記データ部分を指し示す関連データすべてとを更新する段階を含む
請求項8に記載の方法。 - EFI前初期化(PEI)フェーズにおけるグローバル変数の利用を可能とする機構であって、
コード部分、データ部分、および再配置部分を有する実行可能ドライバイメージと、
前記実行可能ドライバイメージを格納および実行する不揮発性メモリと、
プロセッサキャッシュと
を備え、
前記コード部分は実行可能コードを含み、前記データ部分は前記実行可能コードによって利用されるデータを含み、前記再配置部分は、前記実行可能ドライバイメージの第1回目の修正時に不揮発性メモリ絶対アドレスによって更新されるアドレスデータ項目すべての情報を含み、
前記プロセッサキャッシュの領域は、ランダムアクセスメモリ(RAM)としてのキャッシュ(CAR)として利用され、
前記実行可能ドライバイメージの前記データ部分は、前記実行可能ドライバイメージを実行している間における前記CARでのスタティック変数およびグローバル変数の処理を可能にするべく、前記実行可能ドライバイメージに対して前記第1回目の修正および第2回目の修正を実施した後に、前記CARに複写される
機構。 - 前記実行可能ドライバイメージの前記第1回目の修正および前記第2回目の修正の後、前記実行可能ドライバイメージの実行前に、前記実行可能ドライバイメージを前記不揮発性メモリに焼き付ける
請求項12に記載の機構。 - 前記不揮発性メモリは、フラッシュメモリデバイスを含む
請求項12に記載の機構。 - 前記実行可能ドライバイメージの前記第2回目の修正は、前記不揮発性メモリで前記ドライバイメージの前記コード部分を実行している間に前記CARの前記データを処理するべく、前記データ部分にアクセスする前記コード部分のコードすべてと前記データ部分を指し示す関連データすべてとを更新する
請求項12に記載の機構。 - 複数の機械アクセス可能命令を有する格納媒体を備える物品であって、
前記複数の機械アクセス可能命令がプロセッサによって実行されると、前記複数の機械アクセス可能命令によって、
コードセクション、データセクション、および再配置セクションを有するドライバイメージが生成され、
前記ドライバイメージに対して第1回目の修正が実施されて、アドレスデータ項目すべてが不揮発性メモリ絶対アドレスで修正され、
前記ドライバイメージに対して第2回目の修正が実施されて、前記データセクションを指し示す、前記第1回目の修正で修正されたアドレスデータ項目すべてが、ランダムアクセスメモリ(RAM)としてのキャッシュ絶対アドレスで修正され、
前記修正されたドライバイメージが不揮発性メモリデバイスに焼き付けられて、
前記不揮発性メモリデバイスのブート時に、前記焼き付けられたドライバイメージの前記データセクションはRAMとしてのキャッシュ(CAR)に複写され、前記コードセクションの実行可能コードの実行中においてスタティック変数およびグローバル変数は前記CARから読み書きアクセスが可能となる
物品。 - 前記ドライバイメージは、Portable Executable 32(PE32)イメージを含む
請求項16に記載の物品。 - 前記ドライバイメージは、前記不揮発性メモリで実行される
請求項16に記載の物品。 - 前記不揮発性メモリは、フラッシュメモリデバイスを含む
請求項16に記載の物品。 - 第1回目の修正を実施する命令は、
前記再配置セクション内の各ポイントを解析する命令と、
前記再配置セクション内の各ポイントに対応付けられている各アドレスデータ項目を、前記不揮発性メモリ絶対アドレスで更新する命令と
を有する
請求項16に記載の物品。 - 第2回目の修正を実施する命令は、
前記第1回目の修正において修正された前記アドレスデータ項目が前記データセクションを指し示しているか否か判断する命令と、
前記第1回目の修正において修正された前記アドレスデータ項目が前記データセクションを指し示している場合には、前記修正されたアドレスデータ項目を前記CAR絶対アドレスで更新する命令と
を有する
請求項16に記載の物品。 - 複数の機械アクセス可能命令を有する格納媒体を備える物品であって、
前記複数の機械アクセス可能命令がプロセッサによって実行されると、前記複数の機械アクセス可能命令によって、
ドライバイメージのコード部分および再配置部分からデータ部分が分離されて、
ランダムアクセスメモリ(RAM)として利用されているプロセッサキャッシュの領域に前記データ部分が複写されて、
前記ドライバイメージを実行するために前記ドライバイメージのイメージエントリポイントに制御が移行されて、
グローバル変数は、RAMとして利用されている前記プロセッサキャッシュからアクセスされる
物品。 - 前記ドライバイメージの前記コード部分および前記再配置部分から前記データ部分を分離する命令に先立って、
第1回目の修正および第2回目の修正を実施して前記コード部分にパッチを適用する命令と、
前記パッチが適用されたコードを不揮発性メモリに焼き付ける命令と
を含む
請求項22に記載の物品。 - 不揮発性メモリは、フラッシュメモリデバイスを含む
請求項23に記載の物品。 - 第1回目の修正を実施する命令は、前記再配置部分に基づいて、特定される不揮発性メモリベースで前記ドライバイメージを修正する命令を含む
請求項23に記載の物品。 - 第2回目の修正を実施する命令は、前記不揮発性メモリで前記ドライバイメージの前記コード部分を実行している間にRAMとして利用される前記プロセッサキャッシュで前記データを処理するべく、前記データ部分にアクセスする前記コード部分のコードすべてと前記データ部分を指し示す関連データすべてとを更新する命令を含む
請求項23に記載の物品。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2006/001746 WO2008014635A1 (en) | 2006-07-18 | 2006-07-18 | A method to use global variables for pre-efi initialization modules in efi-based firmware |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009544085A true JP2009544085A (ja) | 2009-12-10 |
JP4961019B2 JP4961019B2 (ja) | 2012-06-27 |
Family
ID=38996845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009519776A Expired - Fee Related JP4961019B2 (ja) | 2006-07-18 | 2006-07-18 | Efiベースのファームウェアにおいてpeiモジュールについてグローバル変数を利用する方法 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP2047364A4 (ja) |
JP (1) | JP4961019B2 (ja) |
KR (1) | KR101036675B1 (ja) |
CN (1) | CN101484878B (ja) |
WO (1) | WO2008014635A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463998B1 (en) * | 2002-12-13 | 2013-06-11 | Open Text S.A. | System and method for managing page variations in a page delivery cache |
CN101599043B (zh) * | 2008-06-02 | 2013-07-17 | 松下电器产业株式会社 | 追踪文档的关联信息的方法和系统 |
CN105446842B (zh) * | 2015-12-03 | 2019-01-04 | 南京南瑞继保电气有限公司 | 一种adi dsp代码在线监视方法 |
CN105426223B (zh) * | 2015-12-25 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 应用加载方法和装置 |
CN105630559B (zh) * | 2015-12-25 | 2018-12-28 | 广州视源电子科技股份有限公司 | 板卡固件烧录方法及其系统 |
CN107450953B (zh) * | 2017-08-01 | 2020-08-04 | 合肥联宝信息技术有限公司 | 一种更新bios的方法及装置 |
CN110990072A (zh) * | 2019-11-08 | 2020-04-10 | 杭州智控网络有限公司 | 价签屏幕多驱动动态加载方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59125421A (ja) * | 1983-01-04 | 1984-07-19 | Nec Corp | 計算機応用機器の初期設定方式 |
JPH03219331A (ja) * | 1989-11-17 | 1991-09-26 | Digital Equip Corp <Dec> | ファームウエアを再配置可能なフォーマットで格納する装置及び方法 |
JPH1153249A (ja) * | 1997-08-07 | 1999-02-26 | Sharp Corp | メモリ管理方法 |
JP2001195258A (ja) * | 2000-01-12 | 2001-07-19 | Mitsutoyo Corp | コンピュータ組み込みシステム |
US20040103272A1 (en) * | 2002-11-27 | 2004-05-27 | Zimmer Vincent J. | Using a processor cache as RAM during platform initialization |
JP2006092544A (ja) * | 2004-09-24 | 2006-04-06 | Hewlett-Packard Development Co Lp | プリオペレーティングシステム環境におけるモジュールの動的リンク |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298440B1 (en) * | 1994-04-22 | 2001-10-02 | Microsoft Corporation | Method and system for providing multiple entry point code resources |
JP2004348677A (ja) * | 2003-05-26 | 2004-12-09 | Sony Corp | プログラムおよび情報処理方法 |
KR100658918B1 (ko) * | 2004-03-29 | 2006-12-15 | 주식회사 팬택앤큐리텔 | 블록 단위 입출력 명령어를 이용한 시스템 전역 변수초기화 장치 및 그 방법 |
-
2006
- 2006-07-18 CN CN2006800553499A patent/CN101484878B/zh not_active Expired - Fee Related
- 2006-07-18 EP EP06761481A patent/EP2047364A4/en not_active Withdrawn
- 2006-07-18 WO PCT/CN2006/001746 patent/WO2008014635A1/en active Application Filing
- 2006-07-18 JP JP2009519776A patent/JP4961019B2/ja not_active Expired - Fee Related
- 2006-07-18 KR KR1020097000765A patent/KR101036675B1/ko not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59125421A (ja) * | 1983-01-04 | 1984-07-19 | Nec Corp | 計算機応用機器の初期設定方式 |
JPH03219331A (ja) * | 1989-11-17 | 1991-09-26 | Digital Equip Corp <Dec> | ファームウエアを再配置可能なフォーマットで格納する装置及び方法 |
JPH1153249A (ja) * | 1997-08-07 | 1999-02-26 | Sharp Corp | メモリ管理方法 |
JP2001195258A (ja) * | 2000-01-12 | 2001-07-19 | Mitsutoyo Corp | コンピュータ組み込みシステム |
US20040103272A1 (en) * | 2002-11-27 | 2004-05-27 | Zimmer Vincent J. | Using a processor cache as RAM during platform initialization |
JP2006092544A (ja) * | 2004-09-24 | 2006-04-06 | Hewlett-Packard Development Co Lp | プリオペレーティングシステム環境におけるモジュールの動的リンク |
Also Published As
Publication number | Publication date |
---|---|
WO2008014635A1 (en) | 2008-02-07 |
EP2047364A1 (en) | 2009-04-15 |
EP2047364A4 (en) | 2009-08-05 |
KR20090035521A (ko) | 2009-04-09 |
JP4961019B2 (ja) | 2012-06-27 |
CN101484878B (zh) | 2012-11-28 |
CN101484878A (zh) | 2009-07-15 |
KR101036675B1 (ko) | 2011-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3267308B1 (en) | Application loading method and device | |
US6876996B2 (en) | Method and apparatus for using a shared library mechanism to facilitate sharing of metadata | |
JP4961019B2 (ja) | Efiベースのファームウェアにおいてpeiモジュールについてグローバル変数を利用する方法 | |
CN1258702C (zh) | 为不同的指令集结构所编写的固件之间进行通信的方法 | |
US7181610B2 (en) | Method and system to encapsulate a driver written for an operating system (OS) runtime environment in an OS independent environment firmware extension | |
US20070033322A1 (en) | Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan | |
US10078498B2 (en) | Method, apparatus, system, and non-transitory computer readable medium for extending at least one function of a package file | |
US9563446B2 (en) | Binary file generation | |
US7721258B2 (en) | Integrated development environment with managed platform registry | |
JP2005509194A (ja) | プレインターナライズ済プログラムファイルの作成及び使用のための方法並びに装置 | |
US20070011674A1 (en) | Computer system and method for selectively installing one operating system among a plurality of operating systems | |
CN101026826B (zh) | 用于提供在无线装置中使用的整体映像的系统和方法 | |
WO2007134647A1 (en) | Move data facility with user selectable address spaces | |
KR101059633B1 (ko) | 멀티태스킹 가상 머신을 위한 힙 구성 | |
US7581074B2 (en) | Facilitating use of storage access keys to access storage | |
US20130055285A1 (en) | Discovery and activation of application extensions | |
CN101490645A (zh) | 用以设备虚拟化的方法及设备 | |
WO2008054074A1 (en) | Terminal device having function of interfacing compilation libraries in heterogeneous languages, method of calling api, and method of creating compile function | |
US7155701B1 (en) | System for dynamically constructing an executable computer program | |
US20060230190A1 (en) | Method and apparatus for executing application in system having NAND flash memory | |
KR100478463B1 (ko) | 응용 프로그램의 동적링크 방법 | |
TWI549056B (zh) | 以函式庫作業系統達成之應用程式相容性 | |
US20220269511A1 (en) | Operating system partitioning of different users for single-user applications | |
CN113646744A (zh) | 针对未对齐的存储器操作将存储器访问加宽至对齐的地址 | |
WO2009017575A2 (en) | Electronic device data access system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111028 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120214 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120306 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120323 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150330 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |