Intelligent Platform Management Interface (IPMI) Tool IPMIVIEW(32/64).exe Documentation 1. Introduction =============== This tool is designed to accesses any "Intelligent Platform Management Interface" (IPMI) compliant "Baseboard Management Controller" (BMC) through specific interfaces: OS Tool Name Supported Access Interfaces ------- ----------------- -------------------------------------------- DOS IPMIVIEW.EXE Keyboard Controller Style (KCS) interface Server Mgmt. Interface Chip (SMIC) interface Block Transfer (BT) interface Windows IPMIVIEW32/64.exe WMI class "Microsoft_IPMI" method "RequestResponse" Intel IMB driver interface IPMI-over-LAN via Windows Sockets (Winsock) Linux IPMIVIEW32/64 OpenIPMI driver interface IPMI-over-LAN via network socket interface UEFI IPMIVIEW.efi Protocol IPMI_PROTOCOL_GUID Protocol EFI_DXE_IPMI_TRANSPORT_PROTOCOL_GUID 2. Command Line Parameters / Functions ====================================== IPMIVIEW(32/64)[.exe] [] [] LANAccess / IPMI-over-LAN (for Windows and Linux versions only): -HOST= Selects the BMC IP address or host name to connect with (if missing, the local BMC is accessed) -USR= Selects the username for the connection (optional, default=admin) -PWD= Selects the password for the connection (optional, default=admin) -PRVL= Selects the desired privilege level number (optional, default=4) Operation (only one of these paramters has to be used at a time): The DOS version provides a menu based dialog. -SCD Writes various general BMC specific informations to the text file IPMIVIEW.SCD (see section 3. for details) -SCDS As -SCD, but additionally adds sensor information (see section 3. for details) -IDP0 / -IDP1 / -IDP2 Writes the binary contents of all IPMI-FRU IdProms to the files IDPIeeii.BIN ee/ii=EntityID/Instance (both hex) The extent of the console output can be selected: -IDP0: IdProm list only -IDP1: IdProm list and formated contents -IDP2: IdProm list, formated and hexdump contents -PNI Reads Platform Network Inventory and outputs info to console -SENSORINFO Outputs information, status and current values of all sensors -SEL Outputs System Event Log (SEL) entries -CLEARSEL Clears System Event Log (SEL) -IEL Reads and outputs the Internal Event Log -SDRR Outputs the Sensor Data Record Repositiory (SDRR) -INI[=] An automatic/noninteractive execution of a test sequence is started, which is configured by the parameters given in text file (or ipmiview.ini, if '=' is not given). If all of the configured tests succeed, an errorlevel 0 is returned. If any of the configured tests fail, a nonzero errorlevel is returned and all errors are appended to the text file ERROR.LOG. A description of all supported parameters of the configuration file is given as comments (separated by ';') in the distributed template ipmiview.ini. -EXEC=,,,.., Directly executes an IPMI command (Example "GetDeviceID": -exec=0x18,0x01) -EXECX=,,,,.., Directly executes an IPMB command to target a target BMC given by -FANINFO Outputs FTS-BMC specific fan information -MEMINFO[X] Outputs FTS-BMC specific memory module information (MEMINFOX additionally outputs SPD information) -CSSINFO Outputs FTS-BMC specific component status signal infos -CHANNELINFO Outputs a list the BMC interface channels -USERINFO Outputs information of all BMC users -CPUINFO Outputs FTS-BMC specific CPU information -PCIINFO Outputs FTS-BMC specific PCI device information -CLI= Executes a FTS-BMC specific internal firmware command (use '_' as ' ') -MEM=
Reads FTS-BMC internal memory at the given address -PMBusFWUpd[F] Executes PMBus controller firmware update ([F]orce) (Windows & Linux versions only) The appropriate firmware image files are selected automatically and have to be named "DPS*.bin" -XML Write informations to IPMIVIEW.xml (Windows & Linux versions only) -ENUMCFG Enumerate all ConfigSpace variables -LOGD Read internal log Options: -INISECTION=
This an optional argument for the above operation -INI. If given, the parameter lines in the configuration file following the section line containing "[SectionName]", are executed. SectionName is case sensitive. There can be several section-lines within one configuration file, which could distinguish different test schedules. If not given, the parameters before the first section line are executed. -BMC= Select BMC Address (optional, default=autodetect) -IMB Enforce use of IMB interface (for Windows version only) -DEBUG Outputs detailed trace of IPMI interface communication to the console 3. Format of IPMIVIEW.SCD ========================= IPMIVIEW.SCD (for all systems): [IPMI] ProgramVersion=x.xx DeviceID=0xXX DeviceRevision=X FirmwareRevision=X.YY ManufacturerID=0xXXXXX ProductID=0xXXXX AuxFWRevInfo=0xXX,0xXX,0xXX,0xXX,Y.ZZc DeviceGUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX SystemGUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX PowerOnHours="x Days x Hours" MACAddress.x=XX:XX:XX:XX:XX:XX SDRR=XXXX,XX.YYc FirmwareBuild="VERSION.SVN - DATETIME - DESCRIPTION" Microcontroller.x=PIC_XXX,HW-VXX,FW-VXX,BL-X,EI-XX-XX,"Name" EEPROM1=FWx.yy_x.yyc,SDRRxx.yyc,BOOTERx.yy_x.yy EEPROM2=FWx.yy_x.yyc,SDRRxx.yyc,BOOTERx.yy_x.yy CurrentEEPROM=x LicenseStatus=NoLicense | PermanentLicense | TemporaryLicensexDaysxHoursRemaining LicenseStatuseLCM=NoLicense | PermanentLicense | TemporaryLicensexDaysxHoursRemaining SDCardStatus=NotPresent | Present_NotMounted | Present_Mounted | Present_CheckingFS | Present_CreatingFS | Unknown TYPCONTROLSDCARD="1" eLCMFunction.x="UEFI.iso (uefi)" PowerControlMode=Disabled | BestPerformance | MinimumPower | Automatic | Scheduled | Limitiation | LowNoiseMode TemperatureName.x= "SensorName" [-scds only] TemperatureStatus.x=Status [-scds only] Temperature.x=Temperature [-scds only] FanName.x="SensorName" [-scds only] FanStatus.x=Status [-scds only] FanSpeed.x=Speed [-scds only] FanSpeedMax.x=MaxSpeed [-scds only] FanCtrlMode.x="..." [-scds only] TYPCONTROLFAN=1 [-scds only] VoltageName.x="SensorName" [-scds only] VoltageStatus.x=Status [-scds only] Voltage.x=Voltage [-scds only] PowerSupplyName.x="PSName" [-scds only] PowerSupplyStatus.x=Status [-scds only] CPUBladeID=x [BX400/900 only] NICxMACAddress=XX:XX:XX:XX:XX:XX [BX400/900 + iRMCS3 only] OptionROMBIOSVersion.x="..." [BX400/900 + iRMCS3 only] PeripheralDeviceFirmwareVersion.x="..." [BX400/900 + iRMCS3 only] PNIModuleName.x="..." [iRMCS4 only] PNIModuleFirmwareVersion.x="..." [iRMCS4 only] PNIPort#NICMAC.x=XX:XX:XX:XX:XX:XX [iRMCS4 only] PNIPort#NICOprom.x="..." [iRMCS4 only] PNIPort#FCWWNN.x="..." [iRMCS4 only] PNIPort#FCWWPN.x="..." [iRMCS4 only] PNIPort#FCOprom.x="..." [iRMCS4 only] PNIPort#FCoEWWNN.x="..." [iRMCS4 only] PNIPort#FCoEWWPN.x="..." [iRMCS4 only] PNIPort#FCoEMAC.x=XX:XX:XX:XX:XX:XX [iRMCS4 only] PNIPort#FCoEOprom.x="..." [iRMCS4 only] PNIPort#iSCSIMAC.x=XX:XX:XX:XX:XX:XX [iRMCS4 only] PNIPort#iSCSIOprom.x="..." [iRMCS4 only] PNIPort#IBGUID.x="..." [iRMCS4 only] PNIPort#IBOprom.x="..." [iRMCS4 only] PNIPort#RoCeMAC.x=XX:XX:XX:XX:XX:XX [iRMCS4 only] PNIPort#RoCeOprom.x="..." [iRMCS4 only] [PICInformation] PicClass.x=0xXX,PIC_XXX BootLoader.x=0xXX HwVersion.x=X SubClass.x=0xXX, SwVersion.x=0xXX SGPIO_ID.x=0xXX [Class SGX/SGP only] SGPIO_HWREV.x=0xXX [Class SGX/SGP only] SGPIO_FWREV.x=0xXX [Class SGX/SGP only] SGPIO_DRVTYP0.x=0xXX,SAS | SATA | SATAe | ePCIe | Unplugged [Class SGX/SGP only] SGPIO_DRVTYP1.x=0xXX,SAS | SATA | SATAe | ePCIe | Unplugged [Class SGX/SGP only] SGPIO_DRVTYP2.x=0xXX,SAS | SATA | SATAe | ePCIe | Unplugged [Class SGX/SGP only] SGPIO_DRVTYP3.x=0xXX,SAS | SATA | SATAe | ePCIe | Unplugged [Class SGX/SGP only] SGPIO_BPLTYPE.x=0xXX,n x 2.5 | n x 3.5,n combo-slots [Class SGX/SGP only] BU100_ID.x=0xXX [Class BRG_RAID only] HWREV.x=0xXX [Class BRG_RAID only] LPC_FWREV.x=0xXX [Class BRG_RAID only] FX3S_FWREV.x=0xXX [Class BRG_RAID only] SD0_VendorID.x=0xXX [Class BRG_RAID only] SD0_Type.x=0xXX [Class BRG_RAID only] SD0_Size.x=x GB [Class BRG_RAID only] SD0_Status.x=0xXX,Present Failed Offline Standby Active SupportSMARTXxxx [Class BRG_RAID only] SD1_VendorID.x=0xXX [Class BRG_RAID only] SD1_Type.x=0xXX [Class BRG_RAID only] SD1_Size.x=x GB [Class BRG_RAID only] SD1_Status.x=0xXX,Present Failed Offline Standby Active SupportSMARTXxxx [Class BRG_RAID only] RAID_Status.x=0xXX,Ok | Failed/Degraded | Rebuilding [Class BRG_RAID only] RAID_Size.x=x GB [Class BRG_RAID only] USB_VendorID.x=0x%XXXX [Class BRG_RAID only] USB_DeviceID.x=0x%XXXX [Class BRG_RAID only] UUID.x=0xXXXXXXXX-0xXXXXXXXX-0xXXXXXXXX-0xXXXXXXXX EntityID.x=0xXX, EntityInstance.x=0xXX SlaveAddress.x=0xXX BusId.x=0xXX Description.x="..." [PowerSupplyx] [RX4770M1 only] [PMBusController#] MFR_ID="..." MFR_MODEL="..." MFR_REVISION="..." MFR_LOCATION="..." MFR_DATE="..." MFR_SERIAL="..." IC_DEVICE_ID="..." IC_DEVICE_REV="..." FW_REVISION="..." HW_COMPATIBILITY="..." FW_REVISIONX="..." HW_COMPATIBILITYX="..." TYPCONTROLPSU="..." Additional files are created for systems BX400/900: BXSYSTEM.SCD (General box information for systems BX400/900 only): [IPMI] ProgramVersion=x.xx ManagementBlade0-1Status=Status ManagementBlade0-1Designation="Designation" ManagementBlade0-1FirmwareVersion="FirmwareVersion" ManagementBlade0-1PhysicalAddress0=XX:XX:XX:XX:XX:XX ManagementBlade0-1PhysicalAddress1=XX:XX:XX:XX:XX:XX KVMBlade="FirmwareVersion",XX:XX:XX:XX:XX:XX BxPowerSupplyUnit1-6Status=Status BxPowerSupplyUnit1-6FirmwareVersion="FirmwareVersion" FSIOMDeviceID=0xXX FSIOMDeviceRevision=X FSIOMFirmwareRevision=X.YY FSIOMManufacturerID=0xXXXXX FSIOMProductID=0xXXXX FSIOMAuxFWRevInfo=0xXX,0xXX,0xXX,0xXX,Y.ZZc FSIOMCabinetStatus=Floorstand/DoorOpen | Floorstand/DoorClosed BxTemperatureName.0-23="SensorName" [-scds only] BxTemperatureStatus.0-23=Status [-scds only] BxTemperature.0-23=Temperature [-scds only] BxFanName.0-48="SensorName" [-scds only] BxFanStatus.0-48=Status [-scds only] BxFanSpeed.0-48=Speed [-scds only] BxFanSpeedMax.0-48=MaxSpeed,NominalMax [-scds only] TYPCONTROLFAN=1 [-scds only] BXSWB0-7.SCD (Switchblade information for systems BX400/900 only): [IPMI] ProgramVersion=x.xx SwitchBlade0-7Status=Status SwitchBlade0-7Name="Name" SwitchBlade0-7FirmwareVersion="FirmwareVersion" SwitchBlade0-7PhysicalAddress=XX:XX:XX:XX:XX:XX SwitchBlade0-7PhysicalAddressServicePort=XX:XX:XX:XX:XX:XX SX01-18.SCD (Storageblade / SX information for systems BX400/900 only): [UBMC] ProgramVersion=x.xx DeviceID=0xXX DeviceRevision=X FirmwareRevision=X.YY ManufacturerID=0xXXXXX ProductID=0xXXXX AuxFWRevInfo=0xXX,0xXX,0xXX,0xXX,Y.ZZc 4. Return Codes / Errorlevel ============================ [This is valid for non '-INI' commands] IPMI command general: 0x00 Operation successful 0x01 IPMI interface not found 0x02 IPMI command response Net/LUN invalid 0x03 IPMI command response CMD invalid 0x01XX IPMI command failed with completion code XX 0x04 IPMI commnad response data length too large IPMI-over-LAN: 0x10 Winsock DLL startup failed 0x11 Hostname could not be resolved to IP address 0x12 UDP socket could not created 0x13 UDP socket option could not be set 0x14 Binding of UDP socket to local address failed 0x15 Size of IPMI over LAN password greater than 16 bytes 0x16 IPMI command request data length too large 0x17 Sending UDP LAN request package failed 0x18 Waiting for UDP LAN response package timed out 0x19 Receiving UDP LAN responses package failed 0x1A UDP LAN response package format invalid 0x1B UDP LAN response package too large 0x1C IPMI over LAN command 'Get Channel Authentication Capabilites' failed 0x1D Size of IPMI over LAN username greater than 16 bytes 0x1E IPMI over LAN command 'Set Session Privilege Level' failed Local WBEM/WMI IPMI interface [Windows only]: 0x21 Windows WBEM/WMI service missing 0x22 WMI class/property 'Microsoft_IPMI.BMCAddress' missing 0x23 WMI class/property 'Microsoft_IPMI.__PATH' missing 0x24 Memory allocation failed 0x25 Getting WMI class 'Microsoft_IPMI' failed 0x26 Getting WMI method 'Microsoft_IPMI.RequestResponse' failed 0x27 Spawning WMI instance failed 0x28 Creating SafeArray failed 0x29 Writing to SafeArray failed 0x2A Setting WMI property failed 0x2B Exection fo WMI method 'Microsoft_IPMI.RequestResponse' failed 0x2C Getting WMI property failed 0x2D Reading from SafeArray failed Local OpenIPMI interface [Linux only] 0x30 OpenIPMI interface/driver not present 0x31 OpenIPMI service 'IPMICTL_SET_GETS_EVENTS_CMD' failed 0x32 OpenIPMI service 'IPMICTL_SEND_COMMAND' failed 0x33 Waiting for OpenIPMI command response timed out 0x34 OpenIPMI command response contains no data 0x35 OpenIPMI service 'IPMICTL_RECEIVE_MSG_TRUNC' failed 0x36 OpenIPMI command response contains no completion code