linux-firmware: add Intel CPU-integrated GPU (iGPU) firmware
authorJohannes Truschnigg <johannes@truschnigg.info>
Sun, 4 Aug 2024 19:21:13 +0000 (21:21 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 24 Aug 2024 12:46:28 +0000 (14:46 +0200)
On latest Intel x86 CPUs, DMC firmware is required for the iGPU to reach
its lowest power states. If the driver cannot load it, it will print a
warning and unnecessarily make the iGPU draw a bit more power when idle.

GUC firmware (various "offload" mechanisms that deal with scheduling GPU
workloads) and HUC firmware (required for accelerated media codec
operations for HEVC/H.265) are probably more niche, but could also
provde useful for some - for example, when building an
Intel/OpenWrt-based security camera.

Signed-off-by: Johannes Truschnigg <johannes@truschnigg.info>
Link: https://github.com/openwrt/openwrt/pull/16069
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
package/firmware/linux-firmware/intel.mk

index f6acb45d4817f5b6a6fcd58c7175bc24d7289056..b686a4caf8a7481709871f1dba8880b3a56af225 100644 (file)
@@ -215,3 +215,30 @@ define Package/e100-firmware/install
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/e100/d102e_ucode.bin $(1)/lib/firmware/e100/
 endef
 $(eval $(call BuildPackage,e100-firmware))
+
+Package/intel-igpu-firmware-dmc = $(call Package/firmware-default,Intel iGPU DMC Display MC firmware)
+define Package/intel-igpu-firmware-dmc/install
+       $(INSTALL_DIR) $(1)/lib/firmware/i915
+       $(CP) \
+               $(PKG_BUILD_DIR)/i915/*_dmc_*.bin* \
+               $(1)/lib/firmware/i915/
+endef
+$(eval $(call BuildPackage,intel-igpu-firmware-dmc))
+
+Package/intel-igpu-firmware-guc = $(call Package/firmware-default,Intel iGPU GUC Graphics MC firmware)
+define Package/intel-igpu-firmware-guc/install
+       $(INSTALL_DIR) $(1)/lib/firmware/i915
+       $(CP) \
+               $(PKG_BUILD_DIR)/i915/*_guc_*.bin* \
+               $(1)/lib/firmware/i915/
+endef
+$(eval $(call BuildPackage,intel-igpu-firmware-guc))
+
+Package/intel-igpu-firmware-huc = $(call Package/firmware-default,Intel iGPU HUC H.265 MC firmware)
+define Package/intel-igpu-firmware-huc/install
+       $(INSTALL_DIR) $(1)/lib/firmware/i915
+       $(CP) \
+               $(PKG_BUILD_DIR)/i915/*_huc_*.bin* \
+               $(1)/lib/firmware/i915/
+endef
+$(eval $(call BuildPackage,intel-igpu-firmware-huc))