aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/qca-ssdk
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/qca-ssdk')
-rw-r--r--package/kernel/qca-ssdk/Makefile90
-rw-r--r--package/kernel/qca-ssdk/patches/0003-Revert-qca-ssdk-enable-invoking-fdb-del-function-for.patch30
-rw-r--r--package/kernel/qca-ssdk/patches/101-hsl_phy-add-support-for-detection-PSGMII-PHY-mode.patch25
3 files changed, 145 insertions, 0 deletions
diff --git a/package/kernel/qca-ssdk/Makefile b/package/kernel/qca-ssdk/Makefile
new file mode 100644
index 00000000000..f1fb09c52a2
--- /dev/null
+++ b/package/kernel/qca-ssdk/Makefile
@@ -0,0 +1,90 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qca-ssdk
+PKG_RELEASE:=5
+
+PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-ssdk.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_DATE:=2023-10-04
+PKG_SOURCE_VERSION:=23a5aa4a4d5834da7a07efb58baebfbee91786b0
+PKG_MIRROR_HASH:=9d169ce924a46a4e530031061d3183b92f23c7f46b3106f0b9ba3587846a73ee
+
+PKG_FLAGS:=nonshared
+PKG_BUILD_FLAGS:=no-lto
+
+include $(INCLUDE_DIR)/kernel.mk
+include $(INCLUDE_DIR)/package.mk
+
+define KernelPackage/qca-ssdk
+ SECTION:=kernel
+ CATEGORY:=Kernel modules
+ SUBMENU:=Network Devices
+ TITLE:=Qualcom SSDK switch driver
+ DEPENDS:=@(TARGET_qualcommax)
+ FILES:=$(PKG_BUILD_DIR)/build/bin/qca-ssdk.ko
+ AUTOLOAD:=$(call AutoLoad,30,qca-ssdk)
+endef
+
+define KernelPackage/qca-ssdk/Description
+ Driver for Qualcomm Atheros switches.
+endef
+
+GCC_VERSION=$(shell echo "$(CONFIG_GCC_VERSION)" | sed 's/[^0-9.]*\([0-9.]*\).*/\1/')
+
+LNX_CONFIG_OPTS = LNX_MAKEOPTS='$(KERNEL_MAKEOPTS)' MODULE_TYPE=KSLIB modules
+
+MAKE_FLAGS+= \
+ TARGET_NAME=$(CONFIG_TARGET_NAME) \
+ TOOL_PATH=$(firstword $(TOOLCHAIN_BIN_DIRS)) \
+ SYS_PATH=$(LINUX_DIR) \
+ TOOLPREFIX=$(TARGET_CROSS) \
+ KVER=$(LINUX_VERSION) \
+ ARCH=$(LINUX_KARCH) \
+ TARGET_SUFFIX=$(CONFIG_TARGET_SUFFIX) \
+ GCC_VERSION=$(GCC_VERSION) \
+ EXTRA_CFLAGS=-fno-stack-protector -I$(STAGING_DIR)/usr/include \
+ SoC=$(CONFIG_TARGET_SUBTARGET) \
+ PTP_FEATURE=disable SWCONFIG_FEATURE=disable \
+ ISISC_ENABLE=disable IN_QCA803X_PHY=FALSE \
+ IN_QCA808X_PHY=FALSE IN_MALIBU_PHY=FALSE \
+ $(LNX_CONFIG_OPTS)
+
+ifeq ($(CONFIG_TARGET_SUBTARGET), "ipq807x")
+ MAKE_FLAGS+= CHIP_TYPE=HPPE
+endif
+
+ifeq ($(CONFIG_TARGET_SUBTARGET), "ipq60xx")
+ MAKE_FLAGS+= CHIP_TYPE=CPPE
+endif
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include/qca-ssdk
+ $(INSTALL_DIR) $(1)/usr/include/qca-ssdk/api
+ $(INSTALL_DIR) $(1)/usr/include/qca-ssdk/ref
+ $(INSTALL_DIR) $(1)/usr/include/qca-ssdk/fal
+ $(INSTALL_DIR) $(1)/usr/include/qca-ssdk/sal
+ $(INSTALL_DIR) $(1)/usr/include/qca-ssdk/init
+ $(CP) -rf $(PKG_BUILD_DIR)/include/api/sw_ioctl.h $(1)/usr/include/qca-ssdk/api
+ if [ -f $(PKG_BUILD_DIR)/include/ref/ref_vsi.h ]; then \
+ $(CP) -rf $(PKG_BUILD_DIR)/include/ref/ref_vsi.h $(1)/usr/include/qca-ssdk/ref/; \
+ fi
+ if [ -f $(PKG_BUILD_DIR)/include/ref/ref_fdb.h ]; then \
+ $(CP) -rf $(PKG_BUILD_DIR)/include/ref/ref_fdb.h $(1)/usr/include/qca-ssdk/ref/; \
+ fi
+ if [ -f $(PKG_BUILD_DIR)/include/ref/ref_port_ctrl.h ]; then \
+ $(CP) -rf $(PKG_BUILD_DIR)/include/ref/ref_port_ctrl.h $(1)/usr/include/qca-ssdk/ref/; \
+ fi
+ if [ -f $(PKG_BUILD_DIR)/include/init/ssdk_init.h ]; then \
+ $(CP) -rf $(PKG_BUILD_DIR)/include/init/ssdk_init.h $(1)/usr/include/qca-ssdk/init/; \
+ fi
+ if [ -f $(PKG_BUILD_DIR)/include/init/ssdk_netlink.h ]; then \
+ $(CP) -rf $(PKG_BUILD_DIR)/include/init/ssdk_netlink.h $(1)/usr/include/qca-ssdk/init/; \
+ fi
+ $(CP) -rf $(PKG_BUILD_DIR)/include/fal $(1)/usr/include/qca-ssdk
+ $(CP) -rf $(PKG_BUILD_DIR)/include/common/*.h $(1)/usr/include/qca-ssdk
+ $(CP) -rf $(PKG_BUILD_DIR)/include/sal/os/linux/*.h $(1)/usr/include/qca-ssdk
+ $(CP) -rf $(PKG_BUILD_DIR)/include/sal/os/*.h $(1)/usr/include/qca-ssdk
+
+endef
+
+$(eval $(call KernelPackage,qca-ssdk))
diff --git a/package/kernel/qca-ssdk/patches/0003-Revert-qca-ssdk-enable-invoking-fdb-del-function-for.patch b/package/kernel/qca-ssdk/patches/0003-Revert-qca-ssdk-enable-invoking-fdb-del-function-for.patch
new file mode 100644
index 00000000000..e69edbd3a31
--- /dev/null
+++ b/package/kernel/qca-ssdk/patches/0003-Revert-qca-ssdk-enable-invoking-fdb-del-function-for.patch
@@ -0,0 +1,30 @@
+From 73c0992a36bc13e9bb373f98ba246dfc1e29a393 Mon Sep 17 00:00:00 2001
+From: Robert Marko <robimarko@gmail.com>
+Date: Tue, 7 Nov 2023 14:21:43 +0100
+Subject: [PATCH 3/3] Revert "[qca-ssdk]: enable invoking fdb del function for
+ kernel6.1"
+
+This reverts commit a86765ee6a87145f64344f4872cfe8c5e629dd62.
+
+Upstream kernel does not have this call present at all, we currently
+also dont use it, so revert the commit enabling it.
+
+Signed-off-by: Robert Marko <robimarko@gmail.com>
+---
+ src/ref/ref_acl.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/src/ref/ref_acl.c
++++ b/src/ref/ref_acl.c
+@@ -229,7 +229,11 @@ _ref_acl_mac_entry_create_rule(a_uint32_
+ eth_dev = dev_get_by_name(&init_net, entry->ifname);
+ if (eth_dev)
+ {
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
++ // TODO: replace with corresponding ver
++#else
+ br_fdb_delete_by_netdev(eth_dev, entry->src_mac.uc, 0);
++#endif
+ dev_put(eth_dev);
+ }
+ }
diff --git a/package/kernel/qca-ssdk/patches/101-hsl_phy-add-support-for-detection-PSGMII-PHY-mode.patch b/package/kernel/qca-ssdk/patches/101-hsl_phy-add-support-for-detection-PSGMII-PHY-mode.patch
new file mode 100644
index 00000000000..c27902c4ce1
--- /dev/null
+++ b/package/kernel/qca-ssdk/patches/101-hsl_phy-add-support-for-detection-PSGMII-PHY-mode.patch
@@ -0,0 +1,25 @@
+From e3763fd77e41b2f2495672c6a5898d69892fbf9f Mon Sep 17 00:00:00 2001
+From: Christian Marangi <ansuelsmth@gmail.com>
+Date: Wed, 15 Nov 2023 00:57:41 +0100
+Subject: [PATCH] hsl_phy: add support for detection PSGMII PHY mode
+
+Add support for detection of PSGMII PHY mode to correctly detect qca807x
+PHY upstream driver.
+
+Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
+---
+ src/hsl/phy/hsl_phy.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/src/hsl/phy/hsl_phy.c
++++ b/src/hsl/phy/hsl_phy.c
+@@ -1335,6 +1335,9 @@ hsl_port_phydev_interface_mode_status_ge
+ case PHY_INTERFACE_MODE_10GKR:
+ *interface_mode_status = PORT_10GBASE_R;
+ break;
++ case PHY_INTERFACE_MODE_PSGMII:
++ *interface_mode_status = PHY_PSGMII_BASET;
++ break;
+ case PHY_INTERFACE_MODE_QSGMII:
+ *interface_mode_status = PORT_QSGMII;
+ break;