summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij2024-12-27 23:13:37 +0000
committerLinus Walleij2025-01-02 01:30:24 +0000
commit2456a2fd7f72d6afcee4ac9c2eccb312d0b1d36d (patch)
treee58f00097056a77aba1771dd320fcee6418ef483
parent804bc79ed03edc47fad4e60d42fe66c7070aa514 (diff)
downloadopenwrt-2456a2fd7f72d6afcee4ac9c2eccb312d0b1d36d.tar.gz
ixp4xx: Break out mv88e6060 DSA switch to package
Just one of the devices uses the Marvell MV88E6060 DSA switch so break this out from the generic kernel config and into a package selected only by that single device and probed at boot instead. The big win is from being able to drop the dsa_core (~600KB) kernel module out of the common kernel on devices with no DSA switch. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--package/kernel/linux/modules/netdevices.mk17
-rw-r--r--target/linux/ixp4xx/config-6.63
-rw-r--r--target/linux/ixp4xx/image/Makefile2
3 files changed, 18 insertions, 4 deletions
diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk
index c72bc0e8e6..097bea7f50 100644
--- a/package/kernel/linux/modules/netdevices.mk
+++ b/package/kernel/linux/modules/netdevices.mk
@@ -575,6 +575,23 @@ endef
$(eval $(call KernelPackage,dsa-b53-mdio))
+define KernelPackage/dsa-mv88e6060
+ SUBMENU:=$(NETWORK_DEVICES_MENU)
+ TITLE:=Marvell MV88E6060 DSA Switch
+ DEPENDS:=+kmod-dsa +kmod-phy-marvell
+ KCONFIG:=CONFIG_NET_DSA_TAG_TRAILER \
+ CONFIG_NET_DSA_MV88E6060
+ FILES:= \
+ $(LINUX_DIR)/drivers/net/dsa/mv88e6060.ko \
+ $(LINUX_DIR)/net/dsa/tag_trailer.ko
+ AUTOLOAD:=$(call AutoLoad,41,mv88e6060,1)
+endef
+
+define KernelPackage/dsa-mv88e6060/description
+ Kernel modules for MV88E6060 DSA switches
+endef
+
+$(eval $(call KernelPackage,dsa-mv88e6060))
define KernelPackage/dsa-tag-dsa
SUBMENU:=$(NETWORK_DEVICES_MENU)
diff --git a/target/linux/ixp4xx/config-6.6 b/target/linux/ixp4xx/config-6.6
index 84a72c8d5c..c0211c940b 100644
--- a/target/linux/ixp4xx/config-6.6
+++ b/target/linux/ixp4xx/config-6.6
@@ -168,9 +168,6 @@ CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_KUSER_HELPERS=y
CONFIG_NEED_PER_CPU_KM=y
CONFIG_NET_DEVLINK=y
-CONFIG_NET_DSA=y
-CONFIG_NET_DSA_MV88E6060=y
-CONFIG_NET_DSA_TAG_TRAILER=y
CONFIG_NET_EGRESS=y
CONFIG_NET_INGRESS=y
CONFIG_NET_PTP_CLASSIFY=y
diff --git a/target/linux/ixp4xx/image/Makefile b/target/linux/ixp4xx/image/Makefile
index d4b2e5b962..32a16fd135 100644
--- a/target/linux/ixp4xx/image/Makefile
+++ b/target/linux/ixp4xx/image/Makefile
@@ -144,7 +144,7 @@ define Device/usrobotics_usr8200
DEVICE_VENDOR := USRobotics
DEVICE_MODEL := USR8200
# USB2 is compiled in and needs no package
- DEVICE_PACKAGES := ixp4xx-microcode-ethernet kmod-rtc-r7301 kmod-firewire kmod-firewire-ohci
+ DEVICE_PACKAGES := ixp4xx-microcode-ethernet kmod-rtc-r7301 kmod-firewire kmod-firewire-ohci kmod-dsa-mv88e6060
DEVICE_DTS := intel-ixp42x-usrobotics-usr8200
KERNEL := kernel-bin | append-dtb
IMAGES := kernel.bin rootfs.bin