
NO UTILICE ESTA HERRAMIENTA SI NO HA COMPRENDIDO SUS COMPORTAMIENTOS EN EL CONTEXTO DE SU MÁQUINA OBJETIVO.
Esta herramienta interviene en interfaces de hardware y firmware de bajo nivel de su máquina. En particular, el acto de sondear implica incertidumbre sobre las consecuencias si el dispositivo objetivo no es el dispositivo que esperábamos encontrar.
El uso de esta herramienta puede provocar inestabilidad, bloqueos o fallos críticos de la máquina objetivo.
Los BMC de ASPEED tienen varios modos de operación implícitos:
Para dar soporte a 1 y 2, el BMC expone funcionalidades en varias de sus interfaces esclavas que permiten al host acceder al BMC y realizar operaciones arbitrarias en su espacio de direcciones físicas.
Las interfaces principales se conectan a los buses PCIe y LPC, ya que cualquiera de ellos puede no estar conectado a la CPU del host en un diseño de plataforma determinado.
El modo 3 también se utiliza normalmente, pero para los AST2400 y AST2500 el hardware está configurado para los modos 1 y 2 en el arranque en frío. Por lo tanto, la responsabilidad recae en los desarrolladores de firmware del BMC para asegurarse de que todas las interfaces estén protegidas si desean mantener la confidencialidad, integridad y disponibilidad de los datos en reposo y los entornos de ejecución del BMC.
PCIe VGA P2A: una interfaz PCIe MMIO que proporciona acceso AHB arbitrario a través de una ventana deslizante de 64 KiB
iLPC2AHB: un dispositivo lógico SuperIO que proporciona acceso AHB arbitrario
UART de depuración: un shell de depuración UART proporcionado por hardware con acceso AHB arbitrario
X-DMA: acceso arbitrario al M-Bus
Dispositivo PCIe BMC: un conjunto de interfaces PCIe MMIO fijas que proporcionan acceso AHB restringido a través de ventanas de 4 KiB
LPC2AHB: una asignación controlada por el BMC de los ciclos LPC FW al AHB
Actualmente admite el uso de las interfaces P2A, iLPC2AHB, LPC2AHB y UART de depuración
Comprueba la disponibilidad de todas las interfaces a través de cualquier interfaz disponible
Consola BMC en banda desde el host
Reescribir o volcar el firmware de un BMC en ejecución desde el host
Leer y escribir la RAM del BMC
También admite la interfaz /dev/mem de Linux para ejecutarse en el propio BMC
La herramienta se compila para múltiples arquitecturas y, como mínimo, se han probado las siguientes:
La compilación se lleva a cabo ejecutando make, mientras que la compilación cruzada se realiza estableciendo CROSS_COMPILE en el entorno de make, por ejemplo:
$ 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
$