Identyfikator artykułu: 000086284 Typ materiałów: Rozwiązywanie problemów Ostatnia zmiana: 24-08-2017

Dlaczego podczas uruchamiania jądra systemu Linux Altera widzę problem spójności pamięci cache w projekcie SoC?

Środowisko

  • Intel® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Opis

    Ze względu na domyślny Linux BSP, który nie włącza pamięci podręcznej i nadawania konserwacji TLB (bit0 rejestru ACTLR pozostaje "0") w trybie SMP, może występować problem spójności pamięci podręcznej.

    Opis tego bitu można znaleźć w sekcji 1.7.3 Operacje konserwacyjne nadawanie w ARM A9 MPCore Technical Reference Manual[2]:

    Wszystkie procesory pracujące w trybie SMP w tej samej spójnej domenie mogą wysyłać i odbierać operacje TLB i konserwacji pamięci podręcznej. Instrukcja obsługi architektury ARM zawiera szczegółowe informacje na temat operacji transmisji. Procesor Cortex-A9 w klastrze A9-MP nadaje operację konserwacji nadawania, gdy działa w trybie SMP (ACTLR. SMP=1) oraz po włączeniu operacji konserwacji nadawania (ACTLR. FW=1). Procesor Cortex-A9 może odbierać i wykonywać operacje konserwacyjne transmisji, gdy pracuje w trybie SMP, ACTLR. SMP=1.

    Rozdzielczość

    Zalecane jest ustawienie zarówno ACTLR. FW i ACTLR. SMP do 1. Możemy ustawić ten bit poprzez modyfikację kodu Linux w proc-v7. Pliki S jak poniżej:

    #ifdef CONFIG_SMP
    ALT_SMP(mrc p15, 0, r0, c1, c0, 1)
    ALT_UP(mov r0, #(1 << 6)) @ sfałszowane dla UP
    tst r0, #(1 << 6) @ włączony tryb SMP/nAMP?
    orreq r0, r0, #(1 << 6) @ Włącz tryb SMP/nAMP
    orreq r0, r0, r10 @ Włącz bity SMP specyficzne dla procesora
    orr r0, r0, #(1) @Add tej linii włącz ACTLR[0]
    mcreq p15, 0, r0, c1, c0, 1
    #endif

    Podobne produkty

    Ten artykuł dotyczy 2 prod.

    FPGA Cyclone® V i SoC
    FPGA SoC Intel® Arria® 10 SX

    Zastrzeżenie

    1

    Publikowanie treści i wykorzystanie zawartości tej witryny podlega Regulaminowi witryny Intel.com.

    Materiały zawarte na tej stronie są tłumaczeniem z języka angielskiego, wykonanym częściowo przez człowieka, a częściowo automatycznie. Materiały te są udostępnione dla Twojej wygody i należy je traktować jedynie jako ogólne źródło informacji. Nie ma jednak gwarancji, że są one kompletne bądź poprawne. Jeśli istnieje jakakolwiek rozbieżność między wersją angielską tej strony a jej tłumaczeniem, wersja angielska jest wersją obowiązującą i ma rozstrzygające znaczenie. Wyświetl anglojęzyczną wersję tej strony.