Микросеми-LGOO

Microchip UG0881 PolarFire SoC FPGA зареждане и конфигуриране

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  Последователност на зарежданеMicrochip-UG0881-PolarFire-SoC-FPGA-зареждане-и-конфигуриране-фиг. 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 поток преди зареждане Microchip-UG0881-PolarFire-SoC-FPGA-зареждане-и-конфигуриране-фиг. 2

Idle Boot

Ако MSS не е конфигуриран (напрample, празно устройство), тогава MSS Core Complex изпълнява стартираща ROM програма, която държи всички процесори в безкраен цикъл, докато дебъгерът се свърже с целта. Регистрите на вектора за зареждане поддържат стойността си, докато устройството не бъде нулирано или не бъде програмирана нова конфигурация на режим на зареждане. За конфигурирани устройства този режим може да се реализира с помощта на
U_MSS_BOOTMODE=0 опция за зареждане в конфигуратора на Libero.

Забележка: В този режим U_MSS_BOOTCFG не се използва.

Следващата фигура показва потока на неактивно зареждане.
Фигура 3 • Idle Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-зареждане-и-конфигуриране-фиг. 3

Несигурно зареждане

В този режим 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 • Незащитен поток на зарежданеMicrochip-UG0881-PolarFire-SoC-FPGA-зареждане-и-конфигуриране-фиг. 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 • Потребителски защитен поток на зарежданеMicrochip-UG0881-PolarFire-SoC-FPGA-зареждане-и-конфигуриране-фиг. 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 • Фабрично защитен поток на зарежданеMicrochip-UG0881-PolarFire-SoC-FPGA-зареждане-и-конфигуриране-фиг. 6 Microchip-UG0881-PolarFire-SoC-FPGA-зареждане-и-конфигуриране-фиг. 7

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 Microchip-UG0881-PolarFire-SoC-FPGA-зареждане-и-конфигуриране-фиг. 8

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 • Типичен процес на зареждане на LinuxMicrochip-UG0881-PolarFire-SoC-FPGA-зареждане-и-конфигуриране-фиг. 9

Подробности за 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 зареждане и конфигуриране, зареждане и конфигуриране

Референции

Оставете коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са маркирани *