diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils.bbappend b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils.bbappend
index 341ca13..778ca98 100644
--- a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils.bbappend
+++ b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils.bbappend
@@ -8,6 +8,8 @@
            file://ampere_flash_bios.sh \
            file://ampere_power_on_driver_binder.sh \
            file://ampere_firmware_version.sh \
+           file://ampere_fanctrl.sh \
+           file://ampere_scandump_mode.sh \
           "
 
 do_install:append() {
@@ -17,4 +19,6 @@
     install -m 0755 ${WORKDIR}/ampere_flash_bios.sh ${D}/${sbindir}/
     install -m 0755 ${WORKDIR}/ampere_power_on_driver_binder.sh ${D}/${sbindir}/
     install -m 0755 ${WORKDIR}/ampere_firmware_version.sh ${D}/${sbindir}/
+    install -m 0755 ${WORKDIR}/ampere_fanctrl.sh ${D}/${sbindir}/
+    install -m 0755 ${WORKDIR}/ampere_scandump_mode.sh ${D}/${sbindir}/
 }
diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_fanctrl.sh b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_fanctrl.sh
new file mode 100644
index 0000000..9dcc6d8
--- /dev/null
+++ b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_fanctrl.sh
@@ -0,0 +1,168 @@
+#!/bin/bash
+
+fanSensorService="xyz.openbmc_project.FanSensor"
+
+sensorPath="/xyz/openbmc_project/sensors/fan_tach/"
+pwmTargetPath="/xyz/openbmc_project/control/fanpwm/"
+
+sensorValueInterfaceName="xyz.openbmc_project.Sensor.Value"
+sensorValuePropertyName="Value"
+
+pwmTargetInterfaceName="xyz.openbmc_project.Control.FanPwm"
+pwmTargetPropertyName="Target"
+
+function stop_phosphor_fan_services() {
+    systemctl stop phosphor-fan-control@0.service
+    systemctl stop phosphor-fan-monitor@0.service
+    systemctl stop phosphor-fan-presence-tach@0.service
+}
+
+function start_phosphor_fan_services() {
+    systemctl start phosphor-fan-control@0.service
+    systemctl start phosphor-fan-monitor@0.service
+    systemctl start phosphor-fan-presence-tach@0.service
+}
+
+function read_speed() {
+    fan_val=$(busctl get-property "$fanSensorService" "${sensorPath}$1" "$sensorValueInterfaceName" "$sensorValuePropertyName")
+    busctl_error=$?
+    if (( busctl_error != 0 )); then
+      echo "Error: get-property $sensorValuePropertyName failed! "
+      exit 1
+    fi
+
+    pwm_target=$(busctl get-property "$fanSensorService" "${pwmTargetPath}$2" "$pwmTargetInterfaceName" "$pwmTargetPropertyName")
+    busctl_error=$?
+    if (( busctl_error != 0 )); then
+      echo "Error: get-property $pwmTargetPropertyName failed! "
+      exit 1
+    fi
+
+    fan_val=$(echo "$fan_val" | cut -d " " -f 2)
+    pwm_target=$(echo "$pwm_target" | cut -d " " -f 2)
+
+    # Convert fan PWM to Duty cycle, adding 127 for rounding.
+    pwm_duty_cyle=$(((("$pwm_target" * 100) + 127) / 255))
+
+    echo "$1, PWM: $pwm_target, Duty cycle: $pwm_duty_cyle%, Speed(RPM): $fan_val"
+}
+
+function set_pwm() {
+
+    # Convert Fan Duty cycle to PWM, adding 50 for rounding.
+    fan_pwm=$(((($2 * 255) + 50) / 100))
+
+    busctl set-property "$fanSensorService" "${pwmTargetPath}$1" "$pwmTargetInterfaceName" "$pwmTargetPropertyName" t "$fan_pwm"
+    busctl_error=$?
+    if (( busctl_error != 0 )); then
+      echo "Error: set-property $pwmTargetPropertyName failed! "
+      exit 255
+    fi
+}
+
+function getstatus() {
+    fan_ctl_stt=$(systemctl is-active phosphor-fan-control@0.service | grep inactive)
+    fan_monitor_stt=$(systemctl is-active phosphor-fan-monitor@0.service | grep inactive)
+    if [[ -z "$fan_ctl_stt" && -z "$fan_monitor_stt" ]]; then
+        echo "Thermal Control operational status: Enabled"
+        exit 0
+    else
+        echo "Thermal Control operational status: Disabled"
+        exit 1
+    fi
+}
+
+function setstatus() {
+    if [ "$1" == 0 ]; then
+        # Enable fan services
+        start_phosphor_fan_services
+    else
+        # Disable fan services
+        stop_phosphor_fan_services
+    fi
+}
+
+function setspeed() {
+    # Get fan_pwm value of the fan
+    case "$1" in
+    0) fan_pwm=PWM7
+    ;;
+    1) fan_pwm=PWM5
+    ;;
+    2) fan_pwm=PWM4
+    ;;
+    3) fan_pwm=PWM3
+    ;;
+    4) fan_pwm=PWM1
+    ;;
+    5) fan_pwm=PWM0
+    ;;
+    *) echo "fan $1 doesn't exit"
+        exit 1
+    ;;
+    esac
+
+    set_pwm "$fan_pwm" "$2"
+    exit 0
+}
+
+function getspeed() {
+
+    # Mapping fan number to fan_input and fan_pwm index
+    case "$1" in
+    0) fan_input_f=FAN0_F
+       fan_input_r=FAN0_R
+       fan_pwm=PWM7
+    ;;
+    1) fan_input_f=FAN1_F
+       fan_input_r=FAN1_R
+       fan_pwm=PWM5
+    ;;
+    2) fan_input_f=FAN2_F
+       fan_input_r=FAN2_R
+       fan_pwm=PWM4
+    ;;
+    3) fan_input_f=FAN3_F
+       fan_input_r=FAN3_R
+       fan_pwm=PWM3
+    ;;
+    4) fan_input_f=FAN4_F
+       fan_input_r=FAN4_R
+       fan_pwm=PWM1
+    ;;
+    5) fan_input_f=FAN5_F
+       fan_input_r=FAN5_F
+       fan_pwm=PWM0
+    ;;
+    *) echo "fan $1 doesn't exit"
+        exit 1
+    ;;
+    esac
+
+    # Get fan speed, each fan number has two values is front and rear
+    read_speed "$fan_input_f" "$fan_pwm"
+    read_speed "$fan_input_r" "$fan_pwm"
+
+    exit 0
+}
+
+# Usage of this utility
+function usage() {
+    echo "Usage:"
+    echo "  ampere_fanctrl.sh [getstatus] [setstatus <0|1>] [setspeed <fan> <duty>] [getspeed <fan>]"
+    echo "  fan: 0-5"
+    echo "  duty: 1-100"
+}
+
+if [ "$1" == "getstatus" ]; then
+    getstatus
+elif [ "$1" == "setstatus" ]; then
+    setstatus "$2"
+elif [ "$1" == "setspeed" ]; then
+    stop_phosphor_fan_services
+    setspeed "$2" "$3"
+elif [ "$1" == "getspeed" ]; then
+    getspeed "$2"
+else
+    usage
+fi
diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_firmware_upgrade.sh b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_firmware_upgrade.sh
index dce6e6c..9c187b1 100755
--- a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_firmware_upgrade.sh
+++ b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_firmware_upgrade.sh
@@ -134,19 +134,19 @@
 	BP_TARGET=$2
 	if [[ $BP_TARGET == 1 ]]; then
 		echo "Flashing Front Backplane 1 CPLD"
-		ampere_cpldupdate_i2c -b 101 -s 0x40 -t 2 -p "$BP_CPLD_IMAGE"
+		ampere_cpldupdate_i2c -b 101 -s 0x40 -t 3 -p "$BP_CPLD_IMAGE"
 	elif [[ $BP_TARGET == 2 ]]; then
 		echo "Flashing Front Backplane 2 CPLD"
-		ampere_cpldupdate_i2c -b 102 -s 0x40 -t 2 -p "$BP_CPLD_IMAGE"
+		ampere_cpldupdate_i2c -b 102 -s 0x40 -t 3 -p "$BP_CPLD_IMAGE"
 	elif [[ $BP_TARGET == 3 ]]; then
 		echo "Flashing Front Backplane 3 CPLD"
-		ampere_cpldupdate_i2c -b 100 -s 0x40 -t 2 -p "$BP_CPLD_IMAGE"
+		ampere_cpldupdate_i2c -b 100 -s 0x40 -t 3 -p "$BP_CPLD_IMAGE"
 		elif [[ $BP_TARGET == 4 ]]; then
 		echo "Flashing Rear Backplane 1 CPLD"
-		ampere_cpldupdate_i2c -b 103 -s 0x40 -t 2 -p "$BP_CPLD_IMAGE"
+		ampere_cpldupdate_i2c -b 103 -s 0x40 -t 3 -p "$BP_CPLD_IMAGE"
 		elif [[ $BP_TARGET == 5 ]]; then
 		echo "Flashing Rear Backplane 2 CPLD"
-		ampere_cpldupdate_i2c -b 104 -s 0x40 -t 2 -p "$BP_CPLD_IMAGE"
+		ampere_cpldupdate_i2c -b 104 -s 0x40 -t 3 -p "$BP_CPLD_IMAGE"
 	fi
 
 	echo "Done"
diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_firmware_version.sh b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_firmware_version.sh
index 081e303..adb9869 100755
--- a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_firmware_version.sh
+++ b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_firmware_version.sh
@@ -40,24 +40,24 @@
 	BP_ID=$1
 	if [[ $BP_ID == 1 ]]; then
 		echo "Front Backplane 1 CPLD"
-		ampere_cpldupdate_i2c -b 101 -s 0x40 -t 2 -v
-		ampere_cpldupdate_i2c -b 101 -s 0x40 -t 2 -i
+		ampere_cpldupdate_i2c -b 101 -s 0x40 -t 3 -v
+		ampere_cpldupdate_i2c -b 101 -s 0x40 -t 3 -i
 	elif [[ $BP_ID == 2 ]]; then
 		echo "Front Backplane 2 CPLD"
-		ampere_cpldupdate_i2c -b 102 -s 0x40 -t 2 -v
-		ampere_cpldupdate_i2c -b 102 -s 0x40 -t 2 -i
+		ampere_cpldupdate_i2c -b 102 -s 0x40 -t 3 -v
+		ampere_cpldupdate_i2c -b 102 -s 0x40 -t 3 -i
 	elif [[ $BP_ID == 3 ]]; then
 		echo "Front Backplane 3 CPLD"
-		ampere_cpldupdate_i2c -b 100 -s 0x40 -t 2 -v
-		ampere_cpldupdate_i2c -b 100 -s 0x40 -t 2 -i
+		ampere_cpldupdate_i2c -b 100 -s 0x40 -t 3 -v
+		ampere_cpldupdate_i2c -b 100 -s 0x40 -t 3 -i
 	elif [[ $BP_ID == 4 ]]; then
 		echo "Rear Backplane 1 CPLD"
-		ampere_cpldupdate_i2c -b 103 -s 0x40 -t 2 -v
-		ampere_cpldupdate_i2c -b 103 -s 0x40 -t 2 -i
+		ampere_cpldupdate_i2c -b 103 -s 0x40 -t 3 -v
+		ampere_cpldupdate_i2c -b 103 -s 0x40 -t 3 -i
 	elif [[ $BP_ID == 5 ]]; then
 		echo "Rear Backplane 2 CPLD"
-		ampere_cpldupdate_i2c -b 104 -s 0x40 -t 2 -v
-		ampere_cpldupdate_i2c -b 104 -s 0x40 -t 2 -i
+		ampere_cpldupdate_i2c -b 104 -s 0x40 -t 3 -v
+		ampere_cpldupdate_i2c -b 104 -s 0x40 -t 3 -i
 	fi
 }
 
diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_scandump_mode.sh b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_scandump_mode.sh
new file mode 100755
index 0000000..f08c968
--- /dev/null
+++ b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-utils/ampere_scandump_mode.sh
@@ -0,0 +1,94 @@
+#!/bin/bash
+
+# Helper script to support enable/disable Scandump Mode
+# Author : Hieu Huynh (hieu.huynh@amperecomputing.com)
+#
+# To enable Scandump mode:
+#    ampere_scandump_mode.sh enable
+#
+# To disable Scandump mode:
+#    ampere_scandump_mode.sh disable
+#
+# To get Scandump mode status:
+#    ampere_scandump_mode.sh getstatus
+
+enable_scandump_mode() {
+	echo "Enable Scandump mode"
+	# Disable Mpro hang detection
+	systemctl stop ampere-sysfw-hang-handler.service
+
+	# Disable PLDM service
+	systemctl stop pldmd.service
+
+	# Enable scandump mode in CPLD
+	# Get Port0 value
+	p0_val=$(i2cget -f -y 15 0x22 0x02)
+	p0_val=$(("$p0_val" | (1 << 4)))
+	# Set Port0[4] value to "1" to mask all CPU’s GPIOs, set Port0[4].
+	i2cset -f -y 15 0x22 0x02 $p0_val
+
+	p0_IOexp_val=$(i2cget -f -y 15 0x22 0x06)
+	p0_IOexp_val=$(("$p0_IOexp_val" & ~(1 << 4)))
+	# Config CPLD's IOepx Port0[4] from input to output, clear IOepx Port0[4].
+	i2cset -f -y 15 0x22 0x06 $p0_IOexp_val
+}
+
+diable_scandump_mode() {
+	echo "Disable Scandump mode"
+
+	# Disable scandump mode in CPLD
+	# Get Port0 value
+	p0_val=$(i2cget -f -y 15 0x22 0x02)
+	p0_val=$(("$p0_val" & ~(1 << 4)))
+	# Set Port0[4] value to "0" to unmask all CPU’s GPIOs, clear Port0[4].
+	i2cset -f -y 15 0x22 0x02 $p0_val
+
+	p0_IOexp_val=$(i2cget -f -y 15 0x22 0x06)
+	p0_IOexp_val=$(("$p0_IOexp_val" | (1 << 4)))
+	# Config CPLD's IOepx Port0[4] from output to input, set IOepx Port0[4].
+	i2cset -f -y 15 0x22 0x06 $p0_IOexp_val
+
+	# Enable Mpro hang detection
+	systemctl start ampere-sysfw-hang-handler.service
+
+	# Enable PLDM service
+	systemctl start pldmd.service
+}
+
+getstatus() {
+	# Get CPLD's IOepx Port0[4], if this bit is "0" scandump mode is enabled.
+	p0_IOexp_val=$(i2cget -f -y 15 0x22 0x06)
+	p0_IOexp_val=$(("$p0_IOexp_val" & (1 << 4)))
+	if [[ "$p0_IOexp_val" == "0" ]]; then
+		echo "Scandump mode is enabled"
+		exit 1
+	else
+		echo "Scandump mode is disabled"
+		exit 0
+	fi
+}
+
+# Usage of this utility
+usage() {
+	echo "Usage:"
+	echo "  - To enable Scandump mode"
+	echo "     $(basename "$0") enable"
+	echo "  - To disable Scandump mode"
+	echo "     $(basename "$0") disable"
+	echo "  - To get Scandump mode status"
+	echo "     $(basename "$0") getstatus"
+	exit 0
+}
+
+if [[ $1 == "enable" ]]; then
+	enable_scandump_mode
+elif [[ $1 == "disable" ]]; then
+	diable_scandump_mode
+elif [[ $1 == "getstatus" ]]; then
+	getstatus
+else
+	echo "Invalid mode"
+	usage
+fi
+
+exit 0
