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. Nhân, chẳng hạn như nhân Linux được sử dụng trong Android, sử dụng DT để hỗ trợ nhiều loại cấu hình phần cứng được các thiết bị hỗ trợ 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 cách sử dụng Trình biên dịch cây thiết bị . Các tệp 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 định dạng nhị phân .

Lớp phủ cây thiết bị (DTO) cho phép phủ lên cây thiết bị trung tâm (DTB) trê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ủ một 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ó.

ĐTBO Device Tree Blob cho lớp phủ

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

Trong Android 9, bộ tải 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 cho nhân.

Đang tải cây thiết bị

Tải một cây thiết bị trong bộ tải khởi động liên quan đến 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 đốm màu cây thiết bị ( .dtb ). Cây thiết bị blob đượ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 thời gian chạy bộ tải 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 bộ tải khởi động trong bộ nhớ flash để đặt .dtb . Các 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 dưới dạng " kernel " cho mkbootimg .
    Phân vùng duy nhất
    Hình 3. Đặt .dtb trong 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:

    3a. Tải .dtb từ bộ lưu trữ vào bộ nhớ. 3b. 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ộ tải 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 bắt buộc.