
対象マシンにおける本ツールの動作を理解していない場合は、 本ツールを使用しないでください。
本ツールは、マシンの低レベルハードウェアおよびファームウェアのインターフェースに 直接アクセスします。特に、プロービングという行為は、対象デバイスが想定していた デバイスではない場合の結果について不確実性を伴います。
本ツールの使用により、対象マシンの不安定化、クラッシュ、または重大な障害が 発生する可能性があります。
ASPEED BMC には、いくつかの暗黙的な動作モードがあります:
1 と 2 を実現するため、BMC は複数のスレーブインターフェース上に、ホストが BMC 内部にアクセスして物理アドレス空間上で任意の操作を実行できるようにする 機能を公開しています。
主要なインターフェースは PCIe バスと LPC バスの両方に接続されています。特定の プラットフォーム設計では、どちらか一方がホスト CPU に接続されていない可能性があるためです。
モード 3 も通常使用されますが、AST2400 および AST2500 では、コールドブート時に ハードウェアがモード 1 と 2 用に構成されます。したがって、BMC の保存データと 実行時環境の機密性、完全性、可用性を維持したいのであれば、すべての インターフェースを確実に保護する責任は BMC ファームウェア開発者に あります。
PCIe VGA P2A: 64kiB のスライディングウィンドウを介して任意の AHB アクセスを提供する PCIe MMIO インターフェース
iLPC2AHB: 任意の AHB アクセスを提供する SuperIO 論理デバイス
Debug UART: 任意の AHB アクセスが可能な、ハードウェアが提供する UART デバッグシェル
X-DMA: 任意の M-Bus アクセス
PCIe BMC デバイス: 4kiB ウィンドウを介して制限付き AHB アクセスを提供する固定 PCIe MMIO インターフェースの集合
LPC2AHB: BMC が制御する、LPC FW サイクルの AHB へのマッピング
現在、P2A、iLPC2AHB、LPC2AHB、Debug UART インターフェースの使用をサポート
利用可能な任意のインターフェースを介して、すべてのインターフェースの可用性をプローブ
ホストからのインバンド BMC コンソール
実行中の BMC のファームウェアをホストから再書き込みまたはダンプ
BMC RAM の読み書き
BMC 自体での実行用に Linux /dev/mem インターフェースもサポート
本ツールは複数のアーキテクチャ向けにコンパイルでき、少なくとも以下がテストされて います:
ビルドは make を実行するだけです。クロスコンパイルは make 環境で
CROSS_COMPILE を設定して行います。例:
$ make CROSS_COMPILE=powerpc64le-linux-gnu-
$ ./doit
Not enough arguments
Usage:
./doit probe [INTERFACE [IP PORT USERNAME PASSWORD]]
./doit ilpc read ADDRESS
./doit ilpc write ADDRESS VALUE
./doit p2a vga read ADDRESS
./doit p2a vga write ADDRESS VALUE
./doit debug read ADDRESS INTERFACE [IP PORT USERNAME PASSWORD]
./doit debug write ADDRESS VALUE INTERFACE [IP PORT USERNAME PASSWORD]
./doit devmem read ADDRESS
./doit devmem write ADDRESS VALUE
./doit console HOST_UART BMC_UART BAUD USER PASSWORD
./doit read firmware
./doit read ram
./doit write firmware
./doit replace ram MATCH REPLACE
./doit reset TYPE [INTERFACE [IP PORT USERNAME PASSWORD]]
./doit sfc fmc read ADDRESS LENGTH [INTERFACE [IP PORT USERNAME PASSWORD]]
./doit sfc fmc erase ADDRESS LENGTH [INTERFACE [IP PORT USERNAME PASSWORD]]
./doit sfc fmc write ADDRESS LENGTH [INTERFACE [IP PORT USERNAME PASSWORD]]
$ ./doit probe --require confidentiality digi,portserver-ts-16 <IP> <PORT> <USER> <PASSWORD>
Connecting to Digi Portserver TS 16 at <IP>:23
Logging into Digi Portserver TS
Configuring binary mode on port 4
Resetting port 4
Connecting to BMC console at <IP>:2104
Entering debug mode
Initialised Debug UART AHB interface
Performing interface discovery via Debug UART
Exiting debug mode
Have SuperIO: Yes
iLPC2AHB Bridge: Read-only
Have VGA PCIe device: Yes
Have MMIO on VGA device: Yes
P2A write filter state:
0x00000000-0x0fffffff (Firmware): Read-write
0x10000000-0x1fffffff (SoC IO): Read-write
0x20000000-0x3fffffff (Flashes): Read-write
0x40000000-0x5fffffff (Reserved): Read-write
0x60000000-0x7fffffff (LPC Host): Read-write
0x80000000-0xffffffff (DRAM): Read-write
Have X-DMA on VGA device: Yes
Have BMC PCIe device: No
X-DMA is unconstrained: No
Have debug UART: Yes
Debug UART enabled on: UART5
$ echo $?
1
$