xref: /openbmc/pldm/oem/ibm/service_files/scripts/create-NVRAM-file (revision e8c39f35fff81534796e88272ef74c85ef573b41)
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