Pages

Monday, April 29, 2013

[IPMI] BMC Watchdog Timer Commands

[IPMI] BMC Watchdog Timer Commands Reset Watchdog Timer - NetFn = App (0x06h), CMD = 0x22h, Privilege Level = Operator, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x06 0x22
ipmitool mc watchdog reset
[ipmiutil]
ipmiutil cmd 00 20 18 22
ipmiutil wdt -r
iwdt -r
[FreeIPMI]
ipmi-raw 0x00 0x06 0x22
bmc-watchdog -r
bmc-watchdog --reset
| MS-DOS |
[ipmitool]
ipmitool 20 18 22
[ipmiutil]
ipmiutil cmd 00 20 18 22
ipmiutil wdt -r
iwdt -r

--Completion Code--
80h = Attempt to start un-initialized watchdog

For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
$ ipmitool raw 0x06 0x22
Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0 cmd=0x22 rsp=0x80): Unknown (0x80 Byte 1
Completion Code
80h = Attempt to start un-initialized watchdog
)
$ ipmitoool raw 0x06 0x22

$ ipmitool mc watchdog reset
IPMI Watchdog Timber Reset - countdown restarted!
[ipmiutil in Linux]
$ icmd 00 20 18 22
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
ipmi_cmd: ret = 0, ccode 80 Byte 1
Completion Code
80h = Attempt to start un-initialized watchdog
Invalid Session Handle or Empty Buffer
send_icmd ret = 0
ipmiutil cmd, completed successfully
# icmd 00 20 18 22
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
send_icmd ret = 0
ipmiutil cmd, completed successfully
# ipmiutil wdt -r
# iwdt -r
ipmiutil ver 3.08
iwdt ver 3.08
-- BMC version 1.07, IPMI version 2.0
wdt data: 01 03 01 00 64 00 64 00
Watchdog timer is stopped for use with BIOS FRB2. Logging
               pretimeout is 1 seconds, pre-action is None
               timeout is 10 seconds, counter is 10 seconds
               action is Power cycle
Resetting watchdog timer ...
reset_wdt: ret = 0
wdt data: 41 03 01 00 64 00 64 00
Watchdog timer is started for use with BIOS FRB2. Logging
               pretimeout is 1 seconds, pre-action is None
               timeout is 10 seconds, counter is 10 seconds
               action is Power cycle

ipmiutil wdt, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x06 0x22
rcvd: 22 80 Byte 1
Completion Code
80h = Attempt to start un-initialized watchdog

$ ipmi-raw 0x0 0x6 0x22
rcvd: 22 00 Byte 1
Completion Code
00h = Command Completed Normally

$ bmc-watchdog -r
$ bmc-watchdog --reset


Set Watchdog Timer - NetFn = App (0x06h), CMD = 0x24h, Privilege Level = Operator, M/O = M
| Linux | Hint: hover over Place your mouse over the highlighted area in below
for Request Data description
[IPMItool]
ipmitool raw 0x06 0x24 D[1] Byte 1
Timer Use
  [7] - 1b = don't log
  [6] - 1b = don't stop timer on Set Watchdog Timer command
        0b = timer stops automatically when Set Watchdog Timber command is received
[5:3] - reserved
[2:0] - timer use
        000b = reserved
        001b = BIOS FRB2
        010b = BIOS/POST
        011b = OS Load
        100b = SMS/OS
        101b = OEM
        110b = reserved
        111b = reserved
D[2] Byte 2
Timer Actions
  [7] - reserved
[6:4] - pre-timeout interrupt
        000b = none
        001b = SMI
        010b = NMI/Diagnostic Interrupt
        011b = Messaging Interrupt
        100b = reserved
        111b = reserved
  [3] - reserved
[2:0] - timeout action
        000b = no action
        001b = Hard Reset
        010b = Power Down
        011b = Power Cycle
        100b = reserved
        111b = reserved
D[3] Byte 3
Pre-timeout interval in seconds
  '1' based
D[4] Byte 4
Timer Use Expiration flags clear
(0b = leave alone, 1b = clear timer use expiration bit)
  [7] - reserved
  [6] - reserved
  [5] - OEM
  [4] - SMS/OS
  [3] - OS Load
  [2] - BIOS/POST
  [1] - BIOS FRB2
  [0] - reserved
D[5] Byte 5
Initial countdown value
LS byte (100 ms/count)
D[6] Byte 6
Initial countdown value
MS byte (100 ms/count)

ipmitool mc watchdog off
[ipmiutil]
ipmiutil cmd 00 20 18 24 D[1] Byte 1
Timer Use
  [7] - 1b = don't log
  [6] - 1b = don't stop timer on Set Watchdog Timer command
        0b = timer stops automatically when Set Watchdog Timber command is received
[5:3] - reserved
[2:0] - timer use
        000b = reserved
        001b = BIOS FRB2
        010b = BIOS/POST
        011b = OS Load
        100b = SMS/OS
        101b = OEM
        110b = reserved
        111b = reserved
D[2] Byte 2
Timer Actions
  [7] - reserved
[6:4] - pre-timeout interrupt
        000b = none
        001b = SMI
        010b = NMI/Diagnostic Interrupt
        011b = Messaging Interrupt
        100b = reserved
        111b = reserved
  [3] - reserved
[2:0] - timeout action
        000b = no action
        001b = Hard Reset
        010b = Power Down
        011b = Power Cycle
        100b = reserved
        111b = reserved
D[3] Byte 3
Pre-timeout interval in seconds
  '1' based
D[4] Byte 4
Timer Use Expiration flags clear
(0b = leave alone, 1b = clear timer use expiration bit)
  [7] - reserved
  [6] - reserved
  [5] - OEM
  [4] - SMS/OS
  [3] - OS Load
  [2] - BIOS/POST
  [1] - BIOS FRB2
  [0] - reserved
D[5] Byte 5
Initial countdown value
LS byte (100 ms/count)
D[6] Byte 6
Initial countdown value
MS byte (100 ms/count)

icmd 00 20 18 24 Data[1:6]
ipmiutil wdt -e -e
enable watchdog timer
-a N -a
set watchdog Action
N = 0, No action
N = 1, Hard Reset
N = 2, Power down
N = 3, Power cycle
-t N -t
set timeout to N seconds

ipmiutil wdt -d -d
disable watchdog timer

iwdt -e -e
enable watchdog timer
-a N -a
set watchdog Action
N = 0, No action
N = 1, Hard Reset
N = 2, Power down
N = 3, Power cycle
-t N -t
set timeout to N seconds

iwdt -d -d
disable watchdog timer

[FreeIPMI]
ipmi-raw 0x00 0x06 0x24 D[1] Byte 1
Timer Use
  [7] - 1b = don't log
  [6] - 1b = don't stop timer on Set Watchdog Timer command
        0b = timer stops automatically when Set Watchdog Timber command is received
[5:3] - reserved
[2:0] - timer use
        000b = reserved
        001b = BIOS FRB2
        010b = BIOS/POST
        011b = OS Load
        100b = SMS/OS
        101b = OEM
        110b = reserved
        111b = reserved
D[2] Byte 2
Timer Actions
  [7] - reserved
[6:4] - pre-timeout interrupt
        000b = none
        001b = SMI
        010b = NMI/Diagnostic Interrupt
        011b = Messaging Interrupt
        100b = reserved
        111b = reserved
  [3] - reserved
[2:0] - timeout action
        000b = no action
        001b = Hard Reset
        010b = Power Down
        011b = Power Cycle
        100b = reserved
        111b = reserved
D[3] Byte 3
Pre-timeout interval in seconds
  '1' based
D[4] Byte 4
Timer Use Expiration flags clear
(0b = leave alone, 1b = clear timer use expiration bit)
  [7] - reserved
  [6] - reserved
  [5] - OEM
  [4] - SMS/OS
  [3] - OS Load
  [2] - BIOS/POST
  [1] - BIOS FRB2
  [0] - reserved
D[5] Byte 5
Initial countdown value
LS byte (100 ms/count)
D[6] Byte 6
Initial countdown value
MS byte (100 ms/count)

bmc-watchdog -s -s
Set BMC Watchdog Config
-u INT -u
Set timer use
  1 = BIOS FRB2
  2 = BIOS POST
  3 = OS_LOAD
  4 = SMS OS
  5 = OEM
-a INT -a
Set timeout action
  0 = No action
  1 = Hard Reset
  2 = Power Down
  3 = Power Cycle
-z SECS -z
Set pre-timeout interval in seconds
-F -F Clear BIOS FRB2 Timer Use Flag
-P Clear BIOS POST Timer Use Flag
-L Clear OS Load Timer Use Flag
-S Clear SMS/OS Timer Use Flag
-O Clear OEM Timer Use Flag
-i SECS -i
Set initial countdown in seconds

bmc-watchdog --set --set
Set BMC Watchdog Config
--timer-use=INT --timer-use
Set timer use
  1 = BIOS FRB2
  2 = BIOS POST
  3 = OS_LOAD
  4 = SMS OS
  5 = OEM
--timeout-action=INT --timeout-action
Set timeout action
  0 = No action
  1 = Hard Reset
  2 = Power Down
  3 = Power Cycle
--pre-timeout-interval=SECS --pre-timeout-interval
Set pre-timeout interval in seconds
--clear-bios-frb2 --clear-bios-frb2 Clear BIOS FRB2 Timer Use Flag
--clear-bios-post Clear BIOS POST Timer Use Flag
--clear-os-load Clear OS Load Timer Use Flag
--clear-sms-os Clear SMS/OS Timer Use Flag
--clear-oem Clear OEM Timer Use Flag
--initial-countdown=SECS --initial-countdown
Set initial countdown in seconds

| MS-DOS |
[ipmitool]
ipmitool 20 18 24 Data[1:6]
[ipmiutil]
ipmiutil cmd 00 20 18 24 Data[1:6]
ipmiutil wdt -e -a N -t N
ipmiutil wdt -d
iwdt -e -a N -t N
iwdt -d

For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in below
for Request/Response Data description
$ ipmitool raw 0x06 0x24 0x01 Byte 1
Timer Use
  [7] - 1b = don't log
  [6] - 1b = don't stop timer on Set Watchdog Timer command
        0b = timer stops automatically when Set Watchdog Timber command is received
[5:3] - reserved
[2:0] - timer use
        000b = reserved
        001b = BIOS FRB2
        010b = BIOS/POST
        011b = OS Load
        100b = SMS/OS
        101b = OEM
        110b = reserved
        111b = reserved
0x03 Byte 2
Timer Actions
  [7] - reserved
[6:4] - pre-timeout interrupt
        000b = none
        001b = SMI
        010b = NMI/Diagnostic Interrupt
        011b = Messaging Interrupt
        100b = reserved
        111b = reserved
  [3] - reserved
[2:0] - timeout action
        000b = no action
        001b = Hard Reset
        010b = Power Down
        011b = Power Cycle
        100b = reserved
        111b = reserved
0x01 Byte 3
Pre-timeout interval in seconds
  '1' based
0x02 Byte 4
Timer Use Expiration flags clear
(0b = leave alone, 1b = clear timer use expiration bit)
  [7] - reserved
  [6] - reserved
  [5] - OEM
  [4] - SMS/OS
  [3] - OS Load
  [2] - BIOS/POST
  [1] - BIOS FRB2
  [0] - reserved
0x64 Byte 5
Initial countdown value
LS byte (100 ms/count)
0x00 Byte 6
Initial countdown value
MS byte (100 ms/count)


$ ipmitool mc watchdog off
Watchdog Timer Shutoff successful -- timer stopped
[ipmiutil in Linux]
$ icmd 00 20 18 24 01 Byte 1
Timer Use
  [7] - 1b = don't log
  [6] - 1b = don't stop timer on Set Watchdog Timer command
        0b = timer stops automatically when Set Watchdog Timber command is received
[5:3] - reserved
[2:0] - timer use
        000b = reserved
        001b = BIOS FRB2
        010b = BIOS/POST
        011b = OS Load
        100b = SMS/OS
        101b = OEM
        110b = reserved
        111b = reserved
03 Byte 2
Timer Actions
  [7] - reserved
[6:4] - pre-timeout interrupt
        000b = none
        001b = SMI
        010b = NMI/Diagnostic Interrupt
        011b = Messaging Interrupt
        100b = reserved
        111b = reserved
  [3] - reserved
[2:0] - timeout action
        000b = no action
        001b = Hard Reset
        010b = Power Down
        011b = Power Cycle
        100b = reserved
        111b = reserved
01 Byte 3
Pre-timeout interval in seconds
  '1' based
02 Byte 4
Timer Use Expiration flags clear
(0b = leave alone, 1b = clear timer use expiration bit)
  [7] - reserved
  [6] - reserved
  [5] - OEM
  [4] - SMS/OS
  [3] - OS Load
  [2] - BIOS/POST
  [1] - BIOS FRB2
  [0] - reserved
64 Byte 5
Initial countdown value
LS byte (100 ms/count)
00 Byte 6
Initial countdown value
MS byte (100 ms/count)

ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
send_icmd ret = 0
ipmiutil cmd, completed successfully
$ ipmiutil wdt -e -e
enable watchdog timer
-a 3 -a N
set watchdog Action
N = 0, No action
N = 1, Hard Reset
N = 2, Power down
N = 3, Power cycle
-t 10 -t N
set timeout to N seconds

ipmiutil ver 3.08
iwdt ver 3.08
-- BMC version 1.07, IPMI version 2.0
wdt data: 01 00 1e 00 b0 04 b0 04
Watchdog timer is stopped for use with BIOS FRB2. Logging
               pretimeout is 30 seconds, pre-action is None
               timeout is 120 seconds, counter is 120 seconds
               action is No action
Setting watchdog timer to 10 seconds ...
wdt data: 04 03 00 00 64 00 64 00
Watchdog timer is stopped for use with SMS/OS. Logging
               pretimeout is 0 seconds, pre-action is None
               timeout is 10 seconds, counter is 10 seconds
               action is Power cycle

ipmiutil wdt, completed successfully
$ iwdt -d -d
disable watchdog timer

ipmiutil ver 3.08
iwdt ver 3.08
-- BMC version 1.07, IPMI version 2.0
wdt data: 04 03 00 00 64 00 64 00
Watchdog timer is stopped for use with SMS/OS. Logging
               pretimeout is 0 seconds, pre-action is None
               timeout is 10 seconds, counter is 10 seconds
               action is Power cycle
Disabling watchdog timer ...
wdt data: 01 00 1e 00 b0 04 b0 04
Watchdog timer is stopped for use with BIOS FRB2. Logging
               pretimeout is 30 seconds, pre-action is None
               timeout is 120 seconds, counter is 120 seconds
               action is No action

ipmiutil wdt, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x0 0x6 0x24 0x01 Byte 1
Timer Use
  [7] - 1b = don't log
  [6] - 1b = don't stop timer on Set Watchdog Timer command
        0b = timer stops automatically when Set Watchdog Timber command is received
[5:3] - reserved
[2:0] - timer use
        000b = reserved
        001b = BIOS FRB2
        010b = BIOS/POST
        011b = OS Load
        100b = SMS/OS
        101b = OEM
        110b = reserved
        111b = reserved
0x03 Byte 2
Timer Actions
  [7] - reserved
[6:4] - pre-timeout interrupt
        000b = none
        001b = SMI
        010b = NMI/Diagnostic Interrupt
        011b = Messaging Interrupt
        100b = reserved
        111b = reserved
  [3] - reserved
[2:0] - timeout action
        000b = no action
        001b = Hard Reset
        010b = Power Down
        011b = Power Cycle
        100b = reserved
        111b = reserved
0x01 Byte 3
Pre-timeout interval in seconds
  '1' based
0x02 Byte 4
Timer Use Expiration flags clear
(0b = leave alone, 1b = clear timer use expiration bit)
  [7] - reserved
  [6] - reserved
  [5] - OEM
  [4] - SMS/OS
  [3] - OS Load
  [2] - BIOS/POST
  [1] - BIOS FRB2
  [0] - reserved
0x64 Byte 5
Initial countdown value
LS byte (100 ms/count)
0x00 Byte 6
Initial countdown value
MS byte (100 ms/count)

rcvd: 24 00 Byte 1
Completion Code
00h = Command Completed Normally

bmc-watchdog -s -s
Set BMC Watchdog Config
-u 1 -u INT
Set timer use
  1 = BIOS FRB2
  2 = BIOS POST
  3 = OS_LOAD
  4 = SMS OS
  5 = OEM
-a 3 -a INT
Set timeout action
  0 = No action
  1 = Hard Reset
  2 = Power Down
  3 = Power Cycle
-z 1 -z SECS
Set pre-timeout interval in seconds
-F -F Clear BIOS FRB2 Timer Use Flag
-P Clear BIOS POST Timer Use Flag
-L Clear OS Load Timer Use Flag
-S Clear SMS/OS Timer Use Flag
-O Clear OEM Timer Use Flag
-i 10 -i SECS
Set initial countdown in seconds

bmc-watchdog --set --set
Set BMC Watchdog Config
--timer-use=1 --timer-use=INT
Set timer use
  1 = BIOS FRB2
  2 = BIOS POST
  3 = OS_LOAD
  4 = SMS OS
  5 = OEM
--timeout-action=3 --timeout-action=INT
Set timeout action
  0 = No action
  1 = Hard Reset
  2 = Power Down
  3 = Power Cycle
--pre-timeout-interval=1 --pre-timeout-interval=SECS
Set pre-timeout interval in seconds
--clear-bios-frb2 --clear-bios-frb2 Clear BIOS FRB2 Timer Use Flag
--clear-bios-post Clear BIOS POST Timer Use Flag
--clear-os-load Clear OS Load Timer Use Flag
--clear-sms-os Clear SMS/OS Timer Use Flag
--clear-oem Clear OEM Timer Use Flag
--initial-countdown=10 --initial-countdown=SECS
Set initial countdown in seconds



Get Watchdog Timer - NetFn = App (0x06h), CMD = 0x25h, Privilege Level = User, M/O = M
| Linux |
[IPMItool]
ipmitool raw 0x06 0x25
ipmitool mc watchdog get
[ipmiutil]
ipmiutil cmd 00 20 18 25
ipmiutil wdt
ipmiutil wdt -c
iwdt
iwdt -c
[FreeIPMI]
ipmi-raw 0x00 0x06 0x25
bmc-watchdog -g
bmc-watchdog --get
| MS-DOS |
[ipmitool]
ipmitool 20 18 25
[ipmiutil]
ipmiutil cmd 00 20 18 25
ipmiutil wdt
ipmiutil wdt -c
iwdt
iwdt -c

For example
[IPMItool in Linux] Hint: hover over Place your mouse over the highlighted area in below
for Request/Response Data description
$ ipmitool raw 0x06 0x25
 01 Byte 2
Timer Use
  [7] - 1b = don't log
  [6] - 1b = don't stop timer on Set Watchdog Timer command
        0b = timer stops automatically when Set Watchdog Timber command is received
[5:3] - reserved
[2:0] - timer use
        000b = reserved
        001b = BIOS FRB2
        010b = BIOS/POST
        011b = OS Load
        100b = SMS/OS
        101b = OEM
        110b = reserved
        111b = reserved
03 Byte 3
Timer Actions
  [7] - reserved
[6:4] - pre-timeout interrupt
        000b = none
        001b = SMI
        010b = NMI/Diagnostic Interrupt
        011b = Messaging Interrupt
        100b = reserved
        111b = reserved
  [3] - reserved
[2:0] - timeout action
        000b = no action
        001b = Hard Reset
        010b = Power Down
        011b = Power Cycle
        100b = reserved
        111b = reserved
01 Byte 4
Pre-timeout interval in seconds
  '1' based
00 Byte 5
Timer Use Expiration flags
(1b = timer expired while associated ‘use’ was selected)
  [7] - reserved
  [6] - reserved
  [5] - OEM
  [4] - SMS/OS
  [3] - OS Load
  [2] - BIOS/POST
  [1] - BIOS FRB2
  [0] - reserved
64 Byte 6
Initial countdown value
LS byte (100 ms/count)
00 Byte 7
Initial countdown value
MS byte (100 ms/count)
64 Byte 8
Present countdown value
LS byte (100 ms/count)
00 Byte 9
Present countdown value
MS byte (100 ms/count)

$ ipmitool mc watchdog get
Watchdog Timer Use:     BIOS FRB2 (0x81)
Watchdog Timer Is:      Stopped
Watchdog Timer Actions: Power Cycle (0x03)
Pre-timeout interval:   1 seconds
Timer Expiration Flags: 0x00
Initial Countdown:      10 sec
Present Countdown:      10 sec
[ipmiutil in Linux]
$ ipmiutil cmd 00 20 18 25
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=8]: 01 Byte 2
Timer Use
  [7] - 1b = don't log
  [6] - 1b = don't stop timer on Set Watchdog Timer command
        0b = timer stops automatically when Set Watchdog Timber command is received
[5:3] - reserved
[2:0] - timer use
        000b = reserved
        001b = BIOS FRB2
        010b = BIOS/POST
        011b = OS Load
        100b = SMS/OS
        101b = OEM
        110b = reserved
        111b = reserved
03 Byte 3
Timer Actions
  [7] - reserved
[6:4] - pre-timeout interrupt
        000b = none
        001b = SMI
        010b = NMI/Diagnostic Interrupt
        011b = Messaging Interrupt
        100b = reserved
        111b = reserved
  [3] - reserved
[2:0] - timeout action
        000b = no action
        001b = Hard Reset
        010b = Power Down
        011b = Power Cycle
        100b = reserved
        111b = reserved
01 Byte 4
Pre-timeout interval in seconds
  '1' based
00 Byte 5
Timer Use Expiration flags
(1b = timer expired while associated ‘use’ was selected)
  [7] - reserved
  [6] - reserved
  [5] - OEM
  [4] - SMS/OS
  [3] - OS Load
  [2] - BIOS/POST
  [1] - BIOS FRB2
  [0] - reserved
64 Byte 6
Initial countdown value
LS byte (100 ms/count)
00 Byte 7
Initial countdown value
MS byte (100 ms/count)
64 Byte 8
Present countdown value
LS byte (100 ms/count)
00 Byte 9
Present countdown value
MS byte (100 ms/count)

send_icmd ret = 0
ipmiutil cmd, completed successfully
$ ipmiutil wdt
$ iwdt
ipmiutil ver 3.08
iwdt ver 3.08
-- BMC version 1.07, IPMI version 2.0
wdt data: 01 Byte 2
Timer Use
  [7] - 1b = don't log
  [6] - 1b = don't stop timer on Set Watchdog Timer command
        0b = timer stops automatically when Set Watchdog Timber command is received
[5:3] - reserved
[2:0] - timer use
        000b = reserved
        001b = BIOS FRB2
        010b = BIOS/POST
        011b = OS Load
        100b = SMS/OS
        101b = OEM
        110b = reserved
        111b = reserved
03 Byte 3
Timer Actions
  [7] - reserved
[6:4] - pre-timeout interrupt
        000b = none
        001b = SMI
        010b = NMI/Diagnostic Interrupt
        011b = Messaging Interrupt
        100b = reserved
        111b = reserved
  [3] - reserved
[2:0] - timeout action
        000b = no action
        001b = Hard Reset
        010b = Power Down
        011b = Power Cycle
        100b = reserved
        111b = reserved
01 Byte 4
Pre-timeout interval in seconds
  '1' based
00 Byte 5
Timer Use Expiration flags
(1b = timer expired while associated ‘use’ was selected)
  [7] - reserved
  [6] - reserved
  [5] - OEM
  [4] - SMS/OS
  [3] - OS Load
  [2] - BIOS/POST
  [1] - BIOS FRB2
  [0] - reserved
64 Byte 6
Initial countdown value
LS byte (100 ms/count)
00 Byte 7
Initial countdown value
MS byte (100 ms/count)
64 Byte 8
Present countdown value
LS byte (100 ms/count)
00 Byte 9
Present countdown value
MS byte (100 ms/count)

Watchdog timer is stopped for use with BIOS FRB2. Logging
               pretimeout is 1 seconds, pre-action is None
               timeout is 10 seconds, counter is 10 seconds
               action is Power cycle

ipmiutil wdt, completed successfully
$ ipmiutil wdt -c
$ iwdt -c
ipmiutil ver 3.08
iwdt ver 3.08
-- BMC version 1.07, IPMI version 2.0
Watchdog timer state    | stopped
  Use with              | BIOS FRB2
  Log mode              | Logging
  Pretimeout            | 1 seconds
  Pre-action            | None
  Timeout               | 10 seconds
  Counter               | 10 seconds
  Action                | Power cycle

ipmiutil wdt, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x06 0x25
rcvd: 25 00 Byte 1
Completion Code
00h = Command Completed Normally
01 Byte 2
Timer Use
  [7] - 1b = don't log
  [6] - 1b = don't stop timer on Set Watchdog Timer command
        0b = timer stops automatically when Set Watchdog Timber command is received
[5:3] - reserved
[2:0] - timer use
        000b = reserved
        001b = BIOS FRB2
        010b = BIOS/POST
        011b = OS Load
        100b = SMS/OS
        101b = OEM
        110b = reserved
        111b = reserved
03 Byte 3
Timer Actions
  [7] - reserved
[6:4] - pre-timeout interrupt
        000b = none
        001b = SMI
        010b = NMI/Diagnostic Interrupt
        011b = Messaging Interrupt
        100b = reserved
        111b = reserved
  [3] - reserved
[2:0] - timeout action
        000b = no action
        001b = Hard Reset
        010b = Power Down
        011b = Power Cycle
        100b = reserved
        111b = reserved
01 Byte 4
Pre-timeout interval in seconds
  '1' based
00 Byte 5
Timer Use Expiration flags
(1b = timer expired while associated ‘use’ was selected)
  [7] - reserved
  [6] - reserved
  [5] - OEM
  [4] - SMS/OS
  [3] - OS Load
  [2] - BIOS/POST
  [1] - BIOS FRB2
  [0] - reserved
64 Byte 6
Initial countdown value
LS byte (100 ms/count)
00 Byte 7
Initial countdown value
MS byte (100 ms/count)
64 Byte 8
Present countdown value
LS byte (100 ms/count)
00 Byte 9
Present countdown value
MS byte (100 ms/count)

$ bmc-watchdog -g
$ bmc-watchdog --get
Timer Use:                   BIOS FRB2
Timer:                       Stopped
Logging:                     Enabled
Timeout Action:              Power Cycle
Pre-Timeout Interrupt:       None
Pre-Timeout Interval:        1 seconds
Timer Use BIOS FRB2 Flag:    Clear
Timer Use BIOS POST Flag:    Clear
Timer Use BIOS OS Load Flag: Clear
Timer Use BIOS SMS/OS Flag:  Clear
Timer Use BIOS OEM Flag:     Clear
Initial Countdown:           10 seconds
Current Countdown:           10 seconds


Test Procedure
[IPMItool in Linux]
Step 1. Set Watchdog Timer
$ ipmitool raw 0x06 0x24 0x01 0x03 0x01 0x02 0x64 0x00
Step 2. Reset Watchdog Timer
$ ipmitool raw 0x06 0x22
Step 3. Get Watchdog Timer
$ ipmitool raw 0x06 0x25


Reference
[1] "Intelligent Platform Management Interface Specification Second Generation v2.0 Document Revision 1.1"
https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmi-second-gen-interface-spec-v2-rev1-1.pdf
[2] "IPMItool" http://sourceforge.net/projects/ipmitool/
[3] "IPMI Command Test Tool" http://www.intel.com/design/servers/ipmi/ipmi_tool.htm
[4] "IPMIUTIL USER GUIDE" http://ipmiutil.sourceforge.net/
[5] "FreeIPMI Documentation" http://www.gnu.org/software/freeipmi/index.html

Last Updated: May 10, 2018

No comments:

Post a Comment