diff --git a/README.md b/README.md index 0ecc340..f6fb2b7 100644 --- a/README.md +++ b/README.md @@ -62,55 +62,44 @@ unsure what to specify, here's some examples we find out there: ### EC firmware (optional) 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 version should ever be available (I doubt it), you could temporarily flash back your 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 to unlock it once. 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: +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 .tar.xz -C tarball_extracted + cd tarball_extracted - (convert) - host$ uuencode .tar.xz .tar.xz.ascii > .tar.xz.ascii - (transfer) - rpi$ cat > .tar.xz.ascii - host$ pv .tar.xz.ascii > /dev/ttyUSBX - (wait) - rpi$ (CTRL-D) - (convert back) - rpi$ uudecode -o .tar.xz .tar.xz.ascii - (verify) - host$ sha1sum .tar.xz - rpi$ sha1sum .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 -k - tar -xf .tar.xz -C . - cd .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 -k - - -`-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: @@ -126,13 +115,14 @@ If you don't use a RPi, change the flashrom programmer to your needs: ### BIOS: the 4MB chip (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 -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__top.rom -c -k + sudo ./flashrom_rpi_top_write.sh -i x230_coreboot_seabios__top.rom -c -k -Keep the backup safe. +That's it. Keep the backup safe. ## How to update 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 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! * 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 + ## When do we do a release? Either when * There is a new SeaBIOS release,