تنفيذ DTOs

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

تقسيم دي تي

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

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

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

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

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

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

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

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

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

تقسيم DTs

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

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

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

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

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

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

بالنسبة للأجهزة التي تدعم التحديثات السلسة (A/B) ، 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 ).

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