Режим FEL на Repka Pi

Определение и назначение режима 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: Штатная загрузка

  1. BROM определяет, что режим FEL не активирован.
  2. BROM, согласно предварительно сконфигурированному порядку, обращается к носителю (например, SD-карте) по фиксированному физическому смещению (для Allwinner H6 — 8 КБ) и загружает в SRAM SPL (Secondary Program Loader). BROM не использует файловые системы и работает только с абсолютными адресами секторов.
  3. SPL инициализирует контроллер основной оперативной памяти (DDR RAM).
  4. SPL загружает в подготовленную DDR RAM основной загрузчик U-Boot.
  5. U-Boot, обладая полным набором драйверов, загружает ядро Linux и дерево устройств, после чего передает им управление.

Сценарий №2: Загрузка в режиме FEL

  1. Аппаратная активация: BROM определяет, что специальный пин процессора (для Allwinner H6 — пин G17, сигнал UBOOT) имеет низкий логический уровень (физически замкнут на землю).
  2. Прерывание штатной загрузки: BROM полностью игнорирует все загрузочные носители (eMMC, SD-карта).
  3. Инициализация USB: Вместо этого BROM выполняет альтернативную ветку кода:
    • Инициализирует встроенный контроллер USB OTG в режиме "ведомого" устройства (Device).
    • Представляется хост-компьютеру с уникальным идентификатором VID:PID — 1f3a:efe8.
    • Переходит в пассивное состояние ожидания команд по протоколу FEL.

Принцип работы и последовательность действий в режиме FEL

Работа в режиме FEL — это управляемый с хост-компьютера процесс, где плата Repka Pi выступает пассивным исполнителем.

  1. Загрузка временного загрузчика (U-Boot) в ОЗУ: Хост-компьютер, используя специализированную утилиту (sunxi-fel), передает по USB бинарный файл загрузчика (u-boot-with-spl.bin). BROM принимает этот файл, размещает его в SRAM и передает ему управление.

  2. Инициализация периферии временным загрузчиком: Запущенный из SRAM U-Boot, в свою очередь, инициализирует необходимые контроллеры на плате, в первую очередь — контроллер eMMC.

  3. Экспорт eMMC как блочного устройства: После инициализации, временный U-Boot переводит USB-интерфейс в режим "Mass Storage Gadget". В результате на хост-компьютере eMMC-память платы становится видна как стандартное блочное устройство (например, /dev/sdb), доступное для низкоуровневых операций чтения/записи.

  4. Прямая запись образа: С этого момента хост-компьютер может использовать стандартные системные утилиты (например, 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 на плате предусмотрены две специальные контактные площадки .

  1. Найдите контактные площадки. Они расположены на обратной стороне платы, рядом с HDMI.

  2. Замкните контакты. При полностью отключенной плате с помощью металлического пинцета замкните эти две площадки, как показано на фото.

  3. Подключите плату к ПК. Удерживая контакты замкнутыми, подключите Repka Pi 4 к компьютеру с помощью кабеля USB-C, вставив его в порт питания/OTG.

  4. Проверьте состояние. Через 2-3 секунды после подключения пинцет можно убрать. На плате должен загореться зеленый светодиод.

Repka Pi 3

Сценарий использования: Поскольку на Repka Pi 3 отсутствует eMMC-модуль, режим FEL используется в основном для продвинутой диагностики и отладки, а не для стандартной прошивки.

Метод активации: На плате Repka Pi 3 для входа в режим FEL необходимо замкнуть на землю вывод подтягивающего резистора.

  1. Найдите резистор

  2. Замкните контакт на землю. При полностью отключенной плате с помощью пинцета или провода соедините "сигнальный" вывод резистора с любой точкой "земли" (GND) на плате, например, с металлическим корпусом USB-порта.

  3. Подключите плату к ПК. Удерживая замыкание, подключите Repka Pi 3 к компьютеру через порт USB, имеющий маркировку OTG.

  4. Проверьте состояние. Через 2-3 секунды после подключения замыкание можно убрать. На плате должен загореться только зеленый светодиод.

Проверка успешного входа в режим FEL

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

Выполните на компьютере в терминале команду:

lsusb

Ожидаемый результат: В списке USB-устройств должна появиться новая строка, подтверждающая, что плата находится в режиме прошивки FEL.

Появление строки ID 1f3a:efe8 Allwinner Technology sunxi SoC OTG connector in FEL/flashing mode свидетельствует о полной готовности к дальнейшим действиям по прошивке или отладке.


71 просмотров0 комментариев

Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Разделы

Навигация

ВойтиРегистрация