Overlay hierarki perangkat

Device tree (DT) adalah struktur data dari node dan properti bernama yang mendeskripsikan 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 sumber pohon perangkat (DTS) mereka sendiri, yang dikompilasi ke dalam file blob pohon perangkat (DTB) menggunakan pengompilasi pohon perangkat. File ini kemudian digunakan oleh bootloader. File DTB berisi flattened device tree berformat biner.

Overlay pohon perangkat (DTO) memungkinkan DTB pusat di-overlay pada DT (blob pohon perangkat untuk overlay (DTBO)). Bootloader yang menggunakan DTO dapat mempertahankan DT system-on-chip (SoC) dan secara dinamis menempatkan DT khusus perangkat, menambahkan node ke pohon, dan membuat perubahan pada properti di pohon yang ada.

Update di 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 pohon perangkat di bootloader.

  1. Untuk membuat dan mem-flash DTB:

    1a. Gunakan DTC (dtc) untuk mengompilasi DTS (.dts) menjadi DTB (.dtb). DTB diformat sebagai DT yang diratakan. 1b. Flash file .dtb ke lokasi yang dapat diakses runtime bootloader (dijelaskan di bawah).

  2. Untuk membuat partisi, tentukan lokasi tepercaya yang dapat diakses saat runtime bootloader di memori flash untuk menempatkan .dtb. Contoh lokasi:

    Gambar 2. Masukkan .dtb ke partisi booting dengan
    menambahkan ke image.gz dan meneruskan sebagai
    "kernel" ke mkbootimg.

    Gambar 3. Letakkan .dtb di partisi unik
    (misalnya, partisi dtb).

  3. Untuk memuat DTB dan memulai kernel:

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

Apa 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 dapat memperoleh detail tentang sintaksis DTO dan pemformatan partisi DTO dan DTBO yang diperlukan.