Rockchip · AI & Linux Hub

Hardware-Schnittstellen

Rockchip FLEXBUS FSPI: Anleitung für SPI-NOR-Flash, Kernel und DTS

Rockchip FLEXBUS FSPI für SPI-NOR-Flash, Kernel und DTS mit vollständigen technischen Abschnitten, Code, Parametern und Hinweisen zur Quelle.

· ArmSoM Editorial · Rockchip source documentation · 3 Min. Lesezeit

Dieser vollständige, aus der Quelle aufbereitete technische Artikel dient als ArmSoM-Plattformreferenz. Geltungsbereich der Quelle: SoCs mit FLEXBUS-Unterstützung laut Quelle; die Board-Unterstützung ist noch zu prüfen, Linux-Kernel 6.1. Prüfen Sie vor der Nutzung das tatsächliche Board, den SoC, den SDK/BSP-Zweig, die Pins und die Peripherie. Es wurde keine Hardwareprüfung auf Board-Ebene durchgeführt; eine Unterstützung sämtlicher ArmSoM-Boards wird nicht behauptet. Ausgaben und Messungen sind Quellbeispiele, keine ArmSoM-Testergebnisse.

Chinesisch folgt der chinesischen Quelle, Englisch der englischen Quelle; Russisch und Deutsch übersetzen den englischen technischen Inhalt vollständig. Code, Kommentare und Befehlsausgaben bleiben in ihrer Quellsprache. Der technische Quelltext enthält keine eigenständigen technischen Abbildungen oder Tabellen; es wurden keine erfunden.

Beide Quellfassungen tragen die Version V1.0.0.

Vorsicht bei der Ausführung: Reservierter Speicher, DMA, Pin-Multiplexing und Schreibzugriffe auf Geräte wirken sich auf die Hardware aus. Die Befehle dienen der Dokumentation; es wurden keine Hardwareaktionen ausgeführt. Prüfen Sie Schaltplan, Versorgung, Timing und tatsächliches Gerät. Jedes xxx oder Auslassungszeichen im DTS ist ein Platzhalter der Quelle, keine vollständig nutzbare Konfiguration.

Quellen und Korrekturen: Redaktionsprotokoll. Offizielle Referenzen: ArmSoM, Rockchip Linux.

Produktversionstabelle der Quelle (PDF S.2; Geltungsbereich der Quelle, keine Prüfung auf Board-Ebene):

Chipsatz Kernel-Version
Alle SoCs mit FLEXBUS-Unterstützung 6.1

1. FLEXBUS-FSPI-Modus

1.1 Überblick

Im FLEXBUS-FSPI-Modus werden entsprechende Funktionen durch Nachbildung von RK FSPI (Flexible Serial Peripheral Interface) mittels FLEXBUS umgesetzt, beispielsweise:

Ausgabe über eine Leitung und Eingabe über vier Leitungen, entsprechend der typischen Konfiguration des Linux-MTD-Treibers für Quad-SPI-Flash.

Wesentliches Merkmal:

Taktfrequenz bis 100MHz

1.2 Konfiguration

1.2.1 Kernel-Konfiguration

Der FLEXBUS-FSPI-Modus wird durch einen Treiber des standardmäßigen SPI-Frameworks umgesetzt und implementiert ausschließlich die spi-mem-Struktur. Unterstützt werden externe SPI-Flash-Bausteine oder Peripheriegeräte mit spi-mem-Protokoll:

CONFIG_SPI=y
CONFIG_SPI_ROCKCHIP_FLEXBUS_FSPI=y

1.2.2 DTS-Konfiguration

Beispiel mit einem externen SPI-NOR-Flash-Untergerät:

&flexbus {
    rockchip,flexbus0-opmode = <ROCKCHIP_FLEXBUS0_OPMODE_SPI>;
    rockchip,flexbus1-opmode = <ROCKCHIP_FLEXBUS1_OPMODE_NULL>;
    status = "okay";
};
&flexbus_fspi {
    pinctrl-names = "default";
    pinctrl-0 = <&flexbus0m1_pins &flexbus0_clk_pins
                 &flexbus0_d0_pins &flexbus0_d1_pins
                 &flexbus0_d2_pins &flexbus0_d3_pins>;
    status = "okay";
    flash@0 {
        compatible = "jedec,spi-nor";
        reg = <0>;
        spi-max-frequency = <100000000>;
        spi-rx-bus-width = <4>;
        spi-tx-bus-width = <1>;
    };
};

Erläuterung:

mode_bits ist SPI_RX_QUAD:

spi-rx-bus-width kann auf 4 konfiguriert werden.

Standardmäßig sind SPI-Modus 0 und MSB-Modus eingestellt. Die betreffenden DTS-Parameter sind nicht einstellbar; für die Weiterentwicklung ist das Controller-Handbuch heranzuziehen.

1.2.3 Treiberdatei

Die Treiberdatei lautet drivers/spi/spi-rockchip-flexbus-fspi.c .

Dieses Thema entdecken → · Lernpfade →