summaryrefslogtreecommitdiff
path: root/lenovobios_secondflash
diff options
context:
space:
mode:
Diffstat (limited to 'lenovobios_secondflash')
-rwxr-xr-xlenovobios_secondflash75
1 files changed, 65 insertions, 10 deletions
diff --git a/lenovobios_secondflash b/lenovobios_secondflash
index 9c5ec10..25d70f5 100755
--- a/lenovobios_secondflash
+++ b/lenovobios_secondflash
@@ -22,6 +22,19 @@
# set -u -e -v
set -v
+if [ $(uname -i) = "i686" ] || [ $(uname -m) = "i686" ]
+ then
+ echo "Running on i686. ok."
+ sleep 5
+elif [ $(uname -i) = "x86_64" ] || [ $(uname -m) = "x86_64" ]
+ then
+ echo "Running on x86_64. ok."
+ sleep 5
+else
+ echo "This script must be run on an i686 or x86_64 host. x86_64 is recommended."
+ exit 1
+fi
+
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
@@ -44,13 +57,55 @@ if [ ! -f $1 ]; then
fi
# Flash it a 2nd time, to write upper 64K block
-./flashrom/flashrom -p internal -w $1
-
-# Advised. Reset back to 0.
-{ # try
- ./bucts/bucts 0
-} || { # catch
- echo "WARNING: bucts not found, but if the image was flashed then it's probably safe."
- echo "A dd'd image (like libreboot's images) flashed with bucts=1 is ok. If the image is not dd'd and bucts=1,"
- echo "then you should run ./bucts 0 now, or remove the yellow cmos/nvram battery for a minute."
-}
+if [ -f "DEBLOB" ]; then
+ # Means we are in src archive or git
+ ./flashrom/flashrom -p internal -w $1
+elif [ $(uname -i) = "i686" ] || [ $(uname -m) = "i686" ]
+ then
+ # Means we are in bin archive and on an i686 host
+ ./flashrom/i686/flashrom -p internal -w $1
+elif [ $(uname -i) = "x86_64" ] || [ $(uname -m) = "x86_64" ]
+ then
+ # Means we are in bin archive and on an x86_64 host
+ ./flashrom/x86_64/flashrom -p internal -w $1
+fi
+
+# Reset bucts back to zero
+$errOut = " \
+ WARNING: bucts not found, but if the image was flashed then it's probably safe \
+ A dd'd image (like libreboot's images) flashed with bucts=1 is ok. If the image is not dd'd and bucts=1, \
+ then you should run ./bucts 0 now, or remove the yellow cmos/nvram battery for a minute. \
+ "
+if [ ! -f "DEBLOB" ]
+ then
+ # this means we are working in bin
+ if [ $(uname -i) = "i686" ] || [ $(uname -m) = "i686" ]
+ then
+ # i686
+ # needed for first flashing, otherwise machine will be bricked
+ { # try
+ ./bucts/i686/bucts 0
+ } || { # catch
+ echo "$errOut"
+ exit 1
+ }
+ else
+ # x86_64
+ # needed for first flashing, otherwise machine will be bricked
+ { # try
+ ./bucts/x86_64/bucts 0
+ } || { # catch
+ echo "$errOut"
+ exit 1
+ }
+else
+ # this means we are working in src
+ # needed for first flashing, otherwise machine will be bricked
+ { # try
+ ./bucts/bucts 0
+ } || { # catch
+ echo "$errOut"
+ exit 1
+ }
+fi
+