Появилась необходимость прошить несколько SPI NOR Flash W25Q64 для модулей HiLink HLK-RM04. Захотелось проверить, можно ли прошить через Orange Pi Zero. На плате разведено место под SPI NOR Flash, решил сразу не паять, мало ли...
![]() |
SPI NOR Flash W25Q64 |
Убрал оплеткой олово с дорожек и просто прижал чип к дорожкам. Для этого использовал пластиковый прутик и канцелярскую резинку. Чип хорошо прижался к плате, подобный колхоз меня устроил. Теперь дело за софтом. В linux есть хорошая программа flashrom, она умеет работать через linux_spi используя spidev модуль ядра. В арсенале программы куча поддерживаемых флешек, W25Q64 была в их числе. Для опытов на SD карте уже был залит образ на ядре 4.9.4 ночная сборка ubuntu. Однако, как оказалось, без танцев с бубном, ядро в упор не хотело видеть устройства /dev/spidevX.Y, чтобы не тратить время, взял стабильный образ debian на ядре 3.4.113, в котором прекрасно работал spidev из коробки. Флешки успешно были прошиты, скорость прошивки меня очень порадовала. Впоследствии, третий чип припаял на плату и прошил в него загрузчик для Orange Pi Zero для дальнейших опытов. Вот результаты:
root@orangepizero:~# time flashrom -p linux_spi:dev=/dev/spidev0.0 -E
flashrom v0.9.9-r1954 on Linux 3.4.113-sun8i (armv7l)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) on linux_spi.
Erasing and writing flash chip... Erase/write done.
real 1m7.162s
user 1m2.980s
sys 0m0.690s
root@orangepizero:~# time flashrom -p linux_spi:dev=/dev/spidev0.0 -w openwrt.img
flashrom v0.9.9-r1954 on Linux 3.4.113-sun8i (armv7l)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) on linux_spi.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
real 0m40.877s
user 0m9.480s
sys 0m10.560s
Для установки flashrom нужно в файл /etc/apt/sources.list добавить строчку:
deb http://httpredir.debian.org/debian unstable main
Дальше все как обычно apt-get update && apt-get install flashrom.
Пляски с бубном заключаются в редактировании /boot/armbianEnv.txt
ОтветитьУдалитьдобавить строки -
overlays=usbhost2 usbhost3 w1-gpio uart1 i2c0 spi-spidev
param_spidev_spi_bus=0
param_spidev_spi_cs=0cs=0
param_spidev_max_freq=1000000