diff options
Diffstat (limited to 'meta-openbmc-machines/meta-openpower/common/recipes-phosphor/flash/openpower-software-manager/obmc-flash-bios')
-rw-r--r-- | meta-openbmc-machines/meta-openpower/common/recipes-phosphor/flash/openpower-software-manager/obmc-flash-bios | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/flash/openpower-software-manager/obmc-flash-bios b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/flash/openpower-software-manager/obmc-flash-bios index 226527524..dffd29871 100644 --- a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/flash/openpower-software-manager/obmc-flash-bios +++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/flash/openpower-software-manager/obmc-flash-bios @@ -128,6 +128,34 @@ umount_ubi() { fi } +remount_ubi() { + pnormtd="$(findmtd pnor)" + pnor="${pnormtd#mtd}" + # Get information on all ubi volumes + ubinfo=$(ubinfo -d ${pnor}) + presentVolumes=${ubinfo##*:} + IFS=', ' read -r -a array <<< "$presentVolumes" + for element in ${array[@]}; + do + elementProperties=$(ubinfo -d $pnor -n $element) + # Get ubi volume name by getting rid of additional properties + name=${elementProperties#*Name:} + name="${name%Character*}" + name="$(echo -e "${name}" | tr -d '[:space:]')" + + if [[ ${name} == pnor-prsv ]] || [[ ${name} == pnor-rw* ]] || [[ ${name} == pnor-ro* ]]; then + mountdir="/media/${name}" + if [[ ${name} == pnor-ro* ]] + then + ubiblock --create /dev/ubi${pnor}_${element} + mount -t squashfs -o ro "/dev/ubiblock${pnor}_${element}" "${mountdir}" + else + mount -t ubifs "ubi${pnor}:${name}" "${mountdir}" + fi + fi + done +} + case "$1" in ubiattach) attach_ubi @@ -145,6 +173,9 @@ case "$1" in name="$2" umount_ubi ;; + ubiremount) + remount_ubi + ;; *) echo "Invalid argument" exit 1 |