Artikel-ID: 000086179 Inhaltstyp: Produktinformationen und Dokumente Letzte Überprüfung: 26.07.2018

Wie konfiguriere ich mein SoC-System für Cache-kohärente Zugriffe von der FPGA Soft Logic bis zum HPS-Speicher?

Umgebung

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Beschreibung

Um cache-kohärente Zugriffe von FPGA Soft-Logik bis hin zu HPS-Speicher zu ermöglichen, müssen folgende Elemente vorhanden sein:

  • MMU-Seitentabellen
  • NOC-Sicherheitseinstellungen
  • CoreLink™ Level 2 Cache Controller L2C-310 Konfiguration
  • AXI-Sideband-Signale: Axi_cache_security Bridge
    • AxCache und AxUser
    • AXPROT

MMU-Seitentabellen

Die MMU-Seitentabellen müssen so eingerichtet sein, dass der zwischengespeicherte Zielspeicherbereich definiert und entweder sicher oder nicht sicher ist.   Weitere Einzelheiten zu den Zuordnungsattributen der MMU-Seitentabelle und zum Secure Mode (Trust Zone) finden Sie in der Dokumentation zu Linux und ARM.

  • Der Speicher muss als Write Back Write Allocate (WBWA) markiert werden.
  • Damit auf den Speicher von einer Linux-Benutzerspeicher-Anwendung oder aus dem Kernel zugegriffen werden kann, sollte der Sicherheitsmodus nicht sicher sein.
  • Secure sollte verwendet werden, damit auf den Speicher von einem Prozess im ARM Secure-Zustand zugegriffen werden kann (nicht zu verwechseln mit dem Supervisor-Modus).

Der Sichere Modus ist aktiviert, wenn CP15: SDR:NS = 1 ist.   Hinweis: Das NS-Register ist nur im Supervisor-Modus verfügbar.

 

NOC-Sicherheitseinstellungen

Das Arria® 10 SoC Network on Chip iinterconnect (NOC) ist mit Firewalls auf jeder Bridge und während der Verbindung konfigurierbar.   So ermöglichen Sie Zugriffe über die HPS-Bridges

  • Die Firewalls müssen so konfiguriert sein, dass sie Transaktionen über die Bridge zulassen.
  • Die Master-Steuerelemente müssen so eingestellt sein, dass sichere Zugriffe ermöglicht/ausgeschlossen werden.
  • Wenn ein Master sicheren Zugriff nicht erlaubt, wird jede Transaktion in einen nicht sicheren Zustand geändert, was die Gleichzeitigkeit durchbrechen kann.

Der von der SoC EDS-Software Version 16.0 und neuer generierte U-Boot deaktiviert NOC-Firewalls, setzt aber den Master dafür, sicheren Zugriff zu verhindern.

So ermöglichen Sie sicheren Zugriff über die FPGA2HPA-Bridge:

Register-fpga2soc_ctrl festlegen: allow_secure auf 1 (Standard = 0, nicht sicher zulassen)

 

Level-2-Cache-Controller-Konfiguration

CoreLink™ Level 2 Cache Controller L2C-310 Konfiguration

Es wird empfohlen, dass das Aux-Control-Register-Bit [22]: Aktivierungsbit für freigegebene Attribute auf ON gesetzt ist.    Diese Einstellung deaktiviert Optimierungen im L2-Cache-Controller, die einige nicht cachefähige Zugriffe von den MPU-Kernen oder dem ACP-Port in cacheable nicht zugewiesene Zugriffe transformieren und den Punkt der Kooperation vom SDRAM in den L2-Cache verschieben.     Die Änderung des Punkts der Kooperation kann Probleme verursachen, wenn Master über L3 oder die FPGA2SDRAM-Bridge auf den SDRAM zugreifen.

Referenz: CoreLink™ Level 2 Cache Controller L2C-310, Revision: r3p3 Technical Reference Manual (ARM DDI 0246H (ID080112)): Abschnitt 2.3.2 Shareable-Attribut.

Die oben genannten Optionen sind in den neuesten u-boot-socfpga-Versionen von https://github.com/altera-opensource/u-boot-socfpga

 

Antrieb von AXI-Seitenbandsignalen von Qsys: Axi_cache_security Bridge

Die Axi_cache_security Bridge sollte verwendet werden, um AxCache/AxUser/AxProt Sideband-Signale auf die richtigen Werte zu steuern.  Die Axi_cache_security Bridge finden Sie im Beispiel Arria 10 Bridge https://www.altera.com/support/support-resources/design-examples.h tml

 

AxCache[3:0] Sideband-Signale

Die korrekte Einstellung AxCache [3:0] hängt von den Einstellungen der MMU-Seite ab.

Siehe ARM® Architecture Reference Manual ARMv7-A und ARMv7-R edition (ARM DDI 0406C.c (ID051414) ): A3.5 Speichertypen und -attribute, und das Speicherreihenfolgemodell AxCache[1] muss für kohärente Zugriffe 1 sein.

Referenz: Cortex-A9™ MPCore® Revision: r3p0 Technical Reference Manual (ARM DDI 0407G (ID072711)): 2.4 Accelerator Coherency Port

AW®CACHE[3:0]

[3] - Zuteilung von Schreibzugriffen

[2] - Zuteilung lesen

[1] – Cache-fähig

[0] – Gepuffert

Vorgeschlagener Ausgangswert für AW®CACHE[3:0]

awcache = 0xF; 4'b1111 Write Allocate, Read Allocate, Bufferable, Cacheable

arcache = 0xF; 4'b1111 Write Allocate, Read Allocate, Bufferable, Cacheable

Hinweis: Diese Einstellung sollte je nach Anwendungsfall geändert werden

 

AxUser[4-0] Sideband-Signale

Die AxUser-Signale werden verwendet, um zusätzliche Informationen zu übertragen, und für ACP-Transaktionen werden sie verwendet, um interne und äußere cacheable Informationen zu übertragen.

AW®Benutzer[3:0]

[0] – Für kohärente Zugriffe muss das freigegebene Attribut auf 1 gesetzt sein

[3:1] - Wird von der SCU nicht interpretiert, da die ACP keine Inner-Cache-Richtlinie hat und zur Verwendung an den L2-Cache-Controller weitergegeben werden, wenn der Cache im exklusiven Modus eingerichtet ist.

Referenzen: Cortex-A9™ MPCore® Revision: r3p0 Technical Reference Manual (ARM DDI 0407G (ID072711)): 2.4 Accelerator Coherency Port,

Empfohlener Ausgangswert für AxUSER[4:0]

awuser = 0x1; 5'b00001

aruser = 0x1; 5'b00001

Hinweis: Auf Arria 10 ist das freigegebene AXI-Attribut intern mit "1" verknüpft.

 

AxProt[2:0] Sideband-Signale

AxProt gibt den sicheren Status der Transaktion an und muss dem Sicherheitsstatus des Zielspeichers entsprechen, um einen Cache-Treffer zu gewährleisten.

AW®PROT[2:0]

[2] – Befehlsabruf

[1] – nicht sicherer Zugriff

[0] – Privilegierter Zugriff

 

Empfohlener Anfangswert für AxProt[2:0]

Die Sicherheitseinstellung des MMU-Seitentabellenspeichers und die CPU-sichere Einstellung und der ACP-Transaktionssicherheitsstatus müssen alle übereinstimmen, um den Cache-Treffer zu gewährleisten.

Eine nicht sichere ACP-Transaktion zu einem sicheren Speicherspeicherort, auf den eine CPU in einem sicheren Zustand zugreift, führt zu einem Cache-Fehler und einem in kohärenten Zugriff.

 

 

Zusammenfassung der unterstützten Szenarien:

Nicht sicher

  • Die MMU-Seitentabelle ist so eingerichtet, dass der Zielspeicherbereich als nicht sicher definiert wird
  • Die NOC-Firewalls sind so eingerichtet, dass sie einen nicht sicheren Zugriff auf den Zielbereich ermöglichen.
  • Die F2H-Bridge führt sichere oder nicht sichere Zugriffe zum Zielbereich durch.

Sichere

  • Die MMU-Seitentabelle ist eingerichtet, um den Zielspeicherbereich als sicher zu definieren.
  • Die NOC-Firewalls sind so eingerichtet, dass sie einen sicheren Zugriff auf den Zielbereich ermöglichen.
  • Die F2H-Bridge führt einen sicheren Zugang zum Zielbereich durch.

Zugehörige Produkte

Dieser Artikel bezieht sich auf 1 Produkte

Intel® Arria® 10 GT SoC-FPGA

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.