הטמעת DTO

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

מחלקים את ה-DT

בשלב הראשון, מחלקים את העברת הנתונים לשני חלקים:

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

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

יצירת DT ראשי ושכבת-על של העברת תוכן

כדי ליצור את העברת הנתונים הראשית:

  1. הידור של ה-DT .dts הראשי לקובץ .dtb.
  2. יצירת Flash של הקובץ .dtb למחיצה נגישה בזמן ריצה בתוכנת האתחול (מידע נוסף מפורט בקטע [DTs]](#partition)).

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

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

לפרטים על הידור באמצעות DTC ואימות תוצאות של DTO במארח, יש לעיין ב לבצע הידור ולאמת.

העברת נתונים למחיצות

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

מיקומים לדוגמה של מרכז התקשורת הראשי:

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

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

איור 1. מוסיפים .dtbo למחיצה ייחודית, כמו מחיצת dtbo.

איור 2. יש להזין .dtbo למחיצת odm (יש לבצע את הפעולה הזו רק אם תוכנת האתחול כוללת היכולת לטעון נתונים ממערכת הקבצים של מחיצת odm).

הערה: הגודל של מחיצת ה-DT בשכבת-העל תלויה במכשיר ובמספר השינויים הנדרשים בחלק העליון של ה-blob הראשי של ה-DT. בדרך כלל, 8MB מספיק בשביל יותר מנפח האחסון, אם יהיה צורך בכך,

למכשירים שתומכים בכך עדכונים (A/B) פשוטים, ביצוע A/B מחיצות DT ראשיות ושכבת-על של DT:

איור 3. מחיצת DTBO A/B, דוגמה 1.

איור 4. מחיצת DTBO A/B, דוגמה 2.

הפעלה בתוכנת אתחול

כדי להריץ:

איור 5. הטמעה אופיינית של זמן ריצה ל-DTO בתוכנת אתחול.

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

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

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

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

בדיקת האבטחה

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

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

פרטים נוספים זמינים במאמר בוצע אימות הפעלה.