diff --git a/tools/ras/probe_cpus.sh b/tools/ras/probe_cpus.sh
index a1fa03c..16a4e5a 100755
--- a/tools/ras/probe_cpus.sh
+++ b/tools/ras/probe_cpus.sh
@@ -9,37 +9,37 @@
 
 function usage()
 {
-        echo "This script runs on HOST OS and gives core-id"
-        echo "corresponding to the chip-id."
-        echo "usage:"
-        echo "        $0 [cpu] [-L]"
-        echo
-        echo "option:"
-        echo "        [cpu]"
-        echo "          Logical cpu id."
-        echo "        -L"
-        echo "          Show processor layout."
-        echo "        -h"
-        echo "          Show this help."
-        exit 1
+    echo "This script runs on HOST OS and gives core-id"
+    echo "corresponding to the chip-id."
+    echo "usage:"
+    echo "        $0 [cpu] [-L]"
+    echo
+    echo "option:"
+    echo "        [cpu]"
+    echo "          Logical cpu id."
+    echo "        -L"
+    echo "          Show processor layout."
+    echo "        -h"
+    echo "          Show this help."
+    exit 1
 }
 
 function parse_args()
 {
-        while getopts "hL" OPTION
-        do
+    while getopts "hL" OPTION
+    do
         case $OPTION in
-                L)
-                        SHOW_LAYOUT=1
-                        ;;
-                *)
-                        usage
-                        exit 1
-                        ;;
+            L)
+                SHOW_LAYOUT=1
+                ;;
+            *)
+                usage
+                exit 1
+                ;;
         esac
-        done
+    done
 
-        CPU=${!OPTIND}
+    CPU=${!OPTIND}
 }
 
 parse_args $*
@@ -60,20 +60,20 @@
 
 for cpu_file in $(find $CPU_SYS_DIR -name "cpu[0-9]*")
 do
-        cpu=$(basename $cpu_file | tr -dc '0-9')
-        [ -n "$cpu" ] && NR_CPUS=$(expr $NR_CPUS + 1)
+    cpu=$(basename $cpu_file | tr -dc '0-9')
+    [ -n "$cpu" ] && NR_CPUS=$(expr $NR_CPUS + 1)
 
-        CPU_VALID[$cpu]=0
-        [ -n "$CPU" ] && [ $cpu != $CPU ] && continue
-        [ ! -e $cpu_file/pir ] && continue
+    CPU_VALID[$cpu]=0
+    [ -n "$CPU" ] && [ $cpu != $CPU ] && continue
+    [ ! -e $cpu_file/pir ] && continue
 
-        CPU_VALID[$cpu]=1
+    CPU_VALID[$cpu]=1
 
-        CPU_FILE[$cpu]=$cpu_file
-        pir=$(cat $cpu_file/pir)
-        CPU_PIR[$cpu]=$pir
-        CORE_ID[$cpu]=$(perl -e '{ printf("%d", (0x'$pir' >> 2) & 0x3f); }')
-        CHIP_ID[$cpu]=$(perl -e '{ printf("%x", (0x'$pir' >> 8) & 0x7f); }')
+    CPU_FILE[$cpu]=$cpu_file
+    pir=$(cat $cpu_file/pir)
+    CPU_PIR[$cpu]=$pir
+    CORE_ID[$cpu]=$(perl -e '{ printf("%d", (0x'$pir' >> 2) & 0x3f); }')
+    CHIP_ID[$cpu]=$(perl -e '{ printf("%x", (0x'$pir' >> 8) & 0x7f); }')
 done
 
 i=0
@@ -85,41 +85,41 @@
 CPU_LIST=" "
 while [ $i -lt $NR_CPUS ]
 do
-        [ ${CPU_VALID[$i]} -eq 0 ] && i=$(expr $i + 1) && continue
+    [ ${CPU_VALID[$i]} -eq 0 ] && i=$(expr $i + 1) && continue
 
-        [ "$chip_id" != "${CHIP_ID[$i]}" ] && core_id=-1 && prev_eq_id=-1 && prev_ex_id=-1
-        chip_id=${CHIP_ID[$i]}
-        if [ "$core_id" != ${CORE_ID[$i]} ]
-        then
-                if [ $num_threads -ne 0 ]; then
-                        echo "THREADS: $num_threads CPUs: $CPU_LIST"
-                        CPU_LIST=" "
-                fi
-                CPU_LIST="$CPU_LIST$i "
-                echo -n "CHIP ID: ${CHIP_ID[$i]} "
-                echo -n "CORE ID: ${CORE_ID[$i]} "
-                CHIP_CORES[$chip_id]="${CHIP_CORES[$chip_id]},${CORE_ID[$i]}"
-                CORE_MATRIX[$chip_id,${CORE_ID[$i]}]=1
-                eq_id=$(perl -e '{ printf("%d", (('${CORE_ID[$i]}' & 0x1c) >> 2)); }')
-                if [ $eq_id != $prev_eq_id ]
-                then
-                        CHIP_EQ[$chip_id]="${CHIP_EQ[$chip_id]},$eq_id"
-                        prev_eq_id=$eq_id
-                fi
-                ex_id=$(perl -e '{ printf("%d", (('${CORE_ID[$i]}') >> 1)); }')
-                if [ $ex_id != $prev_ex_id ]
-                then
-                        CHIP_EX[$chip_id]="${CHIP_EX[$chip_id]},$ex_id"
-                        prev_ex_id=$ex_id
-                fi
-                num_threads=1
-        else
-                CPU_LIST="$CPU_LIST$i "
-                num_threads=$(expr $num_threads + 1)
+    [ "$chip_id" != "${CHIP_ID[$i]}" ] && core_id=-1 && prev_eq_id=-1 && prev_ex_id=-1
+    chip_id=${CHIP_ID[$i]}
+    if [ "$core_id" != ${CORE_ID[$i]} ]
+    then
+        if [ $num_threads -ne 0 ]; then
+            echo "THREADS: $num_threads CPUs: $CPU_LIST"
+            CPU_LIST=" "
         fi
-        core_id=${CORE_ID[$i]}
+        CPU_LIST="$CPU_LIST$i "
+        echo -n "CHIP ID: ${CHIP_ID[$i]} "
+        echo -n "CORE ID: ${CORE_ID[$i]} "
+        CHIP_CORES[$chip_id]="${CHIP_CORES[$chip_id]},${CORE_ID[$i]}"
+        CORE_MATRIX[$chip_id,${CORE_ID[$i]}]=1
+        eq_id=$(perl -e '{ printf("%d", (('${CORE_ID[$i]}' & 0x1c) >> 2)); }')
+        if [ $eq_id != $prev_eq_id ]
+        then
+            CHIP_EQ[$chip_id]="${CHIP_EQ[$chip_id]},$eq_id"
+            prev_eq_id=$eq_id
+        fi
+        ex_id=$(perl -e '{ printf("%d", (('${CORE_ID[$i]}') >> 1)); }')
+        if [ $ex_id != $prev_ex_id ]
+        then
+            CHIP_EX[$chip_id]="${CHIP_EX[$chip_id]},$ex_id"
+            prev_ex_id=$ex_id
+        fi
+        num_threads=1
+    else
+        CPU_LIST="$CPU_LIST$i "
+        num_threads=$(expr $num_threads + 1)
+    fi
+    core_id=${CORE_ID[$i]}
 
-        i=$(expr $i + 1)
+    i=$(expr $i + 1)
 done
 echo "THREADS: $num_threads CPUs: $CPU_LIST"
 
@@ -127,13 +127,13 @@
 echo "-----------------------------"
 for chip_id in ${!CHIP_CORES[@]}
 do
-        echo "p[$chip_id]"
-        CHIP_CORES[$chip_id]="$(echo ${CHIP_CORES[$chip_id]} | cut -c 2-)"
-        CHIP_EQ[$chip_id]="$(echo ${CHIP_EQ[$chip_id]} | cut -c 2-)"
-        CHIP_EX[$chip_id]="$(echo ${CHIP_EX[$chip_id]} | cut -c 2-)"
-        echo "   eq[${CHIP_EQ[$chip_id]}]"
-        echo "   ex[${CHIP_EX[$chip_id]}]"
-        echo "    c[${CHIP_CORES[$chip_id]}]"
+    echo "p[$chip_id]"
+    CHIP_CORES[$chip_id]="$(echo ${CHIP_CORES[$chip_id]} | cut -c 2-)"
+    CHIP_EQ[$chip_id]="$(echo ${CHIP_EQ[$chip_id]} | cut -c 2-)"
+    CHIP_EX[$chip_id]="$(echo ${CHIP_EX[$chip_id]} | cut -c 2-)"
+    echo "   eq[${CHIP_EQ[$chip_id]}]"
+    echo "   ex[${CHIP_EX[$chip_id]}]"
+    echo "    c[${CHIP_CORES[$chip_id]}]"
 done
 echo "-----------------------------"
 
@@ -144,59 +144,59 @@
 
 function print_header()
 {
-        local _row_=$1
+    local _row_=$1
 
-        for q in 0 2 4
-        do
-                quad=$(perl -e '{ printf("%02d", ('$q' + '$_row_')); }')
-                echo -n "        +---EQ$quad----+ "
-        done
-        echo
+    for q in 0 2 4
+    do
+        quad=$(perl -e '{ printf("%02d", ('$q' + '$_row_')); }')
+        echo -n "        +---EQ$quad----+ "
+    done
+    echo
 }
 
 function print_core_info()
 {
-        local _row_=$1
-        local _cpos_=$2   # Core position
+    local _row_=$1
+    local _cpos_=$2   # Core position
 
-        for q in 0 2 4
-        do
-                quad=$(perl -e '{ printf("%02d", ('$q' + '$_row_')); }')
-                core_id=$(perl -e '{ printf("%d", ('$_cpos_' + ('$quad' * 4))); }')
-                core_id_str=$(perl -e '{ printf("%-2d", ('$_cpos_' + ('$quad' * 4))); }')
-                ex=$(perl -e '{ printf("%-2d", ('$core_id' >> 1)); }')
-                if [ -n "${CORE_MATRIX[$chip_id,$core_id]}" ]
-                then
-                        echo -n "        |EX-$ex   C$core_id_str|"
-                else
-                        echo -n "        |           |"
-                fi
-        done
-        echo
-        if [ $_cpos_ -eq 3 ]
+    for q in 0 2 4
+    do
+        quad=$(perl -e '{ printf("%02d", ('$q' + '$_row_')); }')
+        core_id=$(perl -e '{ printf("%d", ('$_cpos_' + ('$quad' * 4))); }')
+        core_id_str=$(perl -e '{ printf("%-2d", ('$_cpos_' + ('$quad' * 4))); }')
+        ex=$(perl -e '{ printf("%-2d", ('$core_id' >> 1)); }')
+        if [ -n "${CORE_MATRIX[$chip_id,$core_id]}" ]
         then
-                echo "        +-----------+         +-----------+        +-----------+"
+            echo -n "        |EX-$ex   C$core_id_str|"
         else
-                echo "        + - - - - - +        + - - - - - +        + - - - - - +"
+            echo -n "        |           |"
         fi
+    done
+    echo
+    if [ $_cpos_ -eq 3 ]
+    then
+        echo "        +-----------+         +-----------+        +-----------+"
+    else
+        echo "        + - - - - - +        + - - - - - +        + - - - - - +"
+    fi
 }
 
 echo
 echo "----------Processor Layout-------------------"
 for chip_id in ${!CHIP_CORES[@]}
 do
-        echo "p[$chip_id]"
+    echo "p[$chip_id]"
 
-        for row in 0 1
+    for row in 0 1
+    do
+        print_header $row
+        for core_pos in 0 1 2 3
         do
-                print_header $row
-                for core_pos in 0 1 2 3
-                do
-                        print_core_info $row $core_pos
-                done
-                echo
-
+            print_core_info $row $core_pos
         done
         echo
 
+    done
+    echo
+
 done
diff --git a/tools/ras/scom_addr_p9.sh b/tools/ras/scom_addr_p9.sh
index a7c5ff0..7325225 100755
--- a/tools/ras/scom_addr_p9.sh
+++ b/tools/ras/scom_addr_p9.sh
@@ -3,16 +3,16 @@
 
 function usage()
 {
-        echo
-        echo "This script runs on HOST OS and gives translated SCOM address."
-        echo "usage: $0: <scom_addr> <core_id>"
-        echo
-        echo "  <scom_addr>:"
-        echo "     SCOM address that needs translation (e.g. '10010800')."
-        echo "  <core_id>:"
-        echo "     Core id as obtained from probe_cpu.sh."
-        echo "     Should be between 0-23 (e.g. '0')."
-        exit 1
+    echo
+    echo "This script runs on HOST OS and gives translated SCOM address."
+    echo "usage: $0: <scom_addr> <core_id>"
+    echo
+    echo "  <scom_addr>:"
+    echo "     SCOM address that needs translation (e.g. '10010800')."
+    echo "  <core_id>:"
+    echo "     Core id as obtained from probe_cpu.sh."
+    echo "     Should be between 0-23 (e.g. '0')."
+    exit 1
 }
 
 [ $# -lt 2 ] && usage
