Инструменты пользователя

Инструменты сайта


загрузка:fel

FEL

FEL - это низкоуровневая подпрограмма, содержащаяся в BootROM на устройствах Allwinner. Используется для начального программирования и восстановления устройств при помощи USB. Ваше устройство должно быть подключено к ПК с помощью USB-кабеля, где устройство sunxi будет выступать в качестве «ведомого» (то есть в режиме устройства). Обычно это означает разъем «OTG ».

Существуют исключения из этого правила, когда на платах может потребоваться подключение к определенным портам и / или использование нестандартных кабелей. В первую очередь это Pine64.

Инструменты для разговора в режиме FEL

В репозитории есть несколько инструментов для работы в режиме FEL. Если вы еще этого не сделали, найдите репозиторий и скомпилируйте их.

Вход в режим FEL

Хотя есть несколько способов активировать режим FEL, они не всегда равны. Некоторые выполняют низкоуровневую инициализацию (загружают Boot0 и Boot1), а некоторые нет. Если вы собираетесь использовать режим FEL для получения информации об устройстве, вам нужно выбрать способ входа в режим FEL, который инициализирует Boot1.

Выключите ваше устройство

Прежде чем пытаться войти в режим FEL, убедитесь, что ваше устройство действительно выключено. Не оставляйте кабели подключенными. Из-за распространенного конструктивного недостатка (утечка тока) UART часто будет держать устройство в слегка работающем состоянии. Поэтому перед повторным включением устройства: отключите UART и снова подключите его.

Запуск режима FEL

Через специальную кнопку FEL

Это называется либо recovery, либо uboot либо fel. Если на вашем устройстве есть такая кнопка, вам просто нужно удерживать ее во время включения, и устройство должно перейти в режим FEL.

Удерживая стандартную кнопку

Обычно это одна из стандартных кнопок планшета, например клавиша VOL+ или что-то в этом роде.

Обычно работает один из вариантов:

  • Нажмите и удерживайте предполагаемую кнопку FEL.
  • Нажмите и удерживайте кнопку питания около 2 секунд.
  • Отпустите кнопку питания и сразу же нажмите ее как минимум 3 раза.

Boot1 инициализируется с помощью этого метода.

Через последовательную консоль

Если у вас уже есть доступ к UART, вы можете отправить символ «1» («2» на некоторых устройствах) на устройство во время включения питания.

Boot1 инициализируется с помощью этого метода.

С более поздними SoC, U-boot от Allwinner поддерживает команду «efex». Если «efex» недоступен в вашей U-boot, вы можете использовать простую команду «go» uboot с аргументами, указывающими на возвращаемый адрес FEL: Другие методы загрузки

⇒ go 0xffff0020

Starting application at 0xFFFF0020 …

Ввод этой команды в приглашении u-boot войдет в режим FEL.

Примечание. Это просто альтернативный способ входа в режим FEL. Сам FEL может не будет общаться по последовательному соединению! Другими словами: вам все еще нужно подключить USB-кабель для фактического использования FEL и связанных инструментов.

Через специальный образ SD-карты

В нашем репозитории есть небольшой загрузочный образ для SD-карты, который только загружает FEL.

Установите его на SD-карту, как при использовании SPL для u-boot (обязательно измените /dev/sdX на то место, где находится ваша SD-карта):

wget https://github.com/linux-sunxi/sunxi-tools/raw/master/bin/fel-sdboot.sunxi
dd if=fel-sdboot.sunxi of=/dev/sdX bs=1024 seek=8

При отсутствии образа загрузки

Если BootROM не находит допустимый образ загрузки, он автоматически перейдет в режим FEL.

Для большинства устройств, у которых нет встроенной NAND или eMMC, это можно использовать, если просто извлечь SD / µSD-карту.

Проверка режима FEL

Появление нового USB устройства

Если вы запустите команду lsusb,то тогда вы должны увидеть следующее:

Bus 001 Device 074: ID 1f3a:efe8

Запуск инструментария Sunxi-Fel

> ./sunxi-fel version
AWUSBFEX soc=00162500(A13) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000

Вывод

Если метод, который вы выбрали, инициализировал boot1, то вы должны увидеть что-то похожее:

HELLO! BOOT0 is starting!
boot0 version : .3.0
dram size =1024
Succeed in opening nand flash.
Succeed in reading Boot1 file head.
The size of Boot1 is 0x00036000.
The file stored in 0X00000000 of block 2 is perfect.
Check is correct.
Ready to disable icache.
Succeed in loading Boot1.
Jump to Boot1.
[       0.145] boot1 version : 1.3.1a
[       0.145] pmu type = 3
[       0.145] bat vol = 4117
[       0.176] axi:ahb:apb=3:2:2
[       0.176] set dcdc2=1400, clock=1008 successed
[       0.178] key
[       2.486] you can unclench the key to update now
[       2.486] key found, jump to fel

Подводные камни

It failed!

Попробуйте еще раз, убедитесь, что вы полностью выключили устройство и убедитесь, что вы правильно поняли порядок событий. Тогда получится.

Сбой чтения через USB

Если происходит следующее:

> ./sunxi-fel read 0x43000000 0x20000 script.bin
libusb usb_bulk_send error -7

Тогда вы, вероятно, пытаетесь прочитать то, что инициализируется только после загрузки boot0 и boot1. Попробуйте другой способ входа в режим FEL, который инициализируется в boot1.

FEL протокол

FEL на самом деле представляет собой крошечный USB-стек, реализующий специальный протокол USB. Часть этого протокола реализована в нашем репозитории инструментов и может использоваться как пример кода.

Советы и приемы

  • если после некоторой команды вы получите ошибку usb_bulk_send -7, это означает, что стек soc/fel вышел из режима fel или потерпел крах. Вы либо загрузили что-то, что подвесило устройство
  • вы можете сбросить fel, включив сторожевой таймер:
    • для A10 совместимых устройств выполните ./sunxi-fel writel 0x01c20c94 3
    • для H3/H5 совместимых устройств выполните ./sunxi-fel writel 0x01c20cb8 1
  • Или, если используется u-boot, выполните: mw 0x01c20c94 3 ; ; ; ;

Это вернет устройство в режим FEL независимо от того, имеется ​​ли перемычка или кнопка режима FEL на устройстве. Обратите внимание, что после mw требуется пара пустых строк.

Смотри также

загрузка/fel.txt · Последние изменения: 2020/04/29 11:58 — admin