DTO'ların uygulanması

DTO'nun uygulanması, cihaz ağacının bölünmesini, oluşturulmasını, bölümlenmesini ve çalıştırılmasını içerir. Çalışan bir uygulamaya sahip olduktan sonra, iki DT arasındaki uyumluluğu da korumanız ve her DT bölümünün güvenliğini sağlamaya yönelik bir strateji belirlemeniz gerekir.

DT'yi bölme

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

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

Cihaz ağaçlarını böldükten sonra, ana CE ile bindirme CE'nin birleştirildiğinde cihaz için tam bir CE elde edilmesini sağlayacak şekilde ana CE ile bindirme CE arasında uyumluluk sağlamalısınız. DTO formatı ve kuralları hakkında ayrıntılar için bkz. DTO Söz Dizimi . Çoklu cihaz ağaçlarına ilişkin ayrıntılar için bkz. Çoklu CE'ler .

Ana ve kaplama CE'lerini oluşturma

Ana CE'yi oluşturmak için:

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

Kaplama CE'sini oluşturmak için:

  1. Kaplama DT .dts .dtbo dosyasında derleyin. Bu dosya formatı, düzleştirilmiş cihaz ağacı olarak formatlanan .dtb dosyasıyla aynı olsa da, farklı dosya uzantısı onu ana DT'den ayırır.
  2. .dtbo dosyasını önyükleyici çalışma zamanında erişilebilen bir bölüme flashlayın (aşağıda ayrıntılı olarak açıklanmıştır).

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

CE'leri bölümlendirme

.dtb ve .dtbo koymak için flash bellekte önyükleyicinin çalışma zamanında erişilebilen ve güvenilir bir konumunu belirleyin.

Ana CE için örnek konumlar:

  • Önyükleme bölümünün çekirdeğe eklenen kısmı ( image.gz ).
  • DT blob'larını ( .dtb ) ayrılmış bölümde ( dtb ) ayırın.

Bindirme CE'si için örnek konumlar:

Benzersiz Bölüm
Şekil 1. .dtbo benzersiz bir bölüme, örneğin dtbo bölümüne yerleştirin.
ODM Bölümü
Şekil 2. .dtbo dosyasını odm bölümüne yerleştirin (bunu yalnızca önyükleyicinizin odm bölümünün dosya sisteminden veri yükleme yeteneği varsa yapın).

Not: Yer paylaşımlı DT bölümünün boyutu, cihaza ve ana DT blobu üzerinde yapılması gereken değişiklik miktarına bağlıdır. Tipik olarak 8 MB fazlasıyla yeterlidir ve gelecekte ihtiyaç duyulması halinde alanın genişletilmesine olanak tanır.

Sorunsuz (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ırma

Koşmak:

Şekil 5. Önyükleyicideki cihaz ağacı katmanı için tipik çalışma zamanı uygulaması.
  1. .dtb dosyasını depodan belleğe yükleyin.
  2. .dtbo dosyasını depolama alanından belleğe yükleyin.
  3. Birleştirilmiş bir CE oluşturmak için .dtb .dtbo ile kaplayın.
  4. Birleştirilmiş CE'nin bellek adresine göre çekirdeği başlatın.

Uyumluluğun sürdürülmesi

Ana DTB (SoC satıcısından), DTBO'lar için bir API yüzeyi olarak kabul edilir. Cihaz ağacını bir SoC ortak parçasına ve cihaza özel bir parçaya ayırdıktan sonra, aşağıdakiler de dahil olmak üzere iki parçayı gelecekte karşılıklı olarak uyumlu tutmalısınız:

  • Ana CE'deki CE tanımı (örn. düğümler, özellikler, etiketler) . Ana CE'deki herhangi bir tanım değişikliği, kaplama CE'sinde değişiklikleri tetikleyebilir. Örneğin, ana CE'deki bir düğüm adını düzeltmek için, orijinal düğüm adıyla eşleşen bir "takma ad" etiketi tanımlayın (katman CE'sinin değiştirilmesini önlemek için).
  • Yer paylaşımı DT depolama konumu (örn. bölüm adı, depolama formatı) .

Güvenliğin sağlanması

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

  • 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 orijinalliğini 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 anahtarı odm bölümüyle paylaşabilir).

Ayrıntılar için Doğrulanmış Önyükleme'ye bakın.