Microchip UG0881 PolarFire SoC FPGA Загрузка и настройка
Гарантия
Microsemi не дает никаких гарантий, заявлений или гарантий в отношении информации, содержащейся в данном документе, или пригодности своих продуктов и услуг для какой-либо конкретной цели, а также Microsemi не принимает на себя никакой ответственности, вытекающей из применения или использования любого продукта или схемы. Продукты, продаваемые по настоящему Соглашению, и любые другие продукты, продаваемые Microsemi, прошли ограниченное тестирование и не должны использоваться вместе с критически важным оборудованием или приложениями. Любые характеристики производительности считаются надежными, но не проверяются, и Покупатель должен провести и завершить все эксплуатационные и другие испытания продуктов, отдельно или вместе с любыми конечными продуктами или установленными в них. Покупатель не должен полагаться на какие-либо данные и технические характеристики или параметры, предоставленные Microsemi. Покупатель несет ответственность за самостоятельное определение пригодности любых продуктов, а также их тестирование и проверку. Информация, предоставляемая Microsemi по настоящему Соглашению, предоставляется «как есть, где есть» и со всеми ошибками, и весь риск, связанный с такой информацией, полностью лежит на Покупателе. Microsemi не предоставляет, прямо или косвенно, какой-либо стороне какие-либо патентные права, лицензии или любые другие права на интеллектуальную собственность, будь то в отношении самой такой информации или чего-либо, описываемого такой информацией. Информация, представленная в этом документе, является собственностью Microsemi, и Microsemi оставляет за собой право вносить любые изменения в информацию в этом документе или в любые продукты и услуги в любое время без предварительного уведомления.
О Микросеми
Microsemi, дочерняя компания Microchip Technology Inc. (Nasdaq: MCHP), предлагает комплексный портфель полупроводниковых и системных решений для аэрокосмической и оборонной промышленности, связи, центров обработки данных и промышленных рынков. Продукты включают в себя высокопроизводительные и радиационно-стойкие аналоговые интегральные схемы со смешанными сигналами, FPGA, SoC и ASIC; продукты управления питанием; устройства хронометража и синхронизации, а также решения для точного времени, устанавливающие мировой стандарт времени; устройства обработки голоса; РЧ-решения; дискретные компоненты; корпоративные решения для хранения и связи, технологии безопасности и масштабируемая защита от атакampпродукты; Ethernet-решения; ИС и инжекторы Power-over-Ethernet; а также возможности индивидуального дизайна и услуги. Узнайте больше на www.microsemi.com.
Загрузка и настройка
В ПЛИС PolarFire SoC используется усовершенствованная схема включения питания, обеспечивающая надежное включение питания при включении питания и сбросе. При включении питания и сбросе последовательность загрузки PolarFire SoC FPGA следует за сбросом при включении питания (POR), загрузкой устройства, инициализацией проекта, предварительной загрузкой подсистемы микроконтроллера (MSS) и пользовательской загрузкой MSS. В этом документе описывается предварительная загрузка MSS и загрузка пользователя MSS. Для получения информации о POR, загрузке устройства и инициализации проектирования см. UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
Для получения дополнительной информации о функциях MSS см. UG0880: Руководство пользователя PolarFire SoC MSS.
Последовательность загрузки
Последовательность загрузки начинается при включении или сбросе FPGA SoC PolarFire. Он заканчивается, когда процессор готов выполнить прикладную программу. Эта последовательность загрузки выполняется в течение нескольких секунд.tages до того, как он начнет выполнение программ.
Во время процесса загрузки выполняется ряд операций, в том числе сброс оборудования при включении питания, инициализация периферийных устройств, инициализация памяти и загрузка определяемого пользователем приложения из энергонезависимой памяти в энергозависимую память для выполнения.
На следующем рисунке показаны различные этапы последовательности загрузки.
Рисунок 1 Последовательность загрузки
Предварительная загрузка MSS
После успешного завершения Design Initialization начинается выполнение предварительной загрузки MSS. MSS освобождается от сброса после завершения всех обычных процедур запуска. Системный контроллер управляет программированием, инициализацией и конфигурацией устройств. Предварительная загрузка MSS не выполняется, если запрограммированное устройство настроено на режим ожидания системного контроллера.
Фаза инициализации перед загрузкой MSS координируется микропрограммой системного контроллера, хотя она может использовать E51 в основном комплексе MSS для выполнения определенных частей последовательности перед загрузкой.
Во время предварительной загрузки MSS происходят следующие события.tage:
- Включение встроенной энергонезависимой памяти MSS (eNVM)
- Инициализация восстановления избыточности, связанного с кэшем MSS Core Complex L2.
- Аутентификация загрузочного кода пользователя (если включена опция безопасной загрузки пользователя)
- Передача рабочего MSS пользовательскому загрузочному коду
MSS Core Complex может загружаться в одном из четырех режимов. В следующей таблице перечислены параметры предварительной загрузки MSS, которые можно настроить и запрограммировать в sNVM. Режим загрузки определяется пользовательским параметром U_MSS_BOOTMODE[1:0]. Дополнительные данные конфигурации загрузки зависят от режима и определяются пользовательским параметром U_MSS_BOOTCFG (см. Таблицу 3, стр. 4 и Таблицу 5, стр. 6).
Таблица 1 • Сложные режимы загрузки MSS Core
U_MSS_BOOTMODE[1:0] | Режим | Описание |
0 | Простой загрузки | MSS Core Complex загружается с загрузочного ПЗУ, если MSS не настроен |
1 | Небезопасная загрузка | MSS Core Complex загружается напрямую с адреса, определенного параметром U_MSS_BOOTADDR. |
2 | Безопасная загрузка пользователя | MSS Core Complex загружается из sNVM |
3 | Заводская безопасная загрузка | MSS Core Complex загружается с использованием заводского безопасного протокола загрузки. |
Вариант загрузки выбирается как часть процесса проектирования Libero. Изменение режима может быть достигнуто только путем создания нового программирования FPGA. file.
Рис. 2. Процесс предварительной загрузки MSS
Простой загрузки
Если MSS не настроен (например,ample, пустое устройство), то MSS Core Complex выполняет программу загрузочного ПЗУ, которая удерживает все процессоры в бесконечном цикле, пока отладчик не подключится к цели. Регистры вектора загрузки сохраняют свое значение до тех пор, пока устройство не будет сброшено или не будет запрограммирована новая конфигурация режима загрузки. Для сконфигурированных устройств этот режим может быть реализован с помощью
Вариант загрузки U_MSS_BOOTMODE=0 в конфигураторе Libero.
Примечание: В этом режиме U_MSS_BOOTCFG не используется.
На следующем рисунке показан процесс загрузки в режиме ожидания.
Рисунок 3 • Процесс загрузки в режиме ожидания
Небезопасная загрузка
В этом режиме основной комплекс MSS выполняется с указанного адреса eNVM без аутентификации. Он обеспечивает самый быстрый вариант загрузки, но при этом отсутствует аутентификация образа кода. Адрес можно указать, установив U_MSS_BOOTADDR в Libero Configurator. Этот режим также можно использовать для загрузки с любого ресурса памяти FPGA Fabric через FIC. Этот режим реализуется с помощью
U_MSS_BOOTMODE=1 вариант загрузки.
Основной комплекс MSS освобождается от сброса с векторами загрузки, определенными U_MSS_BOOTCFG (как указано в следующей таблице).
Таблица 2 • U_MSS_BOOTCFG Использование в режиме незащищенной загрузки 1
Смещение (байты) |
Размер (байт) |
Имя |
Описание |
0 | 4 | БУТВЕК0 | Вектор загрузки для E51 |
4 | 4 | БУТВЕК1 | Вектор загрузки для U540 |
8 | 4 | БУТВЕК2 | Вектор загрузки для U541 |
16 | 4 | БУТВЕК3 | Вектор загрузки для U542 |
20 | 4 | БУТВЕК4 | Вектор загрузки для U543 |
На следующем рисунке показан процесс незащищенной загрузки.
Рисунок 4 • Небезопасный процесс загрузки
Безопасная загрузка пользователя
Этот режим позволяет пользователю реализовать свою собственную безопасную загрузку, а код безопасной загрузки пользователя помещается в sNVM. SNVM представляет собой энергонезависимую память объемом 56 КБ, которую можно защитить с помощью встроенной функции физической неклонируемости (PUF). Этот метод загрузки считается безопасным, поскольку страницы sNVM, помеченные как ROM, неизменяемы. При включении системный контроллер копирует защищенный загрузочный код пользователя из SNVM в плотно интегрированную память данных (DTIM) ядра монитора E51. E51 запускает выполнение кода безопасной загрузки пользователя.
Если размер безопасного загрузочного кода пользователя больше размера DTIM, пользователю необходимо разделить загрузочный код на две части.tagэ. sNVM может содержать следующие stage пользовательской последовательности загрузки, которая может выполнять аутентификацию следующей загрузки stage с использованием алгоритма аутентификации/дешифрования пользователя.
Если используются аутентифицированные или зашифрованные страницы, то один и тот же ключ USK (т.
U_MSS_BOOT_SNVM_USK) необходимо использовать для всех аутентифицированных/зашифрованных страниц.
Если аутентификация не удалась, основной комплекс MSS можно перевести в состояние сброса, а BOOT_FAIL tampможно поднять флаг. Этот режим реализуется с помощью параметра загрузки U_MSS_BOOTMODE=2.
Таблица 3 • Использование U_MSS_BOOTCFG в безопасной загрузке пользователя
Смещение (байты) | Размер (байт) | Имя | Описание |
0 | 1 | U_MSS_BOOT_SNVM_PAGE | Стартовая страница в SNVM |
1 | 3 | СДЕРЖАННЫЙ | Для выравнивания |
4 | 12 | U_MSS_BOOT_SNVM_USK | Для аутентифицированных/зашифрованных страниц |
На следующем рисунке показан процесс безопасной загрузки пользователя.
Рисунок 5 • Поток безопасной загрузки пользователя
Заводская безопасная загрузка
В этом режиме системный контроллер считывает сертификат образа безопасной загрузки (SBIC) из eNVM и проверяет SBIC. После успешной проверки системный контроллер копирует заводской безопасный загрузочный код из своей частной защищенной области памяти и загружает его в DTIM ядра монитора E51. Безопасная загрузка по умолчанию выполняет проверку подписи образа eNVM с использованием SBIC, который хранится в eNVM. Если об ошибках не сообщается, выполняется сброс основного комплекса MSS. Если сообщается об ошибках, основной комплекс MSS переводится в состояние сброса, а BOOT_FAIL tampэ флаг поднят. Затем системный контроллер активируется вampфлаг er, который подает сигнал на матрицу FPGA для действий пользователя. Этот режим реализуется с помощью параметра загрузки U_MSS_BOOTMODE=3.
SBIC содержит адрес, размер, хэш и подпись алгоритма цифровой подписи на эллиптических кривых (ECDSA) защищенного двоичного двоичного объекта. ECDSA предлагает вариант алгоритма цифровой подписи, в котором используется криптография на основе эллиптических кривых. Он также содержит вектор сброса для каждого оборудования.
поток/ядро/ядро процессора (Hart) в системе.
Таблица 4 • Сертификат защищенного загрузочного образа (SBIC)
Компенсировать | Размер (байт) | Ценить | Описание |
0 | 4 | ИЗОБАДДР | Адрес UBL в карте памяти MSS |
4 | 4 | ИМАГЕЛЕН | Размер UBL в байтах |
8 | 4 | БУТВЕК0 | Вектор загрузки в УБЛ для Е51 |
12 | 4 | БУТВЕК1 | Загрузочный вектор в УБЛ для U540 |
16 | 4 | БУТВЕК2 | Загрузочный вектор в УБЛ для U541 |
20 | 4 | БУТВЕК3 | Загрузочный вектор в УБЛ для U542 |
24 | 4 | БУТВЕК4 | Загрузочный вектор в УБЛ для U543 |
28 | 1 | ВАРИАНТЫ[7:0] | опции SBIC |
28 | 3 | СДЕРЖАННЫЙ | |
32 | 8 | ВЕРСИЯ | Версия SBIC/образа |
40 | 16 | ДСН | Необязательная привязка DSN |
56 | 48 | H | Хэш SHA-384 изображения UBL |
104 | 104 | КОДЕКСИГ | Подпись ECDSA в кодировке DER |
Общий | 208 | Байты |
ДСН
Если поле DSN не равно нулю, оно сравнивается с собственным серийным номером устройства. Если сравнение не удается, то boot_fail tampустановлен флаг er, и аутентификация прерывается.
ВЕРСИЯ
Если отзыв SBIC разрешен параметром U_MSS_REVOCATION_ENABLE, SBIC отклоняется, если только значение VERSION не превышает порог отзыва или равно ему.
ВАРИАНТ АННУЛИРОВАНИЯ SBIC
Если отзыв SBIC разрешен параметром U_MSS_REVOCATION_ENABLE, а OPTIONS[0] равен «1», все версии SBIC ниже VERSION отменяются после полной аутентификации SBIC. Порог отзыва остается на новом значении до тех пор, пока он снова не увеличится на будущий SBIC с OPTIONS[0] = '1' и более высоким полем VERSION. Порог отзыва может быть увеличен только с использованием этого механизма и может быть сброшен только битовым потоком.
Когда пороговое значение отзыва обновляется динамически, пороговое значение сохраняется с использованием схемы избыточного хранения, используемой для кодов доступа, так что сбой питания во время загрузки устройства не приводит к сбою последующей загрузки устройства. Если обновление порога отзыва не удается, гарантируется, что пороговое значение является либо новым значением, либо предыдущим.
Таблица 5 • Использование U_MSS_BOOTCFG в режиме заводского загрузчика
Смещение (байты) |
Размер (байт) |
Имя |
Описание |
0 | 4 | U_MSS_SBIC_ADDR | Адрес SBIC в адресном пространстве MSS |
4 | 4 | U_MSS_REVOCATION_ENABLE | Включить отзыв SBIC, если он не равен нулю |
На следующем рисунке показан заводской безопасный процесс загрузки.
Рисунок 6 • Заводская безопасная загрузка
Загрузка пользователя MSS
Загрузка пользователя MSS происходит, когда управление передается от системного контроллера к основному комплексу MSS. После успешной предварительной загрузки MSS системный контроллер выполняет сброс основного комплекса MSS. MSS можно загрузить одним из следующих способов:
- Приложение для голого металла
- Linux-приложение
- AMP Приложение
Приложение для голого металла
Приложения на «голом железе» для PolarFire SoC можно разрабатывать с помощью инструмента SoftConsole. Этот инструмент обеспечивает вывод files в виде .hex, которые можно использовать в потоке Libero для включения в битовый поток программирования. file. Этот же инструмент можно использовать для отладки приложений Bare Metal с помощью J.TAG
интерфейс.
На следующем рисунке показано приложение SoftConsole Bare Metal, которое имеет пять узлов (ядер), включая ядро монитора E51.
Рисунок 7 • Проект SoftConsole
Linux-приложение
В этом разделе описывается последовательность загрузки для Linux, работающего на всех ядрах U54.
Типичный процесс загрузки состоит из трехtages. Первые сtagЗагрузчик (FSBL) запускается из встроенной загрузочной флэш-памяти (eNVM). FSBL загружает второй stage загрузчик (SSBL) с загрузочного устройства во внешнюю оперативную память или кэш. Загрузочным устройством может быть eNVM, микроконтроллер со встроенной памятью (eMMC) или внешняя флэш-память SPI. SSBL загружает операционную систему Linux с загрузочного устройства во внешнее ОЗУ. В третьем сtagд., Linux выполняется из внешней оперативной памяти.
На следующем рисунке показан процесс загрузки Linux.
Рисунок 8 • Типичный процесс загрузки Linux
Подробная информация о сборке FSBL, дерева устройств, Linux и YOCTO, а также о сборке и настройке Linux будет представлена в следующем выпуске этого документа.
AMP Приложение
Подробное описание Libero MSS Configurator и способы отладки многопроцессорных приложений с помощью SoftConsole будут представлены в следующем выпуске этого документа.
Различные источники загрузки
Будет обновлено в будущих версиях этого документа.
Конфигурация загрузки
Будет обновлено в будущих версиях этого документа.
Сокращения
В этом документе используются следующие сокращения.
Таблица 1 • Список сокращений
Акроним расширенный
- AMP Асимметричная многопроцессорная обработка
- ДТИМ Плотно интегрированная память данных (также называемая SRAM)
- ECDSA Алгоритм цифровой подписи эллиптической кривой
- ЭНВМ встроенная энергонезависимая память
- ФСБЛ Первая буква Stage Загрузчик
- Харт Аппаратный поток/ядро/ядро процессора
- МСС Микропроцессорная подсистема
- ПОР Сброс при включении
- ППУ Физически неклонируемая функция
- ПЗУ Только для чтения памяти
- SCB Мост системного контроллера
- СНВМ Безопасная энергонезависимая память
История изменений
История изменений описывает изменения, которые были реализованы в документе. Изменения перечислены по ревизиям, начиная с текущей публикации.
Редакция 2.0
Ниже приводится сводка изменений, внесенных в эту редакцию.
- Обновлена информация о Factory Secure Boot.
- Обновлена информация о Bare Metal Application.
Редакция 1.0
Первая публикация этого документа.
Штаб-квартира Микросеми
One Enterprise, Алисо Вьехо,
CA 92656 США
В США: +1 800-713-4113
За пределами США: +1 949-380-6100
Продажи: +1 949-380-6136
Факс: +1 949-215-4996
Электронная почта: sales.support@microsemi.com
www.microsemi.com
©2020 Microsemi, дочерняя компания Microchip Technology Inc. Все права защищены. Microsemi и логотип Microsemi являются зарегистрированными товарными знаками корпорации Microsemi. Все другие товарные знаки и знаки обслуживания являются собственностью их соответствующих владельцев.
Документы/Ресурсы
![]() |
Microchip UG0881 PolarFire SoC FPGA Загрузка и настройка [pdf] Руководство пользователя UG0881 Загрузка и настройка PolarFire SoC FPGA, UG0881, Загрузка и настройка PolarFire SoC FPGA, Загрузка и настройка |