diff --git a/data/variables.py b/data/variables.py
index 0c2a11e..342c5ee 100644
--- a/data/variables.py
+++ b/data/variables.py
@@ -39,6 +39,7 @@
 CHASSIS_POWERON_STATE = 'xyz.openbmc_project.State.Chassis.PowerState.On'
 
 # State Manager URI variables.
+SYSTEM_STATE_URI = '/xyz/openbmc_project/state/'
 BMC_STATE_URI = '/xyz/openbmc_project/state/bmc0/'
 HOST_STATE_URI = '/xyz/openbmc_project/state/host0/'
 CHASSIS_STATE_URI = '/xyz/openbmc_project/state/chassis0/'
diff --git a/lib/state_map.py b/lib/state_map.py
index e0f30a1..4ca309e 100644
--- a/lib/state_map.py
+++ b/lib/state_map.py
@@ -6,50 +6,132 @@
    - Defines Valid states of the system
 
 """
+import os
+import re
+import sys
+
 from robot.libraries.BuiltIn import BuiltIn
 
+robot_pgm_dir_path = os.path.dirname(__file__) + os.sep
+repo_data_dir_path = re.sub('/lib', '/data', robot_pgm_dir_path)
+sys.path.append(repo_data_dir_path)
+
+import gen_robot_keyword as keyword
+import variables as var
+
 BuiltIn().import_resource("state_manager.robot")
+BuiltIn().import_resource("rest_client.robot")
 
 # We will build eventually the mapping for warm, cold reset as well.
 VALID_STATES = {
     'reboot':
     {
-         # (Power Policy, BMC state, Chassis State, Host State)
-         ('LEAVE_OFF','Ready','Off','Off'),
-         ('ALWAYS_POWER_ON','Ready','On','Running'),
-         ('ALWAYS_POWER_ON','Ready','On','Off'),
-         ('RESTORE_LAST_STATE','Ready','On','Running'),
-         ('RESTORE_LAST_STATE','Ready','On','Off'),
-         ('RESTORE_LAST_STATE','Ready','Off','Off'),
+        # (Power Policy, BMC state, Chassis State, Host State)
+        ('LEAVE_OFF', 'Ready', 'Off', 'Off'),
+        ('ALWAYS_POWER_ON', 'Ready', 'On', 'Running'),
+        ('ALWAYS_POWER_ON', 'Ready', 'On', 'Off'),
+        ('RESTORE_LAST_STATE', 'Ready', 'On', 'Running'),
+        ('RESTORE_LAST_STATE', 'Ready', 'On', 'Off'),
+        ('RESTORE_LAST_STATE', 'Ready', 'Off', 'Off'),
+    },
+}
+
+VALID_BOOT_STATES = {
+    'Off':  # Valid states when Host is Off.
+    {
+        # (BMC , Chassis , Host , BootProgress, OperatingSystemState)
+        (
+            "xyz.openbmc_project.State.BMC.BMCState.Ready",
+            "xyz.openbmc_project.State.Chassis.PowerState.Off",
+            "xyz.openbmc_project.State.Host.HostState.Off",
+            "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified",
+            "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive"
+        ),
+    },
+    'Reboot':  # Valid states when BMC reset to standby.
+    {
+        # (BMC , Chassis , Host , BootProgress, OperatingSystemState)
+        (
+            "xyz.openbmc_project.State.BMC.BMCState.Ready",
+            "xyz.openbmc_project.State.Chassis.PowerState.Off",
+            "xyz.openbmc_project.State.Host.HostState.Off",
+            "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified",
+            "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive"
+        ),
+    },
+    'Running':  # Valid states when Host is powering on.
+    {
+        # (BMC , Chassis , Host , BootProgress, OperatingSystemState)
+        (
+            "xyz.openbmc_project.State.BMC.BMCState.Ready",
+            "xyz.openbmc_project.State.Chassis.PowerState.On",
+            "xyz.openbmc_project.State.Host.HostState.Running",
+            "xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit",
+            "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive"
+        ),
+    },
+    'Booted':  # Valid state when Host is booted.
+    {
+        # (BMC , Chassis , Host , BootProgress, OperatingSystemState)
+        (
+            "xyz.openbmc_project.State.BMC.BMCState.Ready",
+            "xyz.openbmc_project.State.Chassis.PowerState.On",
+            "xyz.openbmc_project.State.Host.HostState.Running",
+            "xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart",
+            "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete"
+        ),
+    },
+    'ResetReload':  # Valid state BMC reset reload when host is booted.
+    {
+        # (BMC , Chassis , Host , BootProgress, OperatingSystemState)
+        (
+            "xyz.openbmc_project.State.BMC.BMCState.Ready",
+            "xyz.openbmc_project.State.Chassis.PowerState.On",
+            "xyz.openbmc_project.State.Host.HostState.Running",
+            "xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart",
+            "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete"
+        ),
     },
 }
 
 
+###############################################################################
 class state_map():
 
-    def get_system_state(self):
+    def get_boot_state(self):
         r"""
-        Return the system state as a tuple of power policy, bmc, chassis and
-        host states.
+        Return the system state as a tuple of bmc, chassis, host state,
+        BootProgress and OperatingSystemState.
         """
-        power_policy = BuiltIn().run_keyword('Get System Power Policy')
-        bmc_state = BuiltIn().run_keyword('Get BMC State')
-        chassis_state = BuiltIn().run_keyword('Get Chassis Power State')
-        host_state = BuiltIn().run_keyword('Get Host State')
-        return (str(power_policy),
-                str(bmc_state),
+
+        status, state = keyword.run_key("Read Properties  " +
+                                        var.SYSTEM_STATE_URI + "enumerate")
+        bmc_state = state[var.SYSTEM_STATE_URI + 'bmc0']['CurrentBMCState']
+        chassis_state = \
+            state[var.SYSTEM_STATE_URI + 'chassis0']['CurrentPowerState']
+        host_state = state[var.SYSTEM_STATE_URI + 'host0']['CurrentHostState']
+        boot_state = state[var.SYSTEM_STATE_URI + 'host0']['BootProgress']
+        os_state = \
+            state[var.SYSTEM_STATE_URI + 'host0']['OperatingSystemState']
+
+        return (str(bmc_state),
                 str(chassis_state),
-                str(host_state))
+                str(host_state),
+                str(boot_state),
+                str(os_state))
 
     def valid_boot_state(self, boot_type, state_set):
         r"""
         Validate a given set of states is valid.
 
-        Description of arguments:
-        boot_type   Reset type (reboot/warm/cold)
-        state_set   State set (bmc,chassis,host)
+        Description of argument(s):
+        boot_type   Boot type (e.g. off/running/host booted etc.)
+        state_set   State set
+                    (e.g.bmc,chassis,host,BootProgress,OperatingSystemState)
         """
-        if state_set in set(VALID_STATES[boot_type]):
+
+        if state_set in set(VALID_BOOT_STATES[boot_type]):
             return True
         else:
             return False
+###############################################################################
diff --git a/tests/test_soft_boot_sensors.robot b/tests/test_soft_boot_sensors.robot
new file mode 100644
index 0000000..afe8069
--- /dev/null
+++ b/tests/test_soft_boot_sensors.robot
@@ -0,0 +1,263 @@
+*** Settings ***
+Documentation   Suite for testing non sensors.
+
+Library      ../lib/state_map.py
+Resource     ../lib/utils.robot
+Resource     ../lib/boot_utils.robot
+Resource     ../lib/state_manager.robot
+Resource     ../lib/openbmc_ffdc.robot
+
+Test Teardown     Post Test Case Execution
+
+*** Variables ***
+
+${stack_mode}   skip
+
+*** Test Cases ***
+
+Verify Boot AttemptsLeft
+    [Documentation]  Verify system boot attempts on various boot states.
+    [Tags]  Verify_Boot_AttemptsLeft
+    [Template]  Validate Boot AttemptsLeft
+
+    # Example: Expected state
+    # "data": {
+    #    "/xyz/openbmc_project/state/host0": {
+    #      "AttemptsLeft": 3,
+    #      "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified",
+    #      "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Off",
+    #      "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive",
+    #      "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.Off"
+    #    }
+    # }
+
+    # System at standby    AttemptsLeft
+    Reboot                 3
+    Booted                 2
+    RebootHost             1
+    Ready                  1
+
+
+Verify Boot Sensor States At Ready
+    [Documentation]  Verify system boot states at "Ready" state.
+    [Tags]  Verify_Boot_Sensor_States_At_Ready
+    [Template]  Valid Boot States
+
+    # Example: Expected state
+    # "data": {
+    #    "/xyz/openbmc_project/state/bmc0": {
+    #      "CurrentBMCState": "xyz.openbmc_project.State.BMC.BMCState.Ready",
+    #      "RequestedBMCTransition": "xyz.openbmc_project.State.BMC.Transition.None"
+    #    },
+    #    "/xyz/openbmc_project/state/chassis0": {
+    #      "CurrentPowerState": "xyz.openbmc_project.State.Chassis.PowerState.Off",
+    #      "RequestedPowerTransition": "xyz.openbmc_project.State.Chassis.Transition.Off"
+    #    },
+    #    "/xyz/openbmc_project/state/host0": {
+    #      "AttemptsLeft": 3,
+    #      "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified",
+    #      "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Off",
+    #      "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive",
+    #      "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.Off"
+    #    }
+    # }
+
+    # System at standby.
+    Off
+
+
+Verify Boot Sensor States On Reboot Ready
+    [Documentation]  Verify system boot states at "Ready" state.
+    [Tags]  Verify_Boot_Sensor_States_On_Reboot_Ready
+    [Template]  Valid Boot States
+
+    # Example: Expected state
+    # "data": {
+    #    "/xyz/openbmc_project/state/bmc0": {
+    #      "CurrentBMCState": "xyz.openbmc_project.State.BMC.BMCState.Ready",
+    #      "RequestedBMCTransition": "xyz.openbmc_project.State.BMC.Transition.None"
+    #    },
+    #    "/xyz/openbmc_project/state/chassis0": {
+    #      "CurrentPowerState": "xyz.openbmc_project.State.Chassis.PowerState.Off",
+    #      "RequestedPowerTransition": "xyz.openbmc_project.State.Chassis.Transition.Off"
+    #    },
+    #    "/xyz/openbmc_project/state/host0": {
+    #      "AttemptsLeft": 3,
+    #      "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified",
+    #      "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Off",
+    #      "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive",
+    #      "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.Off"
+    #    }
+    # }
+
+    # BMC on reset to standby.
+    Reboot
+
+
+Verify Boot Sensor States At Running
+    [Documentation]  Verify system boot states at "Running" state.
+    [Tags]  Verify_Boot_Sensor_States_At_Running
+    [Template]  Valid Boot States
+
+    # Example: Expected state
+    # "data": {
+    #    "/xyz/openbmc_project/state/bmc0": {
+    #      "CurrentBMCState": "xyz.openbmc_project.State.BMC.BMCState.Ready",
+    #      "RequestedBMCTransition": "xyz.openbmc_project.State.BMC.Transition.None"
+    #   },
+    #   "/xyz/openbmc_project/state/chassis0": {
+    #      "CurrentPowerState": "xyz.openbmc_project.State.Chassis.PowerState.On",
+    #      "RequestedPowerTransition": "xyz.openbmc_project.State.Chassis.Transition.Off"
+    #   },
+    #   "/xyz/openbmc_project/state/host0": {
+    #      "AttemptsLeft": 2,
+    #      "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit",
+    #      "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Running",
+    #      "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive",
+    #      "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.On"
+    #   }
+    # }
+
+    # System at Running state but during initial state.
+    Running
+
+
+Verify Boot Sensor States At Host Booted
+    [Documentation]  Verify system boot states when host is booted.
+    [Tags]  Verify_Boot_Sensor_States_At_Host_Booted
+    [Template]  Valid Boot States
+
+    # Example: Expected state
+    # "data": {
+    #    "/xyz/openbmc_project/state/bmc0": {
+    #      "CurrentBMCState": "xyz.openbmc_project.State.BMC.BMCState.Ready",
+    #      "RequestedBMCTransition": "xyz.openbmc_project.State.BMC.Transition.None"
+    #   },
+    #   "/xyz/openbmc_project/state/chassis0": {
+    #      "CurrentPowerState": "xyz.openbmc_project.State.Chassis.PowerState.On",
+    #      "RequestedPowerTransition": "xyz.openbmc_project.State.Chassis.Transition.Off"
+    #   },
+    #   "/xyz/openbmc_project/state/host0": {
+    #      "AttemptsLeft": 3,
+    #      "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart",
+    #      "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Running",
+    #      "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete",
+    #      "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.On"
+    #   }
+    # }
+
+    # System when host is booted.
+    Booted
+
+
+Verify Boot Sensor States RR on Host Booted
+    [Documentation]  Verify system boot states post BMC reset.
+    [Tags]  Verify_Boot_Sensor_States_RR_on_Host_Booted
+    [Template]  Valid Boot States
+
+    # Example: Expected state
+    # "data": {
+    #    "/xyz/openbmc_project/state/bmc0": {
+    #      "CurrentBMCState": "xyz.openbmc_project.State.BMC.BMCState.Ready",
+    #      "RequestedBMCTransition": "xyz.openbmc_project.State.BMC.Transition.None"
+    #   },
+    #   "/xyz/openbmc_project/state/chassis0": {
+    #      "CurrentPowerState": "xyz.openbmc_project.State.Chassis.PowerState.On",
+    #      "RequestedPowerTransition": "xyz.openbmc_project.State.Chassis.Transition.Off"
+    #   },
+    #   "/xyz/openbmc_project/state/host0": {
+    #      "AttemptsLeft": 3,
+    #      "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart",
+    #      "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Running",
+    #      "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete",
+    #      "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.On"
+    #   }
+    # }
+
+    # System when host is booted.
+    ResetReload
+
+
+*** Keywords ***
+
+Validate Boot AttemptsLeft
+    [Documentation]  Verify boot attempts for a given system state.
+    [Arguments]  ${sys_state}  ${expected_attempts_left}
+
+    # Description of argument(s):
+    # sys_state    A user-defined boot state (e.g. "Off", "On", etc).
+    #              See VALID_BOOT_STATES in state_map.py.
+    # expected_attempts_left     Boot attempts left.
+
+    Choose Boot And Run  ${sys_state}
+    ${atempts_left}=  Read Attribute  ${HOST_STATE_URI}  AttemptsLeft
+    Should Be True  ${atempts_left} == ${expected_attempts_left}
+
+
+Valid Boot States
+    [Documentation]  Verify boot states for a given system state.
+    [Arguments]  ${sys_state}
+
+    # Description of argument(s):
+    # sys_state    A user-defined boot state (e.g. "Off", "On", etc).
+    #              See VALID_BOOT_STATES in state_map.py.
+
+    Choose Boot And Run  ${sys_state}
+    ${boot_states}=  Get Boot State
+    ${valid_state}=  Valid Boot State  ${sys_state}  ${boot_states}
+    Should Be True  ${valid_state}
+
+
+Choose Boot And Run
+    [Documentation]  Choose system boot type.
+    [Arguments]  ${option}
+
+    # Description of argument(s):
+    # option    Boot type (e.g. "Off", "On", "Reboot", etc.).
+
+    Run Keyword If  '${option}' == 'Off'
+    ...    Initiate Host PowerOff
+    ...  ELSE IF  '${option}' == 'Reboot'
+    ...    Run Keywords  Initiate Host PowerOff  AND  Initiate BMC Reboot
+    ...                  AND  Wait For BMC Ready
+    ...  ELSE IF  '${option}' == 'Running'
+    ...    Power On Till Chassis Is On
+    ...  ELSE IF  '${option}' == 'Booted'
+    ...    Initiate Host Boot
+    ...  ELSE IF  '${option}' == 'RebootHost'
+    ...    Initiate Host Reboot
+    ...  ELSE IF  '${option}' == 'ResetReload'
+    ...    Reboot Host And Expect Runtime
+
+
+Power On Till Chassis Is On
+    [Documentation]  Initiate power on and check till chassis state is just
+    ...              turned "On".
+
+    # TODO: Move to smart power off once ready.
+    Initiate Host PowerOff
+    Initiate Host Boot  wait=${0}
+    Wait Until Keyword Succeeds  2 min  10 sec  Is Chassis On
+
+    # TODO: Find better mechanism instead of wait.
+    Sleep  20 Sec
+
+
+Reboot Host And Expect Runtime
+    [Documentation]  Initiate reset reload when host is booted.
+
+    Initiate BMC Reboot
+    Wait Until Keyword Succeeds  10 min  10 sec  Is OS Booted
+
+
+Post Test Case Execution
+   [Documentation]  Do the post test teardown.
+   # - Capture FFDC on test failure.
+   # - Delete error logs.
+   # - Close all open SSH connections.
+   # - Clear all REST sessions.
+
+   FFDC On Test Case Fail
+   Delete Error Logs
+   Close All Connections
+
