Device tree (DT) adalah struktur data dari node dan properti bernama yang menjelaskan hardware yang tidak dapat ditemukan. Kernel, seperti kernel Linux yang digunakan di Android, menggunakan DT untuk mendukung berbagai konfigurasi hardware yang digunakan oleh perangkat yang didukung Android. Vendor hardware menyediakan file device tree source (DTS) mereka sendiri, yang dikompilasi ke dalam file device tree blob (DTB) menggunakan device tree compiler. File ini kemudian digunakan oleh bootloader. File DTB berisi flattened device tree berformat biner.
_Device tree overlay (DTO)_ memungkinkan DTB pusat di-overlay pada DT (yaitu _device tree blob for overlay (DTBO)_). Bootloader yang menggunakan DTO dapat mempertahankan DT system-on-chip (SoC) dan secara dinamis meng-overlay DT khusus perangkat, menambahkan node ke pohon, dan membuat perubahan pada properti di pohon yang ada.
Update dalam rilis Android 9
Di Android 9, bootloader tidak boleh mengubah properti yang ditentukan dalam DTO sebelum meneruskan DTB terpadu ke kernel.
Memuat DT
Memuat DT di bootloader melibatkan pembuatan, partisi, dan menjalankan.

Gambar 1. Implementasi umum untuk memuat device tree di bootloader.
Untuk membuat dan mem-flash DTB:
1a. Gunakan DTC (
dtc) untuk mengompilasi DTS (.dts) ke dalam DTB (.dtb). DTB diformat sebagai DT yang diratakan. 1b. Flash file.dtbke lokasi yang dapat diakses runtime bootloader (dijelaskan di bawah).Untuk membuat partisi, tentukan lokasi yang dapat diakses runtime bootloader dan tepercaya di memori flash untuk menempatkan
.dtb. Contoh lokasi:
Gambar 2. Tempatkan .dtb di partisi booting dengan
menambahkan ke image.gz dan meneruskan sebagai
"kernel" ke mkbootimg.
Gambar 3. Tempatkan .dtb di partisi unik
(misalnya, partisi dtb).Untuk memuat DTB dan memulai kernel:
- Muat
.dtbdari penyimpanan ke memori. - Mulai kernel menggunakan alamat memori DT yang dimuat.
- Muat
Apa langkah selanjutnya?
Halaman ini menjelaskan alur kerja bootloader umum untuk memuat DT dan memberikan daftar istilah DT umum. Halaman lain di bagian ini menjelaskan cara menerapkan dukungan bootloader, cara mengompilasi, memverifikasi, dan mengoptimalkan DTO, serta cara menggunakan beberapa DT. Anda juga bisa mendapatkan detail tentang sintaksis DTO dan format partisi DTO dan DTBO yang diperlukan.