GPU有的子IP的电源管理是可以由FW独立完成,有的是需要FW和Driver配和完成的。比如:Video Codec的Enter/Exit DeepSleep的电源管理工作,一般都是由FW独立完成不需要Driver的参与;比如HBM的电源管理一般需要FW和Driver共同参与。
Driver这边除了可以给用户提供接口(/sys/bus/pci/devices/<BDF>目录下提供)让用户可以根据使用场景来手动调频(此时Driver只是将用户的命令透传配置到硬件)外,Driver这边还可以主动让GPU进入DeepSleep,这其中就要依赖PCIe电源管理机制和Linux提供的RuntimePM core框架,下面主要看这种方式。
Linux PCIe电源管理
硬件背景
PCIe的电源管理半酣ASPM(主动状态电源管理Active State Power Management)和基于软件控制的电源机制(PCI-PM),这里主要介绍软件控制的电源管理。
PCIe总线使用与PCI兼容的PCI-PM管理机制。PCIe的设备扩展配置空间中定义了Power Managem