תמיכה ב-DTO

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

תמיכה ב-DTO של אנדרואיד

תמיכת אנדרואיד עבור DTOs משתנה לפי מהדורת אנדרואיד:

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

דרישות מחיצות DTO

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

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

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

דרישות מאתחול DTO

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

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

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