Mikrosemi-LGOO

Microchip UG0881 PolarFire SoC FPGA Booten und Konfigurieren

Microchip-UG0881-PolarFire-SoC-FPGA-Boot-und-Konfigurationsprodukt

Garantie

Microsemi übernimmt keine Garantie, Gewährleistung oder Gewährleistung hinsichtlich der hierin enthaltenen Informationen oder der Eignung seiner Produkte und Dienstleistungen für einen bestimmten Zweck und übernimmt auch keine Haftung, die sich aus der Anwendung oder Verwendung eines Produkts oder Schaltkreises ergibt. Die hiermit verkauften Produkte und alle anderen von Microsemi verkauften Produkte wurden begrenzten Tests unterzogen und sollten nicht in Verbindung mit unternehmenskritischen Geräten oder Anwendungen verwendet werden. Alle Leistungsspezifikationen gelten als zuverlässig, sind jedoch nicht überprüft, und der Käufer muss alle Leistungs- und sonstigen Tests der Produkte durchführen und abschließen, allein und zusammen mit oder installiert in Endprodukten. Der Käufer darf sich nicht auf Daten und Leistungsspezifikationen oder Parameter verlassen, die von Microsemi bereitgestellt werden. Es liegt in der Verantwortung des Käufers, die Eignung aller Produkte unabhängig zu bestimmen und diese zu testen und zu überprüfen. Die hiermit von Microsemi bereitgestellten Informationen werden „wie besehen, wo besehen“ und mit allen Fehlern bereitgestellt, und das gesamte mit diesen Informationen verbundene Risiko liegt vollständig beim Käufer. Microsemi gewährt weder ausdrücklich noch stillschweigend Patentrechte, Lizenzen oder sonstige geistige Eigentumsrechte an Dritte, weder in Bezug auf diese Informationen selbst noch auf darin beschriebene Inhalte. Die in diesem Dokument bereitgestellten Informationen sind Eigentum von Microsemi und Microsemi behält sich das Recht vor, die Informationen in diesem Dokument oder an Produkten und Dienstleistungen jederzeit und ohne Vorankündigung zu ändern.

Über Microsemi

Microsemi, eine hundertprozentige Tochtergesellschaft von Microchip Technology Inc. (Nasdaq: MCHP), bietet ein umfassendes Portfolio an Halbleiter- und Systemlösungen für Luft- und Raumfahrt, Verteidigung, Kommunikation, Rechenzentren und Industriemärkte. Zu den Produkten gehören hochleistungsfähige und strahlungsfeste analoge integrierte Mischsignalschaltungen, FPGAs, SoCs und ASICs; Power-Management-Produkte; Timing- und Synchronisationsgeräte und präzise Zeitlösungen, die den weltweiten Zeitstandard setzen; Sprachverarbeitungsgeräte; HF-Lösungen; diskrete Komponenten; Speicher- und Kommunikationslösungen für Unternehmen, Sicherheitstechnologien und skalierbarer Anti-Tamper Produkte; Ethernet-Lösungen; Power-over-Ethernet-ICs und -Midspans; sowie kundenspezifische Designmöglichkeiten und Dienstleistungen. Erfahren Sie mehr unter www.microsemi.com.

Booten und Konfiguration

PolarFire SoC FPGAs verwenden erweiterte Einschaltschaltkreise, um ein zuverlässiges Einschalten beim Einschalten und Zurücksetzen zu gewährleisten. Beim Einschalten und Zurücksetzen folgt die Startsequenz des PolarFire SoC FPGA Power-on Reset (POR), Gerätestart, Designinitialisierung, Mikrocontroller-Subsystem (MSS)-Pre-Boot und MSS-Benutzerstart. Dieses Dokument beschreibt MSS-Pre-Boot und MSS-Benutzerstart. Informationen zu POR, Gerätestart und Designinitialisierung finden Sie im UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
Weitere Informationen zu MSS-Funktionen finden Sie im UG0880: PolarFire SoC MSS-Benutzerhandbuch.

Startsequenz
Die Startsequenz beginnt, wenn das PolarFire SoC FPGA eingeschaltet oder zurückgesetzt wird. Sie endet, wenn der Prozessor bereit ist, ein Anwendungsprogramm auszuführen. Diese Startsequenz durchläuft mehrere Schritte.tages, bevor mit der Ausführung von Programmen begonnen wird.
Während des Startvorgangs werden eine Reihe von Vorgängen ausgeführt, darunter das Zurücksetzen der Hardware beim Einschalten, die Initialisierung der Peripheriegeräte, die Initialisierung des Speichers und das Laden der benutzerdefinierten Anwendung vom nichtflüchtigen Speicher in den flüchtigen Speicher zur Ausführung.

Die folgende Abbildung zeigt verschiedene Phasen der Startreihenfolge.

Abbildung 1  StartsequenzMicrochip-UG0881-PolarFire-SoC-FPGA-Booten und -Konfiguration-Abb. 1

MSS-Pre-Boot

Nach erfolgreichem Abschluss der Design-Initialisierung beginnt MSS Pre-Boot mit der Ausführung. Das MSS wird nach Abschluss aller normalen Startvorgänge aus einem Reset freigegeben. Der Systemcontroller verwaltet die Programmierung, Initialisierung und Konfiguration der Geräte. MSS Pre-Boot findet nicht statt, wenn das programmierte Gerät für den Systemcontroller-Suspend-Modus konfiguriert ist.
Die Initialisierungsphase des MSS vor dem Start wird durch die Firmware des Systemcontrollers koordiniert, obwohl zur Ausführung bestimmter Teile der Startsequenz möglicherweise E51 im MSS Core Complex verwendet wird.
Die folgenden Ereignisse treten während des MSS-Pre-Boots auftage:

  • Einschalten des eingebetteten nichtflüchtigen Speichers (eNVM) des MSS
  • Initialisierung der Redundanzreparatur im Zusammenhang mit dem MSS Core Complex L2-Cache
  • Authentifizierung des Benutzer-Startcodes (wenn die Option „Sicherer Benutzerstart“ aktiviert ist)
  • Übergabe des betriebsbereiten MSS an den Benutzer-Bootcode

Der MSS Core Complex kann in einem von vier Modi gebootet werden. Die folgende Tabelle listet die MSS-Pre-Boot-Optionen auf, die konfiguriert und in den sNVM programmiert werden können. Der Boot-Modus wird durch den Benutzerparameter U_MSS_BOOTMODE[1:0] definiert. Weitere Boot-Konfigurationsdaten sind modusabhängig und werden durch den Benutzerparameter U_MSS_BOOTCFG definiert (siehe Tabelle 3, Seite 4 und Tabelle 5, Seite 6).

Tisch 1 • Komplexe Startmodi des MSS-Kerns

U_MSS_BOOTMODE[1:0] Modus Beschreibung
0 Leerlaufstart MSS Core Complex bootet vom Boot-ROM, wenn MSS nicht konfiguriert ist
1 Nicht sicherer Start MSS Core Complex bootet direkt von der Adresse, die durch U_MSS_BOOTADDR definiert ist
2 Sicherer Benutzerstart MSS Core Complex bootet von sNVM
3 Sicherer Start ab Werk MSS Core Complex bootet mit dem werkseitigen Secure Boot-Protokoll

Die Boot-Option wird im Rahmen des Libero-Design-Flows ausgewählt. Eine Änderung des Modus ist nur durch die Generierung einer neuen FPGA-Programmierung möglich. file.

Abbildung 2 • MSS Pre-Boot-Flow Microchip-UG0881-PolarFire-SoC-FPGA-Booten und -Konfiguration-Abb. 2

Leerlaufstart

Wenn das MSS nicht konfiguriert ist (z.B.ample, leeres Gerät), dann führt der MSS Core Complex ein Boot-ROM-Programm aus, das alle Prozessoren in einer Endlosschleife hält, bis ein Debugger eine Verbindung zum Ziel herstellt. Die Boot-Vektorregister behalten ihren Wert, bis das Gerät zurückgesetzt oder eine neue Boot-Modus-Konfiguration programmiert wird. Für konfigurierte Geräte kann dieser Modus mithilfe des
U_MSS_BOOTMODE=0 Boot-Option im Libero-Konfigurator.

Notiz: In diesem Modus wird U_MSS_BOOTCFG nicht verwendet.

Die folgende Abbildung zeigt den Leerlauf-Boot-Flow.
Figur 3 • Leerlauf-Boot-FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booten und -Konfiguration-Abb. 3

Nicht sicherer Start

In diesem Modus wird der MSS Core Complex von einer angegebenen eNVM-Adresse ohne Authentifizierung ausgeführt. Dies bietet die schnellste Startoption, es erfolgt jedoch keine Authentifizierung des Code-Images. Die Adresse kann durch Festlegen von U_MSS_BOOTADDR im Libero-Konfigurator angegeben werden. Dieser Modus kann auch zum Booten von jeder FPGA Fabric-Speicherressource über FIC verwendet werden. Dieser Modus wird mithilfe des
Startoption U_MSS_BOOTMODE=1.
Der MSS Core Complex wird mit durch U_MSS_BOOTCFG definierten Boot-Vektoren (wie in der folgenden Tabelle aufgeführt) aus dem Reset freigegeben.

Tisch 2 • U_MSS_BOOTCFG-Verwendung im nicht sicheren Startmodus 1

Offset (Bytes)  

Größe (Byte)

 

Name

 

Beschreibung

0 4 BOOTVEC0 Boot-Vektor für E51
4 4 BOOTVEC1 Boot-Vektor für U540
8 4 BOOTVEC2 Boot-Vektor für U541
16 4 BOOTVEC3 Boot-Vektor für U542
20 4 BOOTVEC4 Boot-Vektor für U543

Die folgende Abbildung zeigt den nicht sicheren Startablauf.
Figur 4 • Nicht sicherer Boot-FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booten und -Konfiguration-Abb. 4

Sicherer Benutzerstart
In diesem Modus kann der Benutzer seinen eigenen benutzerdefinierten sicheren Start implementieren, und der sichere Startcode des Benutzers wird im sNVM abgelegt. Der sNVM ist ein 56 KB großer nichtflüchtiger Speicher, der durch die integrierte Physically Unclonable Function (PUF) geschützt werden kann. Diese Startmethode gilt als sicher, da als ROM gekennzeichnete sNVM-Seiten unveränderlich sind. Beim Einschalten kopiert der Systemcontroller den sicheren Startcode des Benutzers vom sNVM in den Data Tightly Integrated Memory (DTIM) des E51-Monitorkerns. E51 beginnt mit der Ausführung des sicheren Startcodes des Benutzers.
Wenn die Größe des sicheren Boot-Codes des Benutzers größer ist als die Größe des DTIM, muss der Benutzer den Boot-Code in zwei Teile aufteilen.tages. Der sNVM kann die nächsten s enthaltentage der Benutzer-Boot-Sequenz, die die Authentifizierung des nächsten Boot-s durchführen kanntage) Verwendung des Benutzerauthentifizierungs-/Entschlüsselungsalgorithmus.
Wenn authentifizierte oder verschlüsselte Seiten verwendet werden, muss derselbe USK-Schlüssel (also
U_MSS_BOOT_SNVM_USK) muss für alle authentifizierten/verschlüsselten Seiten verwendet werden.
Wenn die Authentifizierung fehlschlägt, kann der MSS Core Complex zurückgesetzt werden und der BOOT_FAIL tamper-Flag kann gesetzt werden. Dieser Modus wird mit der Boot-Option U_MSS_BOOTMODE=2 implementiert.

Tisch 3 •  U_MSS_BOOTCFG-Verwendung im User Secure Boot

Offset (Bytes) Größe (Byte) Name Beschreibung
0 1 U_MSS_BOOT_SNVM_PAGE Startseite im SNVM
1 3 RESERVIERT Zur Ausrichtung
4 12 U_MSS_BOOT_SNVM_USK Für authentifizierte/verschlüsselte Seiten

Die folgende Abbildung zeigt den sicheren Boot-Ablauf für den Benutzer.
Figur 5 • Sicherer Boot-Flow für BenutzerMicrochip-UG0881-PolarFire-SoC-FPGA-Booten und -Konfiguration-Abb. 5

Sicherer Start ab Werk
In diesem Modus liest der Systemcontroller das Secure Boot Image Certificate (SBIC) aus eNVM und validiert das SBIC. Nach erfolgreicher Validierung kopiert der Systemcontroller den werkseitigen Secure Boot-Code aus seinem privaten, sicheren Speicherbereich und lädt ihn in das DTIM des E51 Monitor-Kerns. Der standardmäßige Secure Boot führt eine Signaturprüfung des eNVM-Image mithilfe des in eNVM gespeicherten SBIC durch. Wenn keine Fehler gemeldet werden, wird der Reset für den MSS Core Complex freigegeben. Wenn Fehler gemeldet werden, wird der MSS Core Complex zurückgesetzt und der BOOT_FAIL-Befehl wird ausgeführt.amper-Flag gesetzt ist. Dann aktiviert der Systemcontroller beiamper-Flag, das ein Signal an die FPGA-Struktur sendet, um eine Benutzeraktion zu ermöglichen. Dieser Modus wird mit der Startoption U_MSS_BOOTMODE=3 implementiert.

Der SBIC enthält die Adresse, Größe, Hash und die Elliptic Curve Digital Signature Algorithm (ECDSA)-Signatur des geschützten Binärblobs. ECDSA bietet eine Variante des Digital Signature Algorithm, die elliptische Kurvenkryptographie verwendet. Es enthält auch den Reset-Vektor für jede Hardware
Thread/Core/Prozessorkern (Hart) im System.

Tisch 4 •  Secure Boot Image-Zertifikat (SBIC)

Versatz Größe (Byte) Wert Beschreibung
0 4 BILDADDR Adresse von UBL in der MSS-Speicherkarte
4 4 BILDER Größe von UBL in Bytes
8 4 BOOTVEC0 Boot-Vektor in UBL für E51
12 4 BOOTVEC1 Boot-Vektor in UBL für U540
16 4 BOOTVEC2 Boot-Vektor in UBL für U541
20 4 BOOTVEC3 Boot-Vektor in UBL für U542
24 4 BOOTVEC4 Boot-Vektor in UBL für U543
28 1 OPTIONEN[7:0] SBIC-Optionen
28 3 RESERVIERT  
32 8 VERSION SBIC/Bildversion
40 16 DSN Optionale DSN-Bindung
56 48 H UBL-Bild SHA-384-Hash
104 104 CODESIG DER-kodierte ECDSA-Signatur
Gesamt 208 Bytes  

DSN
Wenn das DSN-Feld ungleich Null ist, wird es mit der Seriennummer des Geräts verglichen. Wenn der Vergleich fehlschlägt, wird der boot_fail tamper-Flag wird gesetzt und die Authentifizierung wird abgebrochen.

VERSION
Wenn der SBIC-Widerruf durch U_MSS_REVOCATION_ENABLE aktiviert ist, wird der SBIC abgelehnt, es sei denn, der Wert von VERSION ist größer oder gleich dem Widerrufsschwellenwert.

SBIC-WIDERRUF-OPTION
Wenn der SBIC-Widerruf durch U_MSS_REVOCATION_ENABLE aktiviert ist und OPTIONS[0] „1“ ist, werden alle SBIC-Versionen, die kleiner als VERSION sind, nach vollständiger Authentifizierung des SBIC widerrufen. Der Widerrufsschwellenwert bleibt auf dem neuen Wert, bis er durch einen zukünftigen SBIC mit OPTIONS[0] = „1“ und einem höheren VERSION-Feld erneut erhöht wird. Der Widerrufsschwellenwert kann nur mit diesem Mechanismus erhöht und nur durch einen Bitstrom zurückgesetzt werden.
Wenn der Sperrschwellenwert dynamisch aktualisiert wird, wird der Schwellenwert mithilfe des für Passcodes verwendeten redundanten Speicherschemas gespeichert, sodass ein Stromausfall während des Gerätestarts nicht dazu führt, dass ein nachfolgender Gerätestart fehlschlägt. Wenn die Aktualisierung des Sperrschwellenwerts fehlschlägt, ist garantiert, dass der Schwellenwert entweder der neue oder der vorherige Wert ist.

Tisch 5 • U_MSS_BOOTCFG-Verwendung im Factory Boot Loader-Modus

Offset (Bytes)  

Größe (Byte)

 

Name

 

Beschreibung

0 4 U_MSS_SBIC_ADDR Adresse des SBIC im MSS-Adressraum
4 4 U_MSS_REVOCATION_ENABLE SBIC-Widerruf aktivieren, wenn ungleich Null

Die folgende Abbildung zeigt den werkseitigen sicheren Startablauf.
Figur 6 • Factory Secure Boot-FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booten und -Konfiguration-Abb. 6 Microchip-UG0881-PolarFire-SoC-FPGA-Booten und -Konfiguration-Abb. 7

MSS-Benutzerstart 

Der MSS-Benutzerstart findet statt, wenn die Steuerung vom Systemcontroller an den MSS-Kernkomplex übergeben wird. Nach erfolgreichem MSS-Pre-Start gibt der Systemcontroller den Reset an den MSS-Kernkomplex frei. MSS kann auf eine der folgenden Arten gestartet werden:

  • Bare-Metal-Anwendung
  • Linux-Anwendung
  • AMP Anwendung

Bare-Metal-Anwendung

Die Bare-Metal-Anwendungen für den PolarFire SoC können mit dem SoftConsole-Tool entwickelt werden. Dieses Tool liefert die Ausgabe files in der Form .hex, die im Libero-Flow verwendet werden können, um sie in den Programmier-Bitstream einzubinden fileDas gleiche Tool kann zum Debuggen der Bare Metal-Anwendungen mit J verwendet werden.TAG
Schnittstelle.
Die folgende Abbildung zeigt die SoftConsole Bare Metal-Anwendung, die über fünf Harts (Cores) einschließlich des E51-Monitor-Cores verfügt.

Figur 7 • SoftConsole-Projekt Microchip-UG0881-PolarFire-SoC-FPGA-Booten und -Konfiguration-Abb. 8

Linux-Anwendung

Dieser Abschnitt beschreibt die Startreihenfolge für Linux, das auf allen U54-Kernen ausgeführt wird.
Ein typischer Bootvorgang besteht aus dreitages. Der erste stagDer Bootloader (FSBL) wird vom On-Chip-Boot-Flash (eNVM) ausgeführt. Der FSBL lädt den zweiten stage Bootloader (SSBL) von einem Bootgerät in einen externen RAM oder Cache. Das Bootgerät kann eNVM oder ein eingebetteter Speichermikrocontroller (eMMC) oder ein externer SPI-Flash sein. Der SSBL lädt das Linux-Betriebssystem vom Bootgerät in einen externen RAM. Im dritten Schritttage, Linux wird aus dem externen RAM ausgeführt.

Die folgende Abbildung zeigt den Ablauf des Linux-Startvorgangs.
Figur 8 • Typischer Ablauf des Linux-BootvorgangsMicrochip-UG0881-PolarFire-SoC-FPGA-Booten und -Konfiguration-Abb. 9

Details zum FSBL-, Gerätebaum-, Linux- und YOCTO-Build sowie zum Erstellen und Konfigurieren von Linux werden in der nächsten Version dieses Dokuments bereitgestellt.

AMP Anwendung
Eine detaillierte Beschreibung des Libero MSS Configurator und Informationen zum Debuggen von Multiprozessoranwendungen mit SoftConsole finden Sie in der nächsten Version dieses Dokuments.

Verschiedene Bootquellen
Wird in zukünftigen Versionen dieses Dokuments aktualisiert.

Boot-Konfiguration
Wird in zukünftigen Versionen dieses Dokuments aktualisiert.

Akronyme

In diesem Dokument werden die folgenden Akronyme verwendet.

Tisch 1 •  Liste der Akronyme

Akronym erweitert

  • AMP Asymmetrische Mehrfachverarbeitung
  • DTIM Data Tightly Integrated Memory (auch SRAM genannt)
  • ECDSA Elliptische Kurve Digitaler Signaturalgorithmus
  • eNVM eingebetteter nichtflüchtiger Speicher
  • FSBL Erstes Stage Bootloader
  • Hirsch Hardware-Thread/Kern/Prozessorkern
  • MSS Mikroprozessor-Subsystem
  • POR Einschalten beim Zurücksetzen
  • PUF Physikalisch nicht klonbare Funktion
  • ROM Nur-Lese-Speicher
  • SCB System Controller Bridge
  • sNVM Sicherer nichtflüchtiger Speicher

Änderungsverlauf

Die Revisionshistorie beschreibt die Änderungen, die im Dokument vorgenommen wurden. Die Änderungen sind nach Revision aufgelistet, beginnend mit der aktuellen Veröffentlichung.

Revision 2.0
Im Folgenden finden Sie eine Zusammenfassung der Änderungen, die in dieser Revision vorgenommen wurden.

  • Informationen zum Factory Secure Boot wurden aktualisiert.
  • Informationen zur Bare-Metal-Anwendung wurden aktualisiert.

Revision 1.0
Die erste Veröffentlichung dieses Dokuments.

Microsemi-Hauptsitz
Ein Unternehmen, Aliso Viejo,
CA 92656 USA
Innerhalb der USA: +1 800-713-4113
Außerhalb der USA: +1 949-380-6100
Verkäufe: +1 949-380-6136
Fax: +1 949-215-4996
E-Mail: sales.support@microsemi.com
www.microsemi.com

©2020 Microsemi, eine hundertprozentige Tochtergesellschaft von Microchip Technology Inc. Alle Rechte vorbehalten. Microsemi und das Microsemi-Logo sind eingetragene Warenzeichen der Microsemi Corporation. Alle anderen Warenzeichen und Dienstleistungsmarken sind Eigentum ihrer jeweiligen Inhaber.

Dokumente / Ressourcen

Microchip UG0881 PolarFire SoC FPGA Booten und Konfigurieren [pdf] Benutzerhandbuch
UG0881 PolarFire SoC FPGA Booten und Konfigurieren, UG0881, PolarFire SoC FPGA Booten und Konfigurieren, Booten und Konfigurieren

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *