Microsemi-LGOO

Microchip UG0881 PolarFire SoC FPGA Booting At Configuration

Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-product

Warranty

Ang Microsemi ay hindi gumagawa ng warranty, representasyon, o garantiya tungkol sa impormasyong nakapaloob dito o ang pagiging angkop ng mga produkto at serbisyo nito para sa anumang partikular na layunin, at hindi rin inaako ng Microsemi ang anumang pananagutan na magmumula sa aplikasyon o paggamit ng anumang produkto o circuit. Ang mga produktong ibinebenta sa ilalim nito at anumang iba pang produkto na ibinebenta ng Microsemi ay sumailalim sa limitadong pagsubok at hindi dapat gamitin kasabay ng mga kagamitan o application na kritikal sa misyon. Ang anumang mga detalye ng pagganap ay pinaniniwalaan na maaasahan ngunit hindi na-verify, at ang Mamimili ay dapat magsagawa at kumpletuhin ang lahat ng pagganap at iba pang pagsubok ng mga produkto, nang mag-isa at kasama, o naka-install sa, anumang mga end-product. Ang mamimili ay hindi dapat umasa sa anumang data at mga detalye ng pagganap o mga parameter na ibinigay ng Microsemi. Responsibilidad ng Mamimili na independiyenteng tukuyin ang pagiging angkop ng anumang mga produkto at subukan at i-verify ang pareho. Ang impormasyong ibinigay ng Microsemi sa ilalim nito ay ibinibigay "kung saan, nasaan" at kasama ang lahat ng mga pagkakamali, at ang buong panganib na nauugnay sa naturang impormasyon ay ganap na nasa Mamimili. Ang Microsemi ay hindi nagbibigay, tahasan o hindi malinaw, sa sinumang partido ng anumang mga karapatan sa patent, lisensya, o anumang iba pang mga karapatan sa IP, kung tungkol sa naturang impormasyon mismo o anumang inilarawan ng naturang impormasyon. Ang impormasyong ibinigay sa dokumentong ito ay pagmamay-ari ng Microsemi, at ang Microsemi ay may karapatan na gumawa ng anumang mga pagbabago sa impormasyon sa dokumentong ito o sa anumang mga produkto at serbisyo anumang oras nang walang abiso.

Tungkol sa Microsemi

Ang Microsemi, isang buong pagmamay-ari na subsidiary ng Microchip Technology Inc. (Nasdaq: MCHP), ay nag-aalok ng komprehensibong portfolio ng semiconductor at mga solusyon sa system para sa aerospace at depensa, komunikasyon, data center at mga industriyal na merkado. Kasama sa mga produkto ang high-performance at radiation-hardened analog mixed-signal integrated circuits, FPGAs, SoCs at ASICs; mga produkto ng pamamahala ng kapangyarihan; timing at pag-synchronize ng mga aparato at tumpak na mga solusyon sa oras, na nagtatakda ng pamantayan ng mundo para sa oras; mga aparato sa pagproseso ng boses; Mga solusyon sa RF; hiwalay na mga bahagi; enterprise storage at mga solusyon sa komunikasyon, mga teknolohiya sa seguridad at scalable anti-tampmga produkto; Mga solusyon sa Ethernet; Mga Power-over-Ethernet IC at midspan; pati na rin ang mga custom na kakayahan at serbisyo sa disenyo. Matuto pa sa www.microsemi.com.

Booting At Configuration

Gumagamit ang PolarFire SoC FPGAs ng advanced na power-up circuitry para matiyak ang maaasahang power-on sa power-up at reset. Sa power-up at reset, ang PolarFire SoC FPGA boot-up sequence ay sumusunod sa Power-on reset (POR), Device boot, Design initialization, Microcontroller Subsystem (MSS) pre-boot, at MSS user boot. Inilalarawan ng dokumentong ito ang MSS pre-boot at MSS User Boot. Para sa impormasyon tungkol sa POR, Device Boot at Design initialization, tingnan ang UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
Para sa higit pang impormasyon tungkol sa mga feature ng MSS, tingnan ang UG0880: PolarFire SoC MSS User Guide.

Boot-up Sequence
Ang boot-up sequence ay magsisimula kapag ang PolarFire SoC FPGA ay pinapagana o na-reset. Nagtatapos ito kapag handa na ang processor na magsagawa ng isang application program. Ang booting sequence na ito ay tumatakbo sa ilang stages bago ito magsimula sa pagpapatupad ng mga programa.
Isinasagawa ang isang hanay ng mga operasyon sa panahon ng proseso ng Boot-up na kinabibilangan ng power-on reset ng hardware, peripheral initialization, memory initialization, at paglo-load ng user-defined application mula sa non-volatile memory patungo sa volatile memory para sa pagpapatupad.

Ang sumusunod na figure ay nagpapakita ng iba't ibang yugto ng Boot-up sequence.

Larawan 1  Boot-up SequenceMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 1

MSS Pre-Boot

Sa matagumpay na pagkumpleto ng Design Initialization, sinisimulan ng MSS Pre-boot ang pagpapatupad nito. Ang MSS ay inilabas mula sa isang pag-reset pagkatapos makumpleto ang lahat ng normal na pamamaraan ng pagsisimula. Pinamamahalaan ng system controller ang programming, initialization, at configuration ng mga device. Ang MSS Pre-boot ay hindi mangyayari kung ang naka-program na device ay na-configure para sa system controller suspend mode.
Ang MSS pre-boot phase ng initialization ay pinag-ugnay ng system controller firmware, bagama't maaari nitong gamitin ang E51 sa MSS Core Complex upang maisagawa ang ilang bahagi ng pre-boot sequence.
Ang mga sumusunod na kaganapan ay nangyayari sa panahon ng MSS pre-boot stage:

  • Power-up ng MSS na naka-embed na Non-Volatile Memory (eNVM)
  • Pagsisimula ng redundancy repair na nauugnay sa MSS Core Complex L2 cache
  • Authentication ng User boot code (kung ang User Secure boot option ay pinagana)
  • Ibigay ang operational MSS sa User Boot code

Maaaring i-boot ang MSS Core Complex sa isa sa apat na mode. Inililista ng sumusunod na talahanayan ang mga opsyon sa pre-boot ng MSS, na maaaring i-configure at i-program sa sNVM. Ang boot mode ay tinukoy ng parameter ng user na U_MSS_BOOTMODE[1:0]. Ang karagdagang data ng configuration ng boot ay nakasalalay sa mode at tinukoy ng parameter ng user na U_MSS_BOOTCFG (tingnan ang Talahanayan 3, pahina 4 at Talahanayan 5, pahina 6).

Talahanayan 1 • Mga MSS Core Complex Boot Mode

U_MSS_BOOTMODE[1:0] Mode Paglalarawan
0 Idle boot Nagbo-boot ang MSS Core Complex mula sa boot ROM kung hindi naka-configure ang MSS
1 Hindi secure na boot Direktang nagbo-boot ang MSS Core Complex mula sa address na tinukoy ng U_MSS_BOOTADDR
2 Secure na boot ng user MSS Core Complex boots mula sa sNVM
3 Factory secure na boot MSS Core Complex boots gamit ang factory secure boot protocol

Ang opsyon sa boot ay pinili bilang bahagi ng daloy ng disenyo ng Libero. Ang pagpapalit ng mode ay makakamit lamang sa pamamagitan ng pagbuo ng isang bagong FPGA programming file.

Figure 2 • MSS Pre-boot Flow Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 2

Idle Boot

Kung ang MSS ay hindi na-configure (para sa halample, blangko na aparato), pagkatapos ay ang MSS Core Complex ay nagsasagawa ng isang boot ROM program na humahawak sa lahat ng mga processor sa isang walang katapusang loop hanggang ang isang debugger ay kumonekta sa target. Ang mga rehistro ng boot vector ay nagpapanatili ng kanilang halaga hanggang sa ma-reset ang device o ma-program ang isang bagong configuration ng boot mode. Para sa mga naka-configure na device, maaaring ipatupad ang mode na ito gamit ang
U_MSS_BOOTMODE=0 boot na opsyon sa Libero configurator.

Tandaan: Sa mode na ito, hindi ginagamit ang U_MSS_BOOTCFG.

Ang sumusunod na figure ay nagpapakita ng Idle boot flow.
Larawan 3 • Idle Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 3

Hindi secure na Boot

Sa mode na ito, ang MSS Core Complex ay nagpapatupad mula sa isang tinukoy na eNVM address nang walang authentication. Nagbibigay ito ng pinakamabilis na opsyon sa pag-boot, ngunit walang pagpapatunay ng imahe ng code. Maaaring tukuyin ang address sa pamamagitan ng pagtatakda ng U_MSS_BOOTADDR sa Libero Configurator. Magagamit din ang mode na ito para mag-boot mula sa anumang mapagkukunan ng memorya ng FPGA Fabric sa pamamagitan ng FIC. Ang mode na ito ay ipinatupad gamit ang
U_MSS_BOOTMODE=1 opsyon sa boot.
Ang MSS Core Complex ay inilabas mula sa pag-reset na may mga boot vector na tinukoy ng U_MSS_BOOTCFG (tulad ng nakalista sa sumusunod na talahanayan).

Talahanayan 2 • U_MSS_BOOTCFG Paggamit sa Non-Secure Boot Mode 1

Offset (bytes)  

Laki (bytes)

 

Pangalan

 

Paglalarawan

0 4 BOOTVEC0 Boot vector para sa E51
4 4 BOOTVEC1 Boot vector para sa U540
8 4 BOOTVEC2 Boot vector para sa U541
16 4 BOOTVEC3 Boot vector para sa U542
20 4 BOOTVEC4 Boot vector para sa U543

Ipinapakita ng sumusunod na figure ang Non-secure na daloy ng boot.
Larawan 4 • Hindi secure na Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 4

User Secure Boot
Ang mode na ito ay nagpapahintulot sa user na ipatupad ang kanilang sariling custom secure na boot at ang user secure na boot code ay inilalagay sa sNVM. Ang sNVM ay isang 56 KB na non-volatile memory na maaaring protektahan ng built-in na Physically Unclonable Function (PUF). Ang paraan ng pag-boot na ito ay itinuturing na secure dahil ang mga pahina ng sNVM na minarkahan bilang ROM ay hindi nababago. Sa power up, kinokopya ng system controller ang user secure boot code mula sa sNVM patungo sa Data Tightly Integrated Memory (DTIM) ng E51 Monitor core. Nagsisimula ang E51 na isagawa ang user secure na boot code.
Kung ang laki ng user secure boot code ay higit sa laki ng DTIM, kailangan ng user na hatiin ang boot code sa dalawang stages. Ang sNVM ay maaaring maglaman ng susunod na stage ng user boot sequence, na maaaring magsagawa ng authentication ng susunod na boot stage gamit ang user authentication/decryption algorithm.
Kung ang mga napatotohanan o naka-encrypt na mga pahina ay ginagamit, ang parehong USK key (iyon ay,
U_MSS_BOOT_SNVM_USK) ay dapat gamitin para sa lahat ng napatotohanan/naka-encrypt na pahina.
Kung nabigo ang pagpapatunay, ang MSS Core Complex ay maaaring ilagay sa pag-reset at ang BOOT_FAIL tampmaaaring itaas ang bandila. Ang mode na ito ay ipinatupad gamit ang U_MSS_BOOTMODE=2 boot na opsyon.

Talahanayan 3 •  U_MSS_BOOTCFG Paggamit sa User Secure Boot

Offset (bytes) Laki (bytes) Pangalan Paglalarawan
0 1 U_MSS_BOOT_SNVM_PAGE Panimulang pahina sa SNVM
1 3 RESERVED Para sa pagkakahanay
4 12 U_MSS_BOOT_SNVM_USK Para sa mga napatotohanan/naka-encrypt na pahina

Ipinapakita ng sumusunod na figure ang user secure na boot flow.
Larawan 5 • Daloy ng Boot ng User SecureMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 5

Factory Secure Boot
Sa mode na ito, binabasa ng system controller ang Secure Boot Image Certificate (SBIC) mula sa eNVM at pinapatunayan ang SBIC. Sa matagumpay na pagpapatunay, kinokopya ng System Controller ang factory secure na boot code mula sa pribado, secure na memory area nito at nilo-load ito sa DTIM ng E51 Monitor core. Ang default na secure na boot ay nagsasagawa ng signature check sa eNVM image gamit ang SBIC na nakaimbak sa eNVM. Kung walang naiulat na mga error, ilalabas ang pag-reset sa MSS Core Complex. Kung ang mga error ay naiulat, ang MSS Core Complex ay inilalagay sa pag-reset at ang BOOT_FAIL tampitinaas ang bandila. Pagkatapos, nag-a-activate ang system controller saamper flag na nagsasaad ng signal sa tela ng FPGA para sa pagkilos ng user. Ang mode na ito ay ipinatupad gamit ang U_MSS_BOOTMODE=3 boot na opsyon.

Ang SBIC ay naglalaman ng address, laki, hash, at Elliptic Curve Digital Signature Algorithm (ECDSA) na lagda ng protektadong binary blob. Nag-aalok ang ECDSA ng variant ng Digital Signature Algorithm na gumagamit ng elliptic curve cryptography. Naglalaman din ito ng reset vector para sa bawat Hardware
thread/core/processor core (Hart) sa system.

Talahanayan 4 •  Secure Boot Image Certificate (SBIC)

Offset Laki (bytes) Halaga Paglalarawan
0 4 IMAGEADDR Address ng UBL sa MSS memory map
4 4 IMAGELEN Sukat ng UBL sa bytes
8 4 BOOTVEC0 Boot vector sa UBL para sa E51
12 4 BOOTVEC1 Boot vector sa UBL para sa U540
16 4 BOOTVEC2 Boot vector sa UBL para sa U541
20 4 BOOTVEC3 Boot vector sa UBL para sa U542
24 4 BOOTVEC4 Boot vector sa UBL para sa U543
28 1 MGA OPSYON[7:0] Mga pagpipilian sa SBIC
28 3 RESERVED  
32 8 VERSION Bersyon ng SBIC/Larawan
40 16 DSN Opsyonal na DSN binding
56 48 H UBL image SHA-384 hash
104 104 CODESIG Lagda ng ECDSA na naka-encode ng DER
Kabuuan 208 Bytes  

DSN
Kung ang field ng DSN ay hindi zero, inihahambing ito sa sariling serial number ng device. Kung nabigo ang paghahambing, pagkatapos ay ang boot_fail tamper flag ay nakatakda at authentication ay aborted.

VERSION
Kung ang pagbawi ng SBIC ay pinagana ng U_MSS_REVOCATION_ENABLE, ang SBIC ay tatanggihan maliban kung ang halaga ng VERSION ay mas malaki sa o katumbas ng threshold ng pagbawi.

SBIC REVOCATION OPTION
Kung ang pagbawi ng SBIC ay pinagana ng U_MSS_REVOCATION_ENABLE at ang OPTIONS[0] ay '1', lahat ng SBIC na bersyon na mas mababa sa VERSION ay babawiin sa kumpletong pagpapatotoo ng SBIC. Ang threshold ng pagbawi ay nananatili sa bagong halaga hanggang sa tumaas itong muli ng SBIC sa hinaharap na may OPTIONS[0] = '1' at mas mataas na VERSION na field. Ang limitasyon ng pagbawi ay maaari lamang dagdagan gamit ang mekanismong ito at maaari lamang i-reset sa pamamagitan ng isang bit-stream.
Kapag dynamic na na-update ang threshold ng pagbawi, iniimbak ang threshold gamit ang redundant na storage scheme na ginagamit para sa mga passcode upang ang power failure sa panahon ng pag-boot ng device ay hindi magsasanhi ng kasunod na pag-boot ng device. Kung nabigo ang pag-update ng threshold sa pagbawi, ginagarantiyahan na ang halaga ng threshold ay ang bagong halaga o ang nauna.

Talahanayan 5 • U_MSS_BOOTCFG Paggamit sa Factory Boot Loader Mode

Offset (bytes)  

Laki (bytes)

 

Pangalan

 

Paglalarawan

0 4 U_MSS_SBIC_ADDR Address ng SBIC sa MSS address space
4 4 U_MSS_REVOCATION_ENABLE I-enable ang SBIC revocation kung hindi zero

Ipinapakita ng sumusunod na figure ang factory secure na boot flow.
Larawan 6 • Factory Secure Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 6 Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 7

Boot ng Gumagamit ng MSS 

Nagaganap ang boot ng user ng MSS kapag ibinigay ang kontrol mula sa System Controller hanggang sa MSS Core Complex. Sa matagumpay na pre-boot ng MSS, ilalabas ng system controller ang pag-reset sa MSS Core Complex. Maaaring i-boot up ang MSS sa isa sa mga sumusunod na paraan:

  • Aplikasyon ng Bare Metal
  • Linux Application
  • AMP Aplikasyon

Aplikasyon ng Bare Metal

Ang mga hubad na metal na application para sa PolarFire SoC ay maaaring mabuo gamit ang SoftConsole tool. Ang tool na ito ay nagbibigay ng output files sa anyo ng .hex na maaaring magamit sa daloy ng Libero upang isama sa bitstream ng programming file. Ang parehong tool ay maaaring gamitin upang i-debug ang mga application ng Bare Metal gamit ang JTAG
interface.
Ang sumusunod na figure ay nagpapakita ng SoftConsole Bare Metal application na mayroong limang harts (Cores) kasama ang E51 Monitor core.

Larawan 7 • SoftConsole Project Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 8

Linux Application

Inilalarawan ng seksyong ito ang sequence ng boot para sa Linux na tumatakbo sa lahat ng U54 core.
Ang isang karaniwang proseso ng boot ay binubuo ng tatlong stages. Ang unang stagAng e boot loader (FSBL) ay maipapatupad mula sa on-chip Boot flash (eNVM). Nilo-load ng FSBL ang pangalawang stage boot loader (SSBL) mula sa isang boot device patungo sa panlabas na RAM o Cache. Ang boot device ay maaaring eNVM o naka-embed na memory microcontroller (eMMC) o external SPI Flash. Nilo-load ng SSBL ang operating system ng Linux mula sa boot device hanggang sa panlabas na RAM. Sa ikatlong stage, ang Linux ay pinaandar mula sa panlabas na RAM.

Ipinapakita ng sumusunod na figure ang daloy ng Proseso ng Linux Boot.
Larawan 8 • Karaniwang Daloy ng Proseso ng Linux BootMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 9

Ang mga detalye ng FSBL, Device tree, Linux, at YOCTO build, kung paano bumuo at mag-configure ng Linux ay ibibigay sa hinaharap na release ng dokumentong ito.

AMP Aplikasyon
Ang detalyadong paglalarawan ng Libero MSS Configurator at kung paano i-debug ang mga multi-processor na application gamit ang SoftConsole ay ibibigay sa hinaharap na release ng dokumentong ito.

Iba't ibang Pinagmumulan ng Booting
Upang ma-update sa hinaharap na mga bersyon ng dokumentong ito.

Boot Configuration
Upang ma-update sa hinaharap na mga bersyon ng dokumentong ito.

Mga acronym

Ang mga sumusunod na acronym ay ginagamit sa dokumentong ito.

Talahanayan 1 •  Listahan ng mga Acronym

Pinalawak ang Acronym

  • AMP Asymmetric Multi-processing
  • DTIM Data Tightly Integrated Memory (tinatawag din bilang SRAM)
  • ECDSA Elliptic Curve Digital Signature Algorithm
  • eNVM naka-embed na Non-Volatile Memory
  • FSBL Unang Stage Boot Loader
  • Hart Hardware thread/core/processor core
  • MSS Microprocessor Subsystem
  • POR I-on ang I-reset
  • PUF Pisikal na Unclonable na Function
  • ROM Read-only Memory
  • SCB Tulay ng Controller ng System
  • sNVM Secure Non-volatile Memory

Kasaysayan ng Pagbabago

Inilalarawan ng kasaysayan ng rebisyon ang mga pagbabagong ipinatupad sa dokumento. Ang mga pagbabago ay nakalista ayon sa rebisyon, simula sa kasalukuyang publikasyon.

Rebisyon 2.0
Ang sumusunod ay isang buod ng mga pagbabagong ginawa sa rebisyong ito.

  • Ang impormasyon tungkol sa Factory Secure Boot ay na-update.
  • Ang impormasyon tungkol sa Bare Metal Application ay na-update.

Rebisyon 1.0
Ang unang publikasyon ng dokumentong ito.

Microsemi Headquarters
Isang Enterprise, Aliso Viejo,
CA 92656 USA
Sa loob ng USA: +1 800-713-4113
Sa labas ng USA: +1 949-380-6100
Benta: +1 949-380-6136
Fax: +1 949-215-4996
Email: sales.support@microsemi.com
www.microsemi.com

©2020 Microsemi, isang ganap na pagmamay-ari na subsidiary ng Microchip Technology Inc. All rights reserved. Ang Microsemi at ang Microsemi logo ay mga rehistradong trademark ng Microsemi Corporation. Ang lahat ng iba pang mga trademark at mga marka ng serbisyo ay pag-aari ng kani-kanilang mga may-ari.

Mga Dokumento / Mga Mapagkukunan

Microchip UG0881 PolarFire SoC FPGA Booting At Configuration [pdf] Gabay sa Gumagamit
UG0881 PolarFire SoC FPGA Booting At Configuration, UG0881, PolarFire SoC FPGA Booting At Configuration, Booting At Configuration

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *