تنفيذ DTOs

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

يتضمن تنفيذ DTO تقسيم شجرة الجهاز والبناء والتقسيم والتشغيل. بعد أن يكون لديك تطبيق عملي ، يجب أيضًا الحفاظ على التوافق بين DTs وتحديد استراتيجية لضمان أمان كل قسم DT.

قسمة DT

ابدأ بتقسيم شجرة الجهاز إلى جزأين (2):

  • الرئيسية DT . الجزء الخاص بـ SoC فقط والتكوينات الافتراضية ، التي يقدمها بائع SoC.
  • تراكب DT . التكوينات الخاصة بالجهاز المقدمة بواسطة ODM / OEM.

بعد تقسيم شجرات الجهاز ، يجب عليك التأكد من التوافق بين DT الرئيسي والتراكب DT بحيث ينتج عن دمج DT الرئيسي والتراكب DT كامل الجهاز. للحصول على تفاصيل حول تنسيق DTO وقواعده ، راجع بناء جملة DTO . للحصول على تفاصيل حول عدة أشجار للأجهزة ، راجع DTs المتعددة .

بناء DTs الرئيسي والتراكب

لبناء DT الرئيسي:

  1. تجميع DT الرئيسي .dts في ملف .dtb .
  2. ملف Flash .dtb في قسم يمكن الوصول إليه في وقت تشغيل أداة تحميل التشغيل (بالتفصيل أدناه).

لإنشاء تراكب DT:

  1. ترجمة تراكب DT .dts في ملف .dtbo . في حين أن تنسيق الملف هذا هو نفسه ملف .dtb المنسق كشجرة جهاز مسطحة ، فإن امتداد الملف المختلف يميزه عن DT الرئيسي.
  2. ملف Flash .dtbo في قسم يمكن الوصول إليه في وقت تشغيل برنامج bootloader (كما هو مفصل أدناه).

للحصول على تفاصيل حول التحويل البرمجي باستخدام DTC والتحقق من نتائج DTO على المضيف ، راجع الترجمة والتحقق.

تقسيم DTs

حدد موقعًا موثوقًا به يمكن الوصول إليه في وقت تشغيل برنامج bootloader في ذاكرة الفلاش لوضع .dtb . و .dtbo .

أمثلة على مواقع DT الرئيسية:

  • جزء من قسم التمهيد ، ملحق بالنواة ( image.gz ).
  • نقاط DT منفصلة ( .dtb ) في قسم مخصص ( dtb ).

أمثلة على مواقع التراكب DT:

قسم فريد
الشكل 1. ضع .dtbo في قسم فريد ، مثل قسم dtbo .
قسم التصميم
الشكل 2. ضع .dtbo في قسم odm (افعل ذلك فقط إذا كان برنامج bootloader الخاص بك لديه القدرة على تحميل البيانات من نظام ملفات قسم odm ).

ملاحظة: يعتمد حجم قسم DT المتراكب على الجهاز ومقدار التغييرات المطلوبة أعلى نقطة DT الرئيسية. عادةً ما تكون 8 ميغابايت أكثر من كافية وتتيح مساحة للنمو في المستقبل إذا لزم الأمر.

بالنسبة للأجهزة التي تدعم التحديثات السلسة (A / B) ، أ / ب DT الرئيسي وأقسام DT المتراكبة:

مثال 1
الشكل 3. قسم DTBO A / B ، المثال 1.
مثال 2
الشكل 4. قسم DTBO A / B ، مثال 2.

يعمل في محمل الإقلاع

يهرب:

الشكل 5. تنفيذ وقت التشغيل النموذجي لتراكب شجرة الجهاز في أداة تحميل التشغيل.
  1. تحميل .dtb من التخزين إلى الذاكرة.
  2. تحميل .dtbo من التخزين إلى الذاكرة.
  3. تراكب .dtb مع .dtbo ليكون DT مدمجًا.
  4. ابدأ 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 ).

للحصول على التفاصيل ، راجع التمهيد الذي تم التحقق منه .