oem_ibm: Move the NVRAM files to the hostfw directory

This commit would :
- Move the NVRAM files from /var/ on the BMC to the hostfw directory so
  that they don't get erased during a BMC factory reset.

- To help migrate existing systems, check if the files exist in /var/,
  and if they do, move them to the hostfw destination.

- This also adds dependent services that ensure that the links being
  setup correctly in var/lib/phosphor-software-manager/hostfw/ is run
  first.

- The services to clear PHYP NVRAM are not needed anymore. Instead of
  the BMC clearing them, the hypervisor will now clear them if the
  pvm_clear_nvram bios attribute is set.

Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
Change-Id: If8da88347a82d212b30c3cb6354037b62887c67c
diff --git a/oem/ibm/configurations/fileTable.json b/oem/ibm/configurations/fileTable.json
index 5b68a03..2f1d8f5 100644
--- a/oem/ibm/configurations/fileTable.json
+++ b/oem/ibm/configurations/fileTable.json
@@ -1,10 +1,10 @@
 [
    {
-      "path":"/var/lib/pldm/PHYP-NVRAM",
+      "path":"/var/lib/phosphor-software-manager/hostfw/nvram/PHYP-NVRAM",
       "file_traits":1
    },
    {
-      "path":"/var/lib/pldm/PHYP-NVRAM-CKSUM",
+      "path":"/var/lib/phosphor-software-manager/hostfw/nvram/PHYP-NVRAM-CKSUM",
       "file_traits":4
    },
    {
diff --git a/oem/ibm/service_files/meson.build b/oem/ibm/service_files/meson.build
index fdc7b01..96c3b07 100644
--- a/oem/ibm/service_files/meson.build
+++ b/oem/ibm/service_files/meson.build
@@ -1,3 +1,5 @@
+subdir('scripts')
+
 configure_file(
   copy: true,
   input: 'pldm-create-phyp-nvram.service',
@@ -12,18 +14,3 @@
   install_dir: systemd_system_unit_dir,
   output: 'pldm-create-phyp-nvram-cksum.service',
 )
-configure_file(
-  copy: true,
-  input: 'pldm-reset-phyp-nvram.service',
-  install: true,
-  install_dir: systemd_system_unit_dir,
-  output: 'pldm-reset-phyp-nvram.service',
-)
-configure_file(
-  copy: true,
-  input: 'pldm-reset-phyp-nvram-cksum.service',
-  install: true,
-  install_dir: systemd_system_unit_dir,
-  output: 'pldm-reset-phyp-nvram-cksum.service',
-)
-
diff --git a/oem/ibm/service_files/pldm-create-phyp-nvram-cksum.service b/oem/ibm/service_files/pldm-create-phyp-nvram-cksum.service
index 9e0100d..d59086d 100644
--- a/oem/ibm/service_files/pldm-create-phyp-nvram-cksum.service
+++ b/oem/ibm/service_files/pldm-create-phyp-nvram-cksum.service
@@ -1,10 +1,13 @@
 [Unit]
 Description=Create empty PHYP-NVRAM-CKSUM file
-ConditionPathExists=!/var/lib/pldm/PHYP-NVRAM-CKSUM
+Wants=obmc-vpnor-updatesymlinks.service
+After=obmc-vpnor-updatesymlinks.service
+Wants=obmc-flash-bios-init.service
+After=obmc-flash-bios-init.service
+ConditionPathExists=!/var/lib/phosphor-software-manager/hostfw/nvram/PHYP-NVRAM-CKSUM
 
 [Service]
-ExecStart=/bin/mkdir -p /var/lib/pldm/
-ExecStart=/bin/dd if=/dev/zero of=/var/lib/pldm/PHYP-NVRAM-CKSUM bs=16 count=1
+ExecStart=/usr/bin/create-NVRAM-cksum-file
 Type=oneshot
 RemainAfterExit=no
 
diff --git a/oem/ibm/service_files/pldm-create-phyp-nvram.service b/oem/ibm/service_files/pldm-create-phyp-nvram.service
index 0866579..edf79d9 100644
--- a/oem/ibm/service_files/pldm-create-phyp-nvram.service
+++ b/oem/ibm/service_files/pldm-create-phyp-nvram.service
@@ -1,10 +1,13 @@
 [Unit]
 Description=Create empty PHYP-NVRAM file
-ConditionPathExists=!/var/lib/pldm/PHYP-NVRAM
+Wants=obmc-vpnor-updatesymlinks.service
+After=obmc-vpnor-updatesymlinks.service
+Wants=obmc-flash-bios-init.service
+After=obmc-flash-bios-init.service
+ConditionPathExists=!/var/lib/phosphor-software-manager/hostfw/nvram/PHYP-NVRAM
 
 [Service]
-ExecStart=/bin/mkdir -p /var/lib/pldm/
-ExecStart=/bin/dd if=/dev/zero of=/var/lib/pldm/PHYP-NVRAM bs=1024 count=145408
+ExecStart=/usr/bin/create-NVRAM-file
 Type=oneshot
 RemainAfterExit=no
 
diff --git a/oem/ibm/service_files/pldm-reset-phyp-nvram-cksum.service b/oem/ibm/service_files/pldm-reset-phyp-nvram-cksum.service
deleted file mode 100644
index 5b8d2fd..0000000
--- a/oem/ibm/service_files/pldm-reset-phyp-nvram-cksum.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Reset PHYP-NVRAM-CKSUM file
-Requires=pldm-create-phyp-nvram-cksum.service
-Before=pldm-create-phyp-nvram-cksum.service
-
-[Service]
-ExecStart=/bin/rm -f /var/lib/pldm/PHYP-NVRAM-CKSUM
-Type=oneshot
-RemainAfterExit=no
diff --git a/oem/ibm/service_files/pldm-reset-phyp-nvram.service b/oem/ibm/service_files/pldm-reset-phyp-nvram.service
deleted file mode 100644
index 12827b5..0000000
--- a/oem/ibm/service_files/pldm-reset-phyp-nvram.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Reset PHYP-NVRAM file
-Requires=pldm-create-phyp-nvram.service
-Before=pldm-create-phyp-nvram.service
-
-[Service]
-ExecStart=/bin/rm -f /var/lib/pldm/PHYP-NVRAM
-Type=oneshot
-RemainAfterExit=no
diff --git a/oem/ibm/service_files/scripts/create-NVRAM-cksum-file b/oem/ibm/service_files/scripts/create-NVRAM-cksum-file
new file mode 100755
index 0000000..276f824
--- /dev/null
+++ b/oem/ibm/service_files/scripts/create-NVRAM-cksum-file
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if [ -f /var/lib/pldm/PHYP-NVRAM-CKSUM ]; then
+    mv /var/lib/pldm/PHYP-NVRAM-CKSUM /var/lib/phosphor-software-manager/hostfw/nvram/PHYP-NVRAM-CKSUM;
+else
+    dd if=/dev/zero of=/var/lib/phosphor-software-manager/hostfw/nvram/PHYP-NVRAM-CKSUM bs=16 count=1;
+fi
diff --git a/oem/ibm/service_files/scripts/create-NVRAM-file b/oem/ibm/service_files/scripts/create-NVRAM-file
new file mode 100755
index 0000000..6e35c46
--- /dev/null
+++ b/oem/ibm/service_files/scripts/create-NVRAM-file
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if [ -f /var/lib/pldm/PHYP-NVRAM ]; then
+    mv /var/lib/pldm/PHYP-NVRAM /var/lib/phosphor-software-manager/hostfw/nvram/PHYP-NVRAM;
+else
+    dd if=/dev/zero of=/var/lib/phosphor-software-manager/hostfw/nvram/PHYP-NVRAM bs=1024 count=145408;
+fi
diff --git a/oem/ibm/service_files/scripts/meson.build b/oem/ibm/service_files/scripts/meson.build
new file mode 100644
index 0000000..35b2626
--- /dev/null
+++ b/oem/ibm/service_files/scripts/meson.build
@@ -0,0 +1,5 @@
+install_data([
+    'create-NVRAM-file',
+    'create-NVRAM-cksum-file'],
+    install_dir: get_option('bindir')
+)