رونهادهای درخت دستگاه

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

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

به‌روزرسانی‌های نسخه پخش Android 9

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

بار کردن جدول انتقال داده

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

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

  1. برای ایجاد و چشمک زدن DTB:

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

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

    شکل ۲. با
    پیوست کردن به image .gz و ارسال به‌عنوان
    «هسته» به mkbootimg، فایل.dtb را در پارتیشن راه‌اندازی قرار دهید.

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

  3. برای بار کردن DTB و شروع هسته:

    • ‫.dtb را از فضای ذخیره‌سازی در حافظه بار کنید.
    • هسته را بااستفاده از نشانی حافظه DT بارشده شروع کنید.

حالا چه می‌شود؟

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