Микрочип UG0881 PolarFire SoC FPGA подигање и конфигурација
Гаранција
Microsemi не дава гаранција, претставување или гаранција во врска со информациите содржани овде или соодветноста на неговите производи и услуги за одредена цел, ниту пак Microsemi презема каква било одговорност што произлегува од примената или употребата на кој било производ или коло. Производите што се продаваат подолу и сите други производи што ги продава Microsemi биле предмет на ограничено тестирање и не треба да се користат заедно со опрема или апликации кои се критични за мисијата. Се верува дека сите спецификации за изведба се сигурни, но не се потврдени, а Купувачот мора да ги спроведе и заврши сите перформанси и други тестирања на производите, сам и заедно со, или инсталиран во, кој било крајен производ. Купувачот не мора да ги има сите податоци и спецификации или параметри за изведба обезбедени од Microsemi. Одговорност на Купувачот е самостојно да ја утврди соодветноста на кој било производ и да ги тестира и потврди истите. Информациите дадени од Microsemi подолу се дадени „како што е, каде што е“ и со сите грешки, а целиот ризик поврзан со таквите информации е целосно кај Купувачот. Microsemi не дава, експлицитно или имплицитно, на која било страна никакви права на патент, лиценци или какви било други права на ИС, без разлика дали се однесуваат на самите тие информации или што било опишано со тие информации. Информациите дадени во овој документ се сопственост на Microsemi и Microsemi го задржува правото да направи какви било промени на информациите во овој документ или на какви било производи и услуги во секое време без претходна најава.
За Микросеми
Microsemi, подружница во целосна сопственост на Microchip Technology Inc. (Nasdaq: MCHP), нуди сеопфатно портфолио на полупроводнички и системски решенија за воздушната и одбраната, комуникациите, центарот за податоци и индустриските пазари. Производите вклучуваат аналогни интегрирани кола со мешан сигнал со високи перформанси и стврднати со зрачење, FPGA, SoC и ASIC; производи за управување со енергија; уреди за тајминг и синхронизација и прецизни решенија за времето, поставувајќи ги светските стандарди за времето; уреди за обработка на глас; RF решенија; дискретни компоненти; претпријатија за складирање и комуникациски решенија, безбедносни технологии и скалабилни анти-тamper производи; Етернет решенија; ИЦ и средни распони со напојување преку етернет; како и можности и услуги прилагодено за дизајн. Дознајте повеќе на www.microsemi.com.
Подигнување и конфигурација
PolarFire SoC FPGA користат напредни кола за напојување за да обезбедат сигурно вклучување при вклучување и ресетирање. При вклучување и ресетирање, секвенцата за подигање на PolarFire SoC FPGA следи ресетирање со вклучување (POR), подигање на уредот, иницијализација на дизајнот, пред-подигање на потсистем на микроконтролер (MSS) и подигање на корисникот MSS. Овој документ го опишува MSS пред-подигање и MSS корисничко подигање. За информации за POR, иницијализацијата за подигање на уредот и дизајн, видете UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
За повеќе информации за карактеристиките на MSS, видете UG0880: PolarFire SoC MSS Упатство за употреба.
Секвенца за подигнување
Редоследот на подигнување започнува кога ќе се вклучи или ресетира PolarFire SoC FPGA. Тој завршува кога процесорот е подготвен да изврши апликативна програма. Оваа секвенца за подигнување поминува низ неколку сtagе пред да започне со извршување на програмите.
Збир на операции се изведуваат за време на процесот на подигање кој вклучува ресетирање на хардверот со вклучување, иницијализација на периферните уреди, иницијализација на меморијата и вчитување на апликацијата дефинирана од корисникот од неиспарлива меморија во испарлива меморија за извршување.
На следната слика се прикажани различни фази од секвенцата на Boot-up.
Слика 1 Секвенца за подигнување
MSS пред-подигање
По успешното завршување на иницијализацијата на дизајнот, MSS Pre-boot го започнува своето извршување. MSS се ослободува од ресетирање по завршувањето на сите нормални процедури за стартување. Системскиот контролер управува со програмирањето, иницијализацијата и конфигурацијата на уредите. MSS Pre-boot не се случува ако програмираниот уред е конфигуриран за режим на суспендирање на системскиот контролер.
Фазата на иницијализација на пред-подигање на MSS е координирана од фирмверот на системскиот контролер, иако може да го користи E51 во основниот комплекс на MSS за да изврши одредени делови од низата пред подигање.
Следниве настани се случуваат за време на пред-подигањето на MSStage:
- Вклучување на MSS вградена неиспарлива меморија (eNVM)
- Иницијализирање на поправката на вишокот поврзана со кешот MSS Core Complex L2
- Автентикација на кодот за подигање на корисникот (ако е овозможена опцијата за подигање Безбедно на корисникот)
- Предавање на оперативниот MSS код за подигање на корисникот
Комплексот MSS Core може да се подигне во еден од четирите режими. Следната табела ги наведува опциите за пред-подигање на 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 се подига од подигање ROM ако 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 извршува програма за подигање ROM која ги држи сите процесори во бесконечен циклус додека дебагерот не се поврзе со целта. Векторските регистри за подигање ја задржуваат својата вредност додека уредот не се ресетира или не се програмира нова конфигурација на режимот за подигање. За конфигурирани уреди, овој режим може да се имплементира со користење на
U_MSS_BOOTMODE=0 опција за подигање во конфигураторот Libero.
Забелешка: Во овој режим, U_MSS_BOOTCFG не се користи.
Следната слика го прикажува протокот на подигање во мирување.
Слика 3 • Проток на подигање во мирување
Небезбедно подигање
Во овој режим, MSS Core Complex се извршува од одредена адреса eNVM без автентикација. Ја обезбедува најбрзата опција за подигање, но нема автентикација на сликата на кодот. Адресата може да се одреди со поставување U_MSS_BOOTADDR во Libero Configurator. Овој режим може да се користи и за подигнување од кој било мемориски ресурс на FPGA Fabric преку FIC. Овој режим се спроведува со користење на
U_MSS_BOOTMODE=1 опција за подигање.
Комплексот MSS Core е ослободен од ресетирање со вектори за подигање дефинирани од 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 KB која може да биде заштитена со вградената Физички неклонирачка функција (PUF). Овој метод за подигање се смета за безбеден бидејќи страниците sNVM означени како ROM се непроменливи. Кога се вклучува, системскиот контролер го копира кодот за подигање за безбедно користење од sNVM во Data Tightly Integrated Memory (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 • Кориснички безбеден тек на подигање
Фабрички безбедно подигање
Во овој режим, системскиот контролер го чита сертификатот за слика за безбедно подигање (SBIC) од eNVM и го потврдува SBIC. При успешна валидација, Системскиот контролер го копира фабричкиот безбедносен код за подигање од неговата приватна, безбедна мемориска област и ја вчитува во DTIM на јадрото на мониторот E51. Стандардното безбедно подигање врши проверка на потписот на сликата eNVM со помош на SBIC што е зачувана во eNVM. Ако не се пријават грешки, ресетирањето се ослободува во MSS Core Complex. Ако се пријават грешки, MSS Core Complex се става во ресетирање и BOOT_FAIL tamper знамето е подигнато. Потоа, системскиот контролер се активира наamper знаменце кое дава сигнал до FPGA ткаенината за корисничко дејство. Овој режим се имплементира со користење на опцијата за подигање U_MSS_BOOTMODE=3.
SBIC ги содржи адресата, големината, хашот и потписот на алгоритам за дигитален потпис на елипсовидна крива (ECDSA) на заштитената бинарна дупка. ECDSA нуди варијанта на алгоритам за дигитален потпис кој користи криптографија со елипсовидна крива. Го содржи и векторот за ресетирање за секој хардвер
нишка/јадро/процесорско јадро (Харт) во системот.
Табела 4 • Сертификат за слика за безбедно подигање (SBIC)
Офсет | Големина (бајти) | Вредност | Опис |
0 | 4 | IMAGEADDR | Адреса на UBL во картата на MSS меморија |
4 | 4 | IMAGELEN | Големина на 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 | КОДЕЗИРАЊЕ | Потпис 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 Core Complex. По успешното пред-подигање на MSS, системскиот контролер го ослободува ресетирањето во јадрото на MSS комплексот. MSS може да се подигне на еден од следниве начини:
- Апликација за гол метал
- Линукс апликација
- AMP Апликација
Апликација за гол метал
Апликациите за гол метал за PolarFire SoC може да се развијат со помош на алатката SoftConsole. Оваа алатка го обезбедува излезот files во форма на .hex што може да се користи во протокот Libero за да се вклучи во програмскиот битстрим file. Истата алатка може да се користи за дебагирање на апликациите Bare Metal користејќи JTAG
интерфејс.
Следната слика ја прикажува апликацијата SoftConsole Bare Metal која има пет харти (јадра) вклучувајќи го и јадрото на мониторот E51.
Слика 7 • Проект SoftConsole
Линукс апликација
Овој дел ја опишува секвенцата за подигање за Linux што работи на сите U54 јадра.
Типичен процес на подигање се состои од три секtages Првиот сtagВчитувачот на подигање (FSBL) се извршува од блицот за подигање на чипот (eNVM). FSBL го вчитува вториот stagе подигнувач (SSBL) од уред за подигање на надворешна RAM или кеш меморија. Уредот за подигање може да биде eNVM или микроконтролер со вградена меморија (eMMC) или надворешен SPI Flash. SSBL го вчитува оперативниот систем Linux од уред за подигање на надворешна RAM меморија. Во третиот сtage, Linux се извршува од надворешната RAM меморија.
Следната слика го прикажува текот на процесот на подигање на Linux.
Слика 8 • Типичен тек на процесот на подигање на Linux
Детали за FSBL, Device tree, Linux и YOCTO build, како да се изгради и конфигурира Linux ќе бидат дадени во идното издание на овој документ.
AMP Апликација
Детален опис на Libero MSS Configurator и како да се дебагирате апликациите со повеќе процесори користејќи SoftConsole ќе бидат дадени во идното издание на овој документ.
Различни извори на подигање
Ќе се ажурира во идните верзии на овој документ.
Конфигурација за подигање
Ќе се ажурира во идните верзии на овој документ.
Акроними
Во овој документ се користат следните акроними.
Табела 1 • Список на акроними
Акронимот е проширен
- AMP Асиметрична мулти-обработка
- DTIM Тесно интегрирана меморија за податоци (исто така наречена SRAM)
- ECDSA Алгоритам за дигитален потпис на елипсовидна крива
- eNVM вградена неиспарлива меморија
- FSBL Прво Сtage Boot Loader
- Харт Хардверска нишка/јадро/процесорско јадро
- MSS Микропроцесорски потсистем
- ПОР Вклучување на ресетирање
- PUF Физички неклонирачка функција
- ROM Меморија само за читање
- СЦБ Системски контролер мост
- sNVM Безбедна неиспарлива меморија
Историја на ревизии
Историјата на ревизии ги опишува промените што беа имплементирани во документот. Промените се наведени со ревизија, почнувајќи од тековната публикација.
Ревизија 2.0
Следното е резиме на промените направени во оваа ревизија.
- Информациите за Factory Secure Boot беа ажурирани.
- Информациите за апликацијата Bare Metal беа ажурирани.
Ревизија 1.0
Првото објавување на овој документ.
Седиште на Микросеми
One Enterprise, Алисо Виехо,
Калифорнија 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. Сите други трговски марки и услужни марки се сопственост на нивните соодветни сопственици.
Документи / ресурси
![]() |
Микрочип UG0881 PolarFire SoC FPGA подигање и конфигурација [pdf] Упатство за корисникот UG0881 PolarFire SoC FPGA подигање и конфигурација, UG0881, PolarFire SoC FPGA подигање и конфигурација, подигање и конфигурација |