summaryrefslogtreecommitdiff
path: root/lenovobios_firstflash
blob: b3084c1d7f1b77bae606400c6adc5527f1b63ce8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash

#  lenovobios_firstflash: flashes libreboot on an X60/T60 while Lenovo BIOS is running
#
#	Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

## Don't add here. errors are expected.
# set -u -e -v
set -v

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root" 
   exit 1
fi

# USE ROOT OR SUDO WHEN EXECUTING THIS

# for T60 or X60 owners with Lenovo BIOS
# does the 1st part of the flash before shut down

if (( $# != 1 )); then
	echo "Usage: ./lenovobios_firstflash yourrom.rom"
	echo "usage: ./lenovobios_firstflash path/to/yourrom.rom"
	echo "You need to specify exactly 1 file"
	exit 1
fi
if [ ! -f $1 ]; then
	echo "File not found!"
	exit 1
fi

# needed for first flashing, otherwise machine will be bricked
{ # try
	./bucts/bucts 1
} || { # catch
	echo "BUCTS issue (most likely not compiled). Make sure BUC.TS is 1, or else you will brick your machine."
	echo "ABORTING so as to protect against bricking the machine."
	exit 1
}

# run both. one will fail (and be harmless), the other will succeed. 
./flashrom/flashrom_lenovobios_sst -p internal -w $1
./flashrom/flashrom_lenovobios_macronix -p internal -w $1