יישום DTO כולל חלוקת עץ המכשיר, בנייה, חלוקה והפעלה. לאחר שיש לך יישום עובד, עליך גם לשמור על תאימות בין שני ה-DTs ולקבוע אסטרטגיה להבטחת האבטחה של כל מחיצת DT.
חלוקת ה-DT
התחל על ידי חלוקת עץ המכשיר לשני (2) חלקים:
- ראשי DT . החלק של SoC בלבד ותצורות ברירת המחדל, מסופקים על ידי ספק SoC.
- שכבת על DT . התצורות הספציפיות למכשיר, מסופקות על ידי ODM/OEM.
לאחר חלוקת עצי המכשיר, עליך לוודא תאימות בין DT ראשי ל-Overlay DT כך שמיזוג DT ראשי ו-Overlay DT יביא ל-DT שלם עבור המכשיר. לפרטים על פורמט וכללים של DTO, ראה תחביר DTO . לפרטים על עצי מכשירים מרובים, ראה מספר DTs .
בניית DTs ראשי & שכבת על
כדי לבנות את ה-DT הראשי:
- קומפלט ראשי DT
.dts
לקובץ.dtb
. - קובץ Flash
.dtb
למחיצה נגישה לזמן ריצה של טוען האתחול (מפורט להלן).
כדי לבנות את שכבת העל DT:
- הידור שכבת-על DT
.dts
לקובץ.dtbo
. בעוד שפורמט קובץ זה זהה לקובץ.dtb
המעוצב כעץ התקן שטוח, סיומת הקובץ השונה מבדילה אותו מה-DT הראשי. - קובץ Flash
.dtbo
לתוך מחיצה נגישה לזמן ריצה של טוען האתחול (כמפורט להלן).
לפרטים על קומפילציה עם DTC ואימות תוצאות DTO על המארח, ראה קומפילציה ואימות .
מחיצות DTs
קבע מיקום נגיש ואמין של טוען האתחול בזיכרון הפלאש כדי לשים את .dtb
ו- .dtbo
.
מיקומים לדוגמה עבור ה-DT הראשי:
- חלק ממחיצת האתחול, מצורף לקרנל (
image.gz
). - הפרד כתמי DT (
.dtb
) במחיצה ייעודית (dtb
).
מיקומים לדוגמה עבור שכבת העל DT:
מחיצה ייחודית |
---|
מחיצת ODM |
---|
.dtbo
למחיצת odm
(עשה זאת רק אם למטען האתחול שלך יש יכולת לטעון נתונים ממערכת הקבצים של מחיצת odm
).הערה: גודל מחיצת DT שכבת העל תלוי במכשיר ובכמות השינויים הדרושים על גבי ה-DT הראשי. בדרך כלל, 8 מגה-בייט זה יותר ממספיק ומאפשרים מקום לגדול בעתיד במידת הצורך.
עבור מכשירים התומכים בעדכונים חלקים (A/B) , A/B המחיצות הראשיות של DT ושל שכבת DT:
דוגמה 1 |
---|
דוגמה 2 |
---|
פועל ב-bootloader
לרוץ:
- טען
.dtb
מאחסון לזיכרון. - טען
.dtbo
מהאחסון לזיכרון. - שכבת
.dtb
עם.dtbo
כדי להיות DT ממוזג. - גרעין התחל בהינתן כתובת הזיכרון של ה-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
).
לפרטים, ראה אתחול מאומת .