@@ -222,6 +222,26 @@ Notes:
NOTE: this variable must be set before any include/require in the
machine configuration file
+ Neural Processing Unit (NPU)
+
+ The Aarch64 RK35xx SoCs have a Neural Processing Unit (NPU) available.
+ It is typically named by Rockchip as RKNPU/RKNN but upstream has decided
+ to use Rocket instead. At the time of writing (Linux kernel v7.0), only
+ RK3588's NPU is supported upstream.
+
+ This NPU is an AI hardware-accelerator. You can enable its support by
+ setting:
+
+ ENABLE_UPSTREAM_RKNPU = "1"
+
+ This requires a kernel driver (CONFIG_DRM_ACCEL_ROCKET, v6.18+) and
+ RKNN Device Tree nodes
+ (e.g. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=640366d644b1e282771a09c72be37162b6eda438).
+ The mesa userspace driver (rocket gallium driver) and teflon delegate
+ are automatically compiled when this option is enabled. You need to add
+ the libteflon package to your image to be able to use the teflon
+ delegate.
+
U-Boot Environment:
------------------
In order to configure U-Boot to be able to store its environment into the
@@ -10,5 +10,9 @@ MALI_DRIVER:rk3308 = ""
PACKAGECONFIG:append:rockchip = " ${@bb.utils.filter('MALI_DRIVER', 'lima panfrost', d)}"
PACKAGECONFIG:append:rockchip = "${@bb.utils.contains('MALI_DRIVER', 'panfrost', ' libclc', '', d)}"
+# Enable teflon for upstream RKNPU/rocket support
+# Requires CONFIG_DRM_ACCEL_ROCKET in Linux kernel to actually work
+PACKAGECONFIG:append:rk3588s = "${@oe.utils.vartrue('ENABLE_UPSTREAM_RKNPU', ' teflon rocket', '', d)}"
+
# Mali Gen10 (Valhall, supported by Panthor) requires a firmware blob
RRECOMMENDS:mesa-megadriver:append:rk3588s = " linux-firmware-mali-csffw-arch108"
@@ -36,3 +36,4 @@ SRC_URI:append:nanopi-r4s = " file://realtek-r8169.cfg"
KERNEL_FEATURES:append:rockchip:arm = " bsp/rockchip/remove-non-rockchip-arch-arm.scc"
KERNEL_FEATURES:append:rockchip:aarch64 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
+KERNEL_FEATURES:append:rockchip = "${@oe.utils.vartrue('ENABLE_UPSTREAM_RKNPU', ' bsp/rockchip/rocket-npu.scc', '', d)}"
new file mode 100644
@@ -0,0 +1,2 @@
+CONFIG_DRM_ACCEL=y
+CONFIG_DRM_ACCEL_ROCKET=y
new file mode 100644
@@ -0,0 +1 @@
+kconf hardware rocket-npu.cfg