From 1ff14e3409318c2c3d74665464e5e18ac1b218ca Mon Sep 17 00:00:00 2001 From: exotime Date: Tue, 2 May 2017 10:55:29 +1000 Subject: Adding links to the Lenovo pages for BIOS update downloads (as the X200t one can be slightly difficult to find). Signed-off-by: exotime --- docs/hardware/x200.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/hardware/x200.md b/docs/hardware/x200.md index 30cc05a0..c6f9230a 100644 --- a/docs/hardware/x200.md +++ b/docs/hardware/x200.md @@ -33,6 +33,8 @@ will update both the BIOS and EC version. See: - [../install/#flashrom](../install/#flashrom) - +- [X200, X200s, X200si BIOS Update](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x200/downloads/ds015007) +- [X200t BIOS Update](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-tablet-laptops/thinkpad-x200-tablet/downloads/ds018814) NOTE: this can only be done when you are using Lenovo BIOS. How to update the EC firmware while running libreboot is unknown. Libreboot -- cgit v1.2.3-70-g09d2 From 64ff4dd2ecb15574fdac6d9e3686cdeec871502b Mon Sep 17 00:00:00 2001 From: exotime Date: Tue, 2 May 2017 11:09:09 +1000 Subject: Adding note about Intel Turbo Memory. Signed-off-by: exotime --- docs/install/x200_external.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/install/x200_external.md b/docs/install/x200_external.md index cf4f74c7..6ceffd82 100644 --- a/docs/install/x200_external.md +++ b/docs/install/x200_external.md @@ -15,6 +15,7 @@ followed (adapted) if you brick your X200, to know how to recover. - [Boot it!](#boot) - [Wifi](#wifi) - [wwan](#wwan) +- [Intel Turbo Memory](#turbomem) - [Memory](#memory) - [X200S and X200 Tablet users: GPIO33 trick will not work.](#gpio33) @@ -73,7 +74,6 @@ header), for SOIC-16 (clip: Pomona 5252): This is how you will connect. Numbers refer to pin numbers on the BBB, on the plugs near the DC jack. Here is a photo of the SOIC-16 flash chip. Pins are labelled: - The following shows how to connect the clip to the BBB (on the P9 header), for SOIC-8 (clip: Pomona 5250): @@ -245,6 +245,11 @@ track your movements. Not to be confused with wifi (wifi is fine). +Intel Turbo Memory {#turbomem} +================== + +Some X200 devices were sold with Intel Turbo Memory installed in the top-most mini PCI-e slot. This has been [shown to be ineffective](http://www.anandtech.com/show/2252) at disk caching or battery saving in most use cases. While there are [Linux drivers](https://github.com/yarrick/turbomem) available, it is blacklisted in at least GNU+Trisquel, and possibly other free operating systems. It should probably be removed. + Memory ====== -- cgit v1.2.3-70-g09d2 From 6b3faaae0c563f7622b11a1e1838153958df5c9f Mon Sep 17 00:00:00 2001 From: exotime Date: Tue, 2 May 2017 15:25:17 +1000 Subject: Fixing up layout of code sections. Signed-off-by: exotime --- docs/install/x200_external.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/install/x200_external.md b/docs/install/x200_external.md index 6ceffd82..16c92662 100644 --- a/docs/install/x200_external.md +++ b/docs/install/x200_external.md @@ -150,7 +150,8 @@ Log in as root on your BBB, using the instructions in [bbb\_setup.html\#bbb\_access](bbb_setup.html#bbb_access). Test that flashrom works: - # ./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 + In this case, the output was: flashrom v0.9.7-r1854 on Linux 3.8.13-bone47 (armv7l) @@ -162,20 +163,20 @@ In this case, the output was: Multiple flash chip definitions match the detected chip(s): "MX25L6405(D)", "MX25L6406E/MX25L6436E", "MX25L6445E/MX25L6473E" Please specify which chip definition to use with the -c option. -How to backup factory.rom (change the -c option as neeed, for your flash -chip):\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory.rom**\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory1.rom**\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -r -factory2.rom**\ -Note: the **-c** option is not required in libreboot's patched +Here is how to backup factory.rom: + + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r factory.rom + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r factory1.rom + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r factory2.rom + +**Note:** the **-c** option is not required in libreboot's patched flashrom, because the redundant flash chip definitions in *flashchips.c* -have been removed.\ +have been removed. + Now compare the 3 images: # sha512sum factory\*.rom + If the hashes match, then just copy one of them (the factory.rom) to a safe place (on a drive connected to another system, not the BBB). This is useful for reverse engineering work, if there is a desirable @@ -189,9 +190,8 @@ flashing it. Although there is a default MAC address inside the ROM image, this is not what you want. **Make sure to always change the MAC address to one that is correct for your system.** -Now flash it:\ -\# **./flashrom -p linux\_spi:dev=/dev/spidev1.0,spispeed=512 -w -path/to/libreboot/rom/image.rom -V** +Now flash it: + # ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w path/to/libreboot/rom/image.rom -V ![](images/x200/disassembly/0015.jpg) -- cgit v1.2.3-70-g09d2 From b91d8020ec61394369d4922f7f9d52b4b68eba63 Mon Sep 17 00:00:00 2001 From: exotime Date: Tue, 2 May 2017 15:29:59 +1000 Subject: Significant improvements to the X200t documentation. * Clean up of the logical flow of the document a little, better grouping of tablet information. * Photos of WSON-8 (underside highlighting thermal pad, flashing with cables etc) * Detail explaining differences in models. * Detail on how to safely remove WSON-8. * Link to pre-existing Raspberry Pi instructions. Signed-off-by: exotime --- .../x200t_flash/X200T-flashchip-underside.jpg | Bin 0 -> 57322 bytes .../x200t_flash/X200T-reflashing-offboard.jpg | Bin 0 -> 196034 bytes .../x200t_flash/X200T-reflashing-onboard.jpg | Bin 0 -> 220092 bytes docs/install/x200_external.md | 94 +++++++++++++++++---- 4 files changed, 77 insertions(+), 17 deletions(-) create mode 100644 docs/images/x200t_flash/X200T-flashchip-underside.jpg create mode 100644 docs/images/x200t_flash/X200T-reflashing-offboard.jpg create mode 100644 docs/images/x200t_flash/X200T-reflashing-onboard.jpg diff --git a/docs/images/x200t_flash/X200T-flashchip-underside.jpg b/docs/images/x200t_flash/X200T-flashchip-underside.jpg new file mode 100644 index 00000000..5ba7d605 Binary files /dev/null and b/docs/images/x200t_flash/X200T-flashchip-underside.jpg differ diff --git a/docs/images/x200t_flash/X200T-reflashing-offboard.jpg b/docs/images/x200t_flash/X200T-reflashing-offboard.jpg new file mode 100644 index 00000000..309170fb Binary files /dev/null and b/docs/images/x200t_flash/X200T-reflashing-offboard.jpg differ diff --git a/docs/images/x200t_flash/X200T-reflashing-onboard.jpg b/docs/images/x200t_flash/X200T-reflashing-onboard.jpg new file mode 100644 index 00000000..399c9e3f Binary files /dev/null and b/docs/images/x200t_flash/X200T-reflashing-onboard.jpg differ diff --git a/docs/install/x200_external.md b/docs/install/x200_external.md index 16c92662..2eafe7d7 100644 --- a/docs/install/x200_external.md +++ b/docs/install/x200_external.md @@ -1,9 +1,12 @@ + --- -title: Flashing the X200 with a BeagleBone Black +title: Flashing the X200 with a BeagleBone Black ... Initial flashing instructions for X200. +**Note:** If you are flashing an X200t, [see these alternate instructions](../hardware/x200t_external.html). + This guide is for those who want libreboot on their ThinkPad X200 while they still have the original Lenovo BIOS present. This guide can also be followed (adapted) if you brick your X200, to know how to recover. @@ -17,7 +20,7 @@ followed (adapted) if you brick your X200, to know how to recover. - [wwan](#wwan) - [Intel Turbo Memory](#turbomem) - [Memory](#memory) -- [X200S and X200 Tablet users: GPIO33 trick will not work.](#gpio33) +- [X200s and X200t Specific Notes](#x200st) X200 laptops with libreboot pre-installed {#preinstall} ========================================= @@ -33,9 +36,11 @@ Use this to find out: # flashrom -p internal -V The X200S and X200 Tablet will use a WSON-8 flash chip, on the bottom of -the motherboard (this requires removal of the motherboard). **Not all -X200S/X200T are supported; see -[../hardware/x200.html\#x200s](../hardware/x200.html#x200s).** +the motherboard (this requires removal of the motherboard). + +**Not all X200S/X200T are supported; see +[../hardware/x200.html\#x200s](../hardware/x200.html#x200s) or the additional +detail at the bottom of this page.** MAC address {#macaddress} =========== @@ -57,6 +62,10 @@ Initial BBB configuration {#clip} Refer to [bbb\_setup.md](bbb_setup.md) for how to set up the BBB for flashing. +**Note:** If you don't have a BeagleBone Black, there are instructions for +[using a Raspberry Pi](./rpi_setup.html) (you may need to adjust them slightly +for your particular hardware). + The following shows how to connect the clip to the BBB (on the P9 header), for SOIC-16 (clip: Pomona 5252): @@ -75,6 +84,7 @@ header), for SOIC-16 (clip: Pomona 5252): Here is a photo of the SOIC-16 flash chip. Pins are labelled: + The following shows how to connect the clip to the BBB (on the P9 header), for SOIC-8 (clip: Pomona 5250): @@ -91,19 +101,13 @@ header), for SOIC-8 (clip: Pomona 5250): Look at the pads in that photo, on the left and right. Those are for SOIC-16. Would it be possible to remove the SOIC-8 and solder a SOIC-16 chip on those pins? -**On the X200S and X200 Tablet the flash chip is underneath the board, -in a WSON package. The pinout is very much the same as a SOIC-8, but such package makes it impossible to use testclip. -In order to enable external flashing of device, chip has to be changed to SOIC-8 one. Such procedure requires hot air station and soldering station (with "knife" K-Tip to easily solder SOIC-8).\ -Check the list of SOIC-8 flash chips at -[List of supported flash chips](https://www.flashrom.org/Supported_hardware#Supported_flash_chips)\ -25XX series SPI NOR Flash in 8/16MiB sizes will work fine with libreboot. The procedure ------------- -This section is for the X200. This does not apply to the X200S or X200 -Tablet (for those systems, you have to remove the motherboard -completely, since the flash chip is on the other side of the board). +This section is for the X200. This does not apply to the X200S or X200 Tablet +(for those systems, you have to remove the motherboard completely, since the +flash chip is on the other side of the board. See below for more information). Remove these screws:\ ![](images/x200/disassembly/0003.jpg) @@ -248,7 +252,13 @@ Not to be confused with wifi (wifi is fine). Intel Turbo Memory {#turbomem} ================== -Some X200 devices were sold with Intel Turbo Memory installed in the top-most mini PCI-e slot. This has been [shown to be ineffective](http://www.anandtech.com/show/2252) at disk caching or battery saving in most use cases. While there are [Linux drivers](https://github.com/yarrick/turbomem) available, it is blacklisted in at least GNU+Trisquel, and possibly other free operating systems. It should probably be removed. +Some X200 devices were sold with Intel Turbo Memory installed in the top-most +mini PCI-e slot. This has been [shown to be +ineffective](http://www.anandtech.com/show/2252) at disk caching or battery +saving in most use cases. While there are [Linux +drivers](https://github.com/yarrick/turbomem) available, it is blacklisted in at +least GNU+Trisquel, and possibly other free operating systems. It should +probably be removed. Memory ====== @@ -274,8 +284,58 @@ You should see something like this: Now [install GNU+Linux](../gnulinux/). -X200S and X200 Tablet users: GPIO33 trick will not work. {#gpio33} --------------------------------------------------------- + +X200s and X200t Specific Notes {#x200st} +============================== + +Chip Differences +---------------- +Most notably, the BIOS chip is on the other side of the motherboard when +compared to the X200. It is also a slightly different form factor (WSON-8) +compared to the X200 (SOIC-8). The implication of this is that there is no clip +that can touch the tiny pins on the outside, so you'll either need to solder +wires to the chip (very difficult, but not impossible) or remove the chip +entirely. Note that there is a large thermal pad under the WSON-8 chip, which +makes it quite difficult to remove as it removes the heat you are applying. +Using a hot air gun, set the temperature to around 400 degrees Celcius and +gently heat the part evenly (it will not budge no matter how patient and careful +you are at a normally advisable 300-350C). Applying some Chip Quik (or similar) +will make removal easier. On the X200t especially, be careful of R647 in +immediate proximity to the flash chip. + +Once the chip has been removed from the motherboard, it can be replaced with a +suitable SOIC-8 that supports a clip. + +See the following images for reference: + +![](../../docs/images/x200t_flash/X200T-flashchip-location.jpg) +![](../../docs/images/x200t_flash/X200T-flashchip-underside.jpg) + +If you choose to solder directly to the chip, you will probably have more +success using Kynar wire-wrapping wire (or similar). Secure the flyleads with +hot glue to prevent them from pulling off. + +![](../../docs/images/x200t_flash/X200T-reflashing-onboard.jpg) + +If you intend on flashing the chip (either the WSON-8 or the SOIC-8) off the +motherboard, you need to pull the HOLD pin to +3.3V. Leaving it floating will +result in inconsistent writes as it bounces around. The motherboard does this by +default. Some chips you will also need to pull the WP pin to +3.3V, but on +others it is not necessary (check the datasheet for your specific chip, +depending if they default to LOW or HIGH). + +![](../../docs/images/x200t_flash/X200T-reflashing-offboard.jpg) + + +Suitable WSON-8 Replacements +---------------------------- +Check the list of SOIC-8 flash chips at [List of supported flash +chips](https://www.flashrom.org/Supported_hardware#Supported_flash_chips)\ 25XX +series SPI NOR Flash in 8/16MiB sizes will work fine with libreboot. + + +GPIO33 trick will not work. {#gpio33} +--------------------------- sgsit found out about a pin called GPIO33, which can be grounded to disable the flashing protections by the descriptor and stop the ME from -- cgit v1.2.3-70-g09d2 From 32c33fb67cc059de2831766a7bd2525693b72206 Mon Sep 17 00:00:00 2001 From: exotime Date: Tue, 2 May 2017 15:42:06 +1000 Subject: Raspberry Pi also requires libusb-1.0-0-dev package. Signed-off-by: exotime --- docs/install/rpi_setup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/install/rpi_setup.md b/docs/install/rpi_setup.md index 64389a78..5665ed40 100644 --- a/docs/install/rpi_setup.md +++ b/docs/install/rpi_setup.md @@ -99,7 +99,7 @@ on the motherboard. Next, download and compile the latest Flashrom source code on the Raspberry Pi. - sudo apt-get install build-essential pciutils usbutils libpci-dev libusb-dev libftdi1 libftdi-dev zlib1g-dev subversion + sudo apt-get install build-essential pciutils usbutils libpci-dev libusb-dev libftdi1 libftdi-dev zlib1g-dev subversion libusb-1.0-0-dev svn co svn://flashrom.org/flashrom/trunk flashrom cd flashrom make @@ -246,7 +246,7 @@ On first boot On second boot - pi# sudo apt-get update && sudo apt-get install libftdi1 libftdi-dev libusb-dev libpci-dev subversion + pi# sudo apt-get update && sudo apt-get install libftdi1 libftdi-dev libusb-dev libpci-dev subversion libusb-1.0-0-dev Other dependencies that should already be installed with the noobs base install include: -- cgit v1.2.3-70-g09d2 From 9d4cedabc8d9f3b33cc5de8337007055641f1ab2 Mon Sep 17 00:00:00 2001 From: exotime Date: Tue, 2 May 2017 17:34:08 +1000 Subject: Minor formatting fixes with trailing slashes. Signed-off-by: exotime --- docs/install/x200_external.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/install/x200_external.md b/docs/install/x200_external.md index 2eafe7d7..297a061b 100644 --- a/docs/install/x200_external.md +++ b/docs/install/x200_external.md @@ -235,7 +235,8 @@ whitelist of approved chips, and it will refuse to boot if you use an 'unauthorized' wifi card. The following photos show an Atheros AR5B95 being installed, to replace -the Intel chip that this X200 came with:\ +the Intel chip that this X200 came with: + ![](images/x200/disassembly/0016.jpg) ![](images/x200/disassembly/0017.jpg) @@ -272,7 +273,8 @@ work in some cases. Make sure that the RAM you buy is the 2Rx8 density. -In this photo, 8GiB of RAM (2x4GiB) is installed:\ +In this photo, 8GiB of RAM (2x4GiB) is installed: + ![](images/x200/disassembly/0018.jpg) Boot it! {#boot} @@ -342,7 +344,8 @@ disable the flashing protections by the descriptor and stop the ME from starting (which itself interferes with flashing attempts). The theory was proven correct; however, it is still useless in practise. -Look just above the 7 in TP37 (that's GPIO33):\ +Look just above the 7 in TP37 (that's GPIO33): + ![](../hardware/images/x200/gpio33_location.jpg) By default we would see this in lenovobios, when trying flashrom -p @@ -375,7 +378,7 @@ On a related note, libreboot has a utility that could help with investigating this: [../hardware/gm45\_remove\_me.html\#demefactory](../hardware/gm45_remove_me.md#demefactory) -Copyright © 2014, 2015 Leah Rowe \ +Copyright © 2014, 2015 Leah Rowe -- cgit v1.2.3-70-g09d2