Определение и назначение режима FEL
FEL — это низкоуровневый режим работы процессоров архитектуры Allwinner sunxi, являющийся встроенной функцией программы BROM (Boot Read-Only Memory). Данный режим предоставляет прямой доступ к ресурсам однокристальной системы (SoC) через интерфейс USB, обходя стандартную процедуру загрузки с накопителей eMMC или SD-карты.
Назначение режима FEL:
- Восстановление устройств: Является основным методом восстановления работоспособности ("раскирпичивания") устройств, загрузка которых невозможна из-за повреждения или отсутствия загрузчика (U-Boot) или операционной системы на основных носителях.
- Первоначальная прошивка: Используется для "заводской" прошивки устройств с чистым eMMC-накопителем, когда стандартные методы установки ОС неприменимы.
- Низкоуровневая разработка и отладка: Предоставляет разработчикам прямой доступ к оперативной памяти и регистрам процессора для отладочных целей.
Место режима FEL в архитектуре загрузки
Для понимания принципов работы FEL необходимо рассмотреть два альтернативных сценария, которые выбираются программой BROM в момент подачи питания на устройство.
BROM (Boot Read-Only Memory)
BROM — это неизменяемая программа, физически записанная в ПЗУ процессора на этапе его производства. Это первый код, который исполняется при старте системы. BROM обладает ограниченным функционалом: он работает исключительно из внутренней, высокоскоростной статической памяти (SRAM) процессора и не имеет доступа к основной оперативной памяти (DDR RAM). Его ключевая задача — определить режим работы и передать управление следующей стадии загрузчика.
Сценарий №1: Штатная загрузка
- BROM определяет, что режим FEL не активирован.
- BROM, согласно предварительно сконфигурированному порядку, обращается к носителю (например, SD-карте) по фиксированному физическому смещению (для Allwinner H6 — 8 КБ) и загружает в SRAM SPL (Secondary Program Loader). BROM не использует файловые системы и работает только с абсолютными адресами секторов.
- SPL инициализирует контроллер основной оперативной памяти (DDR RAM).
- SPL загружает в подготовленную DDR RAM основной загрузчик U-Boot.
- U-Boot, обладая полным набором драйверов, загружает ядро Linux и дерево устройств, после чего передает им управление.
Сценарий №2: Загрузка в режиме FEL
- Аппаратная активация: BROM определяет, что специальный пин процессора (для Allwinner H6 — пин
G17
, сигналUBOOT
) имеет низкий логический уровень (физически замкнут на землю). - Прерывание штатной загрузки: BROM полностью игнорирует все загрузочные носители (eMMC, SD-карта).
- Инициализация USB: Вместо этого BROM выполняет альтернативную ветку кода:
- Инициализирует встроенный контроллер USB OTG в режиме "ведомого" устройства (Device).
- Представляется хост-компьютеру с уникальным идентификатором VID:PID —
1f3a:efe8
. - Переходит в пассивное состояние ожидания команд по протоколу FEL.
Принцип работы и последовательность действий в режиме FEL
Работа в режиме FEL — это управляемый с хост-компьютера процесс, где плата Repka Pi выступает пассивным исполнителем.
-
Загрузка временного загрузчика (U-Boot) в ОЗУ: Хост-компьютер, используя специализированную утилиту (
sunxi-fel
), передает по USB бинарный файл загрузчика (u-boot-with-spl.bin
). BROM принимает этот файл, размещает его в SRAM и передает ему управление. -
Инициализация периферии временным загрузчиком: Запущенный из SRAM U-Boot, в свою очередь, инициализирует необходимые контроллеры на плате, в первую очередь — контроллер eMMC.
-
Экспорт eMMC как блочного устройства: После инициализации, временный U-Boot переводит USB-интерфейс в режим "Mass Storage Gadget". В результате на хост-компьютере eMMC-память платы становится видна как стандартное блочное устройство (например,
/dev/sdb
), доступное для низкоуровневых операций чтения/записи. -
Прямая запись образа: С этого момента хост-компьютер может использовать стандартные системные утилиты (например,
dd
) для побайтовой записи полного образа операционной системы на это блочное устройство, эффективно прошивая eMMC-накопитель.
Таким образом, режим FEL является не самой прошивкой, а механизмом доставки и запуска временного программного обеспечения, которое уже предоставляет инструменты для непосредственной работы с постоянной памятью устройства.
Понял! Теперь картина полная. Вы хотите четкую, симметричную структуру для обеих плат, с конкретными деталями и визуальными подтверждениями. И у вас есть все необходимое для этого!
Давайте перепишем этот раздел с учетом ваших гениальных фотографий и новых уточнений.
Аппаратная активация режима FEL на платах Repka Pi
Активация режима FEL является физической процедурой, требующей прямого вмешательства в аппаратную часть устройства. Метод активации различается для разных моделей Repka Pi. Все операции производятся при полностью отключенном питании.
Принцип действия: Для входа в режим FEL необходимо принудительно установить низкий логический уровень на специальном пине процессора (UBOOT
). На платах Repka Pi этот пин по умолчанию "подтянут" к высокому уровню с помощью резистора. Наша задача — временно замкнуть этот сигнальный пин на "землю" (GND) в момент подачи питания.
Подключение к ПК: Все операции в режиме FEL производятся исключительно через порт, имеющий прямой доступ к USB-контроллеру процессора. После успешного входа в режим на плате должен загореться только зеленый светодиод, указывая на подачу питания в сервисном режиме.
Repka Pi 4
Сценарий использования: На Repka Pi 4 режим FEL используется в первую очередь для прошивки операционной системы на чистый eMMC-модуль.
Метод активации: Для входа в режим FEL на плате предусмотрены две специальные контактные площадки .
-
Найдите контактные площадки. Они расположены на обратной стороне платы, рядом с HDMI.
-
Замкните контакты. При полностью отключенной плате с помощью металлического пинцета замкните эти две площадки, как показано на фото.
-
Подключите плату к ПК. Удерживая контакты замкнутыми, подключите Repka Pi 4 к компьютеру с помощью кабеля USB-C, вставив его в порт питания/OTG.
-
Проверьте состояние. Через 2-3 секунды после подключения пинцет можно убрать. На плате должен загореться зеленый светодиод.
Repka Pi 3
Сценарий использования: Поскольку на Repka Pi 3 отсутствует eMMC-модуль, режим FEL используется в основном для продвинутой диагностики и отладки, а не для стандартной прошивки.
Метод активации: На плате Repka Pi 3 для входа в режим FEL необходимо замкнуть на землю вывод подтягивающего резистора.
-
Найдите резистор
-
Замкните контакт на землю. При полностью отключенной плате с помощью пинцета или провода соедините "сигнальный" вывод резистора с любой точкой "земли" (GND) на плате, например, с металлическим корпусом USB-порта.
-
Подключите плату к ПК. Удерживая замыкание, подключите Repka Pi 3 к компьютеру через порт USB, имеющий маркировку OTG.
-
Проверьте состояние. Через 2-3 секунды после подключения замыкание можно убрать. На плате должен загореться только зеленый светодиод.
Проверка успешного входа в режим FEL
После выполнения процедуры для любой из плат необходимо убедиться, что компьютер правильно распознал устройство.
Выполните на компьютере в терминале команду:
lsusb
Ожидаемый результат: В списке USB-устройств должна появиться новая строка, подтверждающая, что плата находится в режиме прошивки FEL.
Появление строки
ID 1f3a:efe8 Allwinner Technology sunxi SoC OTG connector in FEL/flashing mode
свидетельствует о полной готовности к дальнейшим действиям по прошивке или отладке.