JP2006012158A - デジタルデバイスのファームウェアとオペレーティングシステムとの間の拡張可能インターラクションを提供する方法および装置 - Google Patents

デジタルデバイスのファームウェアとオペレーティングシステムとの間の拡張可能インターラクションを提供する方法および装置 Download PDF

Info

Publication number
JP2006012158A
JP2006012158A JP2005177224A JP2005177224A JP2006012158A JP 2006012158 A JP2006012158 A JP 2006012158A JP 2005177224 A JP2005177224 A JP 2005177224A JP 2005177224 A JP2005177224 A JP 2005177224A JP 2006012158 A JP2006012158 A JP 2006012158A
Authority
JP
Japan
Prior art keywords
partition
code
language specification
aml
assigned
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.)
Withdrawn
Application number
JP2005177224A
Other languages
English (en)
Inventor
Bradley G Culter
ブラッドレィ・ジー・カルター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2006012158A publication Critical patent/JP2006012158A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

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

Abstract

【課題】 AML等の相互区画言語仕様に準拠したデジタルデバイスの拡張機能を提供する。
【解決手段】 本発明にかかる方法は、ある区画の言語のバージョンに従って、使用されないオペレーションコードのリストを準備し、使用されないオペレーションコードのリストを第2の区画のコードに公開する。割り当てるオペレーションコードが、双方の区画によってサポートされた言語のバージョンにおいて使用されないオペレーションコードとなるように、第2の区画のコードは、当該オペレーションコードを、拡張機能に割り当てる。このオペレーションコードは、相互区画言語でコードを生成する際に使用され、関連した機能名を伴い、割り当てたオペレーションコードのテーブルとして第1の区画に公開される。生成されたコードを実行する区画は、拡張機能名およびオペレーションコードのテーブルに従って、オペレーションコードを機能に関連付ける。
【選択図】図2

Description

本発明は、デジタルデバイスのシステムファームウェアとオペレーティングシステムとの間の通信の分野に関する。
[コードの区画化]
デジタルコンピュータを含めて、現代のデジタル計算デバイスで実行可能なコードは、多くの場合、複数の区画に分割される。
通常、これらの区画は、ファームウェア区画、オペレーティングシステム区画、およびアプリケーションコード区画を含む。
各区画のコードの出所は、多くの場合、異なるベンダ、または、同じベンダにおける異なる時点での異なるプログラマグループである。
デジタルデバイスは、通常は同じファームウェア区画コード上で、異なる時点に、異なるオペレーティングシステム区画およびアプリケーションコードを実行することができる。
さらに、各区画のコードは、他の区画の更新とは無関係に更新されることも一般的である。
[標準化の必要性]
システムが、ファームウェア、オペレーティングシステム、およびアプリケーションコードの可能な各組み合わせの過度なデバッグを必要とすることなく機能するように、区画間のインターフェースを標準化することが望ましい。
標準化されたインターフェースでは、いくつかの高度化した特徴によってドライバを追加することが必要な場合があるが、ハードウェアおよびソフトウェアの双方の基本的な特徴は機能すべきである。
[システム管理]
現代のデジタルデバイスは、類似のオペレーティングシステムの下で動作可能なものであっても、多くの場合、基礎となるハードウェアが大きく異なる。
システム管理およびグラフィカル表示ハードウェアは、多くの場合、システムごとに異なる。
システム管理機能には、電力管理および冷却制御、電力、ファンの速度、およびコンポーネントの温度を含むハードウェア監視、タイマ、プロセッサクロック生成、バッテリチャージおよびチャージ監視、ディスクドライブの電力制御およびエラー監視、メモリエラー訂正、複数のオペレーティングシステムの間でのシステムのパーティショニング、システムの複数のプロセッサ間のインターラクション、ならびにホットソケットが含まれ得る。
仕様の将来の改訂と互換性のある方法で相互区画(intercompartment)インターフェースを拡張することが望ましい。
特に、或る区画のコードが使用しないと想定されるオペレーションコードが、別の区画のコードによって事前に定義されていると想定される場合に、そのオペレーションコードに拡張機能を割り当てると、オペレーションが予想しないものとならない。
方法、メモリシステム、およびプログラム製品は、AML等の相互区画言語仕様に準拠したデジタルデバイスの拡張機能を提供する。
この方法は、或る区画の言語のバージョンに従って、使用されないオペレーションコードのリストを準備すること、およびこの使用されないオペレーションコードのリストを第2の区画のコードに公開することを含む。
次に、割り当てるオペレーションコードが、双方の区画によってサポートされた言語のバージョンにおいて使用されないオペレーションコードとなるように、第2の区画のコードは、当該オペレーションコードを拡張機能に割り当てる。
この割り当てたオペレーションコードは、相互区画言語でコードを生成する際に使用され、関連した機能名を伴った、割り当てたオペレーションコードのテーブルとして第1の区画に公開される。
次に、生成されたコードを実行する区画は、拡張機能名およびオペレーションコードのテーブルに従って、オペレーションコードを機能に関連付ける。
システムオペレーションの多くの重要な特徴は、タスクキューイング、割り込みハンドリング、および多くのI/O機能を含むオペレーティングシステムに依存する。
従来、システムブートが完了すると、このような多くの機能は、オペレーティングシステムにインストールされているカスタム化されたデバイスドライバによって制御されていた。
多くのシステム管理機能は、オペレーティングシステムの制御の下、カスタム化されたデバイスドライバを必要とすることなく動作可能であることが望ましい。
アドバンストコンフィギュレーションアンドパワーインターフェース(ACPI)は、Hewlett−Packard(登録商標)、Intel(登録商標)、Microsoft(登録商標)、Phoenix Technologies(登録商標)、およびToshiba(登録商標)によって共同開発されたオープンインダストリ仕様である。
ACPI標準規格は、ファームウェアおよびオペレーティングシステムがどのようにインターラクトして、デジタルデバイスのシステム管理機能を制御するかを統制する。
この記載の時点においては、この標準規格について2003年8月付けの改訂版2.0cが入手可能である。
その標準規格のセクション17に規定されているように、ACPIマシン言語(AML)は、ACPIに準拠したシステムのコンポーネントに使用される標準化されたマシン可読言語を提供して、オペレーティングシステムの制御下でハードウェア依存システムの管理機能を実行する。
AMLは、システム管理ハードウェアをアドレス指定する1組の所定の制御機能を提供する。
この所定の1組の機能、および、それらの機能を所定のオペレーションコードにコード化したものは、ACPI仕様のAML仕様部の特定のバージョンに定義されている。
AML仕様は、これらの所定の機能およびコード化したものを指定するので、相互区画言語仕様(intercompartmental language specification)である。
AMLは、オペレーティングシステムが指示したハードウェアの電力管理オンライン再構成の標準機能を提供する。
これらの機能は、2進数オペレーションコードとしてインタープリット可能なAMLで表現される。
この2進数オペレーションコードは、一続きのオペランドと結合することができる。
2進数オペレーションコードは、16ビット数であり、AML仕様で定義されたものよりもさらに多くのオペレーションコードを可能にする。
図1は、デジタルデバイスで実施したAMLを示している。
デジタルデバイス102は、周辺機器106およびシステム管理インターフェース108に接続されたプロセッサ104を含む。
システム管理インターフェース108は、冷却デバイス110、電力112供給制御、およびシステム監視センサ114を制御する。
また、プロセッサは、ファームウェアEEPROM116および1つまたは2つ以上のレベルのメモリシステム118にも接続されている。
メモリシステム118は、通常、ランダムアクセスメモリ(RAM)およびディスクメモリの双方を含む。
システムブート時に、プロセッサ104は、ファームウェアEEPROM116からメモリシステム118のRAMのファームウェア部120にファームウェアをコピーして実行する。
次に、ファームウェア120のブートコード122が、オペレーティングシステムカーネル124をロードして起動する。
オペレーティングシステムカーネル124は、オペレーティングシステムのプロセスキュー、I/Oキュー、および負荷監視126を初期化し、I/Oデバイスハンドラ128、およびシステムレベルのシステム監視/制御モジュール130を起動する。
ファームウェアの周辺機器/システム管理コード131は、1組のAMLコード132のタスクをオペレーティングシステムに提供する。
一般的なシステムでは、このAMLコードは、周辺機器/システム管理コード131によってファームウェアEEPROM116のイメージからコピーされる。
AMLコードは、オペレーティングシステム136の制御下で、AMLインタープリタ134によって実行される。
AMLコードタスクは、システム監視/制御モジュール130によって呼び出され、オペレーティングシステムカーネル124、I/Oハンドラ128、およびシステム監視/制御130タスクから周辺機器106へ、および、システム管理インターフェース108を通じて冷却110デバイス、電力112供給制御、センサ114、およびこのシステムで提供できるような他のシステム管理ハードウェアへ、インターフェースを提供する。
デジタルデバイスは急速なペースで進歩している。
新しいシステム管理ハードウェアが頻繁にリリースされ、多くの場合、AMLおよびACPIの古いバージョンを定義した時には予想されなかった機能を提供する。
したがって、可能な最良の方法でシステムを制御できるように、1組の所定の制御機能を拡張して、新しい追加された機能を含める方法を有することが望ましい。
限定するものではなく例として、将来のポータブルコンピュータシステムは、バッテリに加えて、または、バッテリに代えて、燃料電池を組み込んだ電力システムを有するかもしれない。
このような電力システムは、AML仕様の初期のバージョンで予想されたものとは異なる電力112供給制御ハードウェア機能を必要とする可能性がある。
新しいシステムは、初期のAMLで予想されなかった特徴を有するプログラマブルで、マルチ速度で、複数出力のクロック140を有するかもしれない。
同様に、新しい大きなマルチプロセッササーバは、仮想マシンにパーティショニングされるかもしれない。
このようなシステムは、システムのパーティショニングを制御する付加的な制御機能で最も良く機能するかもしれない。
AML仕様の特定のバージョンに対して提供された機能を超えて相互区画インターフェースを拡張する従来の方法は、この仕様に従って、使用されないオペレーションコードを決定する方法、および、これらのオペレーションコードを追加機能用の拡張オペレーションコードとして定義する方法である。
この方法は機能するが、次のAML仕様が、これらの前に未定義のオペレーションコードにマッピングする新たな機能を定義するおそれがある。
これが行われると、次のAML仕様を同時にサポートするようにオペレーティングシステムおよびファームウェア区画をアップグレードしなければならず、そうでない場合、これらのオペレーションコードの定義の衝突のため、予想されないオペレーションが生じるおそれがある。
AML仕様は、ADD_TABLE(テーブル追加)コマンドを提供する。
このADD_TABLEコマンドは、システムブート時に存在する必要のある基本的な1組のAML機能を超えて、実行可能な1組のAML機能を動的に拡張するものである。
図2は、ACPI仕様およびAML仕様の将来のリリースと互換性のある方法で、デジタルデバイスの新しい高度な機能を制御する拡張可能なAMLを示している。
デジタルデバイス202は、周辺機器206およびシステム管理インターフェース208に接続されたプロセッサ204を含む。
システム管理インターフェース208は、冷却デバイス210、電力供給212、およびシステム監視センサ214を制御する。
また、プロセッサ204は、ファームウェアEEPROM216および1つまたは2つ以上のレベルのメモリシステム218にも接続されている。
メモリシステム218は、通常、ランダムアクセスメモリ(RAM)およびディスクメモリの双方を含む。
図2および図3を参照して、システムブート時に、プロセッサ204は、ファームウェアEEPROM216からメモリシステム218のRAMのファームウェア部220にファームウェアをコピーして実行する。
次に、ファームウェア220のブートコード223が、ACPI仕様で定義された共通機能の1組の基本AMLコード221を生成し(300)、基本AMLコード221をオペレーティングシステムにアクセス可能な領域に配置することによって基本AMLコード221を公開し(301)、オペレーティングシステムカーネル224をロードして起動する(302)。
次に、オペレーティングシステムカーネル224は、オペレーティングシステムのプロセスキュー、I/Oキュー、負荷監視226を初期化し、I/Oデバイスハンドラ228、およびシステムレベルのシステム監視/制御モジュール230を起動する。
ファームウェア220のシステム管理コード231は、最小のシステム管理機能を提供し、システムブートが完了して、オペレーティングシステムがシステム管理を引き継ぐ(315)まで、冷却210、電力212、センサ214、およびシステムクロック240を制御する。
オペレーティングシステム区画236のAMLインタープリタ234は、オペレーティングシステムによってサポートされたACPI仕様のバージョン下で、したがって、AML仕様のバージョン下で利用可能な、使用されないオペレーションコードのリスト242を準備する(303)。
使用されないオペレーションコードのリスト242には、オペレーティングシステムにロードされたハードウェア固有のドライバを指定する改訂識別子、および、サポートされたACPIのバージョン、したがって、AMLのバージョンを指定する改訂識別子が付随する。
このリスト242は、オペレーティングシステム236およびファームウェア220の双方にアクセス可能なメモリに記憶されることによって公開される(304)。
リスト242が、AMLのファームウェア220のバージョンおよびオペレーティングシステム236のバージョンの双方で使用されないオペレーションコードのリストになるように、ファームウェアのAMLコードジェネレータ222の機能は、このリスト242を検査し、オペレーティングシステムがサポートするACPI仕様のバージョン、したがって、AML仕様のバージョンに定義されたあらゆるオペレーションコードを削除する(306)。
オペレーティングシステム236およびファームウェア220の拡張版の互換性を検証できるように、使用されないオペレーションコードリスト242の公開には、オペレーティングシステム(OS)バージョン識別子243が付随する。
OSバージョン識別子243は、オペレーティングシステム236にインストールされたACPIハードウェア固有のドライバを示すフラグを含む。
システムがブートを続けるにつれて、高度AMLコード232が、ファームウェア220のAMLコードジェネレータ222コンポーネントによって、ファームウェア内の先行物(precursor)から動的に生成される(310)。
また、ファームウェア区画220のコードジェネレータ222は、自身がAMLコード232で使用する拡張機能名のリストも機能名テーブル244に準備し、これらの拡張機能名を、使用されないオペレーションコードリスト242から選択されたオペレーションコードに割り当てる(308)。
したがって、これらの割り当てられたオペレーションコードは、オペレーティングシステムによってサポートされたAML仕様のバージョンで使用されないオペレーションコードであり、これらのオペレーションコードは、ファームウェアでサポートされたAML仕様のバージョンで使用されないオペレーションコードでもある。
割り当てた機能オペレーションコード246のテーブルは、機能名テーブル244の機能名に対応するロケーションの割り当てた機能オペレーションコードで作成される(312)。
生成された高度AMLコード232、機能名テーブル244、および割り当てた機能オペレーションコード246は、オペレーティングシステム236のAMLインタープリタ234にアクセス可能なメモリに配置されることによって公開される(314)。
オペレーティングシステム236は、ブートを終了して、アプリケーションプログラムの実行を開始することが許可される。
ADD_TABLEコールが使用されて、オペレーティングシステム236は、システムオペレーションをサポートする際に、高度AMLコード232を使用するように指令される(313)。
システムオペレーションが進むにつれて、オペレーティングシステム236はシステム管理を引き継ぎ(315)、そのAMLインタープリタ234は、アイドルなタイマタスクを含むシステム管理タスクがシステムハードウェアとインターフェースする必要があるときはいつでも、基本AMLコード221および高度AMLコード232を実行する(316)。
基本AMLコード221および高度AMLコード232は、オペレーティングシステムカーネル224の制御下で、AMLインタープリタ234によって実行され、システムプロセスおよび入出力(I/O)キュー226を利用することができる。
AMLコードタスクは、システム監視/制御モジュール230によって呼び出され、オペレーティングシステムカーネル224、I/Oハンドラ228、およびシステム監視/制御230のタスクから周辺機器206へ、および、システム管理インターフェース208を通じて冷却210デバイス、電力供給制御212、センサ214、およびこのシステムで提供できるような他のシステム管理ハードウェアへ、インターフェースを提供する。
AMLインタープリタは、認識しないオペレーションコードに遭遇すると、そのオペレーションコードが、割り当てた機能オペレーションコード246のテーブルにあるかどうかを調べる。
割り当てた機能オペレーションコード246のテーブルで発見された認識されないオペレーションコードは、そのオペレーションコードに関連した機能名テーブル244の機能名によって指定された機能とリンクされ(320)、適切な拡張機能が実行される。
そのオペレーションコードに再び遭遇した時に機能名テーブル244の機能名の参照が必要ないように、これらの機能はリンクされた状態を維持する。
代替的な実施の形態では、図2および図4を参照して、システムブート時に、プロセッサ204は、ブートコード223を実行し、ファームウェアEEPROM216からメモリシステム218のRAMのファームウェア部220にファームウェアをコピーして実行する。
次に、ファームウェア220のブートコード223が、ACPI仕様で定義された共通機能の1組の基本AML221を生成し(400)、基本AML221をオペレーティングシステムにアクセス可能な領域に配置することによって基本AML221を公開し(401)、次いで、オペレーティングシステムカーネル224をロードして起動する(402)。
次に、オペレーティングシステムカーネル224は、オペレーティングシステムのプロセスキュー、I/Oキュー、負荷監視226機能を初期化し、I/Oデバイスハンドラ228、およびシステムレベルのシステム監視/制御モジュール230を起動する。
ファームウェア220のシステム管理コード231は、最小のシステム管理機能を提供し、この時点で、冷却デバイス210、電力制御212、センサ214、およびシステムクロック240を制御する。
オペレーティングシステム区画236のAMLインタープリタ234は、オペレーティングシステムがサポートするACPI仕様のバージョン下で、したがって、AML仕様のバージョン下で利用可能な、使用されないオペレーションコードのリスト242を準備する(403)。
使用されないオペレーションコードのリストには、オペレーティングシステムにロードされたハードウェア固有のドライバを指定する改訂識別子、および、サポートされたACPIのバージョンを指定する改訂識別子が付随する。
このリスト242は、オペレーティングシステム236およびファームウェア220の双方にアクセス可能なメモリに記憶されることによって公開される(404)。
この時点で、第1ステージのブート完了フラグがメモリにセットされ、オペレーティングシステム236は停止する。
リスト242が、AMLのファームウェア220のバージョンおよびオペレーティングシステム236のバージョンの双方で使用されないオペレーションコードのリストになるように、ファームウェア220のAMLコードジェネレータ222の機能は、使用されないオペレーションコードのリスト242を検査し、オペレーティングシステムがサポートするAML仕様のバージョンに定義された、使用されないオペレーションコードのリストのあらゆるオペレーションコードを削除する(406)。
システムがブートを続けるにつれて、高度AMLコード232が、ファームウェア220のAMLコードジェネレータ222コンポーネントによって、ファームウェア内の先行物から動的に生成される(410)。
また、ファームウェア区画220のコードジェネレータ222は、自身がAMLコード232で使用する拡張機能名のリストも機能名テーブル244に準備し、これらの拡張機能名を、使用されないオペレーションコードリスト242から選択されたオペレーションコードに割り当てる(408)。
したがって、これらの割り当てられたオペレーションコードは、オペレーティングシステムによってサポートされたAML仕様のバージョンで使用されないオペレーションコードであり、これらのオペレーションコードは、ファームウェアでサポートされたAML仕様のバージョンで使用されないオペレーションコードでもある。
オペレーションコードのこれらの割り当ては、機能名テーブル244の機能名に対応するロケーションの割り当てた機能オペレーションコード246の作成412テーブルに記録される。
生成された高度AMLコード232、機能名テーブル244、および割り当てた機能オペレーションコード246は、オペレーティングシステムのAMLインタープリタ234にアクセス可能なメモリに配置されることによって公開される(414)。
カーネル224が新たなプロセスキュー、I/Oキュー、および負荷監視構造体226を構築してアプリケーションプログラムの実行開始を許可されるプロセスにおいて、オペレーティングシステムは再ブートされ(413)、そのカーネル224は再起動される。
高度AMLコード232は、システムオペレーションをサポートする際に使用される。
システムオペレーションが進行するにつれて、オペレーティングシステムは、ファームウェアからシステム管理を引き継ぎ(415)、AMLインタープリタ234は、アイドルなタイマタスクを含むシステム管理タスクがシステムハードウェアとインターフェースする必要があるときはいつでも、基本AMLコード221および高度AMLコード232のルーチンを実行する。
図3の実施の形態と同様に、基本AMLコード221および高度AMLコード232は、オペレーティングシステム236のカーネル224の制御下で、AMLインタープリタ234によって実行され、システムプロセスおよび入出力(I/O)キュー226を利用することができる。
AMLコードタスクは、システム監視/制御モジュール230によって呼び出され、オペレーティングシステムカーネル224、I/Oハンドラ228、およびシステム監視/制御230のタスクから周辺機器206へ、および、システム管理インターフェース208を通じて冷却210デバイス、電力212供給制御、センサ214、およびこのシステムで提供できるような他のシステム管理ハードウェアへ、インターフェースを提供する。
AMLインタープリタ234は、認識しないオペレーションコードに遭遇すると、そのオペレーションコードが、割り当てた機能オペレーションコード246のテーブルにあるかどうかを調べる。
割り当てた機能オペレーションコード246のテーブルで発見された認識されないオペレーションコードは、そのオペレーションコードに関連した機能名テーブル244の機能名によって指定された機能とリンクされ(420)、適切な拡張機能が実行される。
そのオペレーションコードに再び遭遇した時に機能名テーブル244の機能名の参照が必要ないように、これらの機能はリンクされた状態を維持する。
コンピュータプログラム製品は、コンピュータ可読コードが記録されたあらゆるマシン可読媒体、例えばEEPROM216、EPROM、ROM、RAM、DRAM、ディスクメモリ、テープである。
このコンピュータ可読コードは、コンピュータによって読み出されてコンピュータで実行されると、特定の方法、機能、または一続きの機能を実行するようにそのコンピュータに指令する。
このプログラム製品のコンピュータ可読コードは、AMLインタープリタ、AMLコードジェネレータ、AMLコードジェネレータを組み込んだファームウェア等のプログラムの一部であってもよいし、そのようなプログラムの全部であってもよい。
本明細書で説明したような拡張オペレーション用の動的に割り当てられたオペレーションコードを使用してAMLコードを生成するコンピュータ可読コードを含んだファームウェアEEPROM、または、ファームウェアEEPROMを含むコンピュータは、コンピュータプログラム製品である。
上記内容は、特に、本発明の特定の実施の形態に関して図示して説明してきたが、本発明の趣旨から逸脱することなく、その形式および詳細においてさまざまな他の変更を行えることが当業者には理解されよう。
本明細書で開示され、かつ、添付した特許請求の範囲によって包含されたより広い概念から逸脱することなく、この説明を異なる実施の形態に適応させる際に、さまざまな変更が行えることが理解されるべきである。
システム管理ハードウェアを制御するAMLを実施する、当該技術分野で既知のデジタルデバイスのブロック図である。 システム管理ハードウェアを制御する拡張可能AMLを実施するデジタルデバイスのブロック図である。 拡張可能AMLを実施する方法の一実施の形態の部分的なフローチャートである。 再ブートがADD_TABLEコマンドの代わりに使用される代替的な一実施の形態の部分的なフローチャートである。
符号の説明
204・・・プロセッサ,
206・・・周辺機器,
208・・・システム管理インターフェース,
214・・・センサ,
216・・・ファームウェアEEPROM,
218・・・メモリシステム,
220・・・ファームウェア,
221・・・基本AMLコード,
222・・・AMLジェネレータ,
223・・・ブートコード,
224・・・オペレーティングシステムカーネル,
228・・・I/Oハンドラ,
230・・・システム監視/制御,
231・・・システム管理コード,
232・・・高度AMLコード,
234・・・AMLインタープリタ,
236・・・オペレーティングシステム,
240・・・クロック,
244・・・機能名テーブル,

Claims (12)

  1. 相互区画言語仕様に準拠したマシン可読コード(232)を第2の区画(236)のインタープリタコード(234)に提示する第1の区画(220)のコードジェネレータコード(222)を有するデジタルデバイス(202)の拡張機能を提供する方法であって、
    前記第2の区画で実施された前記相互区画言語仕様のバージョンに従って、使用されないオペレーションコードのリスト(242)を準備する(302)ステップと、
    前記第1の区画のコード(222)に前記使用されないオペレーションコードのリスト(242)を公開する(304)ステップと、
    割り当てるオペレーションコードが、前記第2の区画の前記相互区画言語仕様の前記バージョンで使用されないオペレーションコードであり、前記第1の区画で実施された前記相互区画言語仕様のバージョンで使用されないオペレーションコードである場合に、前記オペレーションコードに拡張機能を割り当てる(308)ステップと、
    割り当てたオペレーションコード(246)のテーブルを、関連した機能名(244)と共に公開する(314)ステップと、
    前記相互区画言語仕様に従って、生成するマシン可読命令(232)を生成する(310)ステップと
    を含み、
    前記生成したマシン可読命令(232)は、前記割り当てたオペレーションコード(246)の少なくとも1つを組み込む
    方法。
  2. 前記第1の区画(220)はファームウェア区画であり、前記第2の区画(236)はオペレーティングシステム区画である、請求項1に記載の方法。
  3. 前記相互区画言語仕様は、アドバンストコンフィギュレーションアンドパワーインターフェースマシン言語(AML)である
    請求項2に記載の方法。
  4. 前記割り当てたオペレーションコード(246)のテーブルからの拡張オペレーションコードを、前記関連した機能名(244)に関連付けられた拡張機能とリンクするステップと、
    前記生成したマシン可読命令(232)を実行する(316)ステップと、
    をさらに含む請求項1に記載の方法。
  5. 前記生成したマシン可読命令(232)を含み、前記割り当てたオペレーションコード(246)を利用するように、基本的な1組のマシン可読命令を拡張するステップ
    をさらに含む請求項4に記載の方法。
  6. 前記第1の区画(220)を再ブートするステップであって、前記第1の区画が、前記生成したマシン可読命令(232)を利用することが可能になる前記第1の区画(220)を再ブートするステップ
    をさらに含む請求項4に記載の方法。
  7. 相互区画言語仕様に準拠したマシン可読コード(232)を第2の区画(236)のマシン可読コード(234)に提示する第1の区画(220)のマシン可読ジェネレータコード(222)が記録されたマシン可読媒体を備えるメモリシステムであって、
    前記ジェネレータコード(222)は、前記第2の区画で実施された前記相互区画言語仕様のバージョンに従って、使用されないオペレーションコードのリスト(242)を受け取ることができ、
    前記ジェネレータコード(222)は、割り当てるオペレーションコードが、前記第2の区画の前記相互区画言語仕様の前記バージョンで使用されないオペレーションコードであり、前記第1の区画で実施された前記相互区画言語仕様のバージョンで使用されないオペレーションコードである場合に、前記オペレーションコードに拡張機能を割り当てる(308)ことができ、
    前記ジェネレータコード(222)は、割り当てたオペレーションコード(246)のテーブルを、関連した機能名(244)と共に公開する(314)ことができ、前記相互区画言語仕様に従い、前記割り当てたオペレーションコード(246)を使用して、生成するマシン可読命令(232)を生成する(310)ことができる
    メモリシステム。
  8. 前記第1の区画(222)は、ファームウェア区画である
    請求項7に記載のメモリシステム。
  9. 前記相互区画言語仕様は、アドバンストコンフィギュレーションアンドパワーインターフェースマシン言語(AML)である
    請求項8に記載のメモリシステム。
  10. 相互区画言語仕様に準拠したマシン可読コード(232)を、第2の区画(236)のマシン可読コード(234)に提示する第1の区画(220)のマシン可読コード(222)を有するデジタルデバイス(202)の拡張機能を提供する方法のマシン可読コードが記録されたマシン可読媒体を備えたコンピュータプログラム製品であって、
    前記マシン可読コードは、
    前記第2の区画で実施された前記相互区画言語仕様のバージョンに従って、使用されないオペレーションコードのリスト(242)を準備する(302)ステップと、
    前記第1の区画のコード(222)に前記使用されないオペレーションコードのリスト(242)を公開する(304)ステップと、
    割り当てるオペレーションコードが、前記第2の区画の前記相互区画言語仕様の前記バージョンで使用されないオペレーションコードであり、かつ、前記第1の区画で実施された前記相互区画言語仕様のバージョンで使用されないオペレーションコードである場合に、前記オペレーションコードに拡張機能を割り当てる(308)ステップと、
    割り当てたオペレーションコード(246)のテーブルを、関連した機能名(244)と共に公開する(314)ステップと、
    前記相互区画言語仕様に従って、生成するマシン可読命令(232)を生成する(310)ステップと
    を実行するコードを含み、
    前記生成したマシン可読命令(232)は、前記割り当てたオペレーションコード(246)を利用する
    コンピュータプログラム製品。
  11. 前記第1の区画(222)は、ファームウェア区画である
    請求項10に記載のコンピュータプログラム製品。
  12. 前記相互区画言語仕様は、アドバンストコンフィギュレーションアンドパワーインターフェースマシン言語(AML)である
    請求項10に記載のコンピュータプログラム製品。
JP2005177224A 2004-06-21 2005-06-17 デジタルデバイスのファームウェアとオペレーティングシステムとの間の拡張可能インターラクションを提供する方法および装置 Withdrawn JP2006012158A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/872,708 US7434201B2 (en) 2004-06-21 2004-06-21 Method and apparatus providing for extendable interaction between firmware and operating systems on digital devices

Publications (1)

Publication Number Publication Date
JP2006012158A true JP2006012158A (ja) 2006-01-12

Family

ID=35482025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005177224A Withdrawn JP2006012158A (ja) 2004-06-21 2005-06-17 デジタルデバイスのファームウェアとオペレーティングシステムとの間の拡張可能インターラクションを提供する方法および装置

Country Status (2)

Country Link
US (1) US7434201B2 (ja)
JP (1) JP2006012158A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7856550B2 (en) * 2007-03-29 2010-12-21 Wind River Systems, Inc. System and method for hardware manipulation in a computing device
US9442742B2 (en) * 2014-09-18 2016-09-13 Arista Networks, Inc. Method and system for network device maintenance

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185677B1 (en) * 1998-09-30 2001-02-06 Phoenix Technologies Ltd. Automatic generation of ACPI source language for peripheral resource configuration
US6081890A (en) * 1998-11-30 2000-06-27 Intel Corporation Method of communication between firmware written for different instruction set architectures
US6970957B1 (en) * 2000-04-24 2005-11-29 Microsoft Corporation Dynamically configuring resources for cycle translation in a computer system
US6961848B2 (en) * 2001-12-11 2005-11-01 Intel Corporation System and method for supporting legacy operating system booting in a legacy-free system
US6990576B2 (en) * 2002-08-07 2006-01-24 Hewlett-Packard Development Company, L.P. System and method for using a firmware interface table to dynamically load an ACPI SSDT
US6986032B2 (en) * 2002-08-07 2006-01-10 Hewlett-Packard Development Company, L.P. System and method for using an operating system defined field in ACPI support multiple operating systems
US7159105B2 (en) * 2003-06-30 2007-01-02 Intel Corporation Platform-based optimization routines provided by firmware of a computer system

Also Published As

Publication number Publication date
US20050283755A1 (en) 2005-12-22
US7434201B2 (en) 2008-10-07

Similar Documents

Publication Publication Date Title
KR102356316B1 (ko) 차량 시스템, 차량 및 이러한 차량 시스템을 동작시키기 위한 방법
CN109478135B (zh) 计算机系统和用于重新引导计算机系统的方法
US7134007B2 (en) Method for sharing firmware across heterogeneous processor architectures
CN105814541B (zh) 计算机设备及计算机设备内存启动的方法
US10725770B2 (en) Hot-swapping operating systems using inter-partition application migration
US7146512B2 (en) Method of activating management mode through a network for monitoring a hardware entity and transmitting the monitored information through the network
US20160306649A1 (en) Operating-System Exchanges Using Memory-Pointer Transfers
JP2008509483A (ja) 予期せず/変化するハードウェア環境へのソフトウェアとファームウェアの適応
US7162626B2 (en) Use of common language infrastructure for sharing drivers and executable content across execution environments
AU2022202175B2 (en) Firmware publication of multiple binary images
US7840792B2 (en) Utilizing hand-off blocks in system management mode to allow independent initialization of SMBASE between PEI and DXE phases
JP2004070945A (ja) ファームウェアインタフェーステーブルを用いてacpiのssdtを動的にロードするシステムおよび方法
US8726258B2 (en) Supporting multiple hardware components in UEFI
US8572362B2 (en) Preinstalled operating system instances stored on removable storage devices
US20070214345A1 (en) System and method for porting an operating system
JP2006012158A (ja) デジタルデバイスのファームウェアとオペレーティングシステムとの間の拡張可能インターラクションを提供する方法および装置
WO2008048581A1 (en) A processing device operation initialization system
US11669620B2 (en) System platform initializer for mixed-critical systems
US8713545B2 (en) Architecture for accelerated computer processing
CN109656720B (zh) 地址空间分配方法和装置
US20220197673A1 (en) Binary Image Publication by Firmware
KR100763198B1 (ko) 임베디드 시스템의 부팅 장치 및 방법
US20240168768A1 (en) Method for packaging driver kernel module, electronic device and storage medium
US20040267998A1 (en) Method to support legacy and native mode interrupts with multiplexed execution of legacy and native interrupt service
CN117075974A (zh) 一种基于risc-v服务器cpu的新型edk2启动引导方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070702

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070808

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071220

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20080402