Dukungan DTO

Overlay Hierarki Perangkat (DTO) memperluas yang sudah ada Implementasi Flattened Device Tree (FDT) dengan mengaktifkan userspace untuk memodifikasi data devicetree awal dalam kernel pada waktu proses dengan memuat FDT overlay tambahan yang mengubah data asli. Android tidak memerlukan update runtime blob DT dari userspace, tetapi justru merekomendasikan vendor tersebut menambahkan {i>patching<i} devicetree di {i>bootloader<i} dengan bantuan libfdt atau libufdt.

Dukungan DTO Android

Dukungan Android untuk DTO bervariasi menurut rilis Android:

  • Android 7.x dan yang lebih lama tidak memerlukan dukungan devicetree memberikan rekomendasi bagaimana vendor meneruskan blob DT ke {i>kernel<i} atau di mana mereka menyimpannya.
  • Android 8.x merekomendasikan dukungan devicetree untuk menjaga Bagian {i>kernel<i} khusus SoC terpisah.
  • Android 9 dan yang lebih baru memerlukan blob hierarki perangkat partisi overlay (DTBO) yang akan ada dan setidaknya satu DTO yang akan diterapkan.

Persyaratan partisi DTO

Sebagian besar perangkat Android menambahkan blob DT ke kernel pada waktu build dan {i>bootloader<i} memuat blob dari {i>kernel<i}. Namun, karena blob DT dianggap sebagai bagian dari {i>system-on-chip<i} (SoC), Android tidak memiliki persyaratan mengenai cara membangun atau menyimpan blob DT. Perangkat dapat menambahkan DT melakukan blob ke kernel atau menyimpan blob di partisi terpisah; satu-satunya persyaratannya adalah, bootloader tahu cara dan tempat memuat blob DT dari mereka.

Untuk mendukung DTO, perangkat harus memiliki:

  • Satu partisi DTBO per gambar {i>kernel<i} untuk {i>overlay <i}DT khusus board dan {i>bootloader<i} harus tahu di mana dan bagaimana memuat DTB khusus SoC. Tujuan ukuran partisi tergantung pada jumlah perubahan yang diperlukan untuk membuat SoC {i>kernel<i}—memilih ukuran dengan ruang untuk membesar untuk update mendatang; biasanya, Ukuran partisi 8 MB lebih dari cukup.
  • Partisi DTO diupdate untuk A/B perangkat. Kernel pemulihan sama dengan kernel Android, tetapi partisi harus disiapkan untuk perangkat A/B agar dapat diperbarui melalui over the air (OTA) update OTA. Ukuran partisi tergantung pada perangkat dan jumlah perubahan di atas {i>blob<i} DT {i>kernel<i} SoC utama.

Persyaratan bootloader DTO

Untuk mendukung DTO, bootloader harus:

  • Ketahui bagaimana dan di mana (dengan mempertimbangkan slot {i>booting<i} untuk perangkat A/B) untuk memuat Blob DT khusus SoC dengan cara spesifik per vendor (biasanya diekstrak dari akhir gambar kernel saat blob ditambahkan ke kernel).
  • Mengetahui cara dan tempat memuat blob DT overlay di vendor tertentu sebelumnya.
  • Menambahkan patch pada blob DT utama dengan overlay sebelum meneruskan perangkat gabungan pohon ke {i>kernel<i}.

Untuk detail selengkapnya tentang menambahkan dukungan untuk DTO di bootloader, lihat Overlay Hierarki Perangkat.