از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
از چندین DT استفاده کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
بسیاری از فروشندگان SoC و ODM از استفاده از چندین درخت دستگاه (DTs) در یک دستگاه پشتیبانی میکنند و یک تصویر را قادر میسازد تا چندین SKU یا پیکربندی را تامین کند. در چنین مواردی، بوت لودر سخت افزار را شناسایی می کند و DT مربوطه را در زمان اجرا بارگذاری می کند:

شکل 1. پوشش درختی چند دستگاه (DTOs) در بوت لودر.
توجه: استفاده از چندین DT اجباری نیست.
راه اندازی کنید
برای افزودن پشتیبانی از چندین DT به مدل DTO، لیستی از DTهای اصلی و لیست دیگری از DTهای همپوشانی را تنظیم کنید.

شکل 2. اجرای DTO در زمان اجرا برای چندین DT.
بوت لودر باید بتواند:
- شناسه SoC را بخوانید و DT اصلی مربوطه را انتخاب کنید.
- شناسه برد را بخوانید و مجموعه DTهای همپوشانی را بر اساس آن انتخاب کنید.
فقط یک DT اصلی باید برای استفاده در زمان اجرا انتخاب شود. ممکن است DTهای چندگانه همپوشانی انتخاب شوند اما باید با DT اصلی انتخاب شده سازگار باشند. استفاده از همپوشانی های متعدد می تواند به جلوگیری از ذخیره یک پوشش در هر برد در پارتیشن DTBO کمک کند و بوت لودر را قادر می سازد تا زیرمجموعه همپوشانی های مورد نیاز را بر اساس شناسه برد (یا احتمالاً با بررسی تجهیزات جانبی) تعیین کند. به عنوان مثال، تخته A ممکن است به دستگاه هایی نیاز داشته باشد که توسط پوشش های 1، 3 و 5 اضافه شده اند، در حالی که تخته B ممکن است به دستگاه های اضافه شده توسط پوشش های 1، 4 و 5 نیاز داشته باشد.
پارتیشن
برای پارتیشن بندی، یک مکان قابل دسترسی و قابل اعتماد بوت لودر در حافظه فلش برای ذخیره DTB و DTBO تعیین کنید (بوت لودر باید بتواند این فایل ها را در فرآیند تطبیق پیدا کند). به خاطر داشته باشید که DTB و DTBO نمی توانند در یک پارتیشن وجود داشته باشند. اگر DTB/DTBO های شما در پارتیشن dtb
/ dtbo
هستند، از ساختار جدول و قالب هدر که در قالب پارتیشن DTB و DTBO توضیح داده شده است استفاده کنید.
در بوت لودر اجرا شود
برای اجرا:
- SoC را شناسایی کنید و .dtb مربوطه را از ذخیره سازی در حافظه بارگذاری کنید.
- برد را شناسایی کرده و
.dtbo
مربوطه را از ذخیره سازی در حافظه بارگذاری کنید. -
.dtb
با .dtbo
قرار دهید تا یک DT ادغام شده باشد. - با توجه به آدرس حافظه DT ادغام شده، هسته را شروع کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Use multiple DTs\n\nMany SoC vendors and ODMs support the use of multiple device trees (DTs) on a device,\nenabling one image to power multiple SKUs or configurations. In such cases, the\nbootloader identifies the hardware and loads the corresponding DT at runtime:\n\n**Figure 1.** Multiple device tree overlays (DTOs) in bootloader.\n\n**Note:** Using multiple DTs isn't mandatory.\n\nSet up\n------\n\nTo add support for multiple DTs to the DTO model, set up a list of main DTs\nand another list of overlay DTs.\n\n**Figure 2.** Runtime DTO implementation for multiple DTs.\n\nThe bootloader should be able to:\n\n- Read the SoC ID and select the corresponding main DT.\n- Read the board ID and select the set of overlay DTs accordingly.\n\nOnly one main DT should be selected for use at runtime. Multiple overlay DTs\nmay be selected but they must be compatible with the chosen main DT. Using\nmultiple overlays can help avoid storing one overlay per board within the DTBO\npartition and enable the bootloader to determine the subset of required overlays\nbased on the board ID (or possibly by probing the peripherals). For\nexample, Board A may need the devices added by the overlays 1, 3, and 5 while\nBoard B may need the devices added by the overlays 1, 4, and 5.\n\nPartition\n---------\n\nTo partition, determine a bootloader runtime-accessible and trusted location\nin flash memory to store the DTBs and DTBOs (bootloader must be able to locate\nthese files in the matching process). Keep in mind that DTBs and DTBOs cann't\nexist in the same partition. If your DTBs/DTBOs are in the\n`dtb`/`dtbo` partition, use the table structure and header\nformat detailed in [DTB and DTBO\npartition format](/docs/core/architecture/dto/partitions).\n\nRun in bootloader\n-----------------\n\nTo run:\n\n1. **Identify the SoC** and load the corresponding .dtb from storage into memory.\n2. **Identify the board** and load the corresponding `.dtbo` from storage into memory.\n3. Overlay the `.dtb` with the `.dtbo` to be a merged DT.\n4. Start kernel given the memory address of the merged DT."]]