תמיכה ב-DTO

שכבת-העל של עץ המכשיר (DTO) נמשכת קיים הטמעות של עץ המכשיר במשטח (FDT) על ידי הפעלה של מרחב משתמש לשינוי נתוני devicetree ראשוניים בליבה (kernel) בזמן הריצה על ידי טוען FDTs נוספים של שכבת-על שמתקנים את הנתונים המקוריים. אין ב-Android מחייבים עדכונים בזמן הריצה של blobs DT ממרחב המשתמשים, אבל במקום זאת מומלץ שהספקים מוסיפים את תיקוני ה-devicetree בתוכנת האתחול בעזרת libfdt או libufdt.

תמיכה ב-Android DTO

התמיכה ב-Android ב-DTO משתנה בהתאם לגרסת Android:

  • ל-Android מגרסה 7.x ומטה אין צורך בתמיכה ב-Devicetree לספק המלצות לגבי האופן שבו ספקים מעבירים blobs DT לליבה (kernel) או איפה הם מאחסנים אותם.
  • מערכת Android 8.x ממליצה על תמיכה ב- devicetree כדי לשמור על לוח חלקי SoC בלבד של הליבה נפרדים.
  • ב-Android מגרסה 9 ואילך נדרש blob של עץ מכשיר מחיצת שכבת-על (DTBO) ויש להחיל לפחות DTO אחד.

דרישות לחלוקה למחיצות (DTO)

רוב מכשירי Android מוסיפים את ה-blob של ה-DT לליבה (kernel) בזמן ה-build, תוכנת האתחול טוען את ה-blob מהליבה. עם זאת, מכיוון ש-blobs DT נחשב לחלק מליבת המערכת על שבב (SoC), ל-Android אין הדרישות ליצירה או לאחסון של אובייקטי DT מסוג DT. מכשירים יכולים לצרף את העברת הנתונים blob לליבה או אחסון ה-blob במחיצה נפרדת; היחיד היא דרישה שתוכנת האתחול תלמד איך ואיפה לטעון את ה-blob של ה-DT מ.

כדי לתמוך ב-DTO, המכשירים צריכים לכלול:

  • מחיצת DTBO אחת לכל תמונת ליבה (kernel) לשכבת-על DT ספציפית ללוח תוכנת האתחול צריכה לדעת איפה ואיך לטעון את ה-DTB הספציפי ל-SoC. גודל המחיצה תלוי במספר השינויים שדרושים כדי לבצע את ה-SoC ליבה (kernel) – בחרו גודל עם מקום לצמיחה לצורך עדכונים עתידיים. בדרך כלל, גודל המחיצה של 8MB הוא גדול מספיק.
  • מחיצות DTO עודכנו עבור A/B מכשירים. הליבה של השחזור זהה לליבה של Android, אבל יש להגדיר מחיצה למכשירי A/B כדי שניתן יהיה לעדכן אותה בחיבור אלחוטי (OTA). גודל המחיצה תלוי במכשיר ובמספר שינויים מעל ה-blob הראשי של ליבת ה-SoC.

דרישות תוכנת אתחול DTO

כדי לתמוך ב-DTO, תוכנת האתחול צריכה:

  • לדעת איך ואיפה (בהתחשב לחריץ האתחול עבור מכשירי A/B) לטעון את blob DT ספציפי ל-SoC בדרך ספציפית לספק (בדרך כלל נשלף מתוך סוף תמונת הליבה, כש-blobs מצורפים לליבה).
  • להבין איך ואיפה לטעון את ה-blob של ה-DT שכבת-העל בקובץ ספציפי לספק בדרך הזו.
  • יש לתקן את ה-blob הראשי של ה-DT בשכבת-העל לפני העברה של המכשיר המשולב עץ לליבה.

לפרטים נוספים על הוספת תמיכה ב-DTO בתוכנת אתחול: שכבות-על של עץ המכשיר.