ใช้ DT หลายตัว

ผู้จำหน่าย SoC และ ODM หลายรายรองรับการใช้ DT หลายตัวบนอุปกรณ์ ซึ่งช่วยให้อิมเมจเดียวขับเคลื่อน SKU/การกำหนดค่าได้หลายรายการ ในกรณีเช่นนี้ บูตโหลดเดอร์จะระบุฮาร์ดแวร์และโหลด DT ที่เกี่ยวข้องขณะรันไทม์:

รูปที่ 1 แผนผัง อุปกรณ์หลายตัวซ้อนทับกันใน bootloader

หมายเหตุ: ไม่จำเป็นต้องใช้ DT หลายตัว

การตั้งค่า

หากต้องการเพิ่มการรองรับ DT หลายรายการให้กับโมเดล DTO ให้ตั้งค่ารายการ DT หลักและรายการ DT ที่ซ้อนทับอีกรายการหนึ่ง

รูปที่ 2 การใช้งาน Runtime DTO สำหรับ DT หลายตัว

bootloader ควรจะสามารถ:

  • อ่าน SoC ID และเลือกแผนผังอุปกรณ์หลักที่เกี่ยวข้อง และ
  • อ่าน ID บอร์ดและเลือกชุดของแผนผังอุปกรณ์โอเวอร์เลย์ตามลำดับ

ควรเลือก DT หลักเพียงอันเดียวเพื่อใช้ในขณะรันไทม์ สามารถเลือก DT แบบซ้อนทับได้หลายแบบ แต่ต้องเข้ากันได้กับ DT หลักที่เลือก การใช้โอเวอร์เลย์หลายรายการสามารถช่วยหลีกเลี่ยงการจัดเก็บโอเวอร์เลย์หนึ่งรายการต่อบอร์ดภายในพาร์ติชัน DTBO และเปิดใช้งานโปรแกรมโหลดบูตเพื่อกำหนดชุดย่อยของโอเวอร์เลย์ที่ต้องการตาม ID ของบอร์ด (หรืออาจโดยการตรวจสอบอุปกรณ์ต่อพ่วง) ตัวอย่างเช่น บอร์ด A อาจต้องการอุปกรณ์ที่เพิ่มโดยโอเวอร์เลย์ 1, 3 และ 5 ในขณะที่บอร์ด B อาจต้องการอุปกรณ์ที่เพิ่มโดยโอเวอร์เลย์ 1, 4 และ 5

การแบ่งพาร์ติชัน

หากต้องการแบ่งพาร์ติชัน ให้กำหนดตำแหน่งที่เข้าถึงได้แบบรันไทม์ของ Bootloader และตำแหน่งที่เชื่อถือได้ในหน่วยความจำแฟลชเพื่อจัดเก็บ DTB และ DTBO (Bootloader จะต้องสามารถค้นหาไฟล์เหล่านี้ได้ในกระบวนการจับคู่) โปรดทราบว่า DTB และ DTBO ไม่สามารถอยู่ในพาร์ติชันเดียวกันได้ หาก DTB/DTBO ของคุณอยู่ในพาร์ติชัน dtb / dtbo ให้ใช้โครงสร้างตารางและรูปแบบส่วนหัวที่มีรายละเอียดอยู่ใน รูปแบบพาร์ติชัน DTB/DTBO

ทำงานใน bootloader

วิ่ง:

  1. ระบุ SoC และโหลด .dtb ที่เกี่ยวข้องจากที่จัดเก็บข้อมูลลงในหน่วยความจำ
  2. ระบุบอร์ด และโหลด .dtbo ที่เกี่ยวข้องจากที่จัดเก็บข้อมูลลงในหน่วยความจำ
  3. ซ้อนทับ .dtb ด้วย .dtbo เพื่อเป็น DT ที่ผสานกัน
  4. เริ่มเคอร์เนลโดยระบุที่อยู่หน่วยความจำของ DT ที่รวมเข้าด้วยกัน