اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
استخدام تقارير بيانات التجارة المتعددة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتيح العديد من مورّدي شرائح المعالجة المركزية (SoC) والمصنّعين الأصليين للتصميم (ODM) استخدام عدة أشجار أجهزة (DT) على جهاز واحد،
ما يتيح لصورة واحدة تشغيل عدة رموز تعريف للمنتجات أو إعدادات. في هذه الحالات، يحدِّد بوت لودر الجهاز ويحمِّل DT المقابل في وقت التشغيل:

الشكل 1: تداخلات متعددة لبنية الجهاز (DTO) في برنامج الإقلاع
ملاحظة: ليس من الضروري استخدام جداول بيانات عناوين متعددة.
إعداد
لإضافة إمكانية استخدام بيانات DT متعددة إلى نموذج DTO، عليك إعداد قائمة ببيانات DT الرئيسية
وقائمة أخرى ببيانات DT التي تظهر على سطح البيانات الأساسية.

الشكل 2: تنفيذ DTO في وقت التشغيل لبيانات وصفية متعددة
يجب أن يكون برنامج الإقلاع قادرًا على تنفيذ ما يلي:
- اقرأ رقم تعريف وحدة المعالجة المركزية (SoC) واختَر جدول البيانات الرئيسي المقابل.
- اقرأ رقم تعريف اللوحة واختَر مجموعة ملفات DT للتراكب وفقًا لذلك.
يجب اختيار جدول بيانات رئيسي واحد فقط لاستخدامه أثناء التشغيل. يمكن اختيار تصاميم متعددة للطبقات المتراكبة
، ولكن يجب أن تكون متوافقة مع التصميم الرئيسي المحدّد. يمكن أن يساعد استخدام
تداخلات متعددة في تجنُّب تخزين تداخل واحد لكل لوحة ضمن القسم DTBO
وتمكّن أداة تحميل البرامج من تحديد المجموعة الفرعية من التداخلات المطلوبة
استنادًا إلى رقم تعريف اللوحة (أو ربما من خلال فحص الأجهزة الطرفية). على سبيل المثال، قد تحتاج "اللوحة أ" إلى الأجهزة التي تمت إضافتها من خلال التراكبات 1 و3 و5، في حين قد تحتاج "اللوحة ب" إلى الأجهزة التي تمت إضافتها من خلال التراكبات 1 و4 و5.
قسم
لتقسيم الذاكرة، حدِّد موقعًا موثوقًا يمكن لبرنامج التمهيد الوصول إليه أثناء التشغيل
في ذاكرة الفلاش لتخزين ملفات DTB وDTBO (يجب أن يتمكّن برنامج التمهيد من تحديد موقع
هذه الملفات في عملية المطابقة). يُرجى العِلم أنّه لا يمكن أن تتعايش جداول DTB وDTBO
في القسم نفسه. إذا كانت جداول DTB أو DTBO في القسم
dtb
/dtbo
، استخدِم بنية الجدول وتنسيق العنوان
الموضَّحَين في تنسيق قسم DTB وDTBO.
التشغيل في برنامج الإقلاع
لتنفيذ ذلك:
- حدِّد وحدة المعالجة المركزية (SoC) وحمِّل ملف .dtb المقابل من
وحدة التخزين إلى الذاكرة.
- حدِّد اللوحة وحمِّل
.dtbo
المقابل من وحدة التخزين إلى الذاكرة.
- ضع
.dtb
فوق .dtbo
لإنشاء جدول اطِّلاع دمج.
- بدء تشغيل kernel مع تحديد عنوان الذاكرة الخاص بملف DT المدمج
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]