Browse Source

README: improve documenting the new first-time flashing procedures

pull/35/head
Martin Kepplinger 6 years ago
parent
commit
3d3276ff8a
1 changed files with 26 additions and 34 deletions
  1. +26
    -34
      README.md

+ 26
- 34
README.md View File

@ -62,55 +62,44 @@ unsure what to specify, here's some examples we find out there:
### EC firmware (optional) ### EC firmware (optional)
Enter Lenovo's BIOS with __F1__ and check the embedded controller (EC) version to be Enter Lenovo's BIOS with __F1__ and check the embedded controller (EC) version to be
__1.14__ and upgrade using [the latest bootable CD](https://support.lenovo.com/at/en/downloads/ds029188)
__1.14__ and upgrade using
[the latest bootable CD](https://support.lenovo.com/at/en/downloads/ds029188)
if it isn't. The EC cannot be upgraded when coreboot is installed. (In case a newer if it isn't. The EC cannot be upgraded when coreboot is installed. (In case a newer
version should ever be available (I doubt it), you could temporarily flash back your version should ever be available (I doubt it), you could temporarily flash back your
original Lenovo BIOS image) original Lenovo BIOS image)
### ifd unlock and me_cleaner
The Intel Management Engine resides on the 8MB chip. We don't need to touch it
### ifd unlock and me_cleaner: the 8MB chip
The Intel Management Engine resides on the 8MB chip (at the bottom, closer to
you). We don't need to touch it
for coreboot-upgrades in the future, but to enable internal flashing, we need for coreboot-upgrades in the future, but to enable internal flashing, we need
to unlock it once. to unlock it once.
We run [ifdtool](https://github.com/coreboot/coreboot/tree/master/util/ifdtool) We run [ifdtool](https://github.com/coreboot/coreboot/tree/master/util/ifdtool)
and, while we are at it, [me_cleaner](https://github.com/corna/me_cleaner) on it: and, while we are at it, [me_cleaner](https://github.com/corna/me_cleaner) on it:
We support using a RPi, see below for the connection details.
Move the release-tarball to the RPi (USB Stick or however) and unpack it
(to the current directory and change into it):
We support using a RPi, see below for more details:
Transfer the release tarball (when don't want to use
a USB Stick or network):
mkdir tarball_extracted
tar -xf <tarball>.tar.xz -C tarball_extracted
cd tarball_extracted
(convert)
host$ uuencode <tarball>.tar.xz <tarball>.tar.xz.ascii > <tarball>.tar.xz.ascii
(transfer)
rpi$ cat > <tarball>.tar.xz.ascii
host$ pv <tarball>.tar.xz.ascii > /dev/ttyUSBX
(wait)
rpi$ (CTRL-D)
(convert back)
rpi$ uudecode -o <tarball>.tar.xz <tarball>.tar.xz.ascii
(verify)
host$ sha1sum <tarball>.tar.xz
rpi$ sha1sum <tarball>.tar.xz
And finally unlock the 8M chip by using the included script (be patient):
Unpack it (to the current directory and change into it):
sudo ./flashrom_rpi_bottom_unlock.sh -m -c <chipname> -k <backup.bin>
tar -xf <tarball>.tar.xz -C .
cd <tarball>.tar.xz
That's it. Keep the backup safe.
And finally unlock the 8M chip (be patient):
when updating to a new release, you don't have to disasseble your Thinkpad
and can flash internally (at your own risk), see below.
#### background (just so you know)
The `-m` option above also runs `me_cleaner -S` before flashing back.
flashrom_rpi_bottom_unlock.sh -m -c <chipname> -k <backup.bin>
`-m` also runs `me_cleaner -S` before flashing back. Keep the backup safe.
#### background
If you don't use a RPi, change the flashrom programmer to your needs: If you don't use a RPi, change the flashrom programmer to your needs:
@ -126,13 +115,14 @@ If you don't use a RPi, change the flashrom programmer to your needs:
### BIOS: the 4MB chip ### BIOS: the 4MB chip
(internally, memory of the two chips is mapped together, the 8MB being the lower (internally, memory of the two chips is mapped together, the 8MB being the lower
part, but we can essientially ignore that). Again, using a RPi is supported part, but we can essientially ignore that). Again, using a RPi is supported
here. We assume you have the unpacked release tarball ready, see above:
here. We assume you have the unpacked release tarball ready, see above. Use
the following included script:
flashrom_rpi_top_write.sh -i x230_coreboot_seabios_<release>_top.rom -c <chipname> -k <backup>
sudo ./flashrom_rpi_top_write.sh -i x230_coreboot_seabios_<hash>_top.rom -c <chipname> -k <backup>
Keep the backup safe.
That's it. Keep the backup safe.
## How to update ## How to update
When __upgrading__ to a new release, only the "upper" 4MB chip has to be written. When __upgrading__ to a new release, only the "upper" 4MB chip has to be written.
@ -210,12 +200,14 @@ Stick or scp :) (but you need even more hardware or a network).
### Example: internal ### Example: internal
CAUTION: THIS IS NOT ENCOURAGED CAUTION: THIS IS NOT ENCOURAGED
* Only for updating! You have to have your 8MB chip flashed externally after `ifdtool -u ifdmegbe.rom` before this, once
* Only for updating! You have to have your 8MB chip flashed externally using
our `flashrom_rpi_bottom_unlock.sh` script (`ifdtool -u`) before this, once
* very convenient, but according to the [flashrom manpage](https://manpages.debian.org/stretch/flashrom/flashrom.8.en.html) this is very dangerous! * very convenient, but according to the [flashrom manpage](https://manpages.debian.org/stretch/flashrom/flashrom.8.en.html) this is very dangerous!
* Boot Linux with the `iomem=relaxed` boot parameter (for example set in /etc/default/grub) * Boot Linux with the `iomem=relaxed` boot parameter (for example set in /etc/default/grub)
* download a released 4MB "top" rom image
* download the latest release tarball (4MB "top" BIOS image is included) and extract it
* run `prepare_internal_flashing.sh` for generating all necessary files and instructions * run `prepare_internal_flashing.sh` for generating all necessary files and instructions
## When do we do a release? ## When do we do a release?
Either when Either when
* There is a new SeaBIOS release, * There is a new SeaBIOS release,


Loading…
Cancel
Save