
VERWENDEN SIE DIESES WERKZEUG NICHT, WENN SIE SEIN VERHALTEN IM KONTEXT IHRER ZIELMASCHINE NICHT VERSTANDEN HABEN.
Dieses Werkzeug greift auf Low-Level-Hardware- und Firmware-Schnittstellen Ihrer Maschine zu. Insbesondere impliziert der Vorgang des Sondierens eine Unsicherheit über die Folgen, wenn das Zielgerät nicht das Gerät ist, das wir zu finden hofften.
Die Verwendung dieses Werkzeugs kann zu Instabilität, Abstürzen oder kritischen Fehlern der Zielmaschine führen.
ASPEED-BMCs haben mehrere implizite Betriebsmodi:
Um 1 und 2 zu ermöglichen, stellt der BMC auf mehreren seiner Slave-Schnittstellen Funktionen bereit, die es dem Host erlauben, in den BMC hineinzugreifen und beliebige Operationen in seinem physischen Adressraum durchzuführen.
Die wesentlichen Schnittstellen hängen sowohl am PCIe- als auch am LPC-Bus, da in einem gegebenen Plattformdesign eine von beiden möglicherweise nicht mit der Host-CPU verbunden ist.
Modus 3 wird ebenfalls typischerweise verwendet, aber bei den AST2400- und AST2500-Modellen ist die Hardware beim Kaltstart für die Modi 1 und 2 konfiguriert. Somit liegt es in der Verantwortung der BMC-Firmware-Entwickler, sicherzustellen, dass alle Schnittstellen abgesichert sind, wenn sie die Vertraulichkeit, Integrität und Verfügbarkeit der ruhenden Daten und Laufzeitumgebungen des BMC aufrechterhalten möchten.
PCIe-VGA-P2A: Eine PCIe-MMIO-Schnittstelle, die über ein 64-kiB-Schiebefenster beliebigen AHB-Zugriff ermöglicht
iLPC2AHB: Ein logisches SuperIO-Gerät, das beliebigen AHB-Zugriff ermöglicht
Debug-UART: Eine hardwaregestützte UART-Debug-Shell mit beliebigem AHB-Zugriff
X-DMA: Beliebiger M-Bus-Zugriff
PCIe-BMC-Gerät: Eine Sammlung fester PCIe-MMIO-Schnittstellen, die über 4-kiB-Fenster eingeschränkten AHB-Zugriff ermöglichen
LPC2AHB: Eine BMC-gesteuerte Abbildung von LPC-FW-Zyklen auf den AHB
Unterstützt derzeit die Verwendung der P2A-, iLPC2AHB-, LPC2AHB- und Debug-UART-Schnittstellen
Sondiert die Verfügbarkeit aller Schnittstellen über jede verfügbare Schnittstelle
In-Band-BMC-Konsole vom Host aus
Firmware eines laufenden BMC vom Host aus neu flashen oder auslesen
BMC-RAM lesen und schreiben
Unterstützt außerdem die Linux-Schnittstelle /dev/mem für die Ausführung
auf dem BMC selbst
Das Werkzeug lässt sich für mehrere Architekturen kompilieren; mindestens die folgenden wurden getestet:
Das Erstellen erfolgt durch Ausführen von make, während die
Kreuzkompilierung durch Setzen von CROSS_COMPILE in der Make-Umgebung
erreicht wird, z. B.:
$ 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
$