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

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

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

การอัปเดตในรุ่น Android 9

ใน Android 9 บูตโหลดเดอร์ต้องไม่แก้ไขพร็อพเพอร์ตี้ที่กําหนดไว้ใน DTO ก่อนที่จะส่ง DTB แบบรวมไปยังเคอร์เนล

โหลด DT

การโหลด DT ใน Bootloader เกี่ยวข้องกับการสร้าง การแบ่งพาร์ติชัน และการทำงาน

รูปที่ 1 การใช้งานทั่วไปสำหรับการโหลดต้นไม้อุปกรณ์ใน Bootloader

  1. วิธีสร้างและแฟลช DTB

    1ก. ใช้ DTC (dtc) เพื่อคอมไพล์ DTS (.dts) เป็น DTB (.dtb) DTB มีรูปแบบเป็น DT ที่แยกเป็นหลายรายการ 1ข. แฟลชไฟล์ .dtb ไปยังตำแหน่งที่เข้าถึงได้ในช่วงรันไทม์ของบูตโหลดเดอร์ (ดูรายละเอียดด้านล่าง)

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

    รูปที่ 2 ใส่ .dtb ในพาร์ติชันการเปิดเครื่องโดย
    ต่อท้าย image.gz แล้วส่งผ่าน
    "kernel" ไปยัง mkbootimg

    รูปที่ 3 ใส่ .dtb ไว้ในพาร์ติชันที่ไม่ซ้ำกัน
    (เช่น พาร์ติชัน dtb)

  3. วิธีโหลด DTB และเริ่มเคอร์เนล

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

สิ่งต่อไปที่ควรทำ

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