From: Mathew McBride <matt@traverse.com.au>
Date: Sat, 11 Feb 2023 03:58:09 +0000 (+0000)
Subject: armvirt: 64: add Marvell (formerly Cavium) ThunderX series network driver
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=a86b74cbfea33814fb78946d75e73b7fdb496e43;p=openwrt%2Fstaging%2Fjow.git

armvirt: 64: add Marvell (formerly Cavium) ThunderX series network driver

Based on working configuration supplied by Anton Antonov.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
(cherry picked from commit 5d2a5f739840caa6e72b5c907d355f6aaca227d4)
---

diff --git a/target/linux/armvirt/image/Makefile b/target/linux/armvirt/image/Makefile
index 693ae38c08..928ee3ce85 100644
--- a/target/linux/armvirt/image/Makefile
+++ b/target/linux/armvirt/image/Makefile
@@ -108,8 +108,8 @@ define Device/generic
   DEVICE_PACKAGES += kmod-amazon-ena kmod-e1000e kmod-vmxnet3 kmod-rtc-rx8025 \
 	kmod-i2c-mux-pca954x kmod-gpio-pca953x partx-utils kmod-wdt-sp805 \
 	kmod-mvneta kmod-mvpp2 kmod-fsl-dpaa1-net kmod-fsl-dpaa2-net \
-	kmod-fsl-enetc-net kmod-dwmac-imx kmod-fsl-fec \
-	kmod-phy-aquantia kmod-phy-broadcom kmod-phy-marvell \
+	kmod-fsl-enetc-net kmod-dwmac-imx kmod-fsl-fec kmod-thunderx-net \
+	kmod-phy-aquantia kmod-phy-broadcom kmod-phy-marvell
 	kmod-phy-marvell-10g kmod-atlantic
 endef
 TARGET_DEVICES += generic
diff --git a/target/linux/armvirt/modules.mk b/target/linux/armvirt/modules.mk
index 1750fe73d7..e9555f0184 100644
--- a/target/linux/armvirt/modules.mk
+++ b/target/linux/armvirt/modules.mk
@@ -233,6 +233,24 @@ endef
 
 $(eval $(call KernelPackage,dwmac-imx))
 
+define KernelPackage/thunderx-net
+  SUBMENU:=$(NETWORK_DEVICES_MENU)
+  TITLE:=Marvell (Cavium) ThunderX/2 network drivers
+  DEPENDS:=@(TARGET_armvirt_64) +kmod-phylink
+  KCONFIG:=CONFIG_NET_VENDOR_CAVIUM \
+    CONFIG_THUNDER_NIC_PF \
+    CONFIG_THUNDER_NIC_VF \
+    CONFIG_THUNDER_NIC_BGX \
+    CONFIG_THUNDER_NIC_RGX
+  FILES=$(LINUX_DIR)/drivers/net/ethernet/cavium/thunder/nicvf.ko \
+    $(LINUX_DIR)/drivers/net/ethernet/cavium/thunder/nicpf.ko \
+    $(LINUX_DIR)/drivers/net/ethernet/cavium/thunder/thunder_xcv.ko \
+    $(LINUX_DIR)/drivers/net/ethernet/cavium/thunder/thunder_bgx.ko
+  AUTOLOAD=$(call AutoLoad,40,nicpf nicvf thunder_xcv thunder_bgx)
+endef
+
+$(eval $(call KernelPackage,thunderx-net))
+
 define KernelPackage/wdt-sp805
   SUBMENU:=$(OTHER_MENU)
   TITLE:=ARM SP805 Watchdog