יישום DTOs

יישום DTO כולל חלוקת עץ המכשיר, בנייה, חלוקה והפעלה. לאחר שיש לך יישום עובד, עליך גם לשמור על תאימות בין שני ה-DTs ולקבוע אסטרטגיה להבטחת האבטחה של כל מחיצת DT.

חלוקת ה-DT

התחל על ידי חלוקת עץ המכשיר לשני (2) חלקים:

  • ראשי DT . החלק של SoC בלבד ותצורות ברירת המחדל, מסופקים על ידי ספק SoC.
  • שכבת על DT . התצורות הספציפיות למכשיר, מסופקות על ידי ODM/OEM.

לאחר חלוקת עצי המכשיר, עליך לוודא תאימות בין DT ראשי ל-Overlay DT כך שמיזוג DT ראשי ו-Overlay DT יביא ל-DT שלם עבור המכשיר. לפרטים על פורמט וכללים של DTO, ראה תחביר DTO . לפרטים על עצי מכשירים מרובים, ראה מספר DTs .

בניית DTs ראשי & שכבת על

כדי לבנות את ה-DT הראשי:

  1. קומפלט ראשי DT .dts לקובץ .dtb .
  2. קובץ Flash .dtb למחיצה נגישה לזמן ריצה של טוען האתחול (מפורט להלן).

כדי לבנות את שכבת העל DT:

  1. הידור שכבת-על DT .dts לקובץ .dtbo . בעוד שפורמט קובץ זה זהה לקובץ .dtb המעוצב כעץ התקן שטוח, סיומת הקובץ השונה מבדילה אותו מה-DT הראשי.
  2. קובץ Flash .dtbo לתוך מחיצה נגישה לזמן ריצה של טוען האתחול (כמפורט להלן).

לפרטים על קומפילציה עם DTC ואימות תוצאות DTO על המארח, ראה קומפילציה ואימות .

מחיצות DTs

קבע מיקום נגיש ואמין של טוען האתחול בזיכרון הפלאש כדי לשים את .dtb ו- .dtbo .

מיקומים לדוגמה עבור ה-DT הראשי:

  • חלק ממחיצת האתחול, מצורף לקרנל ( image.gz ).
  • הפרד כתמי DT ( .dtb ) במחיצה ייעודית ( dtb ).

מיקומים לדוגמה עבור שכבת העל DT:

מחיצה ייחודית
איור 1. הכנס את .dtbo למחיצה ייחודית, למשל מחיצת dtbo .
מחיצת ODM
איור 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.

פועל ב-bootloader

לרוץ:

איור 5. הטמעת זמן ריצה טיפוסית עבור שכבת-על של עץ המכשיר ב-bootloader.
  1. טען .dtb מאחסון לזיכרון.
  2. טען .dtbo מהאחסון לזיכרון.
  3. שכבת .dtb עם .dtbo כדי להיות DT ממוזג.
  4. גרעין התחל בהינתן כתובת הזיכרון של ה-DT הממוזג.

שמירה על תאימות

ה-DTB הראשי (מספק SoC) מטופל כמשטח API עבור DTBOs. לאחר הפרדת עץ המכשיר לחלק משותף ל-SoC ולחלק ספציפי למכשיר, עליך לשמור את שני החלקים תואמים זה לזה בעתיד, כולל:

  • הגדרת DT ב-DT הראשי (למשל צמתים, מאפיינים, תוויות) . כל שינוי בהגדרה ב-DT הראשי יכול לעורר שינויים ב-DT של שכבת-על. לדוגמה, כדי לתקן שם צומת ב-DT הראשי, הגדר תווית "כינוי" הממפה לשם הצומת המקורי (כדי למנוע את השינוי של שכבת DT).
  • שכבת-על מיקום חנות DT (למשל שם מחיצה, פורמט חנות) .

הבטחת אבטחה

טוען האתחול חייב להבטיח שה-DTB/DTBO מאובטח, לא שונה ולא פגום. אתה יכול להשתמש בכל פתרון לאבטחת DTB/DTBO, למשל חתימת תמונת אתחול ב-VBoot 1.0 או בכותרת התחתונה של AVB HASH (VBoot 2.0).

  • אם DTB/DTBO נמצא במחיצה ייחודית, אתה יכול להוסיף את המחיצה הזו לשרשרת האמון של AVB. שרשרת האמון מתחילה משורש אמון מוגן בחומרה ועוברת למטען האתחול, המאמת את התקינות והאותנטיות של מחיצת DTB/DTBO.
  • אם DTB/DTBO נמצא במחיצה קיימת (כגון מחיצת odm ), המחיצה הזו צריכה להיות בשרשרת האמון של AVB. (מחיצת DTBO יכולה לשתף מפתח ציבורי עם מחיצת odm ).

לפרטים, ראה אתחול מאומת .