Microchip UG0881 PolarFire SoC FPGA Завантаження та конфігурація
Гарантія
Microsemi не надає жодних гарантій, заяв чи гарантій щодо інформації, що міститься в цьому документі, або придатності своїх продуктів і послуг для будь-якої конкретної мети, а також 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 User Boot. Для отримання інформації про POR, завантаження пристрою та ініціалізацію дизайну див. UG0890: PolarFire SoC FPGA Power Up and Reset Guide User Guide.
Для отримання додаткової інформації про функції MSS див. UG0880: Посібник користувача PolarFire SoC MSS.
Послідовність завантаження
Послідовність завантаження починається, коли PolarFire SoC FPGA увімкнено або скинуто. Він завершується, коли процесор готовий виконати прикладну програму. Ця послідовність завантаження проходить через кілька секундtagперед початком виконання програм.
Під час процесу завантаження виконується набір операцій, який включає скидання апаратного забезпечення під час увімкнення, ініціалізацію периферійного пристрою, ініціалізацію пам’яті та завантаження визначеної користувачем програми з енергонезалежної пам’яті в енергозалежну пам’ять для виконання.
На наступному малюнку показано різні етапи послідовності завантаження.
малюнок 1 Послідовність завантаження
Попереднє завантаження MSS
Після успішного завершення ініціалізації дизайну MSS Pre-boot починає її виконання. MSS звільняється від скидання після завершення всіх нормальних процедур запуску. Системний контролер керує програмуванням, ініціалізацією та конфігурацією пристроїв. Попереднє завантаження MSS не відбувається, якщо запрограмований пристрій налаштовано на режим призупинення системного контролера.
Фаза ініціалізації перед завантаженням MSS координується мікропрограмою системного контролера, хоча він може використовувати E51 у базовому комплексі MSS для виконання певних частин послідовності перед завантаженням.
Наступні події відбуваються під час попереднього завантаження MSStage:
- Увімкнення вбудованої енергонезалежної пам’яті 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 Complex
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
Idle Boot
Якщо MSS не налаштовано (наприклад,ample, порожній пристрій), тоді MSS Core Complex виконує програму завантаження ROM, яка утримує всі процесори в нескінченному циклі, доки налагоджувач не підключиться до цільового пристрою. Регістри вектора завантаження зберігають своє значення, доки пристрій не буде скинуто або не запрограмовано нову конфігурацію режиму завантаження. Для налаштованих пристроїв цей режим можна реалізувати за допомогою
U_MSS_BOOTMODE=0 параметр завантаження в конфігураторі Libero.
Примітка: У цьому режимі U_MSS_BOOTCFG не використовується.
На наступному малюнку показано процес завантаження Idle.
Фігура 3 • Idle Boot Flow
Незахищене завантаження
У цьому режимі MSS Core Complex виконується з указаної адреси eNVM без автентифікації. Він забезпечує найшвидший варіант завантаження, але немає автентифікації зображення коду. Адресу можна вказати, встановивши U_MSS_BOOTADDR у конфігураторі Libero. Цей режим також можна використовувати для завантаження з будь-якого ресурсу пам’яті FPGA Fabric через FIC. Цей режим реалізується за допомогою
U_MSS_BOOTMODE=1 варіант завантаження.
Базовий комплекс MSS звільняється від скидання за допомогою векторів завантаження, визначених U_MSS_BOOTCFG (як зазначено в наступній таблиці).
Таблиця 2 • U_MSS_BOOTCFG Використання в незахищеному режимі завантаження 1
Зсув (байти) |
Розмір (байти) |
Ім'я |
опис |
0 | 4 | BOOTVEC0 | Завантажувальний вектор для E51 |
4 | 4 | BOOTVEC1 | Завантажувальний вектор для U540 |
8 | 4 | BOOTVEC2 | Завантажувальний вектор для U541 |
16 | 4 | BOOTVEC3 | Завантажувальний вектор для U542 |
20 | 4 | BOOTVEC4 | Завантажувальний вектор для U543 |
На наступному малюнку показано незахищений потік завантаження.
Фігура 4 • Незахищений потік завантаження
Безпечне завантаження користувача
Цей режим дозволяє користувачеві реалізувати власне безпечне завантаження, а код безпечного завантаження користувача розміщується в sNVM. sNVM — це 56 КБ енергонезалежної пам’яті, яку можна захистити за допомогою вбудованої функції фізичного неклонування (PUF). Цей метод завантаження вважається безпечним, оскільки сторінки sNVM, позначені як ROM, є незмінними. Під час увімкнення живлення системний контролер копіює код захищеного завантаження користувача з sNVM у пам’ять з інтегрованою пам’яттю (DTIM) ядра монітора E51. E51 починає виконувати код безпечного завантаження користувача.
Якщо розмір коду безпечного завантаження користувача перевищує розмір DTIM, тоді користувачеві потрібно розділити код завантаження на дві частини.tagес. sNVM може містити наступні stage послідовності завантаження користувача, яка може виконувати автентифікацію наступного завантаженняtage з використанням алгоритму автентифікації/дешифрування користувача.
Якщо використовуються автентифіковані або зашифровані сторінки, то той самий ключ USK (тобто
U_MSS_BOOT_SNVM_USK) необхідно використовувати для всіх автентифікованих/зашифрованих сторінок.
Якщо автентифікація не вдається, MSS Core Complex можна перевести в режим скидання, а 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 • Безпечний потік завантаження користувача
Безпечне заводське завантаження
У цьому режимі системний контролер зчитує сертифікат Secure Boot Image Certificate (SBIC) з eNVM і перевіряє SBIC. Після успішної перевірки системний контролер копіює заводський безпечний код завантаження зі своєї приватної безпечної області пам’яті та завантажує його в DTIM ядра монітора E51. Безпечне завантаження за замовчуванням виконує перевірку підпису образу eNVM за допомогою SBIC, який зберігається в eNVM. Якщо про помилки не повідомляється, скидання випускається до основного комплексу MSS. Якщо повідомляється про помилки, MSS Core Complex переміщується в режим скидання, а BOOT_FAIL tamper прапор піднято. Після цього системний контролер активуєтьсяamper прапорець, який передає сигнал на структуру FPGA для дії користувача. Цей режим реалізовано за допомогою параметра завантаження U_MSS_BOOTMODE=3.
SBIC містить адресу, розмір, хеш і підпис алгоритму цифрового підпису еліптичної кривої (ECDSA) захищеного двійкового блоку. ECDSA пропонує варіант алгоритму цифрового підпису, який використовує еліптичну криптографію. Він також містить вектор скидання для кожного обладнання
потік/ядро/ядро процесора (Hart) у системі.
Таблиця 4 • Сертифікат образу безпечного завантаження (SBIC)
Зсув | Розмір (байти) | Значення | опис |
0 | 4 | IMAGEADDR | Адреса UBL у карті пам'яті MSS |
4 | 4 | ІМІГЕЛЕН | Розмір UBL в байтах |
8 | 4 | BOOTVEC0 | Завантажувальний вектор в UBL для E51 |
12 | 4 | BOOTVEC1 | Завантажувальний вектор в UBL для U540 |
16 | 4 | BOOTVEC2 | Завантажувальний вектор в UBL для U541 |
20 | 4 | BOOTVEC3 | Завантажувальний вектор в UBL для U542 |
24 | 4 | BOOTVEC4 | Завантажувальний вектор в UBL для U543 |
28 | 1 | ОПЦІЇ[7:0] | Опції SBIC |
28 | 3 | ЗАРЕЗЕРВОВАНО | |
32 | 8 | ВЕРСІЯ | Версія SBIC/Image |
40 | 16 | DSN | Додаткова прив'язка DSN |
56 | 48 | H | Хеш зображення UBL SHA-384 |
104 | 104 | CODESIG | Підпис ECDSA, закодований DER |
Всього | 208 | Байти |
DSN
Якщо поле DSN ненульове, воно порівнюється з власним серійним номером пристрою. Якщо порівняння не вдається, то boot_fail tamper встановлено прапорець і автентифікацію скасовано.
ВЕРСІЯ
Якщо відкликання 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 можна завантажити одним із таких способів:
- Додаток Bare Metal
- Програма Linux
- AMP застосування
Додаток Bare Metal
Додатки на «голому металі» для PolarFire SoC можна розробляти за допомогою інструменту SoftConsole. Цей інструмент забезпечує результат files у формі .hex, який можна використовувати в потоці Libero для включення в бітовий потік програмування file. Цей самий інструмент можна використовувати для налагодження додатків Bare Metal за допомогою JTAG
інтерфейс.
На наступному малюнку показано програму SoftConsole Bare Metal, яка має п’ять ядер (ядра), включаючи ядро монітора E51.
Фігура 7 • Проект SoftConsole
Програма Linux
У цьому розділі описано послідовність завантаження Linux, що працює на всіх ядрах U54.
Типовий процес завантаження складається з трьох секундtages. Перший сtagелектронний завантажувач (FSBL) запускається з вбудованої флеш-пам’яті завантаження (eNVM). FSBL завантажує другий stagелектронний завантажувач (SSBL) із завантажувального пристрою в зовнішню оперативну пам’ять або кеш. Завантажувальним пристроєм може бути eNVM або вбудований мікроконтролер пам’яті (eMMC) або зовнішній SPI Flash. SSBL завантажує операційну систему Linux із завантажувального пристрою в зовнішню оперативну пам’ять. У третій сtage, Linux виконується із зовнішньої оперативної пам’яті.
На наступному малюнку показано процес завантаження Linux.
Фігура 8 • Типовий процес завантаження Linux
Докладні відомості про FSBL, дерево пристроїв, збірку Linux і YOCTO, а також про те, як зібрати та налаштувати Linux, будуть надані в наступному випуску цього документа.
AMP застосування
Детальний опис Libero MSS Configurator і способів налагодження багатопроцесорних програм за допомогою SoftConsole буде надано в наступному випуску цього документа.
Різні джерела завантаження
Буде оновлено в наступних версіях цього документа.
Конфігурація завантаження
Буде оновлено в наступних версіях цього документа.
Акроніми
У цьому документі використовуються такі абревіатури.
Таблиця 1 • Список скорочень
Акронім Розширений
- AMP Асиметрична багатопроцесорна обробка
- DTIM Тісно інтегрована пам'ять даних (також називається SRAM)
- ECDSA Алгоритм цифрового підпису еліптичної кривої
- eNVM вбудована енергонезалежна пам'ять
- ФСБЛ Перший Сtage Boot Loader
- Харт Апаратний потік/ядро/ядро процесора
- MSS Мікропроцесорна підсистема
- POR Увімкнути Скинути
- ПУФ Фізично неклонована функція
- ROM Постійна пам'ять
- SCB Міст системного контролера
- sNVM Безпечна енергонезалежна пам'ять
Історія версій
Історія переглядів описує зміни, внесені в документ. Зміни перераховані за редакцією, починаючи з поточної публікації.
Редакція 2.0
Нижче наведено підсумок змін, внесених у цій редакції.
- Інформацію про Factory Secure Boot оновлено.
- Оновлено інформацію про програму Bare Metal.
Редакція 1.0
Перша публікація цього документа.
Штаб Microsemi
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
© Microsemi, 2020, дочірня компанія Microchip Technology Inc. Усі права захищено. Microsemi та логотип Microsemi є зареєстрованими торговими марками Microsemi Corporation. Усі інші торгові марки та знаки обслуговування є власністю відповідних власників.
Документи / Ресурси
![]() |
Microchip UG0881 PolarFire SoC FPGA Завантаження та конфігурація [pdfПосібник користувача UG0881 PolarFire SoC FPGA Завантаження та конфігурація, UG0881, PolarFire SoC FPGA Завантаження та конфігурація, Завантаження та конфігурація |