Răsfoiți Sursa

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 <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/17904
Signed-off-by: Robert Marko <[email protected]>
Joe Zheng 1 an în urmă
părinte
comite
bcda3b66fa
1 a modificat fișierele cu 12 adăugiri și 0 ștergeri
  1. 12 0
      package/firmware/linux-firmware/intel.mk

+ 12 - 0
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))