Hamparan Pohon Perangkat

Sebuah pohon perangkat (DT) adalah struktur data node bernama dan properti yang menggambarkan perangkat keras yang tidak dapat ditemukan. Sistem operasi, seperti kernel Linux yang digunakan di Android, menggunakan DT untuk mendukung berbagai konfigurasi perangkat keras yang digunakan oleh perangkat yang diberdayakan Android. Vendor perangkat keras menyediakan file sumber DT mereka sendiri, yang kemudian dikompilasi oleh Linux ke dalam file Device Tree Blob (DTB) yang digunakan oleh bootloader.

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.

Halaman ini merinci alur kerja bootloader khas untuk memuat DT dan menyediakan daftar istilah umum DT. Halaman lain di bagian ini menjelaskan cara menerapkan dukungan bootloader untuk DTO , cara mengompilasi , memverifikasi, dan mengoptimalkan implementasi DTO Anda , dan cara menggunakan beberapa DT . Anda juga bisa mendapatkan detail tentang sintaks DTO dan pemformatan partisi DTO/DTBO yang diperlukan.

Pembaruan di Android 9 Rilis

Di Android 9, bootloader tidak boleh mengubah properti yang ditentukan dalam hamparan pohon perangkat sebelum meneruskan gumpalan pohon perangkat terpadu ke kernel.

Memuat pohon perangkat

Memuat pohon perangkat di bootloader melibatkan membangun, mempartisi, dan menjalankan.

Gambar 1. Implementasi tipikal untuk memuat pohon perangkat di bootloader.
  1. Untuk membangun:
    • Gunakan kompilator pohon perangkat ( dtc ) untuk mengompilasi sumber pohon perangkat ( .dts ) ke dalam gumpalan pohon perangkat ( .dtb ), yang diformat sebagai pohon perangkat yang diratakan.
    • Flash file .dtb ke lokasi yang dapat diakses runtime bootloader (rinci di bawah).
  2. Untuk mempartisi, tentukan lokasi bootloader yang dapat diakses runtime dan tepercaya di memori flash untuk meletakkan .dtb . Contoh lokasi:
    Partisi Booting
    Gambar 2. Letakkan .dtb di partisi boot dengan menambahkan image.gz dan meneruskan sebagai " kernel " ke mkbootimg .
    Partisi Unik
    Gambar 3. Letakkan .dtb di partisi yang unik (mis. partisi dtb ).
  3. Untuk berlari:
    • Muat .dtb dari penyimpanan ke dalam memori.
    • Mulai kernel dengan alamat memori DT yang dimuat.

Terminologi

Bagian ini menggunakan istilah hierarki perangkat berikut:

DT Pohon Perangkat
DTB Gumpalan Pohon Perangkat
DTBO Blob Pohon Perangkat untuk Hamparan
DTC Kompilator Pohon Perangkat
DTO Hamparan Pohon Perangkat
DTS Sumber Pohon Perangkat
FDT Flattened Device Tree, format biner yang terdapat dalam file blob .dtb