2 Commits 28386d743c ... dbf1f97906

Autor SHA1 Mensagem Data
  notthebee dbf1f97906 Add CH341a to the index page 4 anos atrás
  notthebee cba730f107 Add instructions for CH341a 4 anos atrás

+ 92 - 0
docs/install/ch341a.md

@@ -0,0 +1,92 @@
+---
+title: How to program an SOIC-8 or SOIC-16 SPI flash chip using CH341a USB programmer
+...
+
+This document exists as a guide for reading from or writing to an SPI flash chip using CH341a USB programmer using the [flashrom](http://flashrom.org/Flashrom) software. This hardware setup is more convenient than the alternatives, since it doesn't require an external power source or a Raspberry Pi.
+
+
+## Prerequisites
+* **For SOIC-8 chips:** CH341a USB Programmer + SOIC-8 clip bundle 
+* **For SOIC-16 chips:** CH341a, 6 female-to-female jumper wires and a standalone SOIC-16 clip
+* Philips head screwdriver
+* Second computer with a USB port running Linux or macOS
+
+## Extracting the MAC address from the stock firmware
+Use [this tutorial](https://libreboot.org/docs/hardware/mac_address.html) to determine the MAC address of the stock BIOS on your motherboard
+
+## Determining the chip type
+
+First of all, we need to determine the type of the SPI chip installed on the machine. The most popular one on modern machines is SOIC-8; Lenovo and IBM Thinkpads manufactured before 2009 often come with SOIC-16 chips. Disassemble your computer according to the Hardware Maintenance Manual and locate the chip on the motherboard. 
+
+**SOIC-8 chip**:
+
+![SOIC-8 chip](images/ch341a/soic8.jpg)
+
+**SOIC-16 chip**:
+
+![SOIC-16 chip](images/ch341a/soic16.jpg)
+
+## SOIC-8 chip
+If your machine is equipped with an SOIC-8 SPI chip, you can buy a CH341a bundle that already comes with an SPI clip – it plugs directly into the ZIF socket on the programmer and doesn't require manually connecting the individual wires to the programmer.
+
+![SOIC-8 chip](images/ch341a/ch341a-top.png)
+
+Afer connecting the clip to the programmer you need to fit the clip on the chip. The SPI chip on your machine will have a small dimple on one of the corners:
+
+![Dimple](images/ch341a/dimple.png)
+
+Align the red wire on the clip to that dimple and mount the clip on the chip as shown:
+
+
+![Clip on the chip](images/ch341a/clip_on_the_chip_side.jpg)
+
+## SOIC-16 chip
+In the case of SOIC-16 chips, it is not advised to use a ZIF socket clip: the length of the wires will most likely cause an interference that will **prevent you from getting a reliable read from the chip**. In this case it's recommended to use a dedicated Pomona (or similar) SPI clip and connect it directly to the pins on the side of the programmer using female-to-female jumper wires.
+
+**The connection diagram for CH341a and SOIC-16 chip**
+
+![SOIC-16 connectoin diagram](images/ch341a/diagram.png)
+
+
+## Software preparations
+
+Install the `flashrom` package from your system's repositories. On macOS you can install flashrom using Homebrew:
+
+```
+brew install flashrom
+```
+
+Connect the programmer to the USB port of your computer and read the current firmware from the chip:
+```
+flashrom -p ch341a_spi -r bios.rom
+```
+Depending on the distribution, you might need root privileges to communicate with the programmer
+
+Note down the ROM size:
+```
+Found Winbond flash chip "W25Q32.V" (4096 kB, SPI).
+```
+After the read is finished, read from the chip again using a different file name this time:
+```
+flashrom -p ch341a_spi -r bios2.rom
+```
+Compare two files using `diff` command. If it says "binary files bios1.rom and bios2.rom are different", disconnect the USB programmer from the computer, reseat the clip on the chip and try again. 
+
+**Only proceed further if the `diff` output is empty**
+
+Save one of the files to a secure place and keep it handy – this is your backup route if something goes wrong during the flashing procedure.
+
+
+## Flashing Libreboot firmware
+
+Download the right Libreboot firmware for your computer: [https://libreboot.org/download.html](https://libreboot.org/download.html) 
+
+Pay attention to the chip size and bootloader in the filename. E.g. "libreboot_r20160907_**grub**\_x200\_**8mb**.tar.xz"
+
+After you've downloaded the ROM, unpack it and flash the version that corresponds to the keyboard layout on your device:
+```
+tar xvf libreboot_r20160907_grub_x200_4mb.tar.xz
+cd libreboot_r20160907_grub_x200_4mb
+flashrom -p ch341a_spi -w x200_4mb_usqwerty_txtmode.rom
+```
+Finally, disconnect the USB programmer from the second computer, detach the SPI clip from the chip and assemble the computer.

BIN
docs/install/images/ch341a/ch341a-top.png


BIN
docs/install/images/ch341a/clip_on_the_chip_side.jpg


BIN
docs/install/images/ch341a/diagram.png


BIN
docs/install/images/ch341a/dimple.png


BIN
docs/install/images/ch341a/soic16.jpg


BIN
docs/install/images/ch341a/soic8.jpg


+ 1 - 0
docs/install/index.md

@@ -31,6 +31,7 @@ Flashing via software methods, on system:
 Setting up programmers, for external SPI flashing 
 -----------------------------------------------------------------
 
+-   [CH341a Setup](ch341a.md)
 -   [BeagleBone Black Setup](bbb_setup.md)
 -   [Raspberry Pi Setup](rpi_setup.md)