پوشش درختی دستگاه

درخت دستگاه (DT) یک ساختار داده از گره‌های نامگذاری شده و ویژگی‌هایی است که سخت‌افزار غیرقابل کشف را توصیف می‌کند. هسته‌ها، مانند هسته لینوکس مورد استفاده در اندروید، از DTها برای پشتیبانی از طیف گسترده‌ای از پیکربندی‌های سخت‌افزاری مورد استفاده توسط دستگاه‌های مبتنی بر اندروید استفاده می‌کنند. فروشندگان سخت‌افزار، فایل‌های منبع درخت دستگاه (DTS) خود را ارائه می‌دهند که با استفاده از کامپایلر درخت دستگاه، در فایل حباب درخت دستگاه (DTB) کامپایل می‌شوند. سپس این فایل‌ها توسط بوت لودر استفاده می‌شوند. فایل DTB حاوی یک درخت دستگاه مسطح با فرمت دودویی است.

یک همپوشانی درخت دستگاه (DTO) امکان همپوشانی یک DTB مرکزی را روی DT (یک لکه درخت دستگاه برای همپوشانی (DTBO) ) فراهم می‌کند. یک بوت لودر با استفاده از DTO می‌تواند DT سیستم روی تراشه (SoC) را حفظ کند و به صورت پویا یک DT مخصوص دستگاه را همپوشانی کند، گره‌هایی را به درخت اضافه کند و تغییراتی در ویژگی‌های درخت موجود ایجاد کند.

به‌روزرسانی‌ها در نسخه اندروید ۹

در اندروید ۹، بوت‌لودر نباید ویژگی‌های تعریف‌شده در DTOها را قبل از ارسال DTB یکپارچه به هسته تغییر دهد.

بارگذاری یک DT

بارگذاری یک DT در بوت لودر شامل ساخت، پارتیشن‌بندی و اجرا می‌شود.

شکل ۱. پیاده‌سازی معمول برای بارگذاری درخت دستگاه در بوت‌لودر.

  1. برای ایجاد و فلش کردن DTB:

    ۱الف. از DTC ( dtc ) برای کامپایل DTS ( .dts ) به DTB ( .dtb ) استفاده کنید. DTB به صورت یک DT مسطح قالب‌بندی می‌شود. ۱ب. فایل .dtb را در مکانی که توسط بوت‌لودر در زمان اجرا قابل دسترسی باشد (در زیر توضیح داده شده است) فلش کنید.

  2. برای پارتیشن‌بندی، یک مکان قابل اعتماد و قابل دسترسی در زمان اجرا توسط بوت‌لودر در حافظه فلش برای قرار دادن فایل .dtb تعیین کنید. مکان‌های نمونه:

    شکل ۲. قرار دادن فایل .dtb در پارتیشن بوت توسط
    به image.gz اضافه می‌شود و به صورت زیر ارسال می‌شود
    "هسته" به mkbootimg.

    شکل ۳. قرار دادن فایل .dtb در یک پارتیشن منحصر به فرد
    (برای مثال، پارتیشن dtb).

  3. برای بارگذاری DTB و شروع هسته:

    • فایل .dtb ‎ را از حافظه به حافظه بارگذاری می‌کند.
    • هسته را با استفاده از آدرس حافظه DT بارگذاری شده شروع کنید.

بعدش چی؟

این صفحه جزئیات یک گردش کار معمول بوت‌لودر برای بارگذاری یک DT را شرح می‌دهد و فهرستی از اصطلاحات رایج DT را ارائه می‌دهد. سایر صفحات این بخش نحوه پیاده‌سازی پشتیبانی بوت‌لودر ، نحوه کامپایل ، تأیید و بهینه‌سازی DTO و نحوه استفاده از چندین DT را شرح می‌دهند. همچنین می‌توانید جزئیاتی در مورد سینتکس DTO و قالب‌بندی پارتیشن‌های DTO و DTBO مورد نیاز دریافت کنید.