Sử dụng nhiều DT

Nhiều nhà cung cấp SoC và ODM hỗ trợ sử dụng nhiều DT trên một thiết bị, cho phép một hình ảnh cung cấp năng lượng cho nhiều SKU/cấu hình. Trong những trường hợp như vậy, bộ nạp khởi động sẽ xác định phần cứng và tải DT tương ứng khi chạy:

Hình 1. Lớp phủ nhiều cây thiết bị trong bộ nạp khởi động.

Lưu ý: Việc sử dụng nhiều DT là không bắt buộc.

Đang cài đặt

Để thêm hỗ trợ cho nhiều DT vào mô hình DTO, hãy thiết lập danh sách các DT chính và một danh sách DT lớp phủ khác.

Hình 2. Triển khai DTO trong thời gian chạy cho nhiều DT.

Bộ nạp khởi động sẽ có thể:

  • Đọc SoC ID và chọn cây thiết bị chính tương ứng, sau đó
  • Đọc ID bảng và chọn bộ cây thiết bị lớp phủ tương ứng.

Chỉ nên chọn một DT chính để sử dụng trong thời gian chạy. Có thể chọn nhiều DT lớp phủ nhưng chúng phải tương thích với DT chính đã chọn. Việc sử dụng nhiều lớp phủ có thể giúp tránh lưu trữ một lớp phủ trên mỗi bảng trong phân vùng DTBO và cho phép bộ nạp khởi động xác định tập hợp con các lớp phủ cần thiết dựa trên ID bảng (hoặc có thể bằng cách thăm dò các thiết bị ngoại vi). Ví dụ: Bảng A có thể cần các thiết bị được thêm bởi các lớp phủ 1, 3 và 5 trong khi Bảng B có thể cần các thiết bị được thêm bởi các lớp phủ 1, 4 và 5.

Phân vùng

Để 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 để lưu trữ DTB và DTBO (bộ nạp khởi động phải có khả năng định vị các tệp này trong quá trình khớp). Hãy nhớ rằng DTB và DTBO không thể tồn tại trong cùng một phân vùng. Nếu DTB/DTBO của bạn nằm trong phân vùng dtb / dtbo , hãy sử dụng cấu trúc bảng và định dạng tiêu đề được nêu chi tiết trong Định dạng phân vùng DTB/DTBO .

Chạy trong bộ nạp khởi động

Chạy:

  1. Xác định SoC và tải .dtb tương ứng từ bộ lưu trữ vào bộ nhớ.
  2. Xác định bảng và tải .dtbo tương ứng từ bộ lưu trữ vào bộ nhớ.
  3. Xếp chồng .dtb với .dtbo để trở thành một DT hợp nhất.
  4. Bắt đầu kernel với địa chỉ bộ nhớ của DT đã hợp nhất.