修改板驱动程序

大多数系统芯片 (SoC) 板都依赖于明确枚举的硬件资源,而不是工作站、服务器或笔记本电脑上常见的 ACPI 等发现机制。 有关示例,请参阅 display-engine.cc。大多数设备需要结合使用以下各项:

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

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

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