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 .
