diff --git a/ipmi/test_ipmi_poh_counter.robot b/ipmi/test_ipmi_poh_counter.robot
new file mode 100644
index 0000000..8f2ff85
--- /dev/null
+++ b/ipmi/test_ipmi_poh_counter.robot
@@ -0,0 +1,163 @@
+*** Settings ***
+Documentation       This suite tests IPMI POH Counter Support in OpenBMC.
+...                 Feature: IPMI POH Counter Support
+...
+...                 POH (Power-On Hours) counter is the incremental count of power ON hours in the system.
+...
+...                 Request and Response data defined under data/ipmi_raw_cmd_table.py
+...
+...                 Testcases added -
+...                 Get POH Counter Command Via IPMI
+...                 Verify Get POH Counter With Invalid Data Request Via IPMI
+...                 Verify POH Counter Reading With Wait Time
+...                 Verify POH Counter Reading With Host Power Off
+...                 Verify POH Counter Reading With Host Power On
+...
+...                 Script compares Minutes per count and Counter reading for the above scenarios.
+...
+...                 Minutes per count usually 60 minutes.
+...
+...                 Wait Time given - 1 hour, 1 hour 30minutes when Host power OFF, 1 hour after Host Power ON
+...
+...                 Comparison between Initial POH Counter reading and reading after wait time / Power operation.
+
+
+Library             Collections
+Library             ../lib/ipmi_utils.py
+Resource            ../lib/ipmi_client.robot
+Resource            ../lib/openbmc_ffdc.robot
+Variables           ../data/ipmi_raw_cmd_table.py
+
+Suite Setup      Suite Setup Execution
+Suite Teardown   Suite Teardown Execution
+
+Test Teardown    FFDC On Test Case Fail
+
+
+*** Variables ***
+
+
+*** Test Cases ***
+
+Get POH Counter Command Via IPMI
+    [Documentation]  Verify get POH counter command Via IPMI.
+    [Tags]  Get_POH_Counter_Command_Via_IPMI
+
+    # Verify get POH counter command via IPMI.
+    ${resp}=  Run IPMI Command
+    ...  ${IPMI_RAW_CMD['Get']['POH_Counter'][0]}
+    Should Not Contain  ${resp}  ${IPMI_RAW_CMD['Get']['POH_Counter'][1]}
+
+
+Verify Get POH Counter With Invalid Data Request Via IPMI
+    [Documentation]  Verify get POH counter with invalid data request via IPMI.
+    [Tags]  Verify_Get_POH_Counter_With_Invalid_Data_Request_Via_IPMI
+
+    # verify get POH counter command with invalid data request Via IPMI.
+    ${resp}=  Run Keyword and Expect Error  *Request data length invalid*
+    ...  Run IPMI Command  ${IPMI_RAW_CMD['Get']['POH_Counter'][0]} 0x00
+
+
+Verify POH Counter Reading With Wait Time
+    [Documentation]  Verify POH counter reading with wait time via IPMI.
+    [Tags]  Verify_POH_Counter_Reading_With_Wait_Time
+
+    # Get initial POH command counter reading.
+    ${poh_counter_1}=  Run Get POH Command And Return Counter Reading
+
+    # Sleep for given time.
+    Sleep  1h
+
+    # Get POH Counter Reading after waiting for given time period.
+    ${poh_counter_2}=  Run Get POH Command And Return Counter Reading
+
+    # Verify difference between initial and present counter readings.
+    # The counter reading should always be incremented by 1 for each hour.
+    ${difference}=  Evaluate   ${poh_counter_2} - ${poh_counter_1}
+    Should Be Equal As Integers  ${difference}  1
+
+
+Verify POH Counter Reading With Host Power Off
+    [Documentation]  Verify POH counter reading with wait time after host power off.
+    [Tags]  Verify_POH_Counter_Reading_With_Host_Power_Off
+
+    # Get initial POH command counter reading.
+    ${poh_counter_1}=  Run Get POH Command And Return Counter Reading
+
+    # Power off the system.
+    IPMI Power Off
+
+    # Sleep for given time.
+    Sleep  1 hours 30 minutes
+
+    # Get POH counter reading after waiting for given time period.
+    ${poh_counter_2}=  Run Get POH Command And Return Counter Reading
+
+    # Once the system is powered off,
+    # the poh counter reading should not increment.
+    Should Be Equal As Integers  ${poh_counter_2}  ${poh_counter_1}
+
+
+Verify POH Counter Reading With Host Power On
+    [Documentation]  Verify Get POH Counter with wait time after host power on.
+    [Tags]  Verify_POH_Counter_Reading_With_Host_Power_On
+
+    # Get initial POH command counter reading.
+    ${poh_counter_1}=  Run Get POH Command And Return Counter Reading
+
+    # Power on the system.
+    IPMI Power On
+
+    # Sleep for given time.
+    Sleep  1h
+
+    # Get POH Counter reading after waiting for given time period.
+    ${poh_counter_2}=  Run Get POH Command And Return Counter Reading
+
+    # Once the system is powered on,
+    # the pon counter reading should increment by 1.
+    ${difference}=  Evaluate   ${poh_counter_2} - ${poh_counter_1}
+    Should Be Equal As Integers  ${difference}  1
+
+
+*** Keywords ***
+
+Run Get POH Command And Return Counter Reading
+    [Documentation]  Run the IPMI command to Get POH Counter.
+
+    # Get POH counter Via IPMI.
+    ${resp}=  Run IPMI Command
+    ...  ${IPMI_RAW_CMD['Get']['POH_Counter'][0]}
+
+    # Verify Minutes per count.
+    ${data}=  Split String  ${resp}
+    Should Be Equal  ${data[0]}  3c
+
+    # Get POH Command counter reading.
+    ${poh_counter_reading}=  Set Variable  ${data[1:]}
+    Reverse List  ${poh_counter_reading}
+    ${poh_counter_reading}=  Evaluate  "".join(${poh_counter_reading})
+    ${poh_counter_reading}=  Convert To Integer  ${poh_counter_reading}  16
+
+    [Return]  ${poh_counter_reading}
+
+
+Suite Setup Execution
+    [Documentation]  Suite Setup Execution.
+
+    Redfish.Login
+
+    # Check Host current status.
+    ${current_host_state}=  Get Host State Via Redfish
+
+    # If Host state is 'On' then the condition will not be executed.
+    # Host may take approx 5 - 6 minutes to complete power ON process.
+    Run Keyword If  '${current_host_state}' == 'Off'
+    ...  IPMI Power On
+
+
+Suite Teardown Execution
+    [Documentation]  Suite Teardown Execution.
+
+    IPMI Power On
+    Redfish.Logout
