diff --git a/ubi/Makefile.am.include b/ubi/Makefile.am.include
index 2e5b6e5..3e442f8 100644
--- a/ubi/Makefile.am.include
+++ b/ubi/Makefile.am.include
@@ -9,9 +9,7 @@
 
 if HAVE_SYSTEMD
 systemdsystemunit_DATA += \
-	%reldir%/obmc-flash-bios-check-clearvolatile@.service \
 	%reldir%/obmc-flash-bios-cleanup.service \
-	%reldir%/obmc-flash-bios-enable-clearvolatile@.service \
 	%reldir%/obmc-flash-bios-ubiattach.service \
 	%reldir%/obmc-flash-bios-ubimount@.service \
 	%reldir%/obmc-flash-bios-ubipatch.service \
diff --git a/ubi/obmc-flash-bios b/ubi/obmc-flash-bios
index b15ddc6..7ea9afe 100644
--- a/ubi/obmc-flash-bios
+++ b/ubi/obmc-flash-bios
@@ -228,40 +228,6 @@
     done
 }
 
-clear_volatile() {
-  service=$(mapper get-service /org/open_power/control/volatile)
-  clearVolatileEnabled=$(busctl get-property $service /org/open_power/control/volatile xyz.openbmc_project.Object.Enable Enabled)
-  if [[ "$clearVolatileEnabled" != "b true" ]]; then
-    return 0
-  fi
-
-  PNOR_TOC_FILE="pnor.toc"
-  PNOR_RO_ACTIVE_PATH="/var/lib/phosphor-software-manager/pnor/ro/"
-  PNOR_RW_ACTIVE_PATH="/var/lib/phosphor-software-manager/pnor/rw/"
-  PNOR_PRSV_ACTIVE_PATH="/var/lib/phosphor-software-manager/pnor/prsv/"
-
-  # toc partition string format:
-  # partition27=HB_VOLATILE,0x02ba9000,0x02bae000,00,ECC,VOLATILE,READWRITE
-  tocFilePath="${PNOR_RO_ACTIVE_PATH}${PNOR_TOC_FILE}"
-  volatiles=($(grep VOLATILE "${tocFilePath}" | grep -Eo '^partition([0-9]+)=([A-Za-z0-9_]+)'))
-  for (( index=0; index<${#volatiles[@]}; index++ )); do
-    volatileName="$(echo ${volatiles[${index}]} | awk -F '=' '{print $2}')"
-
-    rwVolatile="${PNOR_RW_ACTIVE_PATH}${volatileName}"
-    if [ -f "${rwVolatile}" ]; then
-      echo "Clear $rwVolatile"
-      rm "${rwVolatile}"
-    fi
-    prsvVolatile="${PNOR_PRSV_ACTIVE_PATH}${volatileName}"
-    if [ -f "${prsvVolatile}" ]; then
-      echo "Clear $prsvVolatile"
-      rm "${prsvVolatile}"
-    fi
-  done
-  # Always reset the sensor after clearing
-  busctl set-property $service /org/open_power/control/volatile xyz.openbmc_project.Object.Enable Enabled b false
-}
-
 case "$1" in
   ubiattach)
     attach_ubi
@@ -285,9 +251,6 @@
   ubicleanup)
     ubi_cleanup
     ;;
-  clearvolatile)
-    clear_volatile
-    ;;
   *)
     echo "Invalid argument"
     exit 1
diff --git a/vpnor/Makefile.am.include b/vpnor/Makefile.am.include
index 49d9c1a..ce7e535 100644
--- a/vpnor/Makefile.am.include
+++ b/vpnor/Makefile.am.include
@@ -3,5 +3,7 @@
 
 if HAVE_SYSTEMD
 systemdsystemunit_DATA += \
+	%reldir%/obmc-vpnor-check-clearvolatile@.service \
+	%reldir%/obmc-vpnor-enable-clearvolatile@.service \
 	%reldir%/obmc-vpnor-updatesymlinks.service
 endif
diff --git a/ubi/obmc-flash-bios-check-clearvolatile@.service b/vpnor/obmc-vpnor-check-clearvolatile@.service
similarity index 70%
rename from ubi/obmc-flash-bios-check-clearvolatile@.service
rename to vpnor/obmc-vpnor-check-clearvolatile@.service
index a5c69ea..c303721 100644
--- a/ubi/obmc-flash-bios-check-clearvolatile@.service
+++ b/vpnor/obmc-vpnor-check-clearvolatile@.service
@@ -1,13 +1,13 @@
 [Unit]
 Description=Clear the Volatile PNOR partitions in host%I if Enabled
-After=obmc-flash-bios-enable-clearvolatile@%i.service
+After=obmc-vpnor-enable-clearvolatile@%i.service
 Before=obmc-host-start-pre@%i.target
 ConditionPathExists=!/run/openbmc/host@%i-on
 
 [Service]
 Type=oneshot
 RemainAfterExit=no
-ExecStart=/usr/bin/obmc-flash-bios clearvolatile
+ExecStart=/usr/bin/obmc-vpnor-util clearvolatile
 
 [Install]
 RequiredBy=obmc-host-startmin@%i.target
diff --git a/ubi/obmc-flash-bios-enable-clearvolatile@.service b/vpnor/obmc-vpnor-enable-clearvolatile@.service
similarity index 83%
rename from ubi/obmc-flash-bios-enable-clearvolatile@.service
rename to vpnor/obmc-vpnor-enable-clearvolatile@.service
index bdadc30..bad59b1 100644
--- a/ubi/obmc-flash-bios-enable-clearvolatile@.service
+++ b/vpnor/obmc-vpnor-enable-clearvolatile@.service
@@ -3,14 +3,14 @@
 After=obmc-host-reset-running@%i.target
 Wants=mapper-wait@-org-open_power-control-volatile.service
 After=mapper-wait@-org-open_power-control-volatile.service
-Before=obmc-flash-bios-check-clearvolatile@%i.service
+Before=obmc-vpnor-check-clearvolatile@%i.service
 ConditionPathExists=!/run/openbmc/host@%i-on
 
 [Service]
 Type=oneshot
 RemainAfterExit=no
 ExecStart=/bin/sh -c "busctl set-property `mapper get-service /org/open_power/control/volatile` /org/open_power/control/volatile xyz.openbmc_project.Object.Enable Enabled b true"
-SyslogIdentifier=obmc-flash-bios-enable-clearvolatile
+SyslogIdentifier=obmc-vpnor-enable-clearvolatile
 
 [Install]
 RequiredBy=obmc-host-start@%i.target
diff --git a/vpnor/obmc-vpnor-util b/vpnor/obmc-vpnor-util
index 25e6726..2abf8fb 100644
--- a/vpnor/obmc-vpnor-util
+++ b/vpnor/obmc-vpnor-util
@@ -1,5 +1,39 @@
 #!/bin/sh
 
+clear_volatile() {
+  service=$(mapper get-service /org/open_power/control/volatile)
+  clearVolatileEnabled=$(busctl get-property $service /org/open_power/control/volatile xyz.openbmc_project.Object.Enable Enabled)
+  if [[ "$clearVolatileEnabled" != "b true" ]]; then
+    return 0
+  fi
+
+  PNOR_TOC_FILE="pnor.toc"
+  PNOR_RO_ACTIVE_PATH="/var/lib/phosphor-software-manager/pnor/ro/"
+  PNOR_RW_ACTIVE_PATH="/var/lib/phosphor-software-manager/pnor/rw/"
+  PNOR_PRSV_ACTIVE_PATH="/var/lib/phosphor-software-manager/pnor/prsv/"
+
+  # toc partition string format:
+  # partition27=HB_VOLATILE,0x02ba9000,0x02bae000,00,ECC,VOLATILE,READWRITE
+  tocFilePath="${PNOR_RO_ACTIVE_PATH}${PNOR_TOC_FILE}"
+  volatiles=($(grep VOLATILE "${tocFilePath}" | grep -Eo '^partition([0-9]+)=([A-Za-z0-9_]+)'))
+  for (( index=0; index<${#volatiles[@]}; index++ )); do
+    volatileName="$(echo ${volatiles[${index}]} | awk -F '=' '{print $2}')"
+
+    rwVolatile="${PNOR_RW_ACTIVE_PATH}${volatileName}"
+    if [ -f "${rwVolatile}" ]; then
+      echo "Clear $rwVolatile"
+      rm "${rwVolatile}"
+    fi
+    prsvVolatile="${PNOR_PRSV_ACTIVE_PATH}${volatileName}"
+    if [ -f "${prsvVolatile}" ]; then
+      echo "Clear $prsvVolatile"
+      rm "${prsvVolatile}"
+    fi
+  done
+  # Always reset the sensor after clearing
+  busctl set-property $service /org/open_power/control/volatile xyz.openbmc_project.Object.Enable Enabled b false
+}
+
 update_symlinks() {
   PNOR_ACTIVE_PATH="/var/lib/phosphor-software-manager/pnor/"
   PNOR_RO_ACTIVE_PATH="/var/lib/phosphor-software-manager/pnor/ro"
@@ -60,6 +94,9 @@
 }
 
 case "$1" in
+  clearvolatile)
+    clear_volatile
+    ;;
   updatesymlinks)
     update_symlinks
     ;;
