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:
- Ana DT
.dts
.dtb
dosyasında derleyin. -
.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:
- 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. -
.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 |
---|
ODM Bölümü |
---|
.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 |
---|
Örnek 2 |
---|
Bootloader'da çalıştırma
Koşmak:
-
.dtb
dosyasını depodan belleğe yükleyin. -
.dtbo
dosyasını depolama alanından belleğe yükleyin. - Birleştirilmiş bir CE oluşturmak için
.dtb
.dtbo
ile kaplayın. - 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.