Webinar:
Seminário convidado: Desmistificando Device Tree para processadores NXP® i.MX
Date: August 1, 2017
O uso do Linux em dispositivos de arquitetura Arm tem aumentado cada vez mais nos últimos anos. E durante um bom tempo o suporte à plataforma Arm no Linux cresceu de forma desorganizada. Isso porque, na arquitetura Arm, a maioria dos periféricos e dispositivos de I/O não se auto-descrevem para o kernel, fazendo com que fosse necessário descrever o hardware dentro do código-fonte do Linux, causando muitos problemas de manutenção, incluindo código duplicado e a necessidade de modificar o código-fonte em qualquer alteração do hardware do sistema.
A solução adotada pela comunidade para este problema foi o Device Tree, uma estrutura de dados utilizada para descrever a topologia e a configuração do hardware presente no sistema. A idéia é simples: o hardware (CPU, memória, barramentos e I/O) é descrito em um arquivo texto com extensão DTS, que tem a aparência de um XML ou JSON. Este arquivo é compilado em um arquivo binário de extensão DTB, que é passado para o kernel no boot do sistema. Durante o boot, o kernel interpreta o arquivo DTB para identificar a topologia de hardware, carregar os drivers correspondentes e inicializar o sistema.
- Entender a sintaxe do device tree
- Compilar e usar o device tree
- Customizar um device tree existente para suportar um novo dispositivo de hardware
- Criar um device tree do zero para uma nova plataforma de hardware