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:
- Ana DT
.dts
.dtb
dosyasında derleyin. - 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:
- 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. -
.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 |
---|

.dtbo
benzersiz bir bölüme koyun, örneğin dtbo
bölümü. ODM Bölümü |
---|

.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 |
---|

Örnek 2 |
---|

Bootloader'da Çalıştırmak
Koşmak:

-
.dtb
depolamadan belleğe yükleyin. -
.dtbo
depolamadan belleğe yükleyin. - Birleştirilmiş bir DT olması için
.dtbo
.dtb
ile kaplayın. - 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.