Ports/aarch64/u-boot-sunxi

Материал из ALT Linux Wiki

Статья описывает прошивку плат на основе U-boot Sunxi (SoC Allwinner).

Прошивка u-boot в SPI nor-flash (на примере Orange Pi Prime)

0. Подготовка u-boot. В конфиге u-boot для платы должна при сборке быть включена поддержка загрузки с SPI Flash:

Например, в orangepi_prime_defconfig должны быть включены:

CONFIG_SPI=y

CONFIG_SPI_SUNXI=y

CONFIG_SPL_SPI_SUNXI=y

CONFIG_SPI_FLASH_MACRONIX=y

Вместо CONFIG_SPI_FLASH_MACRONIX должна быть указан конфиг, соответствующий микросхеме SPI NOR-FLASH, установленной на плате. Кроме того, интерфейс SPI должен быть описан в dtb u-boot'а.

u-boot должен иметь имя u-boot-sunxi-with-spl.bin. В дистрибутиве u-boot для плат на основе SoC Allwinner (Sunxi) собираются в rpm пакете u-boot-sunxi.

1. Установка инструмента для прошивки платы через USB-otg интерфейс платы sunxi-fel:

apt-get install sunxi-tools

2. Подключение платы:

2.1 Отключите всё от платы, включая UART.

2.2 Подключите плату к компьютеру, с установленным ПО sunxi-fel, при помощи кабеля USB (micro-USB для Orange Pi Prime).

2.3 Нажмите и не отпускайте кнопку FEL на плате (на Orange Pi Prime эта кнопка рядом с micro-USB разъёмом).

2.4 Включите питание платы

3. Проверяем, что плата определилась на компьютере:

sunxi-fel -l

USB device 001:010 Allwinner H5 82800001:94004704:5036c218:382b02cd

4. Прошиваем u-boot в SPI Flash:

sunxi-fel spiflash-write 0 u-boot-sunxi-with-spl.bin

Прошивка длится секунд 10.

5. Отключаем плату от компьютера и пробуем загружаться.

Ссылки

1. https://github.com/u-boot/u-boot/blob/master/doc/board/allwinner/sunxi.rst#installing-on-spi-flash

2. https://linux-sunxi.org/FEL

3. https://linux-sunxi.org/Bootable_SPI_flash

4. ALT bug 43246: Включить поддержку SPI Flash