Lớp phủ cây thiết bị

Cây thiết bị (DT) là cấu trúc dữ liệu gồm các nút và thuộc tính được đặt tên mô tả phần cứng không thể phát hiện được. Hạt nhân, chẳng hạn như hạt nhân Linux được sử dụng trong Android, sử dụng DT để hỗ trợ nhiều cấu hình phần cứng được các thiết bị chạy Android sử dụng. Các nhà cung cấp phần cứng cung cấp các tệp Nguồn cây thiết bị (DTS) của riêng họ, các tệp này được biên dịch thành tệp Blob cây thiết bị (DTB) bằng Trình biên dịch cây thiết bị . Những tập tin này sau đó được sử dụng bởi bộ nạp khởi động. Tệp DTB chứa cây thiết bị phẳng có định dạng nhị phân.

Lớp phủ cây thiết bị (DTO) cho phép blob cây thiết bị trung tâm (DTB) được phủ lên cây thiết bị. Bộ tải khởi động sử dụng DTO có thể duy trì DT hệ thống trên chip (SoC) và tự động phủ lên DT dành riêng cho thiết bị, thêm các nút vào cây và thực hiện các thay đổi đối với các thuộc tính trong cây hiện có.

DTBO Blob cây thiết bị cho lớp phủ

Cập nhật trong bản phát hành Android 9

Trong Android 9, bộ nạp khởi động không được sửa đổi các thuộc tính được xác định trong lớp phủ cây thiết bị trước khi chuyển blob cây thiết bị hợp nhất sang kernel.

Tải cây thiết bị

Tải cây thiết bị trong bootloader bao gồm việc xây dựng, phân vùng và chạy.

Hình 1. Cách triển khai điển hình để tải cây thiết bị trong bộ nạp khởi động.
  1. Để tạo và flash blob cây thiết bị:

    1a. Sử dụng trình biên dịch cây thiết bị ( dtc >) để biên dịch nguồn cây thiết bị ( .dts ) thành blob cây thiết bị ( .dtb ). Blob cây thiết bị được định dạng dưới dạng cây thiết bị phẳng. 1b. Flash tệp .dtb vào vị trí có thể truy cập được trong thời gian chạy của bộ nạp khởi động (chi tiết bên dưới).

  2. Để phân vùng, hãy xác định vị trí đáng tin cậy và có thể truy cập thời gian chạy của bộ nạp khởi động trong bộ nhớ flash để đặt .dtb . Vị trí ví dụ:

    Phân vùng khởi động
    Hình 2. Đặt .dtb vào phân vùng khởi động bằng cách thêm vào image.gz và chuyển " kernel " cho mkbootimg .
    Phân vùng duy nhất
    Hình 3. Đặt .dtb vào một phân vùng duy nhất (ví dụ: phân vùng dtb ).
  3. Để tải blob cây thiết bị và khởi động kernel:

    • Tải .dtb từ bộ lưu trữ vào bộ nhớ.
    • Khởi động kernel bằng địa chỉ bộ nhớ của DT đã tải.

Cái gì tiếp theo?

Trang này nêu chi tiết quy trình làm việc của bộ nạp khởi động điển hình để tải DT và cung cấp danh sách các thuật ngữ DT phổ biến. Các trang khác trong phần này mô tả cách triển khai hỗ trợ bộ nạp khởi động , cách biên dịch , xác minh và tối ưu hóa DTO của bạn cũng như cách sử dụng nhiều DT . Bạn cũng có thể nhận thông tin chi tiết về cú pháp DTOđịnh dạng phân vùng DTO/DTBO được yêu cầu.