ixp4xx: Break out mv88e6060 DSA switch to package
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 27 Dec 2024 23:13:37 +0000 (00:13 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 2 Jan 2025 01:30:24 +0000 (02:30 +0100)
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>
package/kernel/linux/modules/netdevices.mk
target/linux/ixp4xx/config-6.6
target/linux/ixp4xx/image/Makefile

index c72bc0e8e633f509a3d7a0839283dc6a5d31a726..097bea7f50df43ac6c7545cb0d635cbc4a7f4f1c 100644 (file)
@@ -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)
index 84a72c8d5caa17411142f6cf4f642fd8feac7608..c0211c940b29cd08a24eab7f2793b93ab0d8aaa7 100644 (file)
@@ -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
index d4b2e5b96271e439e9cecc8c8c38e659d354cfd0..32a16fd1355cf4209421ace1d2366fbeb1b3e4f6 100644 (file)
@@ -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