Microchip UG0881 PolarFire SoC FPGA зареждане и конфигуриране
Гаранция
Microsemi не дава никаква гаранция, представителство или гаранция по отношение на информацията, съдържаща се тук, или пригодността на своите продукти и услуги за конкретна цел, нито Microsemi поема каквато и да е отговорност, произтичаща от приложението или използването на който и да е продукт или верига. Продуктите, продавани по-долу, и всички други продукти, продавани от Microsemi, са били обект на ограничени тестове и не трябва да се използват заедно с критично оборудване или приложения. Смята се, че всички спецификации на производителността са надеждни, но не са проверени и Купувачът трябва да проведе и завърши всички производителни и други тестове на продуктите, самостоятелно и заедно с, или инсталирани в крайни продукти. Купувачът няма право да разчита на каквито и да било данни и спецификации или параметри за изпълнение, предоставени от Microsemi. Отговорност на Купувача е самостоятелно да определи годността на продуктите и да тества и провери същите. Информацията, предоставена от Microsemi по-долу, се предоставя „каквато е, където е“ и с всички недостатъци, като целият риск, свързан с такава информация, е изцяло на Купувача. Microsemi не предоставя, изрично или имплицитно, на никоя страна каквито и да е патентни права, лицензи или каквито и да е други права на интелектуална собственост, независимо дали по отношение на самата такава информация или каквото и да е, описано в такава информация. Информацията, предоставена в този документ, е собственост на Microsemi и Microsemi си запазва правото да прави промени в информацията в този документ или в продукти и услуги по всяко време без предизвестие.
Относно Microsemi
Microsemi, изцяло притежавано дъщерно дружество на Microchip Technology Inc. (Nasdaq: MCHP), предлага изчерпателно портфолио от полупроводникови и системни решения за космически и отбранителни, комуникационни, центрове за данни и индустриални пазари. Продуктите включват високопроизводителни и радиационно закалени аналогови интегрални схеми със смесен сигнал, FPGA, SoC и ASIC; продукти за управление на захранването; устройства за отчитане и синхронизация и прецизни времеви решения, поставящи световния стандарт за времето; устройства за обработка на глас; RF решения; дискретни компоненти; корпоративни решения за съхранение и комуникация, технологии за сигурност и мащабируеми анти-тamper продукти; Ethernet решения; Power-over-Ethernet ИС и midspans; както и възможности за персонализиран дизайн и услуги. Научете повече на www.microsemi.com.
Зареждане и конфигуриране
PolarFire SoC FPGA използва усъвършенствана схема за захранване, за да осигури надеждно захранване при включване и нулиране. При включване и нулиране, последователността на зареждане на PolarFire SoC FPGA следва нулиране при включване (POR), зареждане на устройството, инициализация на дизайна, предварително зареждане на микроконтролерна подсистема (MSS) и зареждане на потребител на MSS. Този документ описва MSS pre-boot и MSS User Boot. За информация относно POR, стартиране на устройството и инициализация на дизайна, вижте UG0890: Ръководство за потребителя за включване и нулиране на PolarFire SoC FPGA.
За повече информация относно функциите на MSS вижте UG0880: Ръководство за потребителя на PolarFire SoC MSS.
Последователност на зареждане
Последователността на зареждане започва, когато PolarFire SoC FPGA се включи или нулира. Приключва, когато процесорът е готов да изпълни приложна програма. Тази последователност на зареждане преминава през няколко stages, преди да започне изпълнението на програмите.
По време на процеса на зареждане се извършва набор от операции, който включва нулиране на хардуера при включване, инициализация на периферни устройства, инициализация на паметта и зареждане на дефинирано от потребителя приложение от енергонезависима памет в енергонезависимата памет за изпълнение.
Следващата фигура показва различни фази на последователността на стартиране.
Фигура 1 Последователност на зареждане
MSS Pre-Boot
След успешно завършване на инициализацията на дизайна, MSS Pre-boot започва своето изпълнение. MSS се освобождава от нулиране след завършване на всички нормални процедури за стартиране. Системният контролер управлява програмирането, инициализирането и конфигурацията на устройствата. MSS Pre-boot не се случва, ако програмираното устройство е конфигурирано за режим на спиране на системния контролер.
Фазата на инициализация преди зареждане на MSS се координира от фърмуера на системния контролер, въпреки че може да използва E51 в MSS Core Complex за изпълнение на определени части от последователността преди зареждане.
Следните събития възникват по време на ss преди зареждане на MSStage:
- Включване на вградената енергонезависима памет на MSS (eNVM)
- Инициализиране на поправката на излишъка, свързана с L2 кеша на MSS Core Complex
- Удостоверяване на потребителския код за стартиране (ако е активирана опцията за потребителско безопасно стартиране)
- Прехвърляне на оперативен 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 се зарежда от ROM за зареждане, ако 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 не се използва.
Следващата фигура показва потока на неактивно зареждане.
Фигура 3 • Idle Boot Flow
Несигурно зареждане
В този режим MSS Core Complex се изпълнява от определен eNVM адрес без удостоверяване. Той предоставя най-бързата опция за зареждане, но няма удостоверяване на изображението на кода. Адресът може да бъде указан чрез настройка U_MSS_BOOTADDR в Libero Configurator. Този режим може също да се използва за зареждане от всеки ресурс на паметта на FPGA Fabric чрез FIC. Този режим се реализира с помощта на
U_MSS_BOOTMODE=1 опция за зареждане.
MSS Core Complex се освобождава от нулиране с вектори за зареждане, дефинирани от U_MSS_BOOTCFG (както е посочено в следващата таблица).
Таблица 2 • U_MSS_BOOTCFG Използване в режим на незащитено зареждане 1
Отместване (байтове) |
Размер (байтове) |
Име |
Описание |
0 | 4 | BOOTVEC0 | Boot вектор за E51 |
4 | 4 | BOOTVEC1 | Boot вектор за U540 |
8 | 4 | BOOTVEC2 | Boot вектор за U541 |
16 | 4 | BOOTVEC3 | Boot вектор за U542 |
20 | 4 | BOOTVEC4 | Boot вектор за U543 |
Следващата фигура показва потока на незащитено зареждане.
Фигура 4 • Незащитен поток на зареждане
Защитено зареждане на потребителя
Този режим позволява на потребителя да приложи свое собствено персонализирано защитено зареждане и кодът за защитено зареждане на потребителя се поставя в sNVM. sNVM е 56 KB енергонезависима памет, която може да бъде защитена от вградената функция за физически неклониране (PUF). Този метод на зареждане се счита за защитен, тъй като sNVM страниците, маркирани като ROM, са неизменни. При включване системният контролер копира потребителския защитен код за зареждане от sNVM в Data Tightly Integrated Memory (DTIM) на ядрото на E51 Monitor. E51 започва да изпълнява потребителския защитен код за зареждане.
Ако размерът на кода за защитено зареждане на потребителя е по-голям от размера на DTIM, тогава потребителят трябва да раздели кода за зареждане на две stagес. sNVM може да съдържа следващите stage от потребителската последователност за зареждане, която може да извърши удостоверяване на следващите зареждащи stage използвайки алгоритъма за удостоверяване/дешифриране на потребителя.
Ако се използват удостоверени или криптирани страници, тогава същият 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 Core Complex. Ако се докладват грешки, MSS Core Complex се поставя в нулиране и BOOT_FAIL tampзнамето е вдигнато. След това системният контролер се активира при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 | DER-кодиран ECDSA подпис |
Общо | 208 | Байтове |
DSN
Ако полето DSN е различно от нула, то се сравнява със собствения сериен номер на устройството. Ако сравнението е неуспешно, тогава boot_fail tampфлагът е зададен и удостоверяването е прекратено.
ВЕРСИЯ
Ако отмяната на 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 Core Complex. При успешно предварително зареждане на MSS, системният контролер освобождава нулирането към MSS Core Complex. 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 ядра.
Типичният процес на зареждане се състои от три stages. Първият stage boot loader (FSBL) се изпълнява от вградената в чипа Boot flash (eNVM). FSBL зарежда второто stage boot loader (SSBL) от устройство за зареждане към външна RAM или кеш памет. Устройството за зареждане може да бъде eNVM или микроконтролер с вградена памет (eMMC) или външна SPI Flash. SSBL зарежда операционната система Linux от устройството за зареждане към външна RAM памет. В третото stage, Linux се изпълнява от външната RAM памет.
Следващата фигура показва потока на процеса на зареждане на 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
©2020 Microsemi, изцяло притежавано дъщерно дружество на Microchip Technology Inc. Всички права запазени. Microsemi и логото Microsemi са регистрирани търговски марки на Microsemi Corporation. Всички други търговски марки и марки за услуги са собственост на съответните им собственици.
Документи / Ресурси
![]() |
Microchip UG0881 PolarFire SoC FPGA зареждане и конфигуриране [pdf] Ръководство за потребителя UG0881 PolarFire SoC FPGA зареждане и конфигуриране, UG0881, PolarFire SoC FPGA зареждане и конфигуриране, зареждане и конфигуриране |