يتضمن تنفيذ DTO تقسيم شجرة الجهاز والبناء والتقسيم والتشغيل. بعد أن يكون لديك تطبيق عملي ، يجب أيضًا الحفاظ على التوافق بين DTs وتحديد استراتيجية لضمان أمان كل قسم DT.
قسمة DT
ابدأ بتقسيم شجرة الجهاز إلى جزأين (2):
- الرئيسية DT . الجزء الخاص بـ SoC فقط والتكوينات الافتراضية ، التي يقدمها بائع SoC.
- تراكب DT . التكوينات الخاصة بالجهاز المقدمة بواسطة ODM / OEM.
بعد تقسيم شجرات الجهاز ، يجب عليك التأكد من التوافق بين DT الرئيسي والتراكب DT بحيث ينتج عن دمج DT الرئيسي والتراكب DT كامل الجهاز. للحصول على تفاصيل حول تنسيق DTO وقواعده ، راجع بناء جملة DTO . للحصول على تفاصيل حول عدة أشجار للأجهزة ، راجع DTs المتعددة .
بناء DTs الرئيسي والتراكب
لبناء DT الرئيسي:
- تجميع DT الرئيسي
.dts
في ملف.dtb
. - ملف Flash
.dtb
في قسم يمكن الوصول إليه في وقت تشغيل أداة تحميل التشغيل (بالتفصيل أدناه).
لإنشاء تراكب DT:
- ترجمة تراكب DT
.dts
في ملف.dtbo
. في حين أن تنسيق الملف هذا هو نفسه ملف.dtb
المنسق كشجرة جهاز مسطحة ، فإن امتداد الملف المختلف يميزه عن DT الرئيسي. - ملف Flash
.dtbo
في قسم يمكن الوصول إليه في وقت تشغيل برنامج bootloader (كما هو مفصل أدناه).
للحصول على تفاصيل حول التحويل البرمجي باستخدام DTC والتحقق من نتائج DTO على المضيف ، راجع الترجمة والتحقق.
تقسيم DTs
حدد موقعًا موثوقًا به يمكن الوصول إليه في وقت تشغيل برنامج bootloader في ذاكرة الفلاش لوضع .dtb
. و .dtbo
.
أمثلة على مواقع DT الرئيسية:
- جزء من قسم التمهيد ، ملحق بالنواة (
image.gz
). - نقاط DT منفصلة (
.dtb
) في قسم مخصص (dtb
).
أمثلة على مواقع التراكب DT:
قسم فريد |
---|

.dtbo
في قسم فريد ، مثل قسم dtbo
. قسم التصميم |
---|

.dtbo
في قسم odm
(افعل ذلك فقط إذا كان برنامج bootloader الخاص بك لديه القدرة على تحميل البيانات من نظام ملفات قسم odm
).ملاحظة: يعتمد حجم قسم DT المتراكب على الجهاز ومقدار التغييرات المطلوبة أعلى نقطة DT الرئيسية. عادةً ما تكون 8 ميغابايت أكثر من كافية وتتيح مساحة للنمو في المستقبل إذا لزم الأمر.
بالنسبة للأجهزة التي تدعم التحديثات السلسة (A / B) ، أ / ب DT الرئيسي وأقسام DT المتراكبة:
مثال 1 |
---|

مثال 2 |
---|

يعمل في محمل الإقلاع
يهرب:

- تحميل
.dtb
من التخزين إلى الذاكرة. - تحميل
.dtbo
من التخزين إلى الذاكرة. - تراكب
.dtb
مع.dtbo
ليكون DT مدمجًا. - ابدأ kernel بإعطاء عنوان ذاكرة DT المدمج.
الحفاظ على التوافق
يتم التعامل مع DTB الرئيسي (من بائع SoC) كسطح API لـ DTBOs. بعد فصل شجرة الجهاز إلى جزء مشترك في SoC وجزء خاص بالجهاز ، يجب أن تحافظ على توافق الجزأين بشكل متبادل في المستقبل ، بما في ذلك:
- تعريف DT في DT الرئيسي (مثل العقد والخصائص والتسميات) . قد يؤدي أي تغيير في تعريف DT الرئيسي إلى حدوث تغييرات في تراكب DT. على سبيل المثال ، لتصحيح اسم العقدة في DT الرئيسي ، حدد تسمية "الاسم المستعار" التي تعين اسم العقدة الأصلي (لتجنب تغيير التراكب DT).
- تراكب موقع متجر DT (مثل اسم القسم وتنسيق المتجر) .
ضمان الأمن
يجب أن يضمن برنامج Bootloader أن DTB / DTBO آمن وغير معدل وغير تالف. يمكنك استخدام أي حل لتأمين DTB / DTBO ، على سبيل المثال ، توقيع صورة التمهيد في VBoot 1.0 أو تذييل AVB HASH (VBoot 2.0).
- إذا كان DTB / DTBO في قسم فريد ، يمكنك إضافة هذا القسم إلى سلسلة الثقة في AVB. تبدأ سلسلة الثقة من جذر ثقة محمي بالأجهزة وتنتقل إلى أداة تحميل التشغيل ، والتي تتحقق من سلامة وصحة قسم DTB / DTBO.
- إذا كان DTB / DTBO موجودًا في قسم موجود (مثل قسم
odm
) ، فيجب أن يكون هذا القسم في سلسلة الثقة الخاصة بـ AVB. (يمكن أن يشارك قسم DTBO مفتاحًا عامًا مع قسمodm
).
للحصول على التفاصيل ، راجع التمهيد الذي تم التحقق منه .