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

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

Device Tree Overlay (DTO) ช่วยให้สามารถวาง DTB ส่วนกลางซ้อนทับบนแผนผังอุปกรณ์ (Device Tree Blob สำหรับการวางซ้อน (DTBO)) Bootloader ที่ใช้ 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 ไปยังตำแหน่งที่เข้าถึงได้ในรันไทม์ของ Bootloader (รายละเอียดอยู่ด้านล่าง)

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

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

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

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

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

ต้องทำอะไรต่อ

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