mmc: Add nvram hostfw directory
Created an nvram directory to store the hypervisor's NVRAM files.
Create a symlink to that directory for apps like PLDM to access it.
Add a dependency to the symlink service to start before the PLDM
services that would make use of the new NVRAM directory start.
Tested: Verified the directory and symlink got created. Verified the
PLDM services started after the symlink one.
Change-Id: I8cdef7cc2176ed10096712918a743efd304df6c1
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
diff --git a/mmc/obmc-flash-bios b/mmc/obmc-flash-bios
index 7d2a1a9..7b1f79b 100644
--- a/mmc/obmc-flash-bios
+++ b/mmc/obmc-flash-bios
@@ -22,6 +22,7 @@
running_dir="${base_dir}/running"
prsv_dir="${base_dir}/prsv"
staging_dir="${base_dir}/staging"
+ nvram_dir="${base_dir}/nvram"
if [ ! -d "${ro_dir}" ]; then
mkdir -p "${ro_dir}"
@@ -35,6 +36,9 @@
if [ ! -d "${staging_dir}" ]; then
mkdir -p "${staging_dir}"
fi
+ if [ ! -d "${nvram_dir}" ]; then
+ mkdir -p "${nvram_dir}"
+ fi
# Mount the image that corresponds to the boot label as read-only to be used
# to populate the running directory.
diff --git a/vpnor/obmc-vpnor-updatesymlinks.service b/vpnor/obmc-vpnor-updatesymlinks.service
index 7a4ed54..0cca39e 100644
--- a/vpnor/obmc-vpnor-updatesymlinks.service
+++ b/vpnor/obmc-vpnor-updatesymlinks.service
@@ -1,6 +1,8 @@
[Unit]
Description=Updates symlinks for active PNOR version
Before=pldmd.service
+Before=pldm-create-phyp-nvram.service
+Before=pldm-create-phyp-nvram-cksum.service
Before=mboxd.service
Before=mboxd-reload@0.service
After=org.open_power.Software.Host.Updater.service
diff --git a/vpnor/obmc-vpnor-util b/vpnor/obmc-vpnor-util
index b02bfd8..54ba590 100644
--- a/vpnor/obmc-vpnor-util
+++ b/vpnor/obmc-vpnor-util
@@ -58,9 +58,11 @@
MMC_RUNNING_PATH="${MMC_BASE_PATH}/running"
MMC_ALTERNATE_PATH="${MMC_BASE_PATH}/alternate"
MMC_STAGING_PATH="${MMC_BASE_PATH}/staging"
+ MMC_NVRAM_PATH="${MMC_BASE_PATH}/nvram"
HOSTFW_RUNNING_PATH="${HOSTFW_ACTIVE_PATH}/running"
HOSTFW_ALTERNATE_PATH="${HOSTFW_ACTIVE_PATH}/alternate"
HOSTFW_STAGING_PATH="${HOSTFW_ACTIVE_PATH}/staging"
+ HOSTFW_NVRAM_PATH="${HOSTFW_ACTIVE_PATH}/nvram"
# Get a list of all active PNOR versions
data="$(ls -d ${PNOR_RO_PREFIX}* 2>/dev/null)"
@@ -110,6 +112,10 @@
rm -f ${HOSTFW_STAGING_PATH}
ln -sfv ${MMC_STAGING_PATH} ${HOSTFW_STAGING_PATH}
fi
+ if [[ $(readlink -f "${HOSTFW_NVRAM_PATH}") != "${MMC_NVRAM_PATH}" ]]; then
+ rm -f ${HOSTFW_NVRAM_PATH}
+ ln -sfv ${MMC_NVRAM_PATH} ${HOSTFW_NVRAM_PATH}
+ fi
fi
if [ ! -d "${PNOR_ACTIVE_PATH}" ]; then