ספקים רבים של SoC ו-ODM תומכים בשימוש במספר עצי מכשירים (DT) במכשיר, ומאפשרים לתמוך בתמונה אחת במספר מק"טים או תצורות. במקרים כאלה, bootloader מזהה את החומרה ומטעין את ה-DT התואם בזמן הריצה:
איור 1. שכבות-על מרובות של עץ המכשיר (DTO) בתוכנת האתחול.
הערה: אין חובה להשתמש בכמה טבלאות DT.
הגדרה
כדי להוסיף תמיכה בכמה DTs למודל ה-DTO, צריך להגדיר רשימה של DTs ראשיים ורשימת DTs נוספת של שכבות-על.
איור 2. הטמעת DTO בסביבת זמן ריצה למספר DTs.
מנהל האתחול אמור להיות מסוגל:
- קוראים את מזהה ה-SoC ובוחרים את קובץ ה-DT הראשי התואם.
- קוראים את מזהה הלוח ובוחרים את קבוצת ה-DT של שכבת-העל בהתאם.
צריך לבחור רק DT ראשי אחד לשימוש בזמן הריצה. אפשר לבחור כמה תבניות DT של שכבות-על, אבל הן חייבות להיות תואמות לתבנית ה-DT הראשית שנבחרה. שימוש בכמה שכבות-על יכול לעזור למנוע אחסון של שכבת-על אחת לכל לוח במחיצה של DTBO, ולאפשר למחולל האתחול לקבוע את קבוצת המשנה של שכבות-העל הנדרשות על סמך מזהה הלוח (או אולי על ידי בדיקה של הרכיבים החיצוניים). לדוגמה, לוח א' עשוי להזדקק למכשירים שנוספו על ידי שכבות-העל 1, 3 ו-5, ולוח ב' עשוי להזדקק למכשירים שנוספו על ידי שכבות-העל 1, 4 ו-5.
מחיצה
כדי ליצור מחיצות, צריך לקבוע מיקום מהימן שזמין ל-bootloader במהלך זמן הריצה בזיכרון הפלאש, כדי לאחסן את קובצי ה-DTB ו-DTBO (ה-bootloader צריך להיות מסוגל לאתר את הקבצים האלה בתהליך ההתאמה). חשוב לזכור ש-DTB ו-DTBO לא יכולים להתקיים באותו מחיצה. אם ה-DTB או ה-DTBO נמצאים במחיצה dtb
/dtbo
, צריך להשתמש במבנה הטבלה ובפורמט הכותרת שמפורטים בקטע פורמט המחיצה של DTB ו-DTBO.
הפעלה בתוכנת האתחול
כדי להריץ:
- מזהים את ה-SoC ומטעינים את קובץ ה-dtb .התואם מהאחסון לזיכרון.
- מזהים את הלוח ומטעינים את
.dtbo
התואם מהאחסון לזיכרון. - מיזוג של
.dtb
עם.dtbo
ליצירת DT. - הפעלת הליבה לפי כתובת הזיכרון של ה-DT הממוזג.