diff --git a/perl-xCAT/xCAT/data/ipmisensorevents.pm b/perl-xCAT/xCAT/data/ipmisensorevents.pm index a83622a46..a1aaad7d2 100644 --- a/perl-xCAT/xCAT/data/ipmisensorevents.pm +++ b/perl-xCAT/xCAT/data/ipmisensorevents.pm @@ -55,7 +55,20 @@ package xCAT::data::ipmisensorevents; "0Ch,03h"=>"Memory,Memory Scrub Failed (stuck bit)", "0Ch,04h"=>"Memory,Memory Device Disabled", "0Ch,05h"=>"Memory,Correctable ECC (logging limit reached)", +"0Ch,06h"=>"Memory,Presence detected", +"0Ch,07h"=>"Memory,Configuration Error", +"0Ch,08h"=>"Memory,Spare", +"0Ch,09h"=>"Memory,Throttled", "0Dh,-"=>"Drive Slot,-", +"0Dh,00h"=>"Drive Bay,Present", +"0Dh,01h"=>"Drive Bay,Fault", +"0Dh,02h"=>"Drive Bay,Failure Predicted", +"0Dh,03h"=>"Drive Bay,Hot Spare", +"0Dh,04h"=>"Drive Bay,Consistency Checking", +"0Dh,05h"=>"Drive Bay,Array Critical", +"0Dh,06h"=>"Drive Bay,Array Failed", +"0Dh,07h"=>"Drive Bay,Rebuilding", +"0Dh,08h"=>"Drive Bay,Rebuild aborted", "0Eh,-"=>"POST Memory Resize,-", "0Fh,00h"=>"System Firmware Progress,POST Error", "0Fh,01h"=>"System Firmware Progress,System Firmware Hung", @@ -100,12 +113,17 @@ package xCAT::data::ipmisensorevents; "19h,-"=>"Chip Set,-", "1Ah,-"=>"Other FRU,-", "1Bh,-"=>"Cable / Interconnect,-", +"1Bh,00h"=>"Cable/Interconnect,Connected", +"1Bh,01h"=>"Cable/Interconnect,Incorrect configuration", "1Ch,-"=>"Terminator,-", "1Dh,00h"=>"System Boot Initiated,Initiated by power up", "1Dh,01h"=>"System Boot Initiated,Initiated by hard reset", "1Dh,02h"=>"System Boot Initiated,Initiated by warm reset", "1Dh,03h"=>"System Boot Initiated,User requested PXE boot", "1Dh,04h"=>"System Boot Initiated,Automatic boot to diagnostic", +"1Dh,05h"=>"System Boot Initiated,OS hard reset", +"1Dh,06h"=>"System Boot Initiated,OS warm reset", +"1Dh,07h"=>"System Boot Initiated,Restart", "1Eh,00h"=>"Boot Error,No bootable media", "1Eh,01h"=>"Boot Error,Non-bootable diskette left in drive", "1Eh,02h"=>"Boot Error,PXE Server not found", @@ -118,8 +136,12 @@ package xCAT::data::ipmisensorevents; "1Fh,04h"=>"OS Boot,CD-ROM boot completed", "1Fh,05h"=>"OS Boot,ROM boot completed", "1Fh,06h"=>"OS Boot,Boot completed - boot device not specified", -"20h,00h"=>"OS Critical Stop,Stop during OS load / initialization", -"20h,01h"=>"OS Critical Stop,Run-time Stop", +"20h,00h"=>"OS Stop,Critical Stop during OS load / initialization", +"20h,01h"=>"OS Stop,Run-time critical Stop (panic/BSOD)", +"20h,02h"=>"OS Stop,OS clean shutdown power on", +"20h,03h"=>"OS Stop,OS clean shutdown powered down", +"20h,04h"=>"OS Stop,Soft shutdown by PEF", +"20h,05h"=>"OS Stop,OS Agent not responding to graceful shutdown request", "21h,00h"=>"Slot / Connector,Fault Status asserted", "21h,01h"=>"Slot / Connector,Identify Status asserted", "21h,02h"=>"Slot / Connector,Slot / Connector Device installed/attached", @@ -166,6 +188,8 @@ package xCAT::data::ipmisensorevents; "28h,01h"=>"Management Subsystem Health,controller access degraded or unavailable", "28h,02h"=>"Management Subsystem Health,management controller off-line", "28h,03h"=>"Management Subsystem Health,management controller unavailable", +"28h,04h"=>"Management Subsystem Health,Sensor failure", +"28h,05h"=>"Management Subsystem Health,FRU failure", "29h,00h"=>"Battery,battery low (predictive failure)", "29h,01h"=>"Battery,battery failed", "29h,02h"=>"Battery,battery presense detected", diff --git a/xCAT-server/lib/xcat/plugins/ipmi.pm b/xCAT-server/lib/xcat/plugins/ipmi.pm index f543db08b..7acc9bc49 100644 --- a/xCAT-server/lib/xcat/plugins/ipmi.pm +++ b/xCAT-server/lib/xcat/plugins/ipmi.pm @@ -3124,6 +3124,28 @@ sub getaddsensorevent { $text =~ s/^, //; } } + if ($sensor_type == 0x1d && $offset == 0x07) { + my %causes = ( + 0 => "Unknown", + 1 => "Chassis reset via User command to BMC", + 2 => "Reset button", + 3 => "Power button", + 4 => "Watchdog action", + 5 => "OEM", + 6 => "AC Power apply force on", + 7 => "Restore previous power state on AC", + 8 => "PEF initiated reset", + 9 => "PEF initiated power cycle", + 10 => "Soft reboot", + 11 => "RTC Wake", + ); + if ($causes{$event_data_2 & 0xf}) { + $text = $causes{$event_data_2}; + } else { + $text = "Unrecognized cause ".$event_data_2 & 0xf; + } + $text .= "via channel $event_data_3"; + } if ($sensor_type == 0x21) { my %extra = ( 0 => "PCI slot", @@ -3167,6 +3189,32 @@ sub getaddsensorevent { } $text =~ s/^, //; } + if ($sensor_type == 0x28) { + if ($offset == 0x4) { + $text = "Sensor $event_data_2"; + } elsif ($offset == 0x5) { + $text = ""; + my $logicalfru=0; + if ($event_data_2 & 128) { + $logicalfru=1; + } + my $intelligent=1; + if ($event_data_2 & 24) { + $text .= "LUN ".($event_data_2&24)>>3; + } else { + $intelligent=0; + } + if ($event_data_2 & 7) { + $text .= "Bus ID ".($event_data_2&7); + } + if ($logicalfru) { + $text .= "FRU ID ".$event_data_3; + } elsif (not $intelligent) { + $text .= "I2C addr ".$event_data_3>>1; + } + } + } + if ($sensor_type == 0x2a) { $text = sprintf("Channel %d, User %d",$event_data_3&0x0f,$event_data_2&0x3f); if ($offset == 1) {