שכבות-על של עץ המכשיר

עץ מכשירים (DT) הוא מבנה נתונים של צמתים ומאפיינים בעלי שם, שמתארת חומרה שאי אפשר לגלות. ליבה (kernel), כמו ליבה (kernel) של Linux במכשירי Android, צריך להשתמש ב-DT כדי לתמוך במגוון רחב של תצורות חומרה באמצעות מכשירי Android. ספקי חומרה מספקים עץ מכשירים משלהם קובצי מקור (DTS), שעברו הידור בקובץ blob עץ המכשיר (DTB) באמצעות מהדר עץ המכשירים. לאחר מכן הקבצים האלה משמשים את תוכנת אתחול. קובץ ה-DTB מכיל עץ מכשירים שטוח בפורמט בינארי.

שכבת-על של עץ המכשיר (DTO) מאפשר שכבת-על של DTB מרכזי ב-DT (blob של עץ המכשיר לשכבת-על (DTBO)). תוכנת אתחול שמשתמשת ב-DTO יכולה לתחזק את המערכת על שבב (SoC) DT ושכבת-על באופן דינמי DT ספציפי למכשיר, הוספת צמתים לעץ וביצוע שינויים בנכסים בעץ הקיים.

עדכונים בגרסת Android 9

ב-Android 9, אסור לתוכנת האתחול לשנות את מאפיינים שמוגדרים ב-DTO לפני העברת ה-DTB המאוחד לליבה.

טעינת DT

טעינת DT בתוכנת אתחול כוללת בנייה, חלוקה למחיצות והפעלה.

איור 1. הטמעה אופיינית לטעינת עץ מכשירים בתוכנת אתחול.

  1. כדי ליצור את ה-DTB ולהריץ אותו:

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

  2. כדי לבצע חלוקה למחיצה, צריך לקבוע מיקום מהימן עם גישה לזמן ריצה של תוכנת אתחול בזיכרון הפלאש כדי לשמור את .dtb. מיקומים לדוגמה:

    איור 2. יש להזין .dtb במחיצת אתחול על ידי
    צירוף ל-image.gz והעברה בתור
    "kernel" ל-mkbootimg.

    איור 3. צריך להזין .dtb במחיצה ייחודית
    (לדוגמה, מחיצת dtb).

  3. כדי לטעון את ה-DTB ולהפעיל את הליבה:

    • טעינת .dtb מהאחסון לזיכרון.
    • מפעילים את הליבה באמצעות כתובת הזיכרון של ה-DT שנטען.

מה השלב הבא?

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