JP2000187533A - ファームウェアによるハードウェア初期化方式 - Google Patents

ファームウェアによるハードウェア初期化方式

Info

Publication number
JP2000187533A
JP2000187533A JP10363282A JP36328298A JP2000187533A JP 2000187533 A JP2000187533 A JP 2000187533A JP 10363282 A JP10363282 A JP 10363282A JP 36328298 A JP36328298 A JP 36328298A JP 2000187533 A JP2000187533 A JP 2000187533A
Authority
JP
Japan
Prior art keywords
space
register
initial value
hardware
firmware
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.)
Pending
Application number
JP10363282A
Other languages
English (en)
Inventor
Eiji Nakajima
英二 中島
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP10363282A priority Critical patent/JP2000187533A/ja
Publication of JP2000187533A publication Critical patent/JP2000187533A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 FWの開発期間を短縮することができ、ま
た、FW自身のデバックを容易化にし、また、FWを他
のシステムに容易に移植することができ、また、FWを
交換することなくレジスタの初期値を変更する。 【解決手段】 ハードウェアの各レジスタの初期値が格
納される不揮発性メモリ31を設け、ファームウェアに
よって不揮発性メモリ31に格納された初期値を各ハー
ドウェアのレジスタに書き込むことにより、ハードウェ
アの初期化を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ファームウェアに
よるハードウェア初期化方式に関する。
【0002】
【従来の技術】従来より、ファームウェア(以下、FW
を称する)によるハードウェア初期化方式においては、
ハードウェア(以下、HWを称する)のレジスタの初期
値がプログラムとしてFWの中に記述され、FWの中の
HW初期化プログラムによって初期値がレジスタに書き
込まれ、それにより、HWの初期化が行われている。
【0003】
【発明が解決しようとする課題】しかしながら、上述し
たような従来のファームウェアによるハードウェア初期
化方式においては、以下に記載するような問題点があ
る。
【0004】(1)HWのレジスタの初期値がFWの中
にプログラムとして記述され、FWのHW初期化プログ
ラムによってHWの初期化が行われるため、HWの規模
及びレジスタ数に依存してFWの開発規模が拡大し、F
WのHW初期化プログラムが複雑化してしまう。
【0005】これにより、FWのHW初期化プログラム
へのバグの作り込みが増大し、FWの品質がシステム評
価に影響を与えてしまう虞れがある。
【0006】(2)システム固有のレジスタ初期値がF
Wの中にプログラムとして記述され、FWのHW初期化
プログラムによってシステム固有のHW初期化が行われ
るため、FWを容易に他のシステムへ移植することがで
きないという問題点がある。
【0007】(3)HWのレジスタの初期値がFWの中
にプログラムとして記述され、FWのHW初期化プログ
ラムによってHWの初期化が行われるため、初期値を変
更するためにはFWを書き換える必要があり、そのため
に、HW故障などが原因でレジスタの初期値を変更する
必要がある場合、FWを交換しなければならないという
問題点がある。
【0008】(4)HWのレジスタの初期値がFWの中
にプログラムとして記述され、FWのHW初期化プログ
ラムによってHWの初期化が行われるため、レジスタの
追加とHWの追加に対応するためには、レジスタの初期
値とHWを初期化するためのプログラムをFWに追加す
る必要があり、そのために、HWに新たにレジスタが追
加された場合、あるいはシステムに新たにHWが追加さ
れた場合、FWを交換しなければならないという問題点
がある。
【0009】本発明は、上述したような従来の技術が有
する問題点に鑑みてなされたものであって、FWの開発
期間を短縮することができ、また、FW自身のデバック
を容易化にし、また、FWを他のシステムに容易に移植
することができ、また、FWを交換することなくレジス
タの初期値を変更することができるファームウェアによ
るハードウェア初期化方式を提供することを目的とす
る。
【0010】
【課題を解決するために手段】上記目的を達成するため
に本発明は、ハードウェアを初期化するために必要とな
る情報に基づいてファームウェアによってハードウェア
を初期化するファームウェアによるハードウェア初期化
方式であって、前記ハードウェアを初期化するために必
要となる情報が格納された記憶手段を有し、前記ファー
ムウェアは前記記憶手段に格納された情報に基づいて前
記ハードウェアを初期化することを特徴とする。
【0011】また、前記記憶手段は、前記ファームウェ
アに対して独立して設けられていることを特徴とする。
【0012】また、前記ファームウェアは、前記記憶手
段に格納された情報に含まれる初期値を前記ハードウェ
アのレジスタに書き込むことにより該ハードウェアの初
期化を行うことを特徴とする。
【0013】また、前記記憶手段は、前記ファームウェ
アとバスを介して接続されていることを特徴とする。
【0014】また、前記記憶手段に格納された情報を更
新あるいは追加する更新手段を有すること特徴とする。
【0015】また、前記記憶手段は、不揮発性メモリで
あることを特徴とする。
【0016】(作用)上記のように構成された本発明に
おいては、PCIバス・システム・アーキテクチャで構
成されるシステムにおいて、CPU、チップセット(メ
モリ・コントローラ、I/Oコントローラを含むハード
ウェアの総称)、PCIホスト・バス・ブリッジ、PC
Iデバイス、SP(Service Processor)などのハード
ウェアの各レジスタの初期値がSP配下の不揮発性メモ
リに格納され、ファームウェアによって不揮発性メモリ
に格納された初期値が各ハードウェアのレジスタに書き
込まれることにより、ハードウェアの初期化が行われ
る。
【0017】このように、ファームウェアとは独立した
不揮発性メモリにハードウェアのレジスタ初期値を格納
しておくことで、ファームウェアのプログラム開発規模
が削減され、アームウェアの開発期間が短縮されるの
で、短期間でハードウェアの初期化を実現してシステム
を立ち上げることができる。
【0018】また、ファームウェアにおけるハードウェ
ア初期化プログラムが単純化されるので、ファームウェ
ア自身のデバッグが容易となる。
【0019】また、システム固有のレジスタ初期値が不
揮発性メモリ上に格納されているため、アームウェアを
容易に他のシステムへ移植することができる。
【0020】また、ハードウェアの故障などが原因でレ
ジスタの初期値を変更する必要がある場合、ファームウ
ェアを交換することなく、不揮発性メモリ上の初期値を
書き換えるだけでレジスタの初期値を変更することがで
きる。
【0021】また、ハードウェアに新たにレジスタが追
加された場合、あるいはシステムに新たにハードウェア
が追加された場合、ファームウェアを交換することな
く、不揮発性メモリ上に初期値を追加するだけでハード
ウェアの初期化を行うことができる。
【0022】
【発明の実施の形態】以下に、本発明の実施の形態につ
いて図面を参照して説明する。
【0023】図1は、本発明のファームウェアによるハ
ードウェア初期化方式の実施の一形態を示す図である、
本形態は図1に示すように、FW11及びオペレーティ
ング・システム(以下、OSと称する)などのソフトウ
ェア(以下、SWと称する)を実行するCPU1と、S
Wとデータを記憶するメモリ23と、メモリ23を制御
するメモリ・コントローラ21と、PCIホスト・バス
・ブリッジ4を制御するI/Oコントローラ22と、メ
モリ23とメモリ・コントローラ21とI/Oコントロ
ーラ22によって構成されるチップセット2と、PCI
デバイス5を制御するPCIホスト・バス・ブリッジ4
と、ディスクなどのデバイスを制御するPCIデバイス
5と、各レジスタの初期値を格納するための不揮発性メ
モリ31を有するSP(Service Processor)3とから
構成されている。
【0024】CPU1とチップセット2とはシステム・
バス8によって接続され、PCIホスト・バス・ブリッ
ジ4及びSP3はローカル・バス7によってチップセッ
ト2と接続され、PCIデバイス5はPCIバス6によ
ってPCIホスト・バス・ブリッジ4と接続されてい
る。
【0025】CPU1はコンフィギュレーション空間へ
の読み出し及び書き込み命令αと、I/O空間への読み
出し及び書き込み命令βと、メモリ空間への読み出し及
び書き込み命令ηとを備えている。
【0026】メモリ・コントローラ21と、I/Oコン
トローラ22と、PCIホスト・バス・ブリッジ4と、
PCIデバイス5はそれぞれコンフィギュレーション空
間レジスタ211,221,411,511と、I/O
空間レジスタ212,222,412,512と、メモ
リ空間レジスタ213,223,413,513を備え
ている。
【0027】コンフィギュレーション空間レジスタ21
1,221,411,511は、各HWの動作モード、
機能のON/OFFなどのHWの構成を制御するための
レジスタである。
【0028】I/O空間レジスタ212,222,41
2,512とメモリ空間レジスタ213,223,41
3,513は、メモリ23へのメモリ・アクセス、PC
Iバス6へのI/Oアクセス、ディスクなどのデバイス
へのデバイス・アクセスなどを制御するためのレジスタ
である。
【0029】メモリ・コントローラ21とI/Oコント
ローラ22とPCIホスト・バス・ブリッジ4とPCI
デバイス5は、コンフィギュレーション空間レジスタ2
11,221,411,511と、I/O空間レジスタ
212,222,412,512と、メモリ空間レジス
タ213,223,413,513とによって制御され
る。
【0030】SP3は不揮発性メモリ31を保持し、不
揮発性メモリ31上には、コンフィギュレーション空間
レジスタ211,221,411,511の初期値を格
納しておくコンフィギュレーション空間レジスタ初期値
格納部311と、I/O空間レジスタ212,222,
412,512の初期値を格納しておくI/O空間レジ
スタ初期値格納部312と、メモリ空間レジスタ21
3,223,413,513の初期値を格納しておくメ
モリ空間レジスタ初期値格納部313が設けられてい
る。
【0031】不揮発性メモリ31は、システムの電源が
OFF状態になっても各レジスタ初期値格納部に記憶さ
れた初期値を保持している。
【0032】また、SP3は不揮発性メモリ31上の各
レジスタ初期値格納部311,312,313の内容を
更新するための不揮発性メモリ更新手段32を備えてお
り、各HWのレジスタ初期値を変更する場合、不揮発性
メモリ更新手段32を使って不揮発性メモリ31上の各
レジスタ初期値格納部311,312,313の内容を
更新することができる。
【0033】FW11は、CPU1が持つコンフィギュ
レーション空間への読み出し及び書き込み命令αと、I
/O空間への読み出し及び書き込み命令βと、メモリ空
間への読み出し及び書き込み命令ηを使って、各レジス
タ初期値格納部311,312,313に格納されてい
る初期値を各HWのレジスタへ書き込むことによってH
Wを初期化する。
【0034】図2は、図1に示したチップセット2、P
CI・ホスト・バス・ブリッジ4及びPCIデバイスと
コンフィギュレーション空間、I/O空間及び、メモリ
空間との関係を示す図である。
【0035】図2に示すように、メモリ・コントローラ
21、I/Oコントローラ22、PCIホスト・バス・
ブリッジ4及びPCIデバイス5が備えているコンフィ
ギュレーション空間レジスタ211,221,411,
511は、それぞれコンフィギュレーション空間Aにマ
ッピングされている。
【0036】また、メモリ・コントローラ21、I/O
コントローラ22、PCIホスト・バス・ブリッジ4及
びPCIデバイス5が備えているI/O空間レジスタ2
12,222,412,512は、それぞれI/O空間
Bにマッピングされている。
【0037】さらに、メモリ・コントローラ21、I/
Oコントローラ22、PCIホスト・バス・ブリッジ4
及びPCIデバイス5が備えているメモリ空間レジスタ
213,223,413,513は、それぞれメモリ空
間Cにマッピングされている。
【0038】図3は、図2に示したコンフィギュレーシ
ョン空間A、I/O空間B及びメモリ空間Cに割り当て
られたアドレス及びオフセットを示す図である。
【0039】図3に示すように、コンフィギュレーショ
ン空間AにはアドレスXが割り当てられており、コンフ
ィギュレーション空間レジスタ211,221,41
1,511にはそれぞれアドレスXからの相対オフセッ
トX1,X2,X3,X4が割り当てられている。
【0040】FW11はCPU1が持つコンフィギュレ
ーション空間Aへの読み出し及び書き込み命令αを使っ
て、コンフィギュレーション空間レジスタ初期値格納部
311に格納されている初期値をコンフィギュレーショ
ン空間レジスタ211,221,411,511へ書き
込むことによってHWを初期化する。
【0041】また、I/O空間BにはアドレスYが割り
当てられており、I/O空間レジスタ212,222,
412,512にはそれぞれアドレスYからの相対オフ
セットY1,Y2,Y3,Y4が割り当てられている。
【0042】FW11はCPU1が持つI/O空間Bへ
の読み出し及び書き込み命令βを使って、I/O空間レ
ジスタ初期値格納部312に格納されている初期値をI
/O空間レジスタ212,222,412,512へ書
き込むことによってHWを初期化する。
【0043】さらに、メモリ空間CにはアドレスZが割
り当てられており、メモリ空間レジスタ213,22
3,413,513にはそれぞれアドレスZからの相対
オフセットZ1,Z2,Z3,Z4が割り当てられてい
る。
【0044】FW11はCPU1が持つメモリ空間Cへ
の読み出し及び書き込み命令ηを使って、メモリ空間レ
ジスタ初期値格納部313に格納されている初期値をメ
モリ空間レジスタ213,223,413,513へ書
き込むことによってHWを初期化する。
【0045】以下に、上記のように構成されたファーム
ウェアによるハードウェア初期化方式におけるハードウ
ェア初期化方法について説明する。
【0046】図4は、図1に示した不揮発性メモリ31
内の具体的な一構成例を示す図である。また、図5は、
図4に示した不揮発性メモリ31を有するファームウェ
アによるハードウェア初期化方式におけるハードウェア
初期化方法を説明するためのフローチャートである。
【0047】FW11はCPU1が持つコンフィギュレ
ーション空間への読み出し及び書き込み命令αと、I/
O空間への読み出し及び書き込み命令βと、メモリ空間
への読み出し及び書き込み命令ηとを使って、SP3の
不揮発性メモリ31上にあるコンフィギュレーション空
間レジスタ初期値格納部311と、I/O空間レジスタ
初期値格納部312と、メモリ空間レジスタ初期値格納
部313に格納されている初期値を、それぞれコンフィ
ギュレーション空間レジスタ211,221,411,
511と、I/O空間レジスタ212,221,41
2,512と、メモリ空間レジスタ213,223,4
13,513へ書き込むことによってHWの初期化を行
う。
【0048】HW初期化の開始に先立って、予めコンフ
ィギュレーション空間レジスタ初期値格納部311と、
I/O空間レジスタ初期値格納部312と、メモリ空間
レジスタ初期値格納部313にコンフィギュレーション
空間レジスタ211,221,411,511と、I/
O空間レジスタ212,221,412,512と、メ
モリ空間レジスタ213,223,413,513の初
期値を格納しておく。
【0049】図4に示すように、SP3の不揮発性メモ
リ31上にあるコンフィギュレーション空間レジスタ初
期値格納部311には、コンフィギュレーション空間A
のベース・アドレスであるアドレスXと、コンフィギュ
レーション空間Aへの読み出し及び書き込み命令αのフ
ォーマットα’と、コンフィギュレーション空間レジス
タ211,221,411,511へのオフセットX
1,X2,X3,X4と、コンフィギュレーション空間
レジスタ211,221,411,511の初期値x
1,x2,x3,x4を格納しておく。
【0050】また、I/O空間レジスタ初期値格納部3
12には、I/O空間Bのベース・アドレスであるアド
レスYと、I/O空間Bへの読み出し及び書き込み命令
βのフォーマットβ’と、I/O空間レジスタ212,
221,412,512へのオフセットY1,Y2,Y
3,Y4と、I/O空間レジスタ212,221,41
2,512の初期値y1,y2,y3,y4を格納して
おく。
【0051】さらに、メモリ空間レジスタ初期値格納部
313には、メモリ空間Cのベース・アドレスであるア
ドレスZと、メモリ空間Cへの読み出し及び書き込み命
令ηのフォーマットη’と、メモリ空間レジスタ21
3,223,413,513へのオフセットZ1,Z
2,Z3,Z4と、メモリ空間レジスタ213,22
3,413,513の初期値z1,z2,z3,z4を
格納しておく。
【0052】また、コンフィギュレーション空間レジス
タ初期値格納部311と、I/O空間レジスタ初期値格
納部312と、メモリ空間レジスタ初期値格納部313
へフラグを設けておく。これは、各レジスタ初期値格納
部のエントリの内容(オフセットと初期値)が有効であ
るか無効であるかを示すものである。
【0053】FW11はフラグを参照することによって
各レジスタ初期値格納部のエントリの終わりを判断する
ことができる。
【0054】例えば、図5に示す処理においては、フラ
グ1のエントリが有効であり、FW11はフラグ1のエ
ントリのレジスタへの初期値書き込みを行い、フラグ0
でエントリの終わりを認識する(ステップS7,S1
1)。
【0055】さらに、各レジスタ初期値格納部のエント
リ数は不揮発性メモリ31のサイズの制限まで拡張する
ことができる。これは、システムに新たにHWが追加さ
れた場合に対応するためである。また、HWに新たにレ
ジスタが追加された場合に対応するためである。
【0056】例えば、図4において、システムにメモリ
・コントローラ21’が追加された場合に、不揮発性メ
モリ更新手段32を使って、メモリ・コントローラ2
1’のコンフィギュレーション空間レジスタのオフセッ
トX1’と初期値x1’と、I/O空間レジスタのオフ
セットY1’と初期値y1’と、メモリ空間レジスタの
Z1’と初期値z1’を各レジスタ初期値格納部へ追加
したことを表している。
【0057】FW11によるHW初期化の開始に先立っ
て、コンフィギュレーション空間Aのベース・アドレス
であるアドレスXと、コンフィギュレーション空間Aへ
の読み出し及び書き込み命令αのフォーマットα’と、
コンフィギュレーション空間レジスタ211,221,
411,511へのオフセットX1,X2,X3,X
4,X1’と、コンフィギュレーション空間レジスタ2
11,221,411,511の初期値x1,x2,x
3,x4,x1’をコンフィギュレーション空間レジス
タ初期値格納部311へ格納しておく。また、I/O空
間Bのベース・アドレスであるアドレスYと、I/O空
間Bへの読み出し及び書き込み命令βのフォーマット
β’と、I/O空間レジスタ212,221,412,
512へのオフセットY1,Y2,Y3,Y4,Y1’
と、I/O空間レジスタ212,221,412,51
2の初期値y1,y2,y3,y4,y1’をI/O空
間レジスタ初期値格納部312へ格納しておく。さら
に、メモリ空間Cのベース・アドレスであるアドレスZ
と、メモリ空間Cへの読み出し及び書き込み命令ηのフ
ォーマットη’と、メモリ空間レジスタ213,22
3,413,513へのオフセットZ1,Z2,Z3,
Z4,Z1’と、メモリ空間レジスタ213,223,
413,513の初期値z1,z2,z3,z4,z
1’をメモリ空間レジスタ初期値格納部313へ格納し
ておく(ステップS1)。
【0058】FW11はコンフィギュレーション空間レ
ジスタ初期値格納部311を検索する(ステップS
2)。
【0059】コンフィギュレーション空間レジスタ初期
値格納部311のフラグを参照してエントリの内容が有
効か無効か(エントリの終わりか否か)を調べる(ステ
ップS3)。
【0060】エントリに初期値が格納されている(エン
トリの終わりでない)場合は、コンフィギュレーション
空間Aのベース・アドレスXとコンフィギュレーション
空間レジスタへのオフセットを加算してコンフィギュレ
ーション空間レジスタのアドレスを算出する(ステップ
S4)。
【0061】そして、CPU1が持つコンフィギュレー
ション空間Aへの読み出し、書き込み命令αを使って、
初期値をコンフィギュレーション空間レジスタへ書き込
む(ステップ5)。
【0062】その後、ステップS2に戻り、コンフィギ
ュレーション空間レジスタ初期値格納部311の検索を
繰り返す。
【0063】コンフィギュレーション空間レジスタ初期
値格納部311のフラグが有効でない(エントリに初期
値が格納されていない)(エントリの終わり)場合は、
コンフィギュレーション空間レジスタ初期化を終える。
【0064】次に、FW11はI/O空間レジスタ初期
値格納部312を検索する(ステップS6)。
【0065】I/O空間レジスタ初期値格納部312の
フラグを参照してエントリの内容が有効か無効か(エン
トリの終わりか否か)を調べる(ステップS7)。
【0066】エントリに初期値が格納されている(エン
トリの終わりでない)場合は、I/O空間Bのベース・
アドレスYとI/O空間レジスタへのオフセットを加算
してI/O空間レジスタのアドレスを算出する(ステッ
プS8)。
【0067】そして、CPU1が持つI/O空間Bへの
読み出し及び書き込み命令βを使って、初期値をI/O
空間レジスタへ書き込む(ステップS9)。
【0068】その後、ステップS6に戻り、I/O空間
レジスタ初期値格納部312の検索を繰り返す。
【0069】I/O空間レジスタ初期値格納部312の
フラグが有効でない(エントリに初期値が格納されてい
ない)(エントリの終わり)場合は、I/O空間レジス
タ初期化を終える。
【0070】次に、FW11はメモリ空間レジスタ初期
値格納部313を検索する(ステップS10)。
【0071】メモリ空間レジスタ初期値格納部313の
フラグを参照してエントリの内容が有効か無効か(エン
トリの終わりか否か)を調べる(ステップS11)。
【0072】エントリに初期値が格納されている(エン
トリの終わりでない)場合は、メモリ空間Cのベース・
アドレスZとメモリ空間レジスタへのオフセットを加算
してメモリ空間レジスタのアドレスを算出する(ステッ
プS12)。
【0073】そして、CPU1が持つメモリ空間Cへの
読み出し及び書き込み命令ηを使って、初期値をメモリ
空間レジスタへ書き込む(ステップS13)。
【0074】その後、ステップS10に戻り、メモリ空
間レジスタ初期値格納部313の検索を繰り返す。
【0075】メモリ空間レジスタ初期値格納部313の
フラグが有効でない(エントリに初期値が格納されてい
ない)(エントリの終わり)場合は、メモリ空間レジス
タ初期化を終える。
【0076】次に、SP3が持つ不揮発性メモリ更新手
段32の動作について説明する。
【0077】図6は、図1に示した不揮発性メモリ更新
手段32の動作を説明するためのフローチャートであ
る。
【0078】まず、SP3の不揮発性メモリ更新手段3
2には入力として、ベース・アドレスとオフセットと初
期値が与えられる(ステップS21)。
【0079】不揮発性メモリ更新手段32は各レジスタ
初期値格納部311,312,313に格納されている
ベース・アドレスを検索する(ステップS22)。
【0080】そして、入力とし与えられたベース・アド
レスがコンフィギュレーション空間Aのベース・アドレ
スX、I/O空間Bのベース・アドレスY、メモリ空間
Cのベース・アドレスZのいずれかと一致するかを調べ
る(ステップS23)。
【0081】一致しない場合は、不正なベース・アドレ
スとして不揮発性メモリ更新を中止し、また、一致する
場合は、一致する空間のレジスタ初期値格納部に格納さ
れているオフセットを検索する(ステップS24)。
【0082】入力として与えられたオフセットに対応す
るレジスタの初期値が既に登録されているかを調べる
(ステップS25)。
【0083】既に登録されている場合、初期値の更新と
判断して、登録されている初期値を入力として与えられ
た初期値に書き換える(ステップS26)。
【0084】また、登録されていない場合、初期値の新
規追加と判断して、入力として与えられた初期値を追加
する(ステップS27)。
【0085】(他の実施の形態)次に、本発明の他の実
施の形態について図面を参照して説明する。
【0086】図7は、図1に示した不揮発性メモリ31
内の具体的な他の構成例を示す図である。
【0087】本形態における不揮発性メモリは図7に示
すように、図4に示したものに加えて、レジスタ初期値
格納部311、312、313の各エントリにレベルと
番号が設けられている点で異なる。
【0088】これは、レジスタの初期化順序を示すもの
である。FW11はレベルと番号を参照しながら、その
初期化順序に従ってHWを初期化する。
【0089】さらに、各エントリに初期化完了フラグが
設けられている点で異なる。
【0090】これは、各エントリのレジスタの初期化が
完了したか否かを示すものである。
【0091】FW11はレジスタに初期値を書き込んだ
後、初期化完了フラグに初期化が完了したことを示す値
を設定する。初期化順序と初期化完了フラグは不揮発性
メモリ更新手段32によって書き換えることができる。
【0092】例えば、図7においては、各エントリはレ
ベルA、B,Cの3段階にレベル分けされ、さらにレベ
ル毎に各エントリには1,2,3…と順に番号がふられ
ている。FW11はレベルAの番号1,2,3…、レベ
ルBの番号1,2,3…、レベルCの番号1,2,3
…、の順番でレジスタへ初期値を書き込む。
【0093】そして、レジスタの初期値書き込み完了
後、エントリの初期化完了フラグに1を設定する。
【0094】以下に、本形態における動作について説明
する。
【0095】図8は、図7に示した不揮発性メモリ31
を有するファームウェアによるハードウェア初期化方式
におけるハードウェア初期化方法を説明するためのフロ
ーチャートである。
【0096】FW11によるHW初期化の開始に先立っ
て、フラグ、オフセット、初期値に加えて、初期化優先
順序を示すレベルと番号を各レジスタ初期値格納部31
1、312、313のエントリに格納しておく(ステッ
プS31)。
【0097】FW11はHW初期化の開始に先立って、
各レジスタ初期値格納部の全てのエントリの初期化完了
フラグに0の値を設定しておく(ステップS32)。
【0098】FW11は各レジスタ初期値格納部の全て
のエントリの初期化完了フラグを参照して、全てのレジ
スタの初期化が完了したか否かを調べる(ステップS3
3)。
【0099】全てのレジスタの初期化が完了していない
場合は、各レジスタ初期値格納部のエントリのフラグを
参照しながら有効なエントリについて繰り返す(ステッ
プS34)。
【0100】有効なエントリのレベルを検索しながらレ
ベルA、B、Cの順に繰り返す(ステップS35)。
【0101】有効なエントリのレベルを参照して同一レ
ベルの全てのエントリを抽出する(ステップS36)。
【0102】そして、同一レベルの全てのエントリにつ
いて繰り返す(ステップS37)。
【0103】同一レベルの全てのエントリの番号を参照
して番号1、2、3の順に繰り返す(ステップS3
8)。
【0104】ベース・アドレスとオフセットを加算して
レジスタのアドレスを算出する(ステップS39)。
【0105】そして、CPU1が持つ各空間への読み出
し及び書き込み命令を使って、初期値をレジスタへ書き
込む(ステップS40)。
【0106】エントリの初期化完了フラグに初期化完了
を示す値1を設定する(ステップS41)。
【0107】その後、ステップS33に戻り、FW11
は各レジスタ初期値格納部の有効な全てのエントリにつ
いて繰り返す。
【0108】全てのレジスタの初期化が完了した場合
は、レジスタ初期化を終える。
【0109】このようにして、レジスタ初期値格納部に
レジスタ初期化順序を示す情報(レベル、番号)を記述
しておくことで、レジスタ初期化順序を変えたHW初期
化を行うことができる。
【0110】例えば、HW評価においてレジスタ初期化
順序を変えながらHWを初期化する必要がある場合、不
揮発性メモリ上のレジスタ初期化順序を示す情報を書き
換えるだけで容易にレジスタ初期化順序を変えたHW評
価を行うことができる。
【0111】つまり、本形態においては、レジスタ初期
値と共に、FWとは独立した不揮発性メモリ上に初期化
順序を示す情報が記述され、不揮発性メモリ更新手段を
用いて初期化順序を自由に変更できるため、FWを書き
換えることなく容易にレジスタ初期化順序を変えたHW
初期化を行うことができる。
【0112】
【発明の効果】本発明は、以上説明したように構成され
ているため、以下に記載するような効果を奏する。
【0113】(1)ファームウェアとは独立した不揮発
性メモリにハードウェアを初期化するために必要なハー
ドウェアのレジスタ初期値を格納しておくことで、複雑
なハードウェア初期化プログラムを開発する必要がなく
なるため、ファームウェアのプログラム開発規模が削減
され、ファームウェアの開発期間が短縮される。それに
より、短期間でハードウェア初期化を実現してシステム
を立ち上げることができる。
【0114】(2)ファームウェアとは独立した不揮発
性メモリにハードウェアを初期化するために必要なハー
ドウェアのレジスタ初期値を格納しておくことで、ファ
ームウェアにおけるハードウェア初期化プログラムが単
純化されるため、ファームウェア自身のデバッグが容易
となる。
【0115】(3)ファームウェアとは独立した不揮発
性メモリにシステム固有のレジスタ初期値が格納されて
いるため、ファームウェアを容易に他のシステムへ移植
することができる。
【0116】(4)ファームウェアとは独立した不揮発
性メモリにハードウェアのレジスタ初期値が格納され、
不揮発性メモリ更新手段を用いて初期値を変更すること
ができるため、ハードウェアの故障などが原因でレジス
タの初期値を変更する必要がある場合、ファームウェア
を交換することなく初期値を変更することができる。
【0117】(5)ファームウェアとは独立した不揮発
性メモリにハードウェアのレジスタ初期値が格納され、
不揮発性メモリ更新手段を用いて初期値を追加すること
ができ、ファームウェアが不揮発性メモリに格納された
ハードウェアのレジスタ初期値に基づいてハードウェア
を初期化するため、ハードウェアに新たにレジスタが追
加された場合、あるいはシステムに新たにハードウェア
が追加された場合、ファームウェアを交換することなく
ハードウェアを初期化することができる。
【図面の簡単な説明】
【図1】本発明のファームウェアによるハードウェア初
期化方式の実施の一形態を示す図である、
【図2】図1に示したチップセット、PCI・ホスト・
バス・ブリッジ及びPCIデバイスとコンフィギュレー
ション空間、I/O空間及び、メモリ空間との関係を示
す図である。
【図3】図2に示したコンフィギュレーション空間A、
I/O空間B及びメモリ空間Cに割り当てられたアドレ
ス及びオフセットを示す図である。
【図4】図1に示した不揮発性メモリ内の具体的な一構
成例を示す図である。
【図5】図4に示した不揮発性メモリを有するファーム
ウェアによるハードウェア初期化方式におけるハードウ
ェア初期化方法を説明するためのフローチャートであ
る。
【図6】図1に示した不揮発性メモリ更新手段の動作を
説明するためのフローチャートである。
【図7】図1に示した不揮発性メモリ内の具体的な他の
構成例を示す図である。
【図8】図7に示した不揮発性メモリを有するファーム
ウェアによるハードウェア初期化方式におけるハードウ
ェア初期化方法を説明するためのフローチャートであ
る。
【符号の説明】
1 CPU 2 チップセット 3 SP 4 PCI・ホスト・バス・ブリッジ 5 PCIデバイス 6 PCIバス 7 ローカル・バス 8 システム・バス 11 FW 21 メモリコントローラ 22 I/Oコントローラ 23 メモリ 31 不揮発性メモリ 32 不揮発性メモリ更新手段 211,221,411,511 コンフィギュレー
ション空間レジスタ 212,222,412,512 I/O空間レジス
タ 213,223,413,513 メモリ空間レジス
タ 311 コンフィギュレーション空間レジスタ初期値
格納部 312 I/O空間レジスタ初期値格納部 313 メモリ空間レジスタ初期値格納部 A コンフィギュレーション空間 B I/O空間 C メモリ空間 α コンフィギュレーション空間読み出し及び書き込
み命令 β I/O空間読み出し及び書き込み命令 η メモリ空間読み出し及び書き込み命令

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ハードウェアを初期化するために必要と
    なる情報に基づいてファームウェアによってハードウェ
    アを初期化するファームウェアによるハードウェア初期
    化方式であって、 前記ハードウェアを初期化するために必要となる情報が
    格納された記憶手段を有し、 前記ファームウェアは前記記憶手段に格納された情報に
    基づいて前記ハードウェアを初期化することを特徴とす
    るファームウェアによるハードウェア初期化方式。
  2. 【請求項2】 請求項1に記載のファームウェアによる
    ハードウェア初期化方式において、 前記記憶手段は、前記ファームウェアに対して独立して
    設けられていることを特徴とするファームウェアによる
    ハードウェア初期化方式。
  3. 【請求項3】 請求項1または請求項2に記載のファー
    ムウェアによるハードウェア初期化方式において、 前記ファームウェアは、前記記憶手段に格納された情報
    に含まれる初期値を前記ハードウェアのレジスタに書き
    込むことにより該ハードウェアの初期化を行うことを特
    徴とするファームウェアによるハードウェア初期化方
    式。
  4. 【請求項4】 請求項1乃至3のいずれか1項に記載の
    ファームウェアによるハードウェア初期化方式におい
    て、 前記記憶手段は、前記ファームウェアとバスを介して接
    続されていることを特徴とするファームウェアによるハ
    ードウェア初期化方式。
  5. 【請求項5】 請求項1乃至4のいずれか1項に記載の
    ファームウェアによるハードウェア初期化方式におい
    て、 前記記憶手段に格納された情報を更新あるいは追加する
    更新手段を有すること特徴とするファームウェアによる
    ハードウェア初期化方式。
  6. 【請求項6】 請求項1乃至5のいずれか1項にに記載
    のファームウェアによるハードウェア初期化方式におい
    て、前記記憶手段は、不揮発性メモリであることを特徴
    とするファームウェアによるハードウェア初期化方式。
JP10363282A 1998-12-21 1998-12-21 ファームウェアによるハードウェア初期化方式 Pending JP2000187533A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10363282A JP2000187533A (ja) 1998-12-21 1998-12-21 ファームウェアによるハードウェア初期化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10363282A JP2000187533A (ja) 1998-12-21 1998-12-21 ファームウェアによるハードウェア初期化方式

Publications (1)

Publication Number Publication Date
JP2000187533A true JP2000187533A (ja) 2000-07-04

Family

ID=18478947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10363282A Pending JP2000187533A (ja) 1998-12-21 1998-12-21 ファームウェアによるハードウェア初期化方式

Country Status (1)

Country Link
JP (1) JP2000187533A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005013107A1 (ja) * 2003-07-31 2005-02-10 Semiconductor Energy Laboratory Co., Ltd. 半導体装置及び半導体装置の駆動方法
US7098696B2 (en) 2003-07-31 2006-08-29 Semiconductor Energy Laboratory Co., Ltd. Logic circuit and semiconductor integrated circuit
US7356686B2 (en) 2003-06-02 2008-04-08 Nec Corporation Initialization of range registers within chipsets on spare processor cells
US20140149731A1 (en) * 2012-11-26 2014-05-29 International Business Machines Corporation Data driven hardware chips initialization via hardware procedure framework
US9229729B2 (en) 2012-11-26 2016-01-05 International Business Machines Corporation Initializing processor cores in a multiprocessor system

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356686B2 (en) 2003-06-02 2008-04-08 Nec Corporation Initialization of range registers within chipsets on spare processor cells
WO2005013107A1 (ja) * 2003-07-31 2005-02-10 Semiconductor Energy Laboratory Co., Ltd. 半導体装置及び半導体装置の駆動方法
US7098696B2 (en) 2003-07-31 2006-08-29 Semiconductor Energy Laboratory Co., Ltd. Logic circuit and semiconductor integrated circuit
US7446587B2 (en) 2003-07-31 2008-11-04 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and driving method thereof
US7627773B2 (en) 2003-07-31 2009-12-01 Semiconductor Energy Laboratory Co., Ltd. Logic circuit and semiconductor integrated circuit
CN1833212B (zh) * 2003-07-31 2011-06-08 株式会社半导体能源研究所 半导体装置及半导体装置的驱动方法
US20140149731A1 (en) * 2012-11-26 2014-05-29 International Business Machines Corporation Data driven hardware chips initialization via hardware procedure framework
US9229729B2 (en) 2012-11-26 2016-01-05 International Business Machines Corporation Initializing processor cores in a multiprocessor system
US9250920B2 (en) 2012-11-26 2016-02-02 International Business Machines Corporation Initializing processor cores in a multiprocessor system
US9720703B2 (en) 2012-11-26 2017-08-01 International Business Machines Corporation Data driven hardware chips initialization via hardware procedure framework
US9720704B2 (en) * 2012-11-26 2017-08-01 International Business Machines Corporation Data driven hardware chips initialization via hardware procedure framework

Similar Documents

Publication Publication Date Title
JP4668416B2 (ja) ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護
US5524245A (en) System for booting computer for operation in either one of two byte-order modes
JP5220747B2 (ja) 不揮発性記憶装置および不揮発性記憶システム
US5835760A (en) Method and arrangement for providing BIOS to a host computer
US6381693B2 (en) Arrangements having firmware support for different processor types
US6282647B1 (en) Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
TWI521428B (zh) 用於可延伸韌體抽取之方法及相關計算平台
US7039799B2 (en) Methods and structure for BIOS reconfiguration
KR20010006749A (ko) 설치된 모든 대용량 저장 장치들의 리부트/파워 온리컨피그레이션을 최종 사용한 컨피그레이션과 동일하게하도록 각각의 대용량 저장 장치의 비휘발성 메모리에시스템 레벨 대용량 저장 컨피그레이션 데이터를 저장하는장치 및 방법
WO1998024021A1 (fr) Systeme de commande de micro-ordinateur
JPH04315253A (ja) 電子機器
US7958344B2 (en) Method for adjusting set-up default value of bios and mainboard using the same method
US6925522B2 (en) Device and method capable of changing codes of micro-controller
JP2000187533A (ja) ファームウェアによるハードウェア初期化方式
US7234039B1 (en) Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer
US7162568B2 (en) Apparatus and method for flash ROM management
JP2001306307A (ja) ファームウェアの処理方法。
US20220147343A1 (en) Tranistionary firmware packages
CN117573175B (zh) 不复位控制芯片的固件实时更新方法、系统及存储介质
JP2002140205A (ja) データ処理装置およびデータ処理装置のブート処理方法
JP3442972B2 (ja) 情報処理装置および書き換え可能型不揮発性メモリの書き換え方法
JP4575112B2 (ja) ファームウェアの書換方法、ディスクドライブ装置、及び情報処理システム
JPH1040094A (ja) ファームウエアのプログラム制御装置
JP2002024024A (ja) 異なる操作モードを利用してアダプタ構成ルーチンを実行する方法およびシステム
JP2526525B2 (ja) メモリ制御方式