יישום DTOs

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

חלוקת ה- DT

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

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

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

בניית מסמכי DT ראשי ושכבת-על

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

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

לבניית ה- DT כיסוי:

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

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

מחיצות DTs

קבע מיקום נגיש ומהימן לזמן ריצה של Bootloader בזיכרון הבזק כדי לשים .dtb ו- .dtbo .

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

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

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

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

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

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

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

פועל במטען האתחול

לרוץ:

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

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

ה- DTB הראשי (מספק SoC) מתייחס כמשטח API עבור DTBO. לאחר הפרדת עץ ההתקן לחלק משותף של 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 ).

לפרטים, עיין באתחול מאומת .