Google is committed to advancing racial equity for Black communities. See how.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Menerapkan DTO

Menerapkan DTO melibatkan pembagian pohon perangkat, pembangunan, partisi, dan menjalankan. Setelah Anda memiliki implementasi yang berfungsi, Anda juga harus menjaga kompatibilitas antara kedua DT dan menentukan strategi untuk memastikan keamanan setiap partisi DT.

Membagi DT

Mulailah dengan membagi pohon perangkat menjadi dua (2) bagian:

  • DT utama . Bagian khusus SoC dan konfigurasi default, disediakan oleh vendor SoC.
  • Overlay DT . Konfigurasi khusus perangkat, disediakan oleh ODM / OEM.

Setelah membagi pohon perangkat, Anda harus memastikan kompatibilitas antara DT utama dan DT overlay sehingga penggabungan DT utama dan DT overlay menghasilkan DT lengkap untuk perangkat tersebut. Untuk detail tentang format dan aturan DTO , lihat Sintaks DTO . Untuk detail tentang beberapa pohon perangkat, lihat Beberapa DT .

Membangun DT utama & overlay

Untuk membangun DT utama:

  1. Kompilasi DT utama .dts ke dalam file .dtb .
  2. Flash .dtb file ke dalam partisi yang dapat diakses runtime bootloader (dirinci di bawah).

Untuk membangun DT overlay:

  1. Kompilasi overlay DT .dts ke dalam file .dtbo . Meskipun format file ini sama dengan file .dtb diformat sebagai pohon perangkat yang diratakan, ekstensi file yang berbeda membedakannya dari DT utama.
  2. Flash .dtbo file ke dalam partisi yang dapat diakses runtime bootloader (seperti yang dijelaskan di bawah).

Untuk detail tentang kompilasi dengan DTC dan verifikasi hasil DTO pada host, lihat Mengompilasi & Memverifikasi .

Mempartisi DT

Tentukan lokasi yang dapat diakses runtime dan tepercaya bootloader dalam memori flash untuk meletakkan .dtb dan .dtbo .

Contoh lokasi untuk DT utama:

  • Bagian dari partisi boot, ditambahkan ke kernel ( image.gz ).
  • Pisahkan blob DT ( .dtb ) di partisi khusus ( dtb ).

Contoh lokasi untuk overlay DT:

Partisi Unik
Gambar 1. Letakkan .dtbo ke dalam partisi unik, misalnya partisi dtbo .
Partisi ODM
Gambar 2. Letakkan .dtbo ke dalam partisi odm (lakukan ini hanya jika bootloader Anda memiliki kemampuan untuk memuat data dari sistem file partisi odm ).

Catatan: Ukuran partisi DT overlay bergantung pada perangkat dan jumlah perubahan yang diperlukan di atas blob DT utama. Biasanya, 8 MB sudah lebih dari cukup dan memungkinkan ruang untuk berkembang di masa depan jika diperlukan.

Untuk perangkat yang mendukung pembaruan tanpa batas (A / B) , A / B menjadi partisi DT utama dan overlay DT:

Contoh 1
Gambar 3. Partisi DTBO A / B, contoh 1.
Contoh 2
Gambar 4. Partisi DTBO A / B, contoh 2.

Berjalan di bootloader

Untuk berlari:

Gambar 5. Implementasi runtime umum untuk hamparan pohon perangkat di bootloader.
  1. Muat .dtb dari penyimpanan ke dalam memori.
  2. Muat .dtbo dari penyimpanan ke dalam memori.
  3. Overlay .dtb dengan .dtbo menjadi DT gabungan.
  4. Mulai kernel dengan alamat memori dari DT yang digabungkan.

Menjaga kompatibilitas

DTB utama (dari vendor SoC) diperlakukan sebagai permukaan API untuk DTBO. Setelah memisahkan pohon perangkat menjadi bagian umum SoC dan bagian khusus perangkat, Anda harus menjaga agar kedua bagian tersebut tetap kompatibel di masa mendatang, termasuk:

  • Definisi DT dalam DT utama (misalnya node, properti, label) . Setiap perubahan definisi dalam DT utama dapat memicu perubahan dalam DT overlay. Misalnya, untuk mengoreksi nama node di DT utama, tentukan label "alias" yang memetakan ke nama node asli (untuk menghindari perubahan overlay DT).
  • Overlay lokasi penyimpanan DT (misalnya nama partisi, format penyimpanan) .

Menjamin keamanan

Bootloader harus memastikan DTB / DTBO aman, tidak dimodifikasi, dan tidak rusak. Anda dapat menggunakan solusi apa pun untuk mengamankan DTB / DTBO, misalnya, tanda tangan gambar Boot di VBoot 1.0 atau footer AVB HASH (VBoot 2.0).

  • Jika DTB / DTBO berada dalam partisi unik, Anda dapat menambahkan partisi tersebut ke rantai kepercayaan AVB. Rantai kepercayaan dimulai dari root kepercayaan yang dilindungi perangkat keras dan menuju ke bootloader, yang memverifikasi integritas dan keaslian partisi DTB / DTBO.
  • Jika DTB / DTBO berada dalam partisi yang sudah ada (seperti partisi odm ), partisi tersebut harus berada dalam rantai kepercayaan AVB. (Partisi DTBO dapat berbagi kunci publik dengan partisi odm ).

Untuk detailnya, lihat Boot Terverifikasi .