Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:devicetree [2014-09-15 10:11] grafsoftware:linux:devicetree [2023-04-11 08:47] (aktuell) Urs Graf
Zeile 2: Zeile 2:
  
 <box blue right 38% | **Quellen**> <box blue right 38% | **Quellen**>
-  * [[http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf|Sehr gute Einführung in Device Tree ]] 
   * [[http://devicetree.org/Device_Tree_Usage|Detaillierte Beschreibung ]]   * [[http://devicetree.org/Device_Tree_Usage|Detaillierte Beschreibung ]]
 +  * [[https://wiki.freebsd.org/FlattenedDeviceTree|Weitere Beschreibung ]]
 </box> </box>
  
-Ursprünglich beinhaltete das Kernelimage auch die Beschreibung der vorhandenen Hardware. Das ist unflexibel und deshalb wurde diese Beschreibung in eine externe Datei gepackt. Das Vorgehen ist wie folgt:+Ursprünglich beinhaltete das Kernelimage auch die Beschreibung der vorhandenen Hardware. Das ist unflexibel und deshalb wurde diese Beschreibung in eine externe Datei gepackt. Das hat zudem den grossen Vorteil, dass auch [[software:linux:u-boot|U-Boot]] die gleiche Information über die Hardware nutzen kann. 
 +Das Vorgehen ist wie folgt:
   - Die Hardware wird in **Device Tree Source** Dateien beschrieben (dts-Files).   - Die Hardware wird in **Device Tree Source** Dateien beschrieben (dts-Files).
   - Diese Source-Files können weitere Source-Files includieren (dtsi-Files). Solche Dateien beschreiben z.B. Eigenschaften, die für mehrere Boards gültig sind.   - Diese Source-Files können weitere Source-Files includieren (dtsi-Files). Solche Dateien beschreiben z.B. Eigenschaften, die für mehrere Boards gültig sind.
   - Der **Device Tree Compiler** (dtc) übersetzt die Source-Files in den **Device Tree Blob** (dtb-File).   - Der **Device Tree Compiler** (dtc) übersetzt die Source-Files in den **Device Tree Blob** (dtb-File).
-  - Beim Aufstarten erhält der Kernel eine Referenz auf diesen Blob und parst ihn.+  - Beim Aufstarten erhält der Kernel eine Referenz auf diesen Blob und parst ihn. Einzelne Kernel Treiber holen sich so ihre Konfiguration, z.B. Adressbereiche oder Interrupteinstellungen. 
 +Die Terminologie ist etwas verwirrend. Man spricht vom //Device Tree//. Der //Device Tree Blob// heisst auch //Flat Device Tree//. Das Ganze kommt aus der IBM Open Firmware Spezifikation, und deshalb spricht man oft auch vom //OF-Tree//.
  
 ===== Installation ===== ===== Installation =====
Zeile 17: Zeile 19:
 ===== Übersetzung ===== ===== Übersetzung =====
 Quellenfile übersetzen, wobei das Quellen- und das Zielformat angegeben wird: Quellenfile übersetzen, wobei das Quellen- und das Zielformat angegeben wird:
-<code># dtc -I dts -O dtb -o myDest.dtb mySource.dts</code>+<code># dtc -I dts -O dtb -S 0x10000 -o myDest.dtb mySource.dts</code> 
 +Die Option //-S// erweitert den Blob mit Padding auf die angegebene Grösse. 
 + 
 +===== Testen ===== 
 +Wenn der Kernel nach dem Booten den Device Tree erfolgreich geparst hat, ist der Inhalt unter ''/proc/device-tree'' vollständig abrufbar. Achtung: Zahlen sind binär abgelegt.