linux-firmware: rename packages for i915 firmware

Change the package name from intel-igpu-firmware-* to i915-firmware-*,
the prefix "intel-igpu" is misleading, i915 firmware is not only for
iGPU but also for dGPU now.

Remove the redundant "intel" as i915 is already well known.

More accurate file classification to handle following files correctly:

  adlp_dmc.bin
  mtl_huc.bin
  mtl_huc_gsc.bin
  mtl_gsc_1.bin

The pattern in regex is "([[:alnum:]]+)_([[:alnum:]]+)(_[\w-.]+)?\.bin",
where $1 is the platform, $2 is the firmware type (dmc, guc, huc, etc.),
and the optional $3 which is revision or other suffix.

Glob first to narrow down the target file set, and then split with "_"
to extract the firmware type (remove the ".bin" in case there is no $3)

Add package "i915-firmware" as a meta package to install all the i915
firmwares, it is a balance between simplicity and optimization.

* Installing all the available firmwares as a whole, can support all the
  platforms, not only the current one but also the future ones. The
  price to pay is the increased size.
* If we want to minimize the storage, we can customize to install the
  necessary ones only, even for the target platform only (e.g. ADL) and
  skip the others. The price to pay is the time to tune.

What I am going to do is:

* Let drm-i915 driver depend on i915-firmware-dmc, which is small and
  can cover most of the old platforms
* Let the user select i915-firmware to install all the i915 firmwares as
  a whole to cover the latest or future platforms

Signed-off-by: Joe Zheng <joe.zheng@intel.com>
Link: https://github.com/openwrt/openwrt/pull/16276
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit ca00bafd7e)
Link: https://github.com/openwrt/openwrt/pull/17097
Signed-off-by: Petr Štetiar <ynezz@true.cz>
This commit is contained in:
Joe Zheng 2024-09-20 05:57:34 +00:00 committed by Petr Štetiar
parent 77af73050c
commit f59c665660
No known key found for this signature in database
GPG Key ID: 58EE120F30CC02D3

View File

@ -216,29 +216,49 @@ define Package/e100-firmware/install
endef endef
$(eval $(call BuildPackage,e100-firmware)) $(eval $(call BuildPackage,e100-firmware))
Package/intel-igpu-firmware-dmc = $(call Package/firmware-default,Intel iGPU DMC Display MC firmware) i915_deps:=+i915-firmware-dmc +i915-firmware-guc +i915-firmware-huc +i915-firmware-gsc
define Package/intel-igpu-firmware-dmc/install Package/i915-firmware = $(call Package/firmware-default,Intel I915 firmware \(meta package\),$(i915_deps),LICENSE.i915)
$(INSTALL_DIR) $(1)/lib/firmware/i915 define Package/i915-firmware/install
$(CP) \ true
$(PKG_BUILD_DIR)/i915/*_dmc_*.bin* \
$(1)/lib/firmware/i915/
endef endef
$(eval $(call BuildPackage,intel-igpu-firmware-dmc)) $(eval $(call BuildPackage,i915-firmware))
Package/intel-igpu-firmware-guc = $(call Package/firmware-default,Intel iGPU GUC Graphics MC firmware) Package/i915-firmware-dmc = $(call Package/firmware-default,Intel I915 DMC firmware,,LICENSE.i915)
define Package/intel-igpu-firmware-guc/install define Package/i915-firmware-dmc/install
$(INSTALL_DIR) $(1)/lib/firmware/i915 $(INSTALL_DIR) $(1)/lib/firmware/i915
$(CP) \ for f in $(PKG_BUILD_DIR)/i915/*_dmc*.bin; do \
$(PKG_BUILD_DIR)/i915/*_guc_*.bin* \ t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`; \
$(1)/lib/firmware/i915/ if [ "$$$$t" = dmc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
done
endef endef
$(eval $(call BuildPackage,intel-igpu-firmware-guc)) $(eval $(call BuildPackage,i915-firmware-dmc))
Package/intel-igpu-firmware-huc = $(call Package/firmware-default,Intel iGPU HUC H.265 MC firmware) Package/i915-firmware-guc = $(call Package/firmware-default,Intel I915 GUC firmware,,LICENSE.i915)
define Package/intel-igpu-firmware-huc/install define Package/i915-firmware-guc/install
$(INSTALL_DIR) $(1)/lib/firmware/i915 $(INSTALL_DIR) $(1)/lib/firmware/i915
$(CP) \ for f in $(PKG_BUILD_DIR)/i915/*_guc*.bin; do \
$(PKG_BUILD_DIR)/i915/*_huc_*.bin* \ t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`; \
$(1)/lib/firmware/i915/ if [ "$$$$t" = guc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
done
endef endef
$(eval $(call BuildPackage,intel-igpu-firmware-huc)) $(eval $(call BuildPackage,i915-firmware-guc))
Package/i915-firmware-huc = $(call Package/firmware-default,Intel I915 HUC firmware,,LICENSE.i915)
define Package/i915-firmware-huc/install
$(INSTALL_DIR) $(1)/lib/firmware/i915
for f in $(PKG_BUILD_DIR)/i915/*_huc*.bin; do \
t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`; \
if [ "$$$$t" = huc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
done
endef
$(eval $(call BuildPackage,i915-firmware-huc))
Package/i915-firmware-gsc = $(call Package/firmware-default,Intel I915 GSC firmware,,LICENSE.i915)
define Package/i915-firmware-gsc/install
$(INSTALL_DIR) $(1)/lib/firmware/i915
for f in $(PKG_BUILD_DIR)/i915/*_gsc*.bin; do \
t=`echo $$$${f##*/} | cut -d_ -f2 | cut -d. -f1`; \
if [ "$$$$t" = gsc ]; then $(CP) $$$$f $(1)/lib/firmware/i915/; fi \
done
endef
$(eval $(call BuildPackage,i915-firmware-gsc))