Для прошивки SPI Flash можно пользоваться специализированными программаторами но при отсутствии таковых можно применить случайно оказавшийся под рукой микрокомпьютер с Linux на борту. Например OrangePi One с Armbian или RaspberryPi.
Подключение
Внимание! все соединения необходимо производить при отключенном питании.
Так что сделаем это заранее.
TODO Здесь должно быть фото
TODO А здесь табличка
Сборка
Качаем свежие исходники flashrom. На данный момент это версия 0.9.9.
Распаковываем полученный файл:
tar xvf flashrom-0.9.9.tar.bz2
cd flashrom-0.9.9
В armbian уже установлен компилятор, так что можем сразу запустить сборку:
make CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no CONFIG_ENABLE_LIBUSB1_PROGRAMMERS=no
Параметры указывают не использовать PCI и USB программаторы.
Если же поддержка USB программаторов нужна, то предварительно установим библиотеку для работы с USB:
apt-get install libusb-1.0-0-dev
И библиотеку для работы с устройствами на базе FTDI если ваш программатор основан на этой микросхеме:
apt-get install libftdi-dev
И соберём:
make CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no
В случае успеха у нас появится бинарный файл.
ls -l flashrom
-rwxr-xr-x 1 root root 322308 May 12 15:45 flashrom
file flashrom
flashrom: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=69769b4071bbff19ebe936fecb11fe36a0cc5c5f, not stripped
Прошивка
Для начала проверим видит ли программатор подключённый чип.
flashrom -p linux_spi:dev=/dev/spidev0.0
flashrom v0.9.9-r1955 on Linux 3.4.112-sun8i (armv7l)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
flashrom -p linux_spi:dev=/dev/spidev0.0
flashrom v0.9.9-r1955 on Linux 3.4.112-sun8i (armv7l)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
Found Spansion flash chip "S25FL032A/P" (4096 kB, SPI) on linux_spi.
No operations were specified.
TODO чтение
TODO запись
На сладкое
Во flashrom наконец добавили поддержку “народного” программатора на базе микросхемы CH341A
Supported USB devices for the ch341a_spi programmer:
Vendor Device USB IDs Status
Winchiphead (WCH) CH341A 1a86:5512 OK
К сожалению поддерживается только SPI но не I2C.
comments powered by Disqus