Hỗ trợ DTO

Lớp phủ cây thiết bị (DTO) mở rộng việc triển khai Cây thiết bị phẳng (FDT) hiện có bằng cách cho phép không gian người dùng sửa đổi dữ liệu cây thiết bị ban đầu trong nhân trong thời gian chạy bằng cách tải các FDT lớp phủ bổ sung sửa đổi dữ liệu gốc. Android không yêu cầu cập nhật thời gian chạy của các đốm màu DT từ không gian người dùng mà thay vào đó khuyến nghị các nhà cung cấp thêm bản vá devicetree vào bộ tải khởi động với sự trợ giúp của libfdt hoặc libufdt .

Hỗ trợ Android DTO

Hỗ trợ Android cho DTO thay đổi tùy theo bản phát hành Android:

  • Android 7.x trở về trước không yêu cầu hỗ trợ cây thiết bị và không cung cấp đề xuất về cách các nhà cung cấp chuyển các đốm màu DT vào hạt nhân hoặc nơi họ lưu trữ chúng.
  • Android 8.x khuyến nghị hỗ trợ devicetree để tách biệt các phần dành riêng cho bo mạch và chỉ dành cho SoC của hạt nhân.
  • Android 9 trở lên yêu cầu phải có phân vùng lớp phủ blob cây thiết bị (DTBO) và áp dụng ít nhất một DTO.

Yêu cầu phân vùng DTO

Hầu hết các thiết bị Android đều gắn DT blob vào kernel tại thời điểm xây dựng và bộ nạp khởi động sẽ tải blob từ kernel. Tuy nhiên, vì các đốm màu DT được coi là một phần của nhân hệ thống trên chip (SoC) nên Android không có yêu cầu cụ thể nào về cách xây dựng hoặc lưu trữ các đốm màu DT. Các thiết bị có thể nối thêm đốm màu DT vào nhân hoặc lưu trữ đốm màu trong một phân vùng riêng; yêu cầu duy nhất là bộ nạp khởi động biết cách thức và vị trí tải blob DT từ đó.

Để hỗ trợ DTO, thiết bị cần có:

  • Một phân vùng DTBO cho mỗi hình ảnh hạt nhân cho lớp phủ DT dành riêng cho bo mạch và bộ tải khởi động phải biết vị trí và cách tải DTB dành riêng cho SoC. Kích thước phân vùng phụ thuộc vào số lượng thay đổi cần thiết để tạo hạt nhân SoC—chọn kích thước có đủ chỗ để phát triển cho các bản cập nhật trong tương lai; thông thường, kích thước phân vùng 8 MB là quá đủ.
  • Phân vùng DTO được cập nhật cho thiết bị A/B . Nhân khôi phục giống như nhân Android nhưng phân vùng phải được thiết lập cho các thiết bị A/B để có thể cập nhật thông qua các bản cập nhật qua mạng (OTA). Kích thước phân vùng phụ thuộc vào thiết bị và số lượng thay đổi ở trên cùng của hạt nhân DT blob SoC chính.

Yêu cầu về bộ tải khởi động DTO

Để hỗ trợ DTO, bộ nạp khởi động nên:

  • Biết cách thức và vị trí (xem xét khe khởi động cho thiết bị A/B) để tải blob DT dành riêng cho SoC theo cách dành riêng cho nhà cung cấp (thường được trích xuất từ ​​cuối hình ảnh hạt nhân khi các đốm màu được thêm vào hạt nhân).
  • Biết cách thức và vị trí tải lớp phủ DT blob theo cách dành riêng cho nhà cung cấp.
  • Vá khối DT chính bằng lớp phủ trước khi chuyển cây thiết bị kết hợp vào hạt nhân.

Để biết thêm chi tiết về việc thêm hỗ trợ cho DTO trong bộ tải khởi động, hãy xem Lớp phủ cây thiết bị .