修改板驱动程序

大多数系统芯片 (SoC) 开发板依赖于明确枚举的硬件资源,而不是工作站、服务器或笔记本电脑上常见的 ACPI 等发现机制。您需要修改板级驱动程序,以公开显示屏驱动程序可以使用的硬件资源。如需查看示例,请参阅 display-engine.cc。大多数设备需要搭配使用以下各项:

  • MMIO 区域
  • 用于 vsync、热插拔事件(通常通过 GPIO)等的 interrupt。例如,AMLogic 显示控制器同时具有 RDMA 引擎和具有各自 interrupt 的捕获接口。
  • BTI,Zircon 的一种基元,用于将虚拟内存固定到物理地址以进行硬件交互。
  • GPIO 引脚,例如用于开启/关闭硬接线的 LCD 面板。
  • 电源资源,用于为控制器开启电源并选择工作电压。
  • I2C 桥接,例如用于控制 DSI 到 HDMI 输出转换器。
  • DSI 访问权限,因为 DSI 支持通常是内核提供的单独驱动程序。
  • Sysmem 堆,以便客户端可以分配可供设备访问的内存。

枚举所有这些资源后,调用 AddComposite将其作为一个单元公开。设备管理器会查找可绑定到此复合设备的驱动程序,并加载相应的显示驱动程序。

此更改是 VIM3 开发板驱动程序修改的完整示例。