summaryrefslogtreecommitdiff
path: root/meta-phosphor/recipes-phosphor/initrdscripts/phosphor-mmc-init/mmc-init.sh
diff options
context:
space:
mode:
authorjmbills <jason.m.bills@intel.com>2022-01-18 21:55:05 +0300
committerGitHub <noreply@github.com>2022-01-18 21:55:05 +0300
commit7cf0c1cd0ce835d1833509b7b911e8a97380278b (patch)
tree0b45c3beaa9874facc4ed1a2395a31e42be0135d /meta-phosphor/recipes-phosphor/initrdscripts/phosphor-mmc-init/mmc-init.sh
parent4dac5fcd49b5e2de1074f1363775ec0f19041072 (diff)
parent1fc0d70f658da30091bcd49f9bf29aecd6b99ba7 (diff)
downloadopenbmc-7cf0c1cd0ce835d1833509b7b911e8a97380278b.tar.xz
Merge pull request #76 from Intel-BMC/update1-0.86
Update
Diffstat (limited to 'meta-phosphor/recipes-phosphor/initrdscripts/phosphor-mmc-init/mmc-init.sh')
-rw-r--r--meta-phosphor/recipes-phosphor/initrdscripts/phosphor-mmc-init/mmc-init.sh25
1 files changed, 20 insertions, 5 deletions
diff --git a/meta-phosphor/recipes-phosphor/initrdscripts/phosphor-mmc-init/mmc-init.sh b/meta-phosphor/recipes-phosphor/initrdscripts/phosphor-mmc-init/mmc-init.sh
index 575b7605a..ad9748e65 100644
--- a/meta-phosphor/recipes-phosphor/initrdscripts/phosphor-mmc-init/mmc-init.sh
+++ b/meta-phosphor/recipes-phosphor/initrdscripts/phosphor-mmc-init/mmc-init.sh
@@ -10,6 +10,9 @@ get_root() {
fslist="proc sys dev run"
rodir=/mnt/rofs
+mmcdev="/dev/mmcblk0"
+rwfsdev="/dev/disk/by-partlabel/rwfs"
+
cd /
mkdir -p $fslist
mount dev dev -tdevtmpfs
@@ -19,7 +22,6 @@ mount tmpfs run -t tmpfs -o mode=755,nodev
# Wait up to 5s for the mmc device to appear. Continue even if the count is
# exceeded. A failure will be caught later like in the mount command.
-mmcdev="/dev/mmcblk0"
count=0
while [ $count -lt 5 ]; do
if [ -e "${mmcdev}" ]; then
@@ -48,16 +50,29 @@ if ! mount /dev/disk/by-partlabel/"$(get_root)" $rodir -t ext4 -o ro; then
/bin/sh
fi
-rwfsdev="/dev/disk/by-partlabel/rwfs"
+# Determine if a factory reset has been requested
mkdir -p /var/lock
-if test $(fw_printenv -n rwreset) = "true"; then
+resetval=$(fw_printenv -n rwreset 2>/dev/null)
+gpiopresent=$(gpiofind factory-reset-toggle)
+if [ $? -eq 0 ]; then
+ gpioval=$(gpioget $gpiopresent)
+else
+ gpioval=""
+fi
+# Prevent unnecessary resets on first boot
+if [ -n "$gpioval" -a -z "$resetval" ]; then
+ fw_setenv rwreset $gpioval
+ resetval=$gpioval
+fi
+if [ "$resetval" = "true" -o -n "$gpioval" -a "$resetval" != "$gpioval" ]; then
echo "Factory reset requested."
if ! mkfs.ext4 -F "${rwfsdev}"; then
echo "Reformat for factory reset failed."
/bin/sh
else
- fw_setenv rwreset
- echo "Formatting of rwfs is complete."
+ # gpioval will be an empty string if factory-reset-toggle was not found
+ fw_setenv rwreset $gpioval
+ echo "rwfs has been formatted."
fi
fi