1#!/bin/sh 2mkdir -p /var/lib/phosphor-software-manager/hostfw/nvram 3NVRAM=/var/lib/phosphor-software-manager/hostfw/nvram/PHYP-NVRAM 4BACKUP=/var/lib/pldm/PHYP-NVRAM 5SIZE=$((1024 * 145408)) 6 7if [ ! -f "$NVRAM" ]; then 8 echo "NVRAM file not found" 9 NEED_CREATE=true 10elif [ "$(stat -c%s "$NVRAM")" -ne "$SIZE" ]; then 11 CURRENT_SIZE=$(stat -c%s "$NVRAM") 12 echo "Invalid NVRAM size: $CURRENT_SIZE bytes, recreating NVRAM file" 13 rm -f "$NVRAM" 14 NEED_CREATE=true 15else 16 CURRENT_SIZE=$(stat -c%s "$NVRAM") 17 echo "NVRAM file found with correct size: $CURRENT_SIZE bytes" 18 NEED_CREATE=false 19fi 20 21if $NEED_CREATE; then 22 if [ -f "$BACKUP" ]; then 23 BACKUP_SIZE=$(stat -c%s "$BACKUP") 24 if [ "$BACKUP_SIZE" -eq "$SIZE" ]; then 25 echo "Backup file size valid ($BACKUP_SIZE bytes), moving to NVRAM path" 26 mv "$BACKUP" "$NVRAM" 27 else 28 echo "Backup file size invalid ($BACKUP_SIZE bytes), deleting backup" 29 rm -f "$BACKUP" 30 truncate -s "$SIZE" "$NVRAM" 31 fi 32 else 33 echo "Backup file not found, creating new NVRAM file" 34 truncate -s "$SIZE" "$NVRAM" 35 fi 36fi 37