add new programmer: raspberry pi pico
Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>master
parent
91726b4ad8
commit
645066369b
|
@ -19,7 +19,8 @@ dump, erase and rewrite these flash chips.
|
|||
|
||||
libreboot currently documents how to use these SPI programmers:
|
||||
|
||||
* Raspberry Pi (RPi)
|
||||
* Raspberry Pi Pico
|
||||
* Raspberry Pi (RPi) single-board computers
|
||||
* BeagleBone Black (BBB)
|
||||
* Libre Computer 'Le Potato'
|
||||
|
||||
|
@ -40,6 +41,55 @@ from Linux, with flashrom.
|
|||
*This* guide that you're reading now is for using an *external* programmer. It
|
||||
is called *external* because it's not the *internal* one on your mainboard.
|
||||
|
||||
Raspberry Pi Pico
|
||||
=================
|
||||
|
||||

|
||||
|
||||
If you don't already have a programmer, get this one! It's well engineered,
|
||||
safe, and costs just $5 with headers pre-soldered (Raspberry Pi Pico H).
|
||||
Additionally, all the software running on it is free, down to the full
|
||||
[Boot ROM](https://github.com/raspberrypi/pico-bootrom). The wireless
|
||||
versions (Pico W & Pico WH) need non-free firmware to use the Wi-Fi chip,
|
||||
which is not needed for following this guide.
|
||||
|
||||
A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't
|
||||
destroy your board by sending 5V to it. If you have a 1.8V flash chip,
|
||||
you need to add a logic level converter.
|
||||
|
||||
First, connect just the Pico to your computer with a micro-USB cable.
|
||||
Mount it like any other USB flash drive. If it isn't detected, you might need
|
||||
to press the BOOTSEL button while you plug it in (this forces it into the
|
||||
bootloader mode).
|
||||
|
||||
Now download the serprog
|
||||
[firmware](https://viitanen.xyz/pico-serprog-20230827.tar.lz).
|
||||
Copy the file `pico_serprog.uf2` into your Pico.
|
||||
Disconnect the Pico and proceed to wire it to your
|
||||
[flash chip](/docs/install/spi.html#identify-which-flash-type-you-have).
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Headers were manually soldered on the top side, and the plastic packaging
|
||||
was repurposed as an insulating base. These might be nice to have, but by no
|
||||
means necessary. If your headers are on the other side, just keep in mind
|
||||
that the pinouts are as seen from above.
|
||||
|
||||
Now run (as root) `dmesg -wH`. When you plug in the Pico, a line like this
|
||||
will appear:
|
||||
|
||||
[453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device
|
||||
|
||||
Take note of the ttyACMx. Flashrom is now usable
|
||||
(substitute ttyACMx with what you observed earlier).
|
||||
|
||||
flashrom -p serprog:dev=/dev/ttyACMx,spispeed=16M
|
||||
|
||||
spispeed=32M usually works, but since it's not much faster it's probably
|
||||
not worth it. The 12Mbps USB port is limiting the actual speed here.
|
||||
|
||||
Do not use CH341A!
|
||||
==================
|
||||
|
||||
|
@ -118,11 +168,33 @@ SOIC8
|
|||
|
||||

|
||||
|
||||
| Pin | Function |
|
||||
|-----|----------|
|
||||
| 1 | CS |
|
||||
| 2 | MISO |
|
||||
| 3 | WP |
|
||||
| 4 | GND |
|
||||
| 5 | MOSI |
|
||||
| 6 | CLK |
|
||||
| 7 | HOLD |
|
||||
| 8 | VCC |
|
||||
|
||||
SOIC16
|
||||
------
|
||||
|
||||

|
||||
|
||||
| Pin | Function |
|
||||
|-----|----------|
|
||||
| 2 | VCC |
|
||||
| 3 | HOLD |
|
||||
| 7 | CS |
|
||||
| 8 | MISO |
|
||||
| 9 | WP |
|
||||
| 10 | GND |
|
||||
| 15 | MOSI |
|
||||
| 16 | CLK |
|
||||
|
||||
SOIC8 and SOIC16 are the most common types, but there are others:
|
||||
|
||||
WSON8
|
||||
|
@ -131,16 +203,19 @@ WSON8
|
|||
It will be like this on an X200S or X200 Tablet:\
|
||||
|
||||

|
||||
Pinout is the same as SOIC8 above.
|
||||
|
||||
On T400S, it is in this location near the RAM:\
|
||||
\
|
||||
NOTE: in this photo, the chip has been replaced with SOIC8
|
||||
NOTE: in this photo, the chip has been replaced with SOIC8.
|
||||
|
||||
DIP8
|
||||
----
|
||||
|
||||

|
||||
|
||||
Pinout is the same as SOIC8 above.
|
||||
|
||||
Supply Voltage
|
||||
--------------
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ x-toc-enable: true
|
|||
|
||||
libreboot 目前记录了这些 SPI 编程器的使用方法:
|
||||
|
||||
* Raspberry Pi Pico
|
||||
* 树莓派(Raspberry Pi,RPi)
|
||||
* BeagleBone Black(BBB)
|
||||
* Libre Computer 'Le Potato'
|
||||
|
@ -23,6 +24,55 @@ libreboot 目前记录了这些 SPI 编程器的使用方法:
|
|||
|
||||
你在读的*这个*教程,使用的是*外部*编程器。之所以叫*外部*,是因为用的不是主板上的*内部*编程器。
|
||||
|
||||
Raspberry Pi Pico
|
||||
=================
|
||||
|
||||

|
||||
|
||||
If you don't already have a programmer, get this one! It's well engineered,
|
||||
safe, and costs just $5 with headers pre-soldered (Raspberry Pi Pico H).
|
||||
Additionally, all the software running on it is free, down to the full
|
||||
[Boot ROM](https://github.com/raspberrypi/pico-bootrom). The wireless
|
||||
versions (Pico W & Pico WH) need non-free firmware to use the Wi-Fi chip,
|
||||
which is not needed for following this guide.
|
||||
|
||||
A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't
|
||||
destroy your board by sending 5V to it. If you have a 1.8V flash chip,
|
||||
you need to add a logic level converter.
|
||||
|
||||
First, connect just the Pico to your computer with a micro-USB cable.
|
||||
Mount it like any other USB flash drive. If it isn't detected, you might need
|
||||
to press the BOOTSEL button while you plug it in (this forces it into the
|
||||
bootloader mode).
|
||||
|
||||
Now download the serprog
|
||||
[firmware](https://viitanen.xyz/pico-serprog-20230827.tar.lz).
|
||||
Copy the file `pico_serprog.uf2` into your Pico.
|
||||
Disconnect the Pico and proceed to wire it to your
|
||||
[flash chip](/docs/install/spi.html#identify-which-flash-type-you-have).
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Headers were manually soldered on the top side, and the plastic packaging
|
||||
was repurposed as an insulating base. These might be nice to have, but by no
|
||||
means necessary. If your headers are on the other side, just keep in mind
|
||||
that the pinouts are as seen from above.
|
||||
|
||||
Now run (as root) `dmesg -wH`. When you plug in the Pico, a line like this
|
||||
will appear:
|
||||
|
||||
[453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device
|
||||
|
||||
Take note of the ttyACMx. Flashrom is now usable
|
||||
(substitute ttyACMx with what you observed earlier).
|
||||
|
||||
flashrom -p serprog:dev=/dev/ttyACMx,spispeed=16M
|
||||
|
||||
spispeed=32M usually works, but since it's not much faster it's probably
|
||||
not worth it. The 12Mbps USB port is limiting the actual speed here.
|
||||
|
||||
不要使用 CH341A!
|
||||
==================
|
||||
|
||||
|
|
Loading…
Reference in New Issue