.postrc 命令の多くは設計・製造の段階でのみ使用します。現場で使用できる命令についても、購入先の技術者またはシステム管理者だけが使用してください。これらの機能について十分に理解していないユーザーは、このファイルを使用しないでください。
.postrc ファイルは ASCII テキストファイルであり、hpost(1M) プログラム用の各種の設定属性を定義しています。POST のオプションは、このファイルによって制御されます。
hpost(1M) の機能のいくつかは、コマンド行からも制御することができます。コマンド行から制御できる機能については、以下の説明の中で使用法を明示してあります。コマンド行の引数は .postrc ファイル内の指定よりも優先されます。.postrc ファイル内の指定はデフォルト設定よりも優先されます。hpost --?postrc と入力すると、.postrc のオプションと構文に関する簡単な説明が表示されます。
最初の引数が -n でない場合は、 hpost(1M) はオプションファイルの .postrc を読み取り、そのファイルに記述されている命令を実行してから、ホストとのやり取りを開始します。.postrc が見つからない場合は、hpost(1M) は .postrc なしで処理を続行します。 hpost(1M) は、まず現在のディレクトリ (.) の中で .postrc を探します。ここで見つからない場合は、続いて $SSPVAR/etc/platform_name/$SUNW_HOSTNAME を探します。ここでも .postrc が見つからない場合は、ユーザーのホームディレクトリである $HOME を探します。ただし例外として、カレントディレクトリが $HOME の場合は、検索パスの最初の要素である (.) は省略されます。この例外があると、ユーザーのホームディレクトリから実行するときにはドメイン固有の .postrc ファイルがユーザーのデフォルトの $HOME/.postrc よりも優先されることになり、ユーザーがホームディレクトリ以外の任意のディレクトリにいるときには、ローカルの ./.postrc が優先されることになります。
以下に説明するコマンドのいくつかは、ローカルファイル ./.postrc が使用された場合にのみ有効です。こうしたコマンドについてはその旨を明示します。カレントディレクトリが $HOME である場合は、 ./.postrc 検索パスは省略されるため、この種のコマンドは使用できません。
.postrc ファイルには、以下の規則が適用されます。
キーワードでは大文字と小文字が区別されます。
数値オプションの引数は通常は 10 進数です。ただし、先頭 に x または 0x を付けることによって、16 進数で指定することもできます。
キーワードとオプションの引数は空白で区切られます。
ハッシュ記号 (#) で始まる行部分はコメントとみなされ、無視されます。
以下に、属性をアルファベット順で示します。属性はユーザーレベルによって分類できます。ユーザーレベルは、属性名の末尾の括弧内の番号によって示します。各レベルの意味は、以下のとおりです。
システム管理者が使用するコマンドです。これらのコマンドは、システム管理者用の機能、または (たとえば logfile のように) 無害で安全な機能を制御します。
サンおよび購入先の技術者だけが使用するコマンドです。
サンの POST 開発者が (デバッグ用に) 使用するコマンドであり、サンの技術者だけが使用します。
サンでの試験の際には、市販のマシンでは使用しないようなコンポーネントを組み込んだシステムを動作させることがあります。たとえば、既知のバグや速度上の問題を抱えたままのプロトタイプのコンポーネントを組み込んだシステムを試すような場合です。問題のコンポーネントがプロダクションシステムに害を与えることはありません。通常、POST は Component ID (CID) 値に基づいて、こうしたコンポーネントを即座に拒否します。このため、試験の目的を果たすには、allow_lab-only_components コマンドを使用して、POST に対し、CID ベースの拒否を実行せずに、特定の値を実験専用として認識するように指示します。このコマンドは、使用可能な CID のリストを拡張するだけであり、すべての CID チェックを無効にするわけではありません。
PC、CIC、または MC ASIC を JTAG 設定する場合に、エラー状態、エラーマスク、強制エラーのレジスタへの書き込み・クリアのアクセスを可能にします。通常、このコマンドを有効にするのは、診断コード (POST など) が実行されており、まだ最終設定の状態になっていないときだけです。
-a コマンド引数が呼び出された場合は、デフォルトの代替レベルではなく、level を POST レベルとして使用します。ただし、そのレベルより高い値が指定された level コマンドが呼び出された場合には、その値が使用されます。
この -a メカニズムは、特定のエラー再起動シナリオで通常より高いレベルの診断を実行するするためのものです。ただし、alt_level で指定されたレベルにかかわらず、-a を呼び出さないときよりも低いレベルで hpost が実行されることはありません。
Sun Enterprise 10000 のすべてのアービトレーション ASIC が、アービトレーションアルゴリズムの公平度を改善するための許可をいくつか実行した後で、クライアント要求の優先順位を逆転します。ASIC を設定する際に許可の数をプログラムすることができます。通常はデフォルト値が使用されます。サンの技術者は、このコマンドを使用して許可の数の試験を行います。
ASIC の種類のテスト、設定、ダンプを実行しないコマンドです。サンの技術者は、このコマンドを使用して、特定の ASIC の種類が欠如している開発システムで POST コードをテストします。このような場合に、このコマンドを利用しないと、POST は直ちに失敗します。host -?postrc を入力すると、asic_type キーワードのリストが表示されます。
LDARB ASIC の CID に対し、設定方法を調べるためのチェックをせずに、rev 1 ではないとみなします。このコマンドは、特別なモードの POST (scantool_simulate を参照) をサポートします。この特別なモードは、ASIC 入力が不可能な Verilog ASIC シミュレーションへの入力として、JTAG 設定を提供するときに使用されます。
コマンド行での同等機能 : -X
デフォルト ($SSPVAR/etc/platform_name/blacklist.file) の代わりに、指定された blacklist(4) ファイルを使用します。file に blacklist(4) ファイルへのパスを指定するか、none を指定します。none を指定した場合は、POST は blacklist ファイルを読み込みません。
プロダクションシステムで blacklist_file を使用する場合には注意が必要です。POST が標準外の blacklist(4) ファイルを使用していることは、他の SSP ソフトウェアにはわかりません。
ボード上で障害が検出されたときに、そのボードのすべてのリソースを即座にレッドリストに入れます。このコマンドの目的は、ボードの設定が続行されるのを防ぎ、障害の事後分析を可能にすることです。sytem_red_any_fail および redlist(4) も参照してください。
PC ASIC の機能によって、GAB へのアドレスの割り当てをデフォルトから変更することができます。デフォルトの割り当ては PA[8:6] に基づきます。割り当ての詳細は GAB の数と種類に依存します。このコマンドのデフォルトはシャフルモード 0 です。シャフルモード 1 は PA[8:6] XOR PA[18:16]に、シャフルモード 2 は PA[8:6] XOR PA[20:18]に基づいています。サンの技術者は、このコマンドを使用して、シャフル機能のさまざまな効果を試すことができます。
コマンド行での同等機能 : -C
POST を (後続のドメインではなく) 最初のドメインで開始します。Sun Enterprise 10000 システムでは、複数の独立したドメインを実行することができます。ただし、それらのドメインが isolated_sysboard モードにない限り、それらのドメインはすべてセンタープレーン ASIC を共有します。センタープレーン ASIC は単一の機能バス設定に含まれます。デフォルトでは、POST は、現在立ち上げ中の最初のドメインで実行されていないことを想定します。したがって、POST はセンタープレーンを調べてバス設定を判別し、その設定だけを使用します。POST はセンタープレーン ASIC の機能設定も行いません。
通常、POST を最初のドメインで開始するには、コマンド行オプションの -C を使用します。最初のドメインで実行される場合は、POST はバス設定を確立し、加えてセンタープレーン ASIC の初期設定を行う必要があります。
このコマンド (およびこれと同等の -C コマンド行オプション) は、POST を最初のドメインで開始します。最初のドメインでは、バス設定を確立し、加えてセンタープレーン ASIC の初期設定を行う必要があります。
cplane_initial_config は、コマンド行オプションの -C に相当します。cplane_initial_config を使用するのは、初期化されていないシステムで POST を頻繁に実行する必要があるサンの技術者や保守サービス担当者です。
複数のドメインを実行している (あるいは実行する可能性があ る) プロダクションシステムでは、このコマンドを使用しないでください。2 番目に立ち上げられたドメインで実行される POST が、最初に立ち上げられたドメインで実行されているプログラムに障害を発生させるおそれがあります。
mask はデバッグマスクとして使用します。このコマンドは、試験的コードや POST の正体不明の動作モードを制御するためのビットマスクであり、主に POST 開発者が使用します。mask を内部マスクに OR 処理し、ビットごとに 1 行を設定することもできます。これを行うことによって、 .postrc ファイルのリストをコメント化して、ビットを追加または削除できるようになります。これらのビットは時間とともに変化するため、現在のビットを知るには、hpost --?postrc を実行する必要があります。
プロセッサテストの初期段階で行われる外部キャッシュ (ecache) の検査を省略する場合に、すべてのプロセッサについて、指定した外部キャッシュ (ecache) サイズが想定されます。 検査を省略し、ここに指定した値が不正である場合、システムはキャッシュの整合性を維持できなくなります。 default の デフォルト ("default default") は、0.5MB - "H" です。
指定した DIMM グループのサイズをデフォルトとして使用します。DIMM 検査フェーズに先立つ FOM(Figure of Merit) 計算には、このデフォルトのサイズが使用されます。また、skip_phase コマンドで DIMM 検査フェーズを省略する場合には、ここで指定した値が、良好な DIMM グループのサイズとみなされます。default のデフォルト ("default default") は 64MB です。
このコマンドを on に設定すると、POST は FOM(Figures of Merit) を計算して設定を選択する際に、45 のバス設定のすべてについて計算済みの FOM を出力します。off に設定した場合は、この出力は行われません。このコマンドが指定されていない場合に POST が FOM を出力するのは、冗長 (verbose) レベルが一定の値以上に設定されているときです。
センタープレーンの設定時に GDARB ASIC が Domain Transgression Errors (ドメイン違反エラー) を報告できるようにします。これは、-C オプションを指定して hpost を起動した場合に実行されます (cplane_initial_config を参照)。違反エラーは、システムボードのデータ決定者が GDARB の SMD マスク構成レジスタの定義とは異なるドメインクラスタのボードにデータを送信するよう要求したときに発生します。
デフォルトでは、これらのエラーの報告は無効になっています。これは、ボードの障害によってパリティーエラーと違反エラーの両方が発生したときに GDARB がアービトレーション停止を広範囲にわたって行う可能性を最小限に抑えるためです。GDARB は違反要求を禁止しますが、エラーとしては報告しません。追加されたエラー検出方法が追加されたドメイン障害の検出方法よりも望ましい場合には、dom_transgress_err_enbl コマンドを使用してエラーの報告機能を有効にすることができます。
システムボードのセットをドメインとして宣言します。ドメインは、Sun Enterprise 10000 システム内のシステムボードのセットであり、共有メモリー(shared_mem コマンドを参照) を除き、各セットは相互に独立しています。
この .postrc コマンドはプロダクションシステムでのドメインを管理するものではなく、ドメインレジスタを設定するための POST への静的命令であり、サンの技術者がドメインハードウェアのデバッグのために使用します。この domain コマンドが有効になるのは、カレントディレクトリの .postrc ファイルを使用した場合だけです。ローカルディレクトリ以外の .postrc を使用した場合は、POST はこのコマンドを無視し、警告メッセージを表示します。
このコマンドを on に設定すると、プロセッサ BBSRAM への JTAG POST コードのダウンロードが実際に行われたかどうかを検査します。off に設定すると、この検査は行われません。このコマンドを使用しない場合に検査が行われるのは、レベルが一定の値以上に設定されているときです。検査を実行するために、download_bbsram_verify は BBSRAM からコードをアップロードし、コードファイルデータと比較します。JTAG ブロードキャストで行われるダウンロードとは異なり、アップロードと比較は各プロセッサについて順次行う必要があります。
dirpath 内にある POST 用のダウンロードファイルを使用します。デフォルトは $SSPOPT/release/Ultra-Enterprise-10000/*/*/*/hostobjs です (/*/*/*/ はリリースレベルの依存状態を示します)。
通常、POST はボード上の各 CIC について、各プロセッサに対して自らの DTAG RAM をテストするように割り当てます。これによって、テスト済みのリソースだけを使用できることになります。欠如しているプロセッサまたは障害が発生しているプロセッサの DTAG RAM は他の用途には使用できません。ただし、ある種の状況では (たとえば製造テストでは)、将来のプロセッサ増加を見込んですべての DTAG RAM をテストします。このコマンドは、DTAG RAM テストのフェーズで、各プロセッサに対し、自身の RAM だけでなく、CIC 上のすべての RAM をテストするように指示します。同様の理由から、現在装着済みプロセッサモジュールの外部キャッシュ (ecache) のサイズをサポートする DTAG SRAM だけではなく、物理的に装着されているすべての DTAG SRAM のテストを実行します。
コマンド行オプションの -D を使用してダンプファイルを作成する場合や、POST 実行時のエラーによってダンプファイルが自動的に作成される場合は、ダンプ内にシリアル番号 EEPROM の内容を含まないようにします。このコマンドを使用することによって、一定の環境の下でのダンプ作成を大幅に高速化することができます。このコマンドは将来的には削除される可能性があります。
POST の終了直前に、POST にシステム状態のダンプファイルを作成させます。boardmask はダンプされるボードを制御します。ビット [15:0] は、システムボード、[17:16] はセンタープレーンハーフを制御します。ボードがダンプされるのは、対応ビットが 1 の場合です。デフォルトは x3FFFF (すべてをダンプ) です。値は通常、16 進数で指定されます。path はダンプファイルのデフォルトのパスを変更します。path を指定できるのは、boardmask が指定されている場合だけです。どちらのオプションもコマンド行オプションの -D と同様です。
プログラムのデフォルトディレクトリ ($SSPVAR/adm/$SUNW_HOSTNAME) にではなく、指定したデフォルトディレクトリにダンプファイルを作成します。コマンド行オプションの (-D) または dump_on_exit コマンドで指定したパスは、dump_pathname で指定したパスよりも優先されます。
FOM 計算で、アドレスバスの数の重みを指定します。 float-in_range の有効値は 1.0 〜 5.0 であり、デフォルトは 1.0 です。
FOM 計算で、データバス (72 ビットデータパ ス ) の数の重みを指定します。 float-in_range の有効値は 1.0 〜 5.0 (境界値含む) であり、デフォルト は 1.0 です。
FOM 計算で、メモリーの重みを指定します。float-in_range の有効値は 1.0 〜 5.0 (境界値含む) であり、デフォルトは 1.0 です。
FOM 計算で、プロセッサの重みを指定します。float-in_range の有効値は 1.0 〜 5.0 (境界値含む) であり、デフォルトは 1.0 です。
FOM 計算で、SBus カードの重みを指定します。float-in_range の有効値は 1.0 〜 5.0 (境界値含む) であり、デフォルトは 1.0 です。
Sun Enterprise 10000 システムボードにリビジョン 2 CIC ASIC が装着されている場合、通常、POST は CIC を Dtag ECC(Error Checking and Correction) モードに設定します。Dtag ECC モードのサポートには、オンボードのプロセッサに最小限の外部キャッシュ (Ecache) が必要です。ECC は、ドメインの操作に影響を与えないで CIC ハードウェアによって訂正される Dtag SRAM 読み取り内のシングルビットエラーを許可します。しかし、パリティモードにおけるシングルビットエラーでは、致命的なアービトレーション停止エラーが発生します。この属性を使用すると、ECC モードが利用可能な場合でも、POST は常に CIC を Dtag パリティモードに設定するようになります。
センタープレーンに接続される Sun Enterprise 10000 システム ASIC には、センタープレーンドライバ用に、ループバック制御と、別個に制御される割り込み許可の両方が備わっています。通常、POST は ASIC の設定を通じて、チップがループバックにあるときはドライバが無効になり、ループバックにないときはドライバが有効になるようにします。ボード信号を調べるためには、ループバックのときでも、アドレスバスとデータバスに接続されたセンタープレーンコネクタを駆動することが必要になります。このコマンドを使用することによって、ASIC がボードループバックに設定されている場合でも、ASIC のセンタープレーンドライバはすべて有効になります。pc_loopback_lbus_enbl も参照してください。
プロダクションマシンには組み込まれない、初期の GAARB リビジョンでは、シーケンスエラーを引き起こす設計上のバグが存在します。1つのドメインで何か別の理由でアービトレーション停止が発生すると、GAMUX ASIC がこのシーケンスエラーを検出します。この種のシーケンスエラーはグローバルエラーとみなされるため、このバグは他のすべてのドメインでアービトレーション停止を引き起こします。
デフォルトでは、rev 1 または rev 2 の GAARB ではこのシーケンスエラーの検出が無効になり、これら以外の GAARB では有効になっています。 gamux_seq_err_enbl コマンドはこれを明示的に設定します。GAARB のリビジョン番号に関係なく、0 を指定するとエラー検出は無効になり、1 を指定すると有効になります。
対話モード (コマンド行オプションの -i) では、.postrc ファイルの skip_phase コマンドや skip_test コマンドは無視され、ユーザーは各フェーズの実行または省略を選択することができます。ただし、場合によってはこうしたデフォルトの設定が不便な場合もあります。何十ものフェーズやテストを対話式に逐一省略するのは面倒です。このコマンドによって、POST はユーザーに問い合わせることなく skip_phase コマンドまたは skip_test コマンドを使用するようになります。no_skip_phase_covers_npb コマンドも参照してください。no_skip_phase_covers_npb コマンドで記述されている skip は、このコマンドに関しては .postrc ファイルに入っているものとみなされます。
指定したシステムインターコネクト周波数 (MHz) を使用します。SNMP サーバーを通じてこの周波数を測定・報告する制御ボードがないテスト環境では、この値を使用して、システム設定のパラメタ (特にメモリーのタイミング) を計算します。
SNMP 周波数の測定値を使用する制御ボードが装着されているシステムでは、この値を指定すると、測定値がこの値の 0.5% の範囲内であることを POST が要求するようになります。この値を指定しない場合は、測定値は SNMP サーバーから読み取られるターゲットのインターコネクト周波数の -3.0 〜 +0.5% の範囲内である必要があります。
proc_freq_ratio も参照してください。
リビジョン 5 の PC ASIC には、システムボードの入出力位置、PC 番号 2 で ASIC を使用したときに発生するバグがあります。アプリケーションによっては、ソフトウェア回避策がインストールされているかどうかに関係なく、このバグは問題にはならないものがあります。通常、POST はこの種の ASIC を拒否します。ただし、この種の ASIC の存在がこのコマンドで明示的に指示されている場合は、受け付けます。
JTAG ボードとリングのロックおよびロック解除に関して、POST は冗長 (verbose) デバッグメッセージを出力します。
POST はセンタープレーン ASIC の欠如または損傷を無視します。通常は、こうした欠如や損傷によってプログラムは即座に失敗し、POST はボードをループバックから取り出せなくなります。このコマンドは、センタープレーンが用意されていない開発環境で使用します。
SSP コアサービスから JTAG リソースのロックを取得するためのデフォルトタイムアウト値を変更します。
コマンド行での同等機能 : -l
指定されたレベルによって、実行するテストの程度を特定します。レベルを高くするとテストは詳細になります。有効値は 7 〜 127 です。hpost -?level を入力すると、簡単な説明が表示されます。
このコマンドはエンドユーザーを制御するのに適しています。ただし、レベルを通常よりも低く設定することは避けてください。レベルを通常よりも低くすると、「未検出のハードウェアの問題をあまり多く抱えていないシステムだけを起動する」という本来の目的にそぐわないことになります。「起動時間が長くなっても、詳細な診断を実行したい」という場合には、 デフォルト (hpost(1M) の -l オプションを参照) よりも高いレベルに設定します。
コマンド行での同等機能 : -g
画面のログファイルを作成します。デフォルトのファイル名は postmmdd.hhmm.log であり、デフォルトのディレクトリは $SSPVAR/adm/$SUNW_HOSTNAME/post です。デフォルトのパスを使用した場合に、$SSPVAR/adm/$SUNW_HOSTNAME は存在しているが、 デフォルトのディレクトリが存在していない場合は、POST が post のサブディレクトリを作成して、ログを格納します。
path で指定されたファイルを開いて追加書き込みができる場合は、POST はログをそのファイルに格納します。path が指定されていない場合で、ディレクトリとして使用されている path のデフォルトのファイルを開くことができる場合は、POST はそこにログを格納します。path が指定されておらず、しかもデフォルトのファイルを開くことができない場合は、POST はログファイルをカレントディレクトリに (デフォルトの名前を付けて) 作成しようとします。
ログファイルは追加書き込みができるように常に開いており、開閉時にはタイムスタンプが付きます。したがって、呼び出し側のスクリプトやプログラムは、POST の一連の実行によって作成されるログを受け取るときに、単一のファイルを指定することができ、名前の重複による情報の喪失を防ぐことができます。
このコマンドは SSP のディスクスペースを消費する以外には特に害がないため、レベル 1 となっています。ただし、プロダクション環境では通常、POST の出力は (-s を使用した bringup(1M) スクリプトによって) syslog に格納されます。プロダクション環境でこの種の情報を格納するには、syslog のほうが適切です。
POST はライブラリが作成した liblogger メッセージをすべて取得し、POST の表示とログに組み込みます。POST はさらに、デフォルトのロガーレベルを WARNING に変更します。このため、POST の表示内容は外部から制御されなくなります。このコマンドを使用すると、POST は環境から引き継いだデフォルトのロガーレベルを変更せず、通常のロガーによる制御を可能にします。または、ロガーレベルを任意の値に指定できるようになります。
使用する .postrc ファイルがローカルディレクトリにない場合は、POST はこのコマンドを無視し、警告メッセージを表示します。
名前が付いている 2 つの物理システムボードの論理メモリー番号を交換します。物理メモリーのアドレスは、8GB × logical board number (8GB × 論理ボード番号) を開始点として POST によって割り当てられます。デフォルトでは、論理メモリーボードから物理システムボードへの割り当ては 1-1 です。時間の経過に従ってスワップが発生するかもしれません。たとえば、動的再構成ボード取り外し操作の結果、あるいは POST によるソート (no_memboard_sort コマンドを参照) の結果としてスワップが発生します。プロダクションシステムの SSP では、この物理システムボードと論理メモリーボードの割り当ては SNMP MIB に格納され、POST の実行ごとに読み込まれます。サンの技術者はこのコマンドを使用して、SNMP が実行されていない試験環境でデフォルト以外の割り当てを試すことができます。
これらのコマンドに数の制限はありません。スワップは要求された順に発生します。2 つの引数には必ず異なるシステムボード番号を指定します。
このコマンドが有効になるのは、カレントディレクトリ内 の .postrc ファイルで使用された場合だけです。使用する .postrc ファイルがローカルディレクトリにない場合は、POST はこのコマンドを無視し、警告メッセージを表示します。
このコマンドによって発生したスワップは、SNMP から取得したマップ情報によって無効にされ、無視されます。ただし、no_snmp_memmap または no_snmp_access コマンドによってマップ情報へのアクセスが禁止されている場合には、こうした変更は行われません。SNMP から取得したマップを使ってこの種のスワップを実行することはできません。両者は相互に排他的です。
このフィールド (定数レジスタビット [17:12]) の通常の MC ASIC 設定を無効にします。
すべてのタイムアウトを 2**10 システムクロックによってプレスケールさせる通常の MC ASIC 設定を無効にします。このフィールドはタイムアウト選択レジスタビット 23 です。
このフィールド (タイムアウト選択レジスタビット [9:5]) の通常の MC ASIC 設定を無効にします。
指定したメモリータイミング制御レジスタ [3:0] の通常の MC ASIC 設定を無効にします。レジスタ 0 はリフレッシュタイミング、レジスタ 1 と 2 はメモリータイミング 1 と 2、レジスタ 3 は DIMM ワイヤタイミングです。
このフィールド (タイムアウト選択レジスタビット [4:0]) の通常の MC ASIC 設定を無効にします。
このフィールド (タイムアウト選択レジスタビット [14:10]) の通常の MC ASIC 設定を無効にします。
POST がメモリーを設定するときに、同じメモリーサイズの 2 つのボードを、共通のアドレス範囲の中で 256 バイトブロック単位でインタリーブできるようにします。この結果、インタリーブしない場合に比べて、個別のボードの共通のアドレス範囲は 2 倍になります。
インタリーブによって、大きなブロックとなる連続データへのメモリーアクセスが 2 つのメモリーコントローラに分散され、性能が向上します。ただし、2 つのボードをインタリーブすると、動的再構成 (DR) が制限されることがあります。特に、インタリーブされたボードの DR 切り離しが困難になります。
デフォルトでは、POST はボードをインタリーブしません。このコマンドを使用することで、同じメモリーサイズの 2 つのボードをインタリーブすることが可能になります。
このドメイン内のシステムボードにメモリーの物理アドレスを割り当てる順番を指定します。low_to_high を指定すると、小さい番号のシステムボードに低いアドレス、大きい番号のシステムボードに高いアドレスが割り当てられます。high_to_low を指定すると、その逆の順序でシステムボードにアドレスが割り当てられます。
memboard_sort_order コマンドを使用しない場合には、当該ドメインの SSP の SNMP MIB に指定された Solaris オペレーティング環境のバージョンを調べることによってアドレスの順序が決定されます。Solaris 7 よりも前のバージョンの場合には、low_to_high オプションが使用され、Solaris 7 オペレーティング環境で初めて high_to_low が使用されます。no_snmp_access コマンドにより、SNMP MIB へのアクセスが抑制されている場合は、デフォルト値は low_to_high になります。
この順番付けの目的は、一番小さい番号のボードにカーネルメモリーを配置することにより、オペレーティングシステムのバージョンに関係なく、複雑なシステムを動的再構成 (DR) 用に最適化することです。
no_memboard_sort および no_memboard_fullsort コマンドも参照してください。
このコマンドは、ドメイン内の最小番号の物理ボードに必要な最小メモリー容量を定義します。これは、該当ボードの物理アドレスが、ドメイン内の最大メモリーを持つボードの物理アドレスとスワップされることを避けるためです。ソートの説明およびソートを無効にする方法については、no_memboard_sort コマンドの項を参照してください。
スワップの目的は、動的再構成の「ケージ化されたカーネル」をこの単一ボードに読み込むのに必要なメモリーを、ドメイン内の最初の連続物理アドレス部分に確保することにあります。これによって、任意のボードを DR 切り離しできる可能性が増加します。ただし、最初のボードに必要最小メモリーが備わっている場合は、より大きなメモリーを持つボードが他にあったとしてもスワップを要求しないようにすることができ、こうした不必要なスワップを避けることができます。
この非スワップしきい値のデフォルト最小値は 512MB です。このコマンドを使用することによって、現場での「ケージ化されたカーネル」の特性の変化に応じて、しきい値を大きくすることができます。最大値は 4096MB(4GB) であり、これは最大容量の DIMM を使用して 1 枚のボードに搭載できるメモリーの総量です。
OBP に渡されるメモリーチャンクのリストで宣言され、設定の最終フェーズでクリアされるメモリーのサイズを制限します。この値より大きい連続したチャンク (通常は 1 つのボードまたはインタリーブされた 2 つのボードの物理メモリー) は、宣言されたサイズにまで切りつめられます。このコマンドはメモリーコントローラの設定には影響せず、OBP に対して宣言されクリアされるメモリーのサイズを決めるだけです。設定済みで初期化されていないメモリーの一部を処理するデバッグ環境では、時間を節約するために、このコマンドを使用します。このコマンドはエミュレーション環境で使用するのに適しています。
POST によってテストされる各 DIMM グループのメモリーのサイズを制限します。引数を 1 つだけ指定した場合は、その引数が制限値 (limit) として使用され、基本値 (base) は 0 となります。
どちらの値も (PA 0 でインタリーブなしに設定されたかのよう に) 各グループ内のバイトオフセットを表します。一般に、「インタリーブなしの設定」という想定は、完全に設定されたマシンの、所定のグループに割り当てられた物理アドレスには対応しておらず、メモリーテストの際に使用される物理アドレスにも対応していません。特にメモリーテストでは、バンクが 4 つともインタリーブされたものと想定されます (4 つのバンクの一部にメモリーが装着されていない場合も同様です)。各プロセッサは、テストしているバイト数の 4 倍のアドレス範囲をテストします。ただし、テストされるのは、256 バイト中の 64 バイト (これらはすべて同じ DIMM グループにあります) だけです。
ここで指定する制限値は、テストされる各グループに適用されます。メモリーは 64 バイトのブロックでテストされるため、どちらの引数も 64 の倍数にする必要があります。どちらの引数の場合も、最大値は 0x40000000 (1GB) であり、サポートされている最大の DIMM グループのサイズに相当します。limit は base よりも大きくする必要があります。base が物理グループのサイズよりも大きい場合は、そのグループはテストされません。
JTAG の完全性テストの際に、POST はすべての ASIC ( および CID を持つその他のチップ) のコンポーネント ID を読み込みます。POST はこれらの ID を有効な CID テーブルと照合して、チップを検査します。通常、CID がテーブルに一致しない場合には、POST は該当チップを拒否します。ただし、不一致がリビジョン番号 (8 桁の CID の最上位 16 進数) だけであり、しかも実際のリビジョン番号の方がテーブル内のリビジョン番号より高い場合、POST は該当チップを受け入れ、up-level チップに関する警告メッセージを表示します。
このプロセスによって、POST パッチの配布を実行することなく、ハードウェアのアップグレードに対する対応能力が高まります。また、「POST がすべてのハードウェアのすべての機能と条件を認識していない可能性があるため、ハードウェアの問題が発生した場合には、チップのバージョンとの関連がまず疑われる」という意味のメッセージが表示されます。
up-level メッセージは警告にすぎませんが、ユーザーが不安を感じる可能性があります。new_cid_rev コマンドの目的は、CID テーブルに項目を追加して、up-level 警告メッセージを出さないようにすることです。.postrc ファイルにはこのコマンドの複数のインスタンスが含まれていることがあります。POST がチェックする値のリストは、up-level 警告メッセージが出されるときにのみ作成されます。したがって、new_cid_rev コマンドを使用して新しいベース CID を宣言することはできず、down-level CID リビジョンが受け入れ可能であることを宣言することもできません。このコマンドが有効になるためには、追加する CID のベース部分が、いずれかのチップに対するテーブル内の、少なくとも1つのベース CID と一致している必要があります。したがって、new_cid_rev コマンドで、テーブルに追加するチップのタイプを指定する必要はありません。
サービスプロバイダがこの機能を利用して up-level 警告メッセージを抑止するのは、サンの技術者から「該当 up-level チップは POST にコンパイルされている古いリビジョンと実際に同等である」という通知を受け取った場合に限られます。
通常、component_id は 8 桁 (32 ビット) の 16 進数で指定します。component_id は、有効な CID としての条件 (最下位桁が 1 であ る) を満たしているかどうかを確認するためにチェックされるだけです。
システム設定の際に JTAG によって書き込まれた ASIC CSR の通常の読み取りと比較を省略します。開発環境でシステムのシミュレーションを行っているときに有用なコマンドです。
通常、POST は、主要なフェーズを終えるときに、PC 内のブートバスのエラー状態レジスタをチェックし、ブートバスパリティーまたはブートバスアクセスのエラーが発生していないかどうかを調べます。この種のエラーが発生すると、PC は失敗します。このコマンドは、このレジスタのチェックを実行しないようにします。
通常、POST は BBSRAM をすべて書き込み、初期化されていないアドレスにコードがアクセスしたときのパリティーエラーを防止します。特別なブートバス SRAM テストファイルとの干渉を避けるために、これはシグニチャーブロックの必要性を宣言されたファイルの最初のコードダウンロードで行われます。ダウンロードの時間を節約するために、POST はコードやデータが読み込まれていない BBSRAM セグメントにだけ、1 回限り書き込みます。
このコマンドはこの書き込みを抑止します。したがって、コードが明示的に読み込まれていない BBSRAM 領域は、空白のまま残されます。
JTAG の完全性テストの際に、POST はチップのコンポーネント ID がすべて標準の 32 ビット長であるかどうかをチェックします。この単純かつ有用なテストは、チップの JTAG 走査接続の信頼性を保証します。このコマンドを使用することによって、POST はチェーン長のテストを省略します。JTAG 完全性テストフェーズの検査は引き続き実行されます。
Dtag ECC モードに設定されているリビジョン 2 CIC ASIC は、Dtag SRAM アクセス時に検出されたシングルビットエラーを訂正します。通常、訂正されたデータは SRAM にも書き戻されます。「スクラッビング (scrubbing)」と呼ばれるこの機能は、Dtag SRAM の訂正可能なエラー (CE) を解決し、その後に続く Dtag SRAM アクセスの間に循環する CE を除去します。この属性を使用すると、POST は、CIC ASIC 設定時にスクラッビング機能を無効にするようになります。
テストの際にアービトレーション停止またはレコード停止が検出されると、POST は「興味深い」システム状態のダンプファイルを作成します。このコマンドは POST のこの通常の動作を抑止します。
このコマンドを使用しない場合は、POST はシステム状態をダンプし、「興味深い」状態でないボードを省略するように編集してから、ダンプを解析します。「興味深い」状態のボードが見つからない場合は、ダンプファイルを作成せずに、テストを続行します。たとえば、メモリーを原因とするデータ ecc エラーのレコード停止では、ダンプファイルが作成されずに、テストが実行されます。dump_pathname も参照してください。
no_dumpfile_on_stop が .postrc に存在せず、no_stop_analyze が .postrc に存在する場合は、POST はダンプファイルを作成するだけで、テストを続行します。ダンプファイルの編集や解析は行われません。
通常、POST は PC ASIC 内のレッドリストに入っていないプロセッサのマスターキューをすべてフラッシュしてから、最終設定の最後で 各プロセッサをリセットします。この結果、POST のスピン待ちループからのステールフェッチを実行しなくても、OBP コードを BBSRAM に容易にダウンロードできるようになります。no_final_flush_reset を使用すると、プロセッサはスピン待ちを BBSRAM 内の POST の最終設定コードに残します。これは最終設定のプロセッサ状態を事後解析する上で役に立ちます。
通常、Sun Enterprise 10000 の制御ボードの JTAG 通信機能を使用する SSP ソフトウェアは、通信先の JTAG リングをロックして、複数の SSP アプリケーション (POST、obp_helper(1M) など) が相互に干渉することを防止します。このロックは、SSP ライブラリに用意されているセマフォベースのサービスを通じて行われます。
このコマンドを使用した場合は、POST はこうした ロックサービスの使用を省略します。ある種の設計開発環境では便利な機能です。
Sun Enterprise 10000 の同一ホストドメイン上で複数の POST プロセスを実行できるようにします。通常、POST はロックファイル $SSPVAR/adm/$SUNW_HOSTNAME/hpost.lock を作成して、POST の複数のインスタンスを防止します。複数のプロセスを実行すると、相互に干渉して、どちらの POST プロセスも失敗するおそれがあるためです。
通常の SSP 環境では、POST はデーモンモードで実行されます。POST の実行は常に明白であるとは限らず、開発環境では POST プロセスがユーザーが開始した POST プロセスと衝突するといったことがよくあります。
ただし、場合によっては、無効なロックファイルによって POST の実行が拒否されるよりは、2 つの POST プロセスを実行した方が安全とみなされることもあります。この場合、ロックファイルの作成に失敗したら、POST はそのロックファイルが他方の POST プロセスによって作成されたものであることを確認しようと試みます。この確認に失敗した場合、POST は下記の説明のとおり、-f モードに入り、残存しているロックファイルを削除します。このプロセスによって、異常終了した POST プロセスが残したロックファイルから自動的に回復することが可能になります。
no_lockfile コマンドはロックファイルの機能 (ファイル作成とファイル削除の両方の機能) を完全に無効にします。
このコマンドはコマンド行オプション -f とは大きく異なります。 -f を指定した場合、POST はロックファイル作成を試みるのではなく、作成に失敗してもプロセスを継続するだけです。また、作成に失敗した場合も、終了時にはロックファイルを削除しようとします。-f の目的は、アクティブな POST プロセスに間違って付加された無効なロックファイルから回復することにあります。
メモリーコントローラ (MC) ASIC にはいくつかの機能が備わっていますが、中でも重要なのはメモリーのリフレッシュです。この機能は、通常のシステムリセットの影響は受けません。これらの機能をクリアするのはハードリセットだけです。ハードリセットは、電源投入時のリセットの際に、JTAG TAP リセットピンによって行われるか、あるいは JTAG 設定レジスタ内の特別なハードリセット制御ビットによって行われます。LBIST が実行されているときには特に、MC をハードリセットを必要とする状態にしておくことで、MC を使用可能にすることができます。
通常 POST は、リセットの初期段階で、すべての MC ASIC に対してハードリセットを実行しますが、このコマンドを使用することによって、ハードリセットが省略されます。これはある種のテスト環境では便利な機能です。POST が特別な再設定モード -Z で実行されているときにも、ハードリセットは省略されます。
物理システムボードのメモリーの物理アドレスの完全なソートを抑止します。この no_memboard_fullsort コマンドが呼び出されると、システムボードへの物理アドレスの割り当てに SSP SNMP ConfMemMap MIB 要素が修正されずに採用されます。ただし、no_memboard_sort コマンドの項で説明されているスワップは例外です。
この no_memboard_fullsort コマンドが呼び出されない場合は、このドメイン内のアドレスが memboard_sort_order コマンドの項で説明した順序で完全にソートされます。次にこのソート順は、no_memboard_sort コマンドの項で説明する、生じ得るスワップに従います。
デフォルトでは、複数のボードで実行されている POST は、各ボードのメモリーサイズに基づいてボードを部分的にソートします。このソートの目的は、ドメイン内のカーネルメモリーの物理メモリーアドレスが、最大のメモリーサイズを持つボードに割り当てられるように、ドメインを設定することにあります (最小ボードのメモリーサイズがしきい値を上回る場合はこの限りではありません)。これによって、memboard_swap_threshold_mbytes コマンドの項で説明したように、動的再構成のいくつかの機能が最適化されます。
このソートを実行するには、ドメイン内でカーネルメモリーを持つ論理ボードとこれより多くのメモリーを持つドメイン内の別のボードの間で、単一の物理・論理マッピングスワップが必要になります。マッピングの詳細は、logical_memboard_swap コマンドを参照してください。物理・論理マッピングは SSP の SNMP エージェントによって保持されているため、スワップが必要になった場合には、POST が SNMP への書き込み操作を行い、スワップを知らせます。
no_memboard_sort コマンドは、ソートと SNMP への書き込みアクセスの両方を抑止します。no_snmp_memmap または no_snmp_access が起動されているときは、暗黙的に抑止されます。no_memboard_fullsort も参照してください。
オペレーティングシステムはメモリーがないと起動できないため、メモリーのサイズは、設定の評価に使用する性能指数 (FOM) の一要素となっています。メモリーがないときは 0 FOM になります。ただし、ボードの立ち上げの際には、メモリーが装着されていない場合でも POST によるテストを続行する場合があります。このコマンドは、POST に対して、実際にはメモリーが存在しない場合でも、1 単位 (現時点では 64MB) のメモリーが存在するものとして FOM を計算するように指示します。
プロセッサモジュールと入出力機構の他の機能については、実際のメモリーのテストが必要です。メモリーなしでは他の要素がテストされないので、メモリーなしでボードテストを実行することを標準としないでください。ただし、状況によってはこのコマンドが役に立つこともあります。
プロセッサなしのシステムボードを不可にします。デフォルトでは、プロセッサの障害によって、オンボードのメモリーや入出力機構が使用不可になることを防ぐために、プロセッサなしのボード (NPB: Non-Processor Board) は許容されています。通常は、こうした設定で特に問題はありません。
しかし、場合によっては、NPB が望ましくないことがあります。このコマンドを使用することによって、プロセッサなしのボードは、入出力機構やメモリーを装備していても、設定から削除されることになります。
最終設定のフェーズで、ブートプロセッサのブートバス SRAM に post2obp 構造を作成しません。このコマンドを使用することによって、POST は、ブートプロセッサ番号 (0 〜 63) の代わりに POST_EXIT_NOCONFIG で終了します。
アービトレーション停止とレコード停止に対する POST の通常のポーリングを抑止します。POST は JTAG を介してローカルアドレスアービター(LAARB: Local Address Arbiter) を読み取り、ポーリングを実行します。このコマンドを使用することによって、別の方法で (ほとんどの場合、タイムアウトによって) ストップが検出されます。エラーの実際の原因の代わりにプロセッサが失敗し、回復の機能は限定されます。
ホストプロセッサの RPC サービスのタイムアウトをすべて無効にします。サンの技術者による POST のデバッグで、ホストプロセッサの常駐コードにブレークポイントを設定して実行しているときには、このコマンドが役に立ちます。poll_timeout_mult と比較してください。
オペレーティングシステムはプロセッサがないと起動できないため、プロセッサの数は、設定の評価に使用する性能指数 (FOM) の一要素となっています。プロセッサなしのときは 0 FOM になります。ただし、ボードの立ち上げの際には、プロセッサが装着されていない場合でも、POST によるテストを続行する場合があります。このコマンドは、POST に対して、実際にはプロセッサが存在しない場合でも、1 個のプロセッサが存在するものとして FOM を計算するように指示します。プロセッサがない場合、POST が実行する機能はごく限られます。しかし、JTAG ASIC 設定の実行は可能なため、特定の立ち上げ環境においては役立ちます。
欠落している scard の検査をしません。 一般に SBus または PCI バスいずれかの入出力アダプタカードを scard と呼びます。このコマンドが呼び出されると、特定の入出力モジュールに設計上定義されたすべての入出力カードスロットにカードが装着されたとみなされます。この情報は、POST が実行する性能指数 (FOM) 計算に影響を与え、OBP に報告されます。これにより POST によりカードの装着が宣言されたすべてのスロットの検査が可能になります。
SBus カードの場合にも、適切な検査で skip_test コマンドを使用することにより、検査を省略することが可能です。ただし、PCI 入出力モジュールの場合には検査が行われません。PCI 入出力モジュールの検査は SSP から JTAG によって実行されます。
オペレーティングシステムは入出力機構がないと起動できないため、SBus カードの数 (より一般的には、カードを装着した入出力スロットの数) は、設定の評価に使用する性能指数 (FOM) の一要素となっています。SBus カードなしのときは 0 FOM になります。ただし、ボードの立ち上げの際には、SBus カードが装着されていない場合でも、POST によるテストを続行する場合があります。このコマンドは、POST に対して、実際には SBus カードが存在しない場合でも、1 個 の SBus カードが存在するものとして FOM を計算するように指示します。
可能な場合には、POST は他のオンボードリソースを使用して、ボードのループバック内のシステムリソースをテストします。これによって、複数のテストを別々のシステムボードで同時に実行できるため、失敗の原因を特定する POST の能力が向上し、テストの実行が高速になります。
システムボードに空白がある場合、あるいはオンボード障害が発生した場合には、POST はオフボードリソースを使用する必要があります。たとえば、良好なプロセッサを装備していないボード (Non-Processor Board: NPB) はオフボードのプロセッサを使用してメモリーと入出力機構をテストします。良好なメモリーを装備していないボード (Non- Memory Board: NMB) はオフボードのメモリーを使用して、プロセッサと入出力機構をメモリーに対してテストします。単一のプロセッサを備えたボードは、他のボードのプロセッサに対してクロスコール割り込みテストを実行します。
skip_phase コマンドを使用し、オンボードメモリーテストなどの基本テストのフェーズを省略した場合は、技術者のほとんどはメモリーテストがすべて省略されたものとみなします。しかし、続いて NPB メモリーのテストが行われ、POST の後の段階でオンボードメモリーのテストが行われると、こうした想定は混乱の原因になります。したがって、POST のデフォルトの動作では、基本フェーズが省略されたときには、同じリソースをオフボードでテストするすべてのフェーズが自動的に省略されることになります。
これは一般的には望ましい動作ですが、困る場合もあります。センタープレーンのインターコネクトのストレステストなどの場合には、低速ではあっても、すべてのテストをループバックから実行する方法が適しています。あるいは、基本テストを省略しても、特定の問題の障害追跡のために NPB テストを実行するという場合もあります。これを可能にするために、no_skip_phase_covers_npb コマンドは「基本フェーズを省略したときにはオフボードフェーズをすべて省略する」というデフォルトの動作を無効にします。
このコマンドは NPB という省略形を使用していますが、実際には同様のすべてのオフボードテスト (たとえば、単一プロセッサのボード用の NMB テストや xcall テスト) に影響します。
また、省略はフェーズレベルでのみ適用されることにも注意してください。skip_test コマンドによって基本フェーズのテストがすべて省略されている場合は、そのフェーズが省略されたものとはみなされません。
通常、POST は SSP の SNMP エージェントにアクセスして、実行に必要な各種の情報を取得します。このコマンドはこのアクセスを抑止します。このコマンドは SNMP エージェ ントが実行されていないサンの試験環境をサポートすることを目的とし、カレントディレクトリの .postrc ファイルで使用されたときにのみ有効です。.postrc の検索パスの後続の項目 は platform_name を必要とし、platform_name は SNMP エージェントから取得する必要があります。使用する .postrc ファイルがローカルディレクトリにない場合、POST はこのコマンドを無視し、警告メッセージを表示します。
SNMP から取得する情報の多くは、 .postrc ファイルまたはプログラムのデフォルト値によっても提供されます。interconnect_MHz、 proc_freq_ratio、 domain、logical_memboard_swap、 platform_name、no_snmp_freq_read の各コマンドを参照してください。
デフォルトでは、POST の起動に成功すると、範囲 [0,63] のブートプロセッサ番号が返され、POST はホストとの対話を開始する前に実行していたドメインの SNMP のブートプロセッサ値を無効にします (例外 : -H モードの動的再構成では POST は SNMP 値を無効にしません)。SNMP 値を無効にすることによって、このドメイン内で他の SSP 監視プログラム (特にイベント検出デーモン (EDD)) がアービトレーション停止などのイベントをチェックすることがなくなります。他のプログラムによるチェックは hpost(1M) の実行に干渉するおそれがあります。
no_snmp_invalidate_bootproc コマンドはこの無効化を抑止します。no_snmp_access を使用することによって、no_snmp_invalidate_bootproc も使用されたことになります。
POST は SNMP エレメントを有効な値に設定するわけではありません。POST が行うのは、SNMP 値を無効にすることだけです。通常、有効なブートプロセッサ値の設定は bringup(1M) によって行われます。したがって、POST が bringup(1M) 以外によって実行されている場合、SNMP bootproc MIB は無効化されたままになります。
通常、POST は SSP の SNMP エージェントにアクセスして、物理メモリーボードと論理メモリーボードのマッピングを取得または変更します。このコマンドはこのアクセ スを抑止します。no_snmp_access が起動されている場合は、このコマンドも使用されたことになります。このマッピングの詳細は、logical_memboard_swap コマンドを参照してください。
このコマンドが有効になるのは、カレントディレクトリの .postrc ファイルで使用された場合だけです。使用する .postrc ファイルがローカルディレクトリにない場合は、POST はこのコマンドを無視し、警告メッセージを表示します。
通常、POST は SSP の SNMP エージェントにアクセスして、プラットフォームインターコネクトとプロセッサ周波数の値を取得します。このコマンドはこのアクセスを抑止します。no_snmp_access が起動されている場合は、このコマンドも使用されたことになります。no_snmp_freq_read または no_snmp_access が使用された場合は、POST はプラットフォームインターコネクトとプロセッサ周波数の値を .postrc コマンドの interconnect_MHz と proc_freq_retio または組み込まれているデフォルト値から取得します。
通常、テスト中にアービトレーション停止またはレコード停止を検出した場合は、POST は各種の ASIC の状態を読み取り解析し、障害と判別したコンポーネントを拒否します。このコマンドはこうした解析を抑止します。
PC ASIC は 2 ビットの設定パラメタであり、 アービトレーションカラー値 (アービトレーション公平アルゴリズムの属性) の変更に使用する周波数を制御します。通常はデフォルト値が使用されます。サンの技術者はこのコマンドを使用して、このパラメタの値を試します。このフィールドは設定レジスタのビット [19:18] です。
設定の際に、PC ASIC のエラーマスクレジスタの個々のビッ トを強制的に 0 にし、指定したエラーがアービトレーション停止を引き起こさないようにします。このコマンドには複数のインスタンスとバージョンがあります。マスクされるビットは累積されます。このコマンドに数値 (0 または 1) を付けると、プロセッサ PC だけに適用されます。io (io0 または io1) を付けると、入出力 PC だけに適用されます。0 または 1 はエラーマスクレジスタを指定します。bit_number は 0 〜 31 の整数です。
このフィールド (タイムアウト・保持設定レジスタビット [10:6]) の通常の PC ASIC 設定を変更します。
このフィールド (入出力 PC 用のタイムアウト・保持設定レジスタビット [10:6]) の通常の PC ASIC 設定を変更します。このコマンドは pc_grant_to コマンドを上書きします。
PC 設定のたびに PC ループバックモードを強制的に実行します。
プロセッサモジュールの初期テストの際に、POST は「PC ループバックモード」と呼ばれる PC ASIC の機能を使用します。このモードでは、PC はトランザクションを CIC を介して送信せずに、内部的にループします。こうすることによって、障害の原因が CIC または PC-CIC 信号にないことが明確になるため、原因の判別が容易になります。
ボードのループバックの場合と同様、PC には PC ループバック用の別個の制御と、CIC へのローカルバス用のドライバイネーブルが備わっています。通常、POST はこの設定を通じて、PC ループバックモードでドライバを使用不可にします。このコマンドは、これらのドライバを PC ループバックモードで有効にし、デバッグのときに検査できるようにします。 force_enbl_cp_driver コマンドと比較してください。
PC 用のこのフィールド (タイムアウト・保持設定レジスタビット [24:23]) の通常の PC ASIC 設定を変更します。入出力 PC では常に 0 です。
このフィールド (タイムアウト・保持設定レジスタビット [5:0]) の通常の PC ASIC 設定を変更します。ビット [5] (このフィールドの最上位ビット) は、PC 内のマスターの読み取りと割り込み、およびスレーブの応答のすべてのタイムアウトに対する、プレスケールの許可です。
入出力 PC 用のこのフィールド (タイムアウト・保持設定レジスタビット [5:0]) の通常の PC ASIC 設定を変更します。pc_master_read_to_io コマンドは pc_master_read_to コマンドを上書きします。
このフィールド (タイムアウト・保持設定レジスタビット [22:18]) の通常の PC ASIC 設定を変更します。
指定した 25 ビット値を使用して、このフィールド (タイムアウト・保持設定レジスタビット [31:27]) の通常の PC ASIC 設定を変更します。このタイマーは、マスターの読み取りタイムアウトに対してプレスケールの許可を使用します。pc_master_read_to を参照してください。
指定した 5 ビット値を使用して、このフィールド (入出力 PC 用のタイムアウト・保持設定レジスタビット [31:27]) の通常の PC ASIC 設定を変更します。このコマンドは pc_slave_response_to コマンドを上書きします。
このフィールド (タイムアウト・保持設定レジスタビット [16:12]) の通常の PC ASIC 設定を変更します。
このフィールド (入出力 PC 用のタイムアウト・保持設定レジスタビット [16:12]) の通常の PC ASIC 設定を変更します。 pc_slave_wr_to_io コマンドは pc_slave_wr_to コマンドを上書きします。
入出力 PC ASIC による CIC 制御バス上のパリティーエラーの検出を無効にします。システム内のいずれかのボードにマジックワイヤー ECO が備わっている場合、こうした指定が必要になります。入出力位置 (ボード上の PC 2) に Rev 4 以前の PC が備わっているボードについては、この条件が該当します。この種の PC は ECO なしでは信頼性を実現できません。
POST の各フェーズの経過時間を報告します。
no_snmp_access コマンドの項を参照してください。no_snmp_access コマンドが起動している場合、platform_name コマンドがプラットフォーム名を提供します。通常、プラットフォーム名は SNMP エージェントから取得します。no_snmp_access コマンドが起動していない場合、POST は platform_name コマンドを無視します。no_snmp_access コマンドが起動していて、platform_name コマンドが起動していない場合は、POST は $SUNW_HOSTNAME をプラットフォーム名として使用します。
このコマンドが有効になるのは、カレントディレクトリの .postrc ファイルで使用された場合だけです。使用する .postrc ファイルがローカルディレクトリにない場合、POST はこのコマンドを無視し、警告メッセージを表示します。
ホストプロセッサにタスクを割り当てたときに使用するタイムアウト値に、ここで指定した整数値 (1 〜 100) を乗算します。多くのプロセッサを装備したシステムで非常に冗長なメッセージの出力が有効になっているような場合は、良好なプロセッサがポーリングによって遅延し、「通常の許容時間を超過した」というオーバーヘッドを表示して、失敗してしまうことがあります。このコマンドはこうしたタイムアウトをすべて延長します。現場でのタイムアウト値が小さ過ぎる場合にも、このコマンドを使用することができます。servmgr_time_report コマンドと no_poll_timeouts コマンドの項も参照してください。
PORT_IDLE 機能の代わりに、あまり柔軟でない PORT_PAUSE PC ブートバス機能を使用します。
通常 POST は、特定のテストの最初の 1 つか 2 つのメッセージだけを出力し、そのテストを終了します。このコマンドを使用することによって、エラーメッセージをすべて出力して、テストを継続します。
この機能を使用すると、多くのエラーメッセージが出力され、テストのタイムアウトを超過することがあります。この結果、良好なプロセッサまでが失敗したとみなされます。こうした事態を防ぐには、poll_timeout_mult コマンドを一緒に使用してください。
JTAG 完全性テストのフェーズで、POST は各プロセッサの最高定格速度を読み取り、制御ボードから供給されるシステム全体のプロセッサクロック速度と比較します。クロック速度と定格速度の差が指定した割合 (float_%) を超えると、POST は該当するプロセッサを拒否します。デフォルト値は 0.5% です。引数 off を指定すると、POST はこのチェックを行いません。
システムインターコネクト周波数に対するプロセッサ周波数の比率を指定します。プロセッサ周波数を測定し報告する制御ボードが欠如しているテスト環境では、この値を使用して、post2obp 構造体にプロセッサ周波数を報告し、プロセッサの最高定格速度をチェックします。
制御ボードが装着されているシステムでは、この値を指定すると、測定された比率がこの値の 0.5% 以内であることが必要になります。この値を指定しない場合は、測定された比率は SNMP サーバーから読み取ったターゲット比率の 0.5% 以内である必要があります。interconnect_MHz コマンドの項も参照してください。
通常 POST は、制御ボードの周波数に対するプロセッサモジュールの定格速度を検査し、プロセッサの速度が定格速度以上になっていないことを確認します。proc_freq_check_percent を参照してください。またプロセッサの速度が定格速度よりも著しく遅いかどうかも検査します。遅い場合には、制御ボードの設定が間違っていることが考えられます。速度が定格速度よりかなり遅い場合には、考えられる設定ミスについて知らせる NOTE が POST によって表示されます。
NOTE は、制御ボードの周波数がモジュールの定格周波数より proc_runslow_warn_percent % 下回る場合に出力されます。デフォルト値は、9% です。このコマンドを使用すると、別の値の設定、検査、および NOTE の表示を完全に無効にすることができます。
全ホストプロセッサのダウンロード済みプロセッサコードによって作成されるメッセージを出力するときに (これらのメッセージの先頭には {board.module} が表示されます)、メッセージが作成された時刻を示すタイムスタンプを出力します。ただし、特定のプロセッサのタイムスタンプが出力されるのは、そのプロセッサがメッセージを出力し、そのプロセッサに最後のタイムスタンプが押されてから interval_secs 以上の時間が経過しているときに限られます。タイムスタンプの形式は {board.module} {day/date/time} です。
interval_secs は秒数を示す整数であり、有効値は 0 〜 86400 (= 60×60×24 秒 = 24 時間) です。0 を指定すると、すべてのメッセージにタイムスタンプが付きます。
quickturn コマンドの項を参照してください。 quickturn を指定した場合の POST のデフォルトの処理は、MC ASIC 内で捕捉できなかったリフレッシュエラーをマスクすることです。qt_missrefresh_err_enbl を使用すると、こうしたエラーがアービトレーション停止を引き起こすことになります。quickturn コマンドが使用されていない場合は、このコマンドは無視されます。
Quickturn エミュレーション環境でシステムを実行していることを宣言します。KHz はシステムクロックの速度を示し、有効値は 100 〜 2000 (2 MHz) です。Mem_refresh_interval はメモリーコントローラ設定用のシステムクロックサイクルでのリフレッシュ間隔を示し、有効値は 8 〜 0xFFF (4095) です。どちらの引数も必須です。
ポーリングのタイムアウトは、宣言されたシステム周波数に基づいて、通常の値の倍数に設定されます。メモリーコントローラは、指定したリフレッシュ間隔を使用するように設定されます。このコマンドを使用すると、他の設定属性も必要に応じて変更されます。
アービトレーション停止のポーリングの際に、レコード停止のポーリングも実行します。
コマンド行での同等機能 : -R
デフォルト ($SSPVAR/etc/platform_name/redlist ファイル) の代わりに、指定した redlist(4) ファイルを使用します。none を指定すると、POST は redlist ファイルを読み込みません。blacklist(4) と redlist(4) を参照してください。
プロダクションシステムで redlist_file を使用するときには注意が必要です。POST が標準外の redlist(4) ファイルを使用していることは、他の SSP ソフトウェアにはわかりません。
JTAG ライブラリ関数の通常の呼び出しを途中でさえぎり、 POST 内部で (単純に) シミュレートします。このコマンドは、本物のシステムやハードウェアによってシミュレートされたシステムがない開発環境で、サンの技術者がコードをデバッグする際に有用です。
ホストプロセッサにタスク (テストの実行など) を割り当てると、POST のサーバーマネージャーはタイムアウトを設定します。タイムアウトが経過するまで完了されないタスクは失敗したものとみなされます。servmgr_time_report コマンドを使用することによって、サーバーマネージャーは、プロセッサからの報告があった時点で、タイムアウト到達までにどのくらいの時間が残っているかを報告します。適切なタイムアウトを設定する上でこの情報は役に立ちます。
指定したシステムボードの設定において、boardmask 内のシステムボードに対して共有メモリーを提供します。boardmask の中には、指定したボードのドメインに属するボードを含めることはできません。詳細は、domain コマンドを参照してください。CIC 内の共有メモリーBAR/LAR は shared_mem コマンドによっては設定されません。通常この設定は、ホストソフトウェアによって行われます。ただし、shmem_barlar を参照してください。
指定した bar の値と lar の値を使用して、JTAG CIC 共有メモリーの基本アドレスと限界アドレスのレジスタを設定します。このコマンドは、shared_mem コマンドによってメモリーを共有すると宣言されたボードに対してのみ適用されます。また、これらすべてのボードに対して使用される bar/lar の値のセットは 1 つだけです。デフォルトでは (およびメモリーを共有しないボードについては)、bar は 1 で、lar は 0 です (有効範囲外)。メモリーを共有するボードの場合、これら 2 つの値にボードの基本物理アドレス (mod 2**41) を加算した値が、そのボードの bar/lar 設定となります。 これら 2 つのレジスタカウントは 64KB 単位で増加し、[15:0] = 0 となります。bar および lar はどちらも任意の 25 ビット値にすることができ、bar が lar より大きくなることもあります。
指定した POST フェーズを省略します。1 つのコマンドで複数のフェーズの省略を指定することはできませんが、.postrc の中で使用できる skip_phase コマンドの数に制限はありません。用意されているフェーズ名を表示するには、hpost -?postrc を実行してください。メッセージの冗長 (verbose) レベルを高く設定しておくことによって、フェーズ名は進捗メッセージとしても表示されます。interactive_use_postrc_skips コマンドと no_skip_phase_covers_npb コマンドも参照してください。
指定したテストを省略します。1 つのコマンドで複数のテストの省略を指定することはできませんが、.postrc の中で使用できる skip_test コマンドの数に制限はありません。test_id は 0 〜 0x1FF の数値で、POST テストのインデックスおよび識別子として使用されます。冗長 (verbose) レベルを高く設定しておけば、テストを実行する前に、テスト名とともにテスト ID も表示されます。このコマンドで使用すべき ID を判別するには、この方法で表示させるのが最も適切です。テストが失敗したときにもテスト ID が表示されます。
このコマンドは skip_phase よりも高度な制御を実現します。現場でのテストが失敗した場合に、バグやハードウェア変更を回避する手段としてもこのコマンドは有用です。
ある種の POST テストは内部的に「省略不可」と宣言されています。こうした宣言のチェックは、POST が .postrc コマンドを読み込んだときではなく、テスト実行時に行われます。該当するテストに skip_test コマンドが適用されている場合は、POST は「このコマンドを無視する」という内容のメッセージを表示します。interactive_use_postrc_skips コマンドも参照してください。
init_reset フェーズでのシステムリセットを省略せずに、物理的には存在しないシステムリソースをレッドリストに入れることを有効にします。このコマンドはある種の開発環境でのみ使用されます。redlist(4) を参照してください。
POST が失敗した場合、ホストシステム全体を内部的に失敗させ、レッドリストに入れます。デバッグの際、障害の事後分析にこのコマンドが役に立つことがあります。
このコマンドを使用すると、障害が発生したコンポーネントを POST によって管理し設定する可能性が完全に失われます。したがって、通常は、このコマンドの使用はお勧めできません。このコマンドは、board_red_any_fail コマンドを極端にしたものであると言えます。
指定したホストプロセッサからの非常に冗長な (verbose) tprintf トレース出力を有効にします。デフォルトでは、このコマンドはオフになっています。複数のプロセッサのトレース出力を制御するには、このコマンドの複数のインスタンスを使用してください。
コマンド行での同等機能 : -v
POST が出力する進捗情報の量を制御します。冗長 (verbose) レベルを高くすると、より詳細な情報が出力されます。level は 0 〜 225 の整数値です。レベルの詳細は、hpost -?verbose を実行してください。
このコマンドはシステム管理者が使用することができます。ただし、冗長レベルを高く設定すると、POST の実行が遅くなることに注意してください。極端な場合にはタイムアウトが発生することもあります。
個々のホストプロセッサからの冗長な (verbose) vprintf 出力を制御します。このコマンドは指定した特定のプロセッサに適用されます。複数のプロセッサに適用するには、このコマンドの複数のインスタンスを使用してください。冗長 (verbose) レベルが高く設定されている場合は、このコマンドはすべてのプロセッサに対して有効です。