Devicetree
Site web |
---|
Devicetree ou parfois device tree (terme anglais signifiant arborescence des périphériques), est une structure de donnée, décrivant les composants matériels d'un système informatique. Cela permet au système d'amorçage et au noyau de connaître la façon de communiquer et d'exploiter ces composants. Il s'agît en général notamment de la gestion de l'alimentation, du processeur, de la mémoire, des différents bus et périphériques.
Un des avantages d'avoir les définitions de communications avec les composants matériels disponibles dans les logiciels libres, est la possibilité de les réutiliser dans différents composants logiciels, tels que des noyaux, des pilotes ou des systèmes d'amorçage, d'architecture matérielle ou logicielle différentes.
Ce système est le principal utilisé sur les architectures de processeur ARM, RISC-V et d'autres. Il était autrefois également utilisé sur PowerPC[1].
Une couche d'abstraction matérielle, permet aux application d'accéder à ces périphériques sans ce soucier de ces informations.
Devicetree est notamment utilisé par le noyau Linux[2] et différents autres noyaux systèmes, ainsi que les systèmes d'amorçage U-Boot[1], Coreboot ou Libreboot.
Le BIOS utilisé sur les compatibles IBM PC et leurs dérivés, est par contre à source fermé et utilise des pilotes propriétaires, dont les spécifications ne sont pas publiées pour son amorçage. UEFI est une façon pour les constructeurs de proposer une interface au système sans avoir à ouvrir les spécifications de communication de leur matériel. Les projets comme LibreBoot propose de remplacer le BIOS de certaines carte mères et d'utiliser devicetree et de pilotes libres à la place, lorsque possible.
Les fichiers de Devicetree sont disponibles sous différent formats[3] :
- DTS, anglais : Device Tree Source, les sources lisibles par les humains des définitions du devicetree, ce format est communément appelé, anglais : Flattened Device Tree (FDT, arborescence des périphériques aplatie), une fois ouvert par le noyau, qui va le déployer au sein de sa mémoire interne, il devient l'anglais : Expanded Device Tree (EDT, arborescence des périphériques étendue) ;
- DTB, anglais : Device Tree Blob, forme compacte binaire utilisée, ce format est communément appelé.
La commande dtc
permet de compiler le format DTS vers le format DTB et réciproquement de décompiler les fichiers DTB en fichier DTS.
Annexes
[modifier | modifier le code]Notes et références
[modifier | modifier le code]- (en) « Devicetree Control in U-Boot », sur U-Boot
- Grant Likely, « Linux and the Devicetree », sur Kernel.org
- (en) « Device Tree What It Is », sur elinux.org
Liens externes
[modifier | modifier le code]- (en) Site officiel
- (en) « Device Tree Reference », sur eLinux.org