From e3512741cde5fba7a3b27bfb366fff4ac996aa61 Mon Sep 17 00:00:00 2001 From: Damien Mascord Date: Tue, 13 Jul 2021 11:30:09 +1000 Subject: [PATCH] mdio-tools: Add package plus kernel module mdio is a low-level Linux debug tool for communicating with devices attached an MDIO bus. It improves on existing tools in this space in a few important ways: MDIO buses are directly addressable. Previous solutions relied on at least one Ethernet PHY on the bus being attached to a net device, which is typically not the case when the device is an Ethernet switch for example. Complex operations can be performed atomically. The old API only supported a single read or write of a single register. mdio sends byte code to the mdio-netlink kernel module that can perform multiple operations, store intermediate values, loop etc. As a result, things like read/mask/write operations and accesses to paged PHYs can be performed safely. Signed-off-by: Damien Mascord --- kernel/mdio-netlink/Makefile | 40 ++++++++++++++++++++++++++++++++++++ net/mdio-tools/Makefile | 38 ++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 kernel/mdio-netlink/Makefile create mode 100644 net/mdio-tools/Makefile diff --git a/kernel/mdio-netlink/Makefile b/kernel/mdio-netlink/Makefile new file mode 100644 index 000000000..b0e134a36 --- /dev/null +++ b/kernel/mdio-netlink/Makefile @@ -0,0 +1,40 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=mdio-netlink +PKG_RELEASE:=1 + +PKG_SOURCE_URL:=https://github.com/wkz/mdio-tools +PKG_SOURCE_PROTO:=git +PKG_SOURCE_DATE:=2021-07-02 +PKG_SOURCE_VERSION:=9f989622c21d5464168a4922542be044f21663b0 +PKG_MIRROR_HASH:=9ae5d920e23a7957a5d5a8c5764969382ce6a174c5c5e7f7841fac0c81bbac75 + +PKG_LICENSE:=GPL-2.0-only +PKG_LICENSE_FILES:=COPYING + +PKG_MAINTAINER:=Damien Mascord + +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/mdio-netlink + SECTION:=kernel + CATEGORY:=Kernel modules + SUBMENU:=Network Support + TITLE:=mdio-netlink Linux MDIO netlink kernel module + KCONFIG:=CONFIG_PHYLIB=y CONFIG_MDIO_BUS=y + URL:=https://github.com/wkz/mdio-tools.git + FILES:=$(PKG_BUILD_DIR)/kernel/mdio-netlink.ko + AUTOLOAD:=$(call AutoProbe,mdio-netlink) +endef + +define KernelPackage/mdio-netlink/description + mdio-netlink Linux MDIO netlink kernel module +endef + +define Build/Compile + $(KERNEL_MAKE) M=$(PKG_BUILD_DIR)/kernel modules +endef + +$(eval $(call KernelPackage,mdio-netlink)) + diff --git a/net/mdio-tools/Makefile b/net/mdio-tools/Makefile new file mode 100644 index 000000000..55e4c3689 --- /dev/null +++ b/net/mdio-tools/Makefile @@ -0,0 +1,38 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=mdio-tools +PKG_RELEASE:=1 + +PKG_SOURCE_URL:=https://github.com/wkz/mdio-tools +PKG_SOURCE_PROTO:=git +PKG_SOURCE_DATE:=2021-07-02 +PKG_SOURCE_VERSION:=9f989622c21d5464168a4922542be044f21663b0 +PKG_MIRROR_HASH:=9ae5d920e23a7957a5d5a8c5764969382ce6a174c5c5e7f7841fac0c81bbac75 + +PKG_FIXUP:=autoreconf + +PKG_LICENSE:=GPL-2.0-only +PKG_LICENSE_FILES:=COPYING + +PKG_MAINTAINER:=Damien Mascord + +include $(INCLUDE_DIR)/package.mk + +define Package/mdio-tools + SECTION:=net + CATEGORY:=Utilities + TITLE:=mdio-tools Linux MDIO register access + URL:=https://github.com/wkz/mdio-tools.git + DEPENDS:=+libmnl +endef + +define Package/mdio-tools/description + mdio-tools Linux MDIO register access +endef + +define Package/mdio-tools/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mdio/mdio $(1)/usr/bin/ +endef + +$(eval $(call BuildPackage,mdio-tools))