[openwrt/openwrt] firmware: add package for Intel VPU/NPU firmware

LEDE Commits lede-commits at lists.infradead.org
Thu May 15 01:09:44 PDT 2025


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/bcda3b66fa83619316614957d10cfa3eb5a38527

commit bcda3b66fa83619316614957d10cfa3eb5a38527
Author: Joe Zheng <joe.zheng at intel.com>
AuthorDate: Sat Feb 8 01:18:03 2025 +0000

    firmware: add package for Intel VPU/NPU firmware
    
    Intel NPU device is an AI inference accelerator integrated with Intel
    client CPUs, starting from Intel Core Ultra generation of CPUs
    (formerly known as Meteor Lake). It enables energy-efficient execution
    of artificial neural network tasks.
    
    The full device name is Neural Processing Unit, but the Linux kernel
    driver uses the older name - Versatile Processing Unit (VPU).
    
    This package is for NPU/VPU firmware.
    
    Details in https://github.com/intel/linux-npu-driver
    
    Intel VPU firmware is now part of linux-firmware.
    
    The current FW file names in linux-firmware do not match intel vpu
    driver, create links to fix it
    
    details in
    https://github.com/torvalds/linux/blob/master/drivers/accel/ivpu/ivpu_fw.c
    
    Signed-off-by: Joe Zheng <joe.zheng at intel.com>
    Link: https://github.com/openwrt/openwrt/pull/17904
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/firmware/linux-firmware/intel.mk | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/package/firmware/linux-firmware/intel.mk b/package/firmware/linux-firmware/intel.mk
index 32e1670149..1ec894e97e 100644
--- a/package/firmware/linux-firmware/intel.mk
+++ b/package/firmware/linux-firmware/intel.mk
@@ -279,3 +279,15 @@ define Package/i915-firmware-gsc/install
 	done
 endef
 $(eval $(call BuildPackage,i915-firmware-gsc))
+
+Package/ivpu-firmware = $(call Package/firmware-default,Intel VPU firmware,,LICENSE.intel_vpu)
+define Package/ivpu-firmware/install
+	$(INSTALL_DIR) $(1)/lib/firmware/intel/vpu
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/intel/vpu/*.bin $(1)/lib/firmware/intel/vpu
+	for t in `cd $(1)/lib/firmware/intel/vpu && ls vpu_*.bin | cut -d. -f1 | cut -d_ -f2 | sort | uniq`; do \
+	  source=`cd $(1)/lib/firmware && ls intel/vpu/vpu_$$$${t}_v*.bin | sort | tail -n1`;                   \
+	  target=$(1)/lib/firmware/vpu_$$$${t}.bin;                                                             \
+	  if [ -n "$$$$source" ]; then ln -sf $$$$source $$$$target; fi                                         \
+	done
+endef
+$(eval $(call BuildPackage,ivpu-firmware))




More information about the lede-commits mailing list