From abbffe55ddded36d2a4d0eee6e96c742eaffbbd2 Mon Sep 17 00:00:00 2001
From: Mathew McBride <matt@traverse.com.au>
Date: Tue, 18 Apr 2023 03:34:23 +0000
Subject: [PATCH] armvirt: package and select Rockchip DWMAC Ethernet driver

For devices that implement the "rockchip,*-gmac" compatible controller,
including:
- RK3328
- RK3399
- RK3568
- RK3588
- PX30

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 target/linux/armvirt/image/Makefile |  4 ++--
 target/linux/armvirt/modules.mk     | 11 +++++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/target/linux/armvirt/image/Makefile b/target/linux/armvirt/image/Makefile
index 533a17b5229..8642c88a499 100644
--- a/target/linux/armvirt/image/Makefile
+++ b/target/linux/armvirt/image/Makefile
@@ -109,8 +109,8 @@ define Device/generic
 	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-thunderx-net \
-	kmod-dwmac-sun8i kmod-phy-aquantia kmod-phy-broadcom kmod-phy-marvell \
-	kmod-sfp kmod-phy-marvell-10g kmod-atlantic
+	kmod-dwmac-rockchip kmod-dwmac-sun8i kmod-phy-aquantia kmod-phy-broadcom \
+	kmod-phy-marvell kmod-phy-marvell-10g kmod-sfp kmod-atlantic
 endef
 TARGET_DEVICES += generic
 
diff --git a/target/linux/armvirt/modules.mk b/target/linux/armvirt/modules.mk
index 5c863824d37..c59301aae7e 100644
--- a/target/linux/armvirt/modules.mk
+++ b/target/linux/armvirt/modules.mk
@@ -245,6 +245,17 @@ endef
 
 $(eval $(call KernelPackage,dwmac-sun8i))
 
+define KernelPackage/dwmac-rockchip
+  SUBMENU=$(NETWORK_DEVICES_MENU)
+  TITLE:=Rockchip RK3328/RK3399/RK3568 Ethernet
+  DEPENDS:=+kmod-stmmac-core +kmod-mdio-bus-mux
+  KCONFIG:=CONFIG_DWMAC_ROCKCHIP
+  FILES=$(LINUX_DIR)/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.ko
+  AUTOLOAD=$(call AutoLoad,45,dwmac-rk)
+endef
+
+$(eval $(call KernelPackage,dwmac-rockchip))
+
 define KernelPackage/thunderx-net
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=Marvell (Cavium) ThunderX/2 network drivers