Table of Contents

Information

Requirements

Pi

Configuration

Pins

Physical

 -----------------------------------------------------------------------------------------------------   ----------
| [ 2] [ 4] [  ] [  ] [  ] [  ] [  ] [  ] [  ] [  ] [  ] [24] [  ] [  ] [  ] [  ] [  ] [  ] [38] [40] | |          |
O [ 1] [ 3] [  ] [  ] [  ] [  ] [  ] [  ] [17] [19] [21] [23] [25] [  ] [  ] [  ] [  ] [  ] [37] [39] O |   USB    |
|                                                                                                     | |          |
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV (chips and other stuff below) VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV

GPIO

 -----------------------------------------------------------------------------------------------------------   ----------
| [5v  ] [  ] [  ] [  ] [  ] [  ] [  ] [  ] [    ] [  ] [  ] [ 8] [   ] [  ] [  ] [  ] [  ] [  ] [  ] [21 ] | |          |
O [3.3V] [  ] [  ] [  ] [  ] [  ] [  ] [  ] [3.3V] [10] [ 9] [11] [GND] [  ] [  ] [  ] [  ] [  ] [  ] [GND] O |   USB    |
|                                                                                                           | |          |
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV (chips and other stuff below) VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV

W25Q64FV

Information

Pins

      --------
[1]__|O       |__[8]
[2]__|  Chip  |__[7]
[3]__|        |__[6]
[4]__|        |__[5]
      --------

Pin Descriptions

        --------
[/CS]__|O       |__[VCC]
 [DO]__|  Chip  |__[/HOLD]
[/WP]__|        |__[CLK]
[GND]__|        |__[DI]
        --------

SOIC Clip to Pi Pins

[24]      [17]
[21] \ \  [  ]
[  ]  \ \ [23]
[25]      [19]

flashrom

Install

Pre-compiled

sudo apt install 'flashrom'

Git Compile

Dependencies

sudo apt install libpci-dev libftdi-dev libusb-1.0-0-dev git-core build-essential

Get Source

rm -Rf ~/'flashrom' && git clone -b 'master' 'https://github.com/flashrom/flashrom.git' ~/'flashrom' --depth '1'

Build

cd ~/'flashrom' && make --jobs='4' && sync

Test Chip Read

sudo flashrom --programmer 'linux_spi':'dev=/dev/spidev0.0,spispeed=8000' --read ~/'test1.bin' && sudo flashrom --programmer 'linux_spi':'dev=/dev/spidev0.0,spispeed=8000' --read ~/'test2.bin' && sudo flashrom --programmer 'linux_spi':'dev=/dev/spidev0.0,spispeed=8000' --read ~/'test3.bin' && sync
md5sum ~/'test1.bin' && md5sum ~/'test2.bin' && md5sum ~/'test3.bin'
rm -fv ~/'test2.bin' ~/'test3.bin' && sync

Backup

sudo flashrom --programmer 'linux_spi':'dev=/dev/spidev0.0,spispeed=8000' --read ~/'backup-original.bin' && sync
md5sum ~/'test1.bin' && md5sum ~/'backup-original.bin'
rm -fv ~/'test1.bin' && sync

Flash

sync && sudo flashrom --programmer 'linux_spi':'dev=/dev/spidev0.0,spispeed=8000' --write x

me_cleaner

Get Source

git clone -b 'master' 'https://github.com/corna/me_cleaner.git' ~/'me_cleaner' --depth '1'

Check Original BIOS

python ~/'me_cleaner/me_cleaner.py' --check ~/'backup-original.bin'

Clean ME

python ~/'me_cleaner/me_cleaner.py' --soft-disable --descriptor --output ~/'me_cleaner-soft-disable-descriptor.bin' ~/'backup-original.bin'

Flash Modified BIOS

sync && sudo flashrom --programmer 'linux_spi':'dev=/dev/spidev0.0,spispeed=8000' --write ~/'me_cleaner-soft-disable-descriptor.bin'

Clean-up

cd ~ && rm -Rf ~/'flashrom' && sync

Verifying ME

Windows

Linux

Coreboot

cd ~ && mkdir -p ~/'Projects' && rm -Rf ~/'Projects/coreboot/src' && git clone --branch 'master' --depth '1' 'https://github.com/coreboot/coreboot.git' ~/'Projects/coreboot/src' && sync

intelmetool

Dependencies
sudo dnf install 'pciutils-devel'
Compile

cd ~/'Projects/coreboot/src/util/intelmetool' && make --jobs='3' && sync
Run

cd ~/'Projects/coreboot/src/util/intelmetool' && sudo ~/'Projects/coreboot/src/util/intelmetool/intelmetool' --help

ifdtool

Dependencies
sudo dnf install 'pciutils-devel'
Compile

cd ~/'Projects/coreboot/src/util/ifdtool' && make --jobs='3' && sync
Notes
Run

cd ~/'Projects/coreboot/src/util/ifdtool' && ~/'Projects/coreboot/src/util/ifdtool/ifdtool' --help
2)
I've only tested the 2 Model B and 3 Model B
4)
in Raspbian repos or can be compiled
6)
any similar 8-pin SOIC clip should work
7)
to connect the SOIC clip to the Pi's GPIO pins
8)
TODO: Is this needed? May be enabled out-the-box
9)
TODO: separate notes?
10)
the circle notch on the chip is top-left
11)
this requires a Git build
12)
safest option if in doubt