summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Zheng2025-02-08 01:18:03 +0000
committerRobert Marko2025-05-15 08:09:40 +0000
commitbcda3b66fa83619316614957d10cfa3eb5a38527 (patch)
treef40a472a1b709a79c2331216823fa930a3444999
parent95341cc9c560ff371c06db2a8221d19bb62d0c30 (diff)
downloadopenwrt-bcda3b66fa83619316614957d10cfa3eb5a38527.tar.gz
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@intel.com> Link: https://github.com/openwrt/openwrt/pull/17904 Signed-off-by: Robert Marko <robimarko@gmail.com>
-rw-r--r--package/firmware/linux-firmware/intel.mk12
1 files changed, 12 insertions, 0 deletions
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))