Pohon perangkat (DT) adalah struktur data node dan properti bernama yang menggambarkan perangkat keras yang tidak dapat ditemukan. Kernel, seperti kernel Linux yang digunakan di Android, menggunakan DT untuk mendukung berbagai konfigurasi perangkat keras yang digunakan oleh perangkat Android. Vendor perangkat keras menyediakan file Device Tree Source (DTS) mereka sendiri, yang dikompilasi ke dalam file Device Tree Blob (DTB) menggunakan Device Tree Compiler . File-file ini kemudian digunakan oleh bootloader. File DTB berisi pohon perangkat pipih berformat biner .
Hamparan pohon perangkat (DTO) memungkinkan gumpalan pohon perangkat pusat (DTB) untuk dihamparkan pada pohon perangkat. Bootloader yang menggunakan DTO dapat mempertahankan DT system-on-chip (SoC) dan secara dinamis melapisi DT khusus perangkat, menambahkan node ke pohon dan membuat perubahan pada properti di pohon yang ada.
Pembaruan dalam Rilis Android 9
Di Android 9, bootloader tidak boleh mengubah properti yang ditentukan dalam overlay pohon perangkat sebelum meneruskan blob pohon perangkat terpadu ke kernel.
Memuat pohon perangkat
Memuat pohon perangkat di bootloader melibatkan pembuatan, pemartisian, dan pengoperasian.

Untuk membuat dan mem-flash gumpalan pohon perangkat:
1a. Gunakan kompiler pohon perangkat (
dtc
>) untuk mengkompilasi sumber pohon perangkat (.dts
) menjadi gumpalan pohon perangkat (.dtb
). Gumpalan pohon perangkat diformat sebagai pohon perangkat yang diratakan. 1b. Flash file.dtb
ke lokasi yang dapat diakses runtime bootloader (dirinci di bawah).Untuk mempartisi, tentukan lokasi bootloader runtime-accessible dan terpercaya di memori flash untuk meletakkan
.dtb
. Contoh lokasi:Partisi booting Gambar 2. Letakkan .dtb
di partisi boot dengan menambahkanimage.gz
dan meneruskannya sebagai "kernel
" kemkbootimg
.Partisi Unik Gambar 3. Taruh .dtb
di partisi unik (misalnya partisidtb
).Untuk memuat gumpalan pohon perangkat dan memulai kernel:
3a. Muat
.dtb
dari penyimpanan ke dalam memori. 3b. Mulai kernel menggunakan alamat memori DT yang dimuat.
Apa berikutnya?
Halaman ini merinci alur kerja bootloader tipikal untuk memuat DT dan menyediakan daftar istilah umum DT. Halaman lain di bagian ini menjelaskan cara mengimplementasikan dukungan bootloader , cara mengkompilasi , memverifikasi, dan mengoptimalkan DTO Anda , dan cara menggunakan beberapa DT . Anda juga bisa mendapatkan detail tentang sintaks DTO dan pemformatan partisi DTO/DTBO yang diperlukan.