导读 | Aspeed BMC已经看到很多主线Linux内核驱动程序活动,从最近的Aspeed视频引擎驱动程序到排队等待Linux 5.2的AST2500 SoC DRM驱动程序,现在也加入了Aspeed P2A CTRL驱动程序。 |
这个Aspeed P2A控制驱动程序由Google开发人员开发,用于处理AST2400/AST2500,支持PCI-to-AHB MMIO桥接器,用于将系统读/写到BMC的物理地址空间,作为发送文件等功能的一部分到BMC。 ASPEED_PTA_CTRL“aspeed-pta-ctrl”驱动程序的500多行代码用于管理此接口。
谷歌的Patrick Venture的驱动程序在Linux 5.2之前被添加到char-misc-next区域。提交说明:
主机可以使用它通过在特定存储器地址处分段数据来发送固件映像,并且与BMC的软件堆栈和内核协同工作,传输字节。
该驱动程序使BMC能够按需解锁PCI桥接器,并通过ioctl进行配置,以允许主机将字节写入约定的位置。在主要用例中,要使用的区域在BMC上是先验已知的,并且主机请求此信息。收到此请求后,BMC的软件堆栈将启用网桥和区域,然后使用某些软件流控制(可能通过IPMI数据包),将字节复制下来。一旦完成该过程,BMC将禁用桥接并取消设置所涉及的任何区域。
此桥接器的默认行为是:启用并且所有区域都标记为读写。此驱动程序将区域设置为只读,然后完全禁用桥接。
受保护的内存区域是:
BMC flash MMIO窗口
系统闪存MMIO窗口
SOC IO(外设MMIO)
DRAM
DRAM区域本身都是DRAM,无法进一步指定。一旦启用了PCI桥接器,主机就可以读取所有DRAM,如果DRAM部分是写入使能的,那么它可以写入所有DRAM。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/125166.html