diff --git a/lib/ras/host_utils.robot b/lib/ras/host_utils.robot
index 1d332ee..ddfec43 100644
--- a/lib/ras/host_utils.robot
+++ b/lib/ras/host_utils.robot
@@ -2,6 +2,8 @@
 Documentation       This module is for OS checkstop opertions.
 Resource            ../../lib/rest_client.robot
 Resource            ../../lib/utils.robot
+Resource            ../../lib/ras/variables.py
+Resource            ../../lib/bmc_ssh_utils.py
 Library             OperatingSystem
 
 *** Keywords ***
@@ -14,8 +16,7 @@
     # input_cmd      -l|--list-chips
     #                -c|--chip <chip-id> <addr>
 
-    ${output}  ${stderr}=  Execute Command  getscom ${input_cmd}
-    ...        return_stderr=True
+    ${output}  ${stderr}  ${rc}=  OS Execute Command  getscom ${input_cmd}
     Should Be Empty  ${stderr}
     [Return]  ${output}
 
@@ -26,36 +27,64 @@
     # Description of arguments:
     # input_cmd      list/clear all/show <gard_record_id>
 
-    ${output}  ${stderr}=  Execute Command  opal-gard ${input_cmd}
-    ...        return_stderr=True
+    ${output}  ${stderr}  ${rc}=  OS Execute Command  opal-gard ${input_cmd}
     Should Be Empty  ${stderr}
     [Return]  ${output}
 
-Putscom Through OS
+Putscom Operations On OS
     [Documentation]  Executes putscom command on OS with the given
     ...              input arguments.
-    [Arguments]      ${chip_id}  ${fru}  ${address}
+    [Arguments]      ${proc_chip_id}  ${fru}  ${address}
     # Description of arguments:
-    # chip_id        processor ID (e.g 00000000).
+    # proc_chip_id        Processor ID (e.g '0', '8').
     # fru            FRU value (e.g. 2011400).
-    # address        chip address (e.g 4000000000000000).
+    # address        Chip address (e.g 4000000000000000).
 
-    ${cmd}=  Catenate  putscom -c 0x${chip_id} 0x${fru} 0x${address}
+    ${cmd}=  Catenate  putscom -c 0x${proc_chip_id} 0x${fru} 0x${address}
     Start Command  ${cmd}
 
-Get Cores Values From OS
-    [Documentation]  Check if cores present on HOST OS & return core values.
-    ${cmd}=  Catenate  cat /sys/firmware/opal/msglog|grep -i chip|grep -i core
-    ${output}=  Execute Command  ${cmd}
-    Should Not Be Empty  ${output}
-    [Return]  ${output}
-
-Get ChipID From OS
-    [Documentation]  Get chip ID values based on the input.
+Get ProcChipId From OS
+    [Documentation]  Get processor chip ID values based on the input.
     [Arguments]      ${chip_type}
     # Description of arguments:
     # chip_type      The chip type (Processor/Centaur).
 
     ${cmd}=  Catenate  -l | grep -i ${chip_type} | cut -c1-8
-    ${chip_id}=  Getscom Operations On OS  ${cmd}
-    [Return]  ${chip_id}
+    ${proc_chip_id}=  Getscom Operations On OS  ${cmd}
+    # Example output:
+    # 00000008
+    # 00000000
+    [Return]  ${proc_chip_id}
+
+Get Core IDs From OS
+    [Documentation]  Get Core IDs corresponding to the input processor chip ID.
+    [Arguments]      ${proc_chip_id}
+    # Description of argument(s):
+    # proc_chip_id        Processor ID (e.g '0', '8').
+
+    ${cmd}=  Catenate  set -o pipefail ; ${probe_cpu_file_path}
+    ...    | grep -i 'CHIP ID: ${proc_chip_id}' | cut -c21-22
+    ${output}  ${stderr}  ${rc}=  OS Execute Command  ${cmd}
+    Should Be Empty  ${stderr}
+    ${core_ids}=  Split String  ${output}
+    # Example output:
+    # ['2', '3', '4', '5', '6']
+    [Return]  ${core_ids}
+
+FIR Address Translation Through HOST
+    [Documentation]  Do FIR address translation through host for given FIR,
+    ...              core value & target type.
+    [Arguments]  ${fir}  ${core_id}  ${target_type}
+    # Description of argument(s):
+    # fir          FIR (Fault isolation register) value (e.g. 2011400).
+    # core_id      Core ID (e.g. 9).
+    # target_type  Target type (e.g. 'EQ', 'EX', 'C').
+
+    ${cmd}=  Catenate  set -o pipefail ; ${addr_translation_file_path} ${fir}
+    ...  ${core_id} | grep -i ${target_type}
+    ${output}  ${stderr}  ${rc}=  OS Execute Command  ${cmd}
+    Should Be Empty  ${stderr}
+    ${translated_addr}=  Split String  ${output}  :${SPACE}0x
+    # Example output:
+    # 0x10010c00
+    [Return]  ${translated_addr[1]}
diff --git a/lib/ras/variables.py b/lib/ras/variables.py
index cf5f100..bf69188 100644
--- a/lib/ras/variables.py
+++ b/lib/ras/variables.py
@@ -22,6 +22,17 @@
 
 DES_NPU0_RECV32 = "'pu.n0p0.*NPU0FIR[^13].*CQ CTL/SM ASBE Array single'"
 
+DES_L2_RECV1 = "'L2FIR[^8].*L2 directory CE'"
+DES_L2_RECV32 = "'L2FIR[^6].*L2 directory read CE'"
+
+DES_L3_RECV1 = "'L3FIR[^17].*Received addr_error cresp'"
+DES_L3_RECV32 = "'L3FIR[^7].*L3 cache write data CE'"
+
+DES_OCC_RECV1 = "'OCCFIR[^45].*C405_ECC_CE'"
+DES_CME_RECV1 = "'CMEFIR[^7].*PPE SRAM Uncorrectable Err'"
+DES_EQ_RECV32 = "'EQ_LFIR[^0].*CFIR internal parity'"
+DES_NCU_RECV1 = "'NCUFIR[^8].*NCU Store Queue Data'"
+
 # The following is an error injection dictionary with each entry consisting of:
 # - field_name: Targettype_threshold_limit .
 #   - A list consisting of the following fields:
@@ -42,6 +53,20 @@
              'CXA_RECV5': ['02010800', '0000000020000000', DES_CXA_RECV5],
              'CXA_RECV32': ['02010800', '2000000000000000', DES_CXA_RECV32],
              'OBUS_RECV32': ['0904000a', '8000000000000000', DES_OBUS_RECV32],
-             'NPU0_RECV32': ['05013C00', '0004000000000000', DES_NPU0_RECV32]
+             'NPU0_RECV32': ['05013C00', '0004000000000000', DES_NPU0_RECV32],
+             'L2FIR_RECV1': ['10010800', '0080000000000000', DES_L2_RECV1],
+             'L2FIR_RECV32': ['10010800', '0200000000000000', DES_L2_RECV32],
+             'L2FIR_UE': ['10010800', '4000000000000000', ''],
+             'L3FIR_RECV1': ['10011800','0000400000000000', DES_L3_RECV1],
+             'L3FIR_RECV32': ['10011800', '0100000000000000', DES_L3_RECV32],
+             'L3FIR_UE': ['10011800', '0100000000000000', ''],
+             'OCCFIR_RECV1': ['01010800', '0000000000040000', DES_OCC_RECV1],
+             'CMEFIR_RECV1': ['10012000', '0100000000000000', DES_CME_RECV1],
+             'EQFIR_RECV32': ['1004000A', '4000000000000000', DES_EQ_RECV32],
+             'NCUFIR_RECV1': ['10011400', '0080000000000000', DES_NCU_RECV1],
+
              }
 
+# Address translation files
+probe_cpu_file_path = '/root/probe_cpus.sh'
+addr_translation_file_path = '/root/scom_addr_p9.sh'
diff --git a/lib/utils.robot b/lib/utils.robot
index a341459..04ef793 100755
--- a/lib/utils.robot
+++ b/lib/utils.robot
@@ -13,6 +13,7 @@
 Library                 bmc_ssh_utils.py
 Library                 utils.py
 Library                 var_funcs.py
+Library                 SCPLibrary  WITH NAME  scp
 
 *** Variables ***
 ${pflash_cmd}           /usr/sbin/pflash -r /dev/stdout -P VERSION
@@ -52,6 +53,10 @@
 @{valid_power_policy_vars}        RESTORE_LAST_STATE  ALWAYS_POWER_ON
 ...                               ALWAYS_POWER_OFF
 
+${probe_cpu_tool_path}     ${EXECDIR}/tools/ras/probe_cpus.sh
+${scom_addrs_tool_path}    ${EXECDIR}/tools/ras/scom_addr_p9.sh
+${target_file_path}        /root/
+
 *** Keywords ***
 
 Check BMC Performance
@@ -1180,7 +1185,6 @@
     ${valueDict}=  Create Dictionary  data=${setting}
     Write Attribute  ${SENSORS_URI}host/TurboAllowed  value  data=${valueDict}
 
-
 Set Control Boot Mode
     [Documentation]  Set given boot mode on the boot object path attribute.
     [Arguments]  ${boot_path}  ${boot_mode}
@@ -1196,3 +1200,16 @@
 
     ${valueDict}=  Create Dictionary  data=${boot_mode}
     Write Attribute  ${boot_path}  BootMode  data=${valueDict}
+
+Copy Address Translation Utils To HOST OS
+    [Documentation]  Copy address translation utils to host OS.
+
+    OperatingSystem.File Should Exist  ${probe_cpu_tool_path}
+    ...  msg=${probe_cpu_tool_path} doesn't exist.
+    OperatingSystem.File Should Exist  ${probe_cpu_tool_path}
+    ...  msg=${probe_cpu_tool_path} doesn't exist.
+
+    scp.Open connection  ${OS_HOST}  username=${OS_USERNAME}
+    ...  password=${OS_PASSWORD}
+    scp.Put File  ${probe_cpu_tool_path}  ${target_file_path}
+    scp.Put File  ${scom_addrs_tool_path}  ${target_file_path}
