Hamparan pohon perangkat

Pohon perangkat (DT) adalah struktur data dari 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 yang didukung 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) dihamparkan pada pohon perangkat. Bootloader yang menggunakan DTO dapat memelihara DT sistem pada chip (SoC) dan secara dinamis melapisi DT khusus perangkat, menambahkan node ke pohon dan membuat perubahan pada properti di pohon yang ada.

DTBO Blob Pohon Perangkat untuk Hamparan

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.

Muat pohon perangkat

Memuat pohon perangkat di bootloader melibatkan pembuatan, partisi, dan pengoperasian.

Gambar 1. Implementasi umum untuk memuat pohon perangkat di bootloader.
  1. 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 ). Blob pohon perangkat diformat sebagai pohon perangkat yang diratakan. 1b. Flash file .dtb ke lokasi yang dapat diakses runtime bootloader (dirinci di bawah).

  2. Untuk mempartisi, tentukan lokasi yang dapat diakses dan dipercaya oleh runtime bootloader di memori flash untuk meletakkan .dtb . Contoh lokasi:

    Partisi Boot
    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 unik (misalnya partisi dtb ).
  3. Untuk memuat blob pohon perangkat dan memulai kernel:

    • Muat .dtb dari penyimpanan ke memori.
    • Mulai kernel menggunakan alamat memori DT yang dimuat.

Apa berikutnya?

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