การซ้อนทับแผนผังอุปกรณ์

โครงสร้างอุปกรณ์ (DT) เป็นโครงสร้างข้อมูลของโหนดที่มีชื่อและคุณสมบัติที่อธิบายถึงฮาร์ดแวร์ที่ไม่สามารถค้นพบได้ เคอร์เนล เช่น เคอร์เนล Linux ที่ใช้ใน Android ใช้ DT เพื่อรองรับการกำหนดค่าฮาร์ดแวร์ที่หลากหลายซึ่งใช้โดยอุปกรณ์ที่ใช้ Android ผู้จำหน่ายฮาร์ดแวร์จัดหาไฟล์ Device Tree Source (DTS) ของตนเอง ซึ่งคอมไพล์เป็นไฟล์ Device Tree Blob (DTB) โดยใช้ Device Tree Compiler จากนั้น bootloader จะใช้ไฟล์เหล่านี้ ไฟล์ DTB มี แผนผังอุปกรณ์แบบแบน ที่จัดรูปแบบไบนารี

การ ซ้อนทับแผนผังอุปกรณ์ (DTO) ทำให้สามารถวางซ้อนทับแผนผังอุปกรณ์ส่วนกลาง (DTB) บนแผนผังอุปกรณ์ได้ bootloader ที่ใช้ DTO สามารถรักษา system-on-chip (SoC) DT และซ้อนทับ DT เฉพาะอุปกรณ์แบบไดนามิก เพิ่มโหนดให้กับทรีและทำการเปลี่ยนแปลงคุณสมบัติในทรีที่มีอยู่

ดี.ที.บี Device Tree Blob สำหรับการซ้อนทับ

การอัปเดตในการเปิดตัว Android 9

ใน Android 9 bootloader ต้องไม่แก้ไขคุณสมบัติที่กำหนดไว้ในการซ้อนทับแผนผังอุปกรณ์ก่อนที่จะส่ง blob แผนผังอุปกรณ์แบบรวมไปยังเคอร์เนล

กำลังโหลดโครงสร้างอุปกรณ์

การโหลดแผนผังอุปกรณ์ใน bootloader เกี่ยวข้องกับการสร้าง การแบ่งพาร์ติชัน และเรียกใช้

รูปที่ 1 การใช้งานทั่วไปสำหรับการโหลดโครงสร้างอุปกรณ์ใน bootloader
  1. วิธีสร้างและแฟลชไดเร็กทอรีบล็อบ:

    1a ใช้คอมไพเลอร์ทรีอุปกรณ์ ( dtc >) เพื่อคอมไพล์ซอร์สทรีอุปกรณ์ ( .dts ) ลงใน blob ทรีอุปกรณ์ ( .dtb ) Blob ของแผนผังอุปกรณ์ถูกจัดรูปแบบเป็นแผนผังอุปกรณ์แบบแบน 1b แฟลชไฟล์ .dtb ลงในตำแหน่งที่รันไทม์เข้าถึง bootloader ได้ (รายละเอียดด้านล่าง)

  2. ในการแบ่งพาร์ติชัน ให้ระบุตำแหน่งที่เข้าถึงได้ของ bootloader และเชื่อถือได้ในหน่วยความจำแฟลชเพื่อใส่ . .dtb ตัวอย่างสถานที่:

    พาร์ติชันสำหรับบูต
    รูปที่ 2 ใส่ .dtb ในพาร์ติชันสำหรับบูตโดยต่อท้าย image.gz และส่งต่อเป็น " kernel " ไปยัง mkbootimg
    พาร์ทิชันที่ไม่ซ้ำกัน
    รูปที่ 3 ใส่ .dtb ในพาร์ติชันเฉพาะ (เช่น พาร์ติชัน dtb )

  3. ในการโหลด blob แผนผังอุปกรณ์และเริ่มต้นเคอร์เนล:

    3ก. โหลด .dtb จากที่เก็บข้อมูลลงในหน่วยความจำ 3ข. เริ่มเคอร์เนลโดยใช้ที่อยู่หน่วยความจำของ DT ที่โหลด

อะไรต่อไป?

หน้านี้มีรายละเอียดเวิร์กโฟลว์ bootloader ทั่วไปสำหรับการโหลด DT และแสดงรายการคำศัพท์ DT ทั่วไป หน้าอื่นๆ ในส่วนนี้อธิบายวิธีการ ใช้การรองรับ bootloader วิธี คอมไพล์ ตรวจสอบ และ เพิ่มประสิทธิภาพ DTO ของคุณ และวิธี ใช้ DT หลายตัว คุณยังสามารถรับรายละเอียดเกี่ยวกับ ไวยากรณ์ DTO และ การจัดรูปแบบพาร์ติชัน DTO/DTBO ที่จำเป็น