super.fex boot-resource.fex boot_package.fex boot0_sdcard.fex cardscript.fex cardtool.fex split_xxxx.fex fes1.fex Файл fes1.fex
fes1.fex - вспомогательный загрузчик, который используется в режиме FES.
Точнее, он имеет структуру и признаки загрузчика, которые определяются сигнатурой eGON.BT0,
имеющейся в заголовке файла. Поэтому можно предполагать, что fes1.fex выполняет часть функций
загрузчика при программировании устройства через USB-интерфейс в режиме FEL-FEX.
Описание режима FES SoC Allwinner
Файл fes1.fex содержит магическое слово eGON.BT0, которое означает, что этот файл является загрузчиком. Список текстовых строк этого файла полностью совпадает с началом аналогичного списка двух версий основных вторичных загрузчиков boot0_nand.fex и boot0_sdcard.fex:
Эти строки представляют собой консольные сообщения, которые появляются (или могут появляться) в процессе выполнения этого загрузчика. Для полноценного Boot0 загрузчика этот список продолжают строки: Их отсутствие свидетельствует о том, что загрузчик fes1.fex не стартует и не передает управление
вторичному загрузчику U-Boot, но выполняет все подготовительные процедуры с оперативной памятью,
заканчивающиеся проверкой (или конфигурированием) контроллера питания PMU AXP806.
Для входа в режим FEL на ТВ-боксах используется специальная кнопка (обычно доступная через сквозное гнездо для подключения AV-кабеля). Если эта кнопка нажата в момент подачи питания, то происходит вход в режим FEL, при котором выполняются команды, передаваемые по кабелю на OTG-порт (т.е. на разъем микро-USB или Тип С). Если при этом на ПК запущен прошивальщик феникс-сюита (или аналогичный), то происходит обновление прошивки. При отсутствии кнопки FEL переход в этот режим происходит при замыкании на землю контакта с именем BSP (Boot Select Pin). Для программирования платы OpiZero2 режим FEL/FES не актуален (из-за отсутствия встроенной nand-памяти), однако его можно использовать для тестирования или в отладочных целях. В этом случае файл fes1.fex может пригодиться. По адресу: https://github.com/hno/Allwinner-Info/tree/master/FES лежат 6 папок (1 - 6) с файлами fes.fex, fes.hex Существует описание режима FES , ниже приведен его частичный перевод. FES — это низкоуровневый USB-интерфейс, используемый LiveSuit для прошивки устройства. Он работает поверх FEL. Сначала активируется режим FEL, а затем выполняется вход в режим FES с помощью FEL-команд. Ссылки на информацию о режиме FEL: FEL — это средство связи с BROM Allwinner SoC через USB. Сначала нужно активировать режим FEL на устройстве, чтобы получить к нему доступ. FEL - протокол низкого уровня использует массовые передачи USB с одной входной и одной конечной точкой вывода. Существует две версии протокола FES. В более новой (2.0) доступно больше команд и проще переключить устройство на FES. Allwinner использует обозначения boot1.0 и boot2.0 в своем SDK для указания версии протокола FES. Версия 2.0 впервые появилась в конце 2013 года вместе с выпуском Android 4.4 SDK и используется на большинстве устройств с более поздними версиями Android . Загрузка FESМожно использовать инструмент sunxi-fel из Sunxi-tools для загрузки в FES или FELix, у которого есть специальная команда для этого. sunxi-fel Основная программа, предоставляющая скриптовый интерфейс для общения с FEL. Если вы не выберете конкретное устройство с помощью параметров --dev или --sid, инструмент будет обращаться к первому найденному устройству Allwinner (в режиме FEL). Вы можете распечатать список всех устройств FEL, подключенных/обнаруженных в данный момент, с помощью команды sunxi-fel --list --verbose. При вызове без аргументов sunxi-fel отобразит help-информацию: Usage: ./sunxi-fel [options] command arguments... [command...] -v, --verbose Подробное ведение журнала -p, --progress Показывает прогресс-бар (индикатор выполнения) -l, --list Перечисляет все (USB) устройства FEL и выходит -d, --dev bus:devnum Использовать определенную шину USB и номер устройства --sid SID Выбрать устройство по совпадению ключа SID Команды sunxi-fel
Для загрузки FES nребуются два файла из образа Imagewty: fes1.fex и u-boot.fex. Для версии Boot 2.0 выполняются следующие действия: Примечание. В оригинале содержится неточность: нужно записать 0x11 (это dec 17 ) Команды FES Команда FES_PMU посылает следующую структуру: struct pmu_config_t { char pmu_type[16]; char vol_name[16]; u32 voltage; u32 gate; }; Команда FES_PMU получает код возврата axp_set_supply_status_byname (pmu_config.pmu_type, pmu_config.vol_name, pmu_config.voltage, pmu_config.gate) Команды FES_UNSEQMEM_READ и FES_UNSEQMEM_WRITE посылают следующую структуру после запроса:
|