DTO'ları uygulama

DTO'yu uygulamak, aygıt ağacını bölmeyi, oluşturmayı, bölümlendirmeyi ve çalıştırmayı içerir. Çalışan bir uygulamanız olduktan sonra, iki DT arasındaki uyumluluğu da sürdürmeli ve her DT bölümünün güvenliğini sağlamak için bir strateji belirlemelisiniz.

DT'yi bölmek

Aygıt ağacını iki (2) parçaya bölerek başlayın:

  • Ana DT . SoC satıcısı tarafından sağlanan yalnızca SoC kısmı ve varsayılan yapılandırmalar.
  • Kaplama DT . ODM/OEM tarafından sağlanan cihaza özel konfigürasyonlar.

Cihaz ağaçlarını böldükten sonra, ana CE ile bindirmeli CE arasında uyumluluğu sağlamalısınız, böylece ana CE ve bindirmeli CE'nin birleştirilmesi cihaz için tam bir CE ile sonuçlanır. DTO formatı ve kurallarıyla ilgili ayrıntılar için, bkz. DTO Sözdizimi . Birden çok aygıt ağacıyla ilgili ayrıntılar için, bkz. Çoklu DT'ler .

Ana ve bindirmeli DT'ler oluşturma

Ana DT'yi oluşturmak için:

  1. Ana DT .dts .dtb dosyasında derleyin.
  2. Flash .dtb dosyasını bir önyükleyici çalışma zamanı erişilebilir bölümüne (aşağıda ayrıntılı olarak açıklanmıştır).

Bindirme DT'sini oluşturmak için:

  1. Bindirme DT .dts dosyasını .dtbo dosyasında derleyin. Bu dosya biçimi, düzleştirilmiş aygıt ağacı olarak biçimlendirilmiş .dtb dosyasıyla aynı olsa da, farklı dosya uzantısı onu ana DT'den ayırır.
  2. .dtbo dosyasını bir önyükleyici çalışma zamanı erişilebilir bölümüne (aşağıda ayrıntılı olarak açıklandığı gibi) yükleyin.

DTC ile derleme ve ana bilgisayarda DTO sonuçlarını doğrulama hakkında ayrıntılar için, bkz. Derleme ve Doğrulama .

DT'leri bölümleme

.dtb ve .dtbo koymak için flash bellekte bir önyükleyici çalışma zamanı erişilebilir ve güvenilir konumu belirleyin.

Ana CE için örnek konumlar:

  • Çekirdeğe eklenen önyükleme bölümünün bir parçası ( image.gz ).
  • Ayrılmış bölümde ( dtb ) ayrı DT blobları ( .dtb ).

Bindirme DT için örnek konumlar:

Benzersiz Bölme
Şekil 1. .dtbo benzersiz bir bölüme koyun, örneğin dtbo bölümü.
ODM Bölümü
Şekil 2. .dtbo odm bölümüne koyun (bunu yalnızca önyükleyiciniz odm bölümünün dosya sisteminden veri yükleme yeteneğine sahipse yapın).

Not: Bindirme DT bölümünün boyutu, cihaza ve ana DT bloğunun üzerinde gereken değişiklik miktarına bağlıdır. Tipik olarak, 8 MB fazlasıyla yeterlidir ve gerekirse gelecekte alanın büyümesine izin verir.

Kesintisiz (A/B) güncellemeleri destekleyen cihazlar için , ana DT ve yer paylaşımlı DT bölümleri A/B:

örnek 1
Şekil 3. DTBO bölümü A/B, örnek 1.
Örnek 2
Şekil 4. DTBO bölümü A/B, örnek 2.

Bootloader'da Çalıştırmak

Koşmak:

Şekil 5. Önyükleyicide aygıt ağacı yerleşimi için tipik çalışma zamanı uygulaması.
  1. .dtb depolamadan belleğe yükleyin.
  2. .dtbo depolamadan belleğe yükleyin.
  3. Birleştirilmiş bir DT olması için .dtbo .dtb ile kaplayın.
  4. Birleştirilmiş DT'nin bellek adresi verilen çekirdeği başlatın.

Uyumluluğu korumak

Ana DTB (SoC satıcısından), DTBO'lar için bir API yüzeyi olarak işlenir. Aygıt ağacını bir SoC ortak parçası ve bir aygıta özel parça olarak ayırdıktan sonra, gelecekte iki parçayı karşılıklı olarak uyumlu tutmalısınız:

  • Ana DT'de DT tanımı (örn. düğümler, özellikler, etiketler) . Ana CE'deki herhangi bir tanım değişikliği, bindirmeli CE'deki değişiklikleri tetikleyebilir. Örneğin, ana DT'deki bir düğüm adını düzeltmek için, orijinal düğüm adıyla eşleşen bir "diğer ad" etiketi tanımlayın (ör. bindirme DT'sinin değişmesini önlemek için).
  • Bindirme DT mağaza konumu (örn. bölüm adı, mağaza formatı) .

Güvenliği sağlamak

Önyükleyici, DTB/DTBO'nun güvenli, değiştirilmemiş ve bozulmamış olduğundan emin olmalıdır. DTB/DTBO'yu güvenceye almak için herhangi bir çözümü kullanabilirsiniz, örneğin, VBoot 1.0 veya AVB HASH altbilgisinde (VBoot 2.0) Önyükleme görüntüsü imzası .

  • DTB/DTBO benzersiz bir bölümdeyse, bu bölümü AVB'nin güven zincirine ekleyebilirsiniz. Güven zinciri, donanım korumalı bir güven kökünden başlar ve DTB/DTBO bölümünün bütünlüğünü ve özgünlüğünü doğrulayan önyükleyiciye gider.
  • DTB/DTBO mevcut bir bölümdeyse ( odm bölümü gibi), bu bölüm AVB'nin güven zincirinde olmalıdır. (DTBO bölümü, ortak bir anahtarı odm bölümüyle paylaşabilir).

Ayrıntılar için Doğrulanmış Önyükleme bölümüne bakın.