qca-nss-macsec: add new MACSEC driver

will require DTS update.
--- a/arch/arm64/boot/dts/qcom/ipq8074-nss.dtsi	2024-01-08 16:04:51.957322224 -0500
+++ b/arch/arm64/boot/dts/qcom/ipq8074-nss.dtsi	2024-01-08 16:09:29.079630738 -0500
@@ -268,4 +268,10 @@
 			};
 		};
 	};
+	nss-macsec1 {
+		compatible = "qcom,nss-macsec";
+		phy_addr = <0x1c>;
+		phy_access_mode = <0x00>;
+		mdiobus = <&mdio>;
+	};
 };
This commit is contained in:
Qosmio 2024-01-08 17:47:00 -05:00
parent 5656e7a050
commit a161057d03
2 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,73 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=qca-nss-macsec
PKG_RELEASE:=1
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/nss-macsec
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2023-10-16
PKG_SOURCE_VERSION:=b94e22d8b05dc7b78bdafade1e313ca0bb44c596
PKG_MIRROR_HASH:=ed9f31d771e5a8d4e11331ec1afff0aa1c23839bdbf9f3c2da4721bf773b6b6f
PKG_BUILD_PARALLEL:=1
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
define KernelPackage/qca-nss-macsec
SECTION:=kernel
CATEGORY:=Kernel modules
SUBMENU:=Network Devices
DEPENDS:=@(TARGET_qualcommax||TARGET_ipq60xx) \
+libc
TITLE:=Kernel driver for NSS macsec
FILES:=$(PKG_BUILD_DIR)/qca-nss-macsec.ko
AUTOLOAD:=$(call AutoLoad,52,qca-nss-macsec)
endef
define KernelPackage/qca-nss-macsec/Description
This package contains a MACSEC driver for QCA chipset
endef
QCA_NSS_MACSEC_CONFIG_OPTS+= TOOL_PATH=$(TOOLCHAIN_DIR)/bin/ \
SYS_PATH=$(LINUX_DIR) \
TOOLPREFIX=$(TARGET_CROSS) \
KVER=$(LINUX_VERSION) \
CFLAGS="$(TARGET_CFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
ARCH=$(LINUX_KARCH)
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/qca-nss-macsec
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/include/nss_macsec_types.h $(1)/usr/include/qca-nss-macsec
$(CP) $(PKG_BUILD_DIR)/include/nss_macsec_secy.h $(1)/usr/include/qca-nss-macsec
$(CP) $(PKG_BUILD_DIR)/include/nss_macsec_secy_rx.h $(1)/usr/include/qca-nss-macsec
$(CP) $(PKG_BUILD_DIR)/include/nss_macsec_secy_tx.h $(1)/usr/include/qca-nss-macsec
$(CP) $(PKG_BUILD_DIR)/libfal.so $(1)/usr/lib
endef
ifeq ($(CONFIG_TARGET_SUBTARGET), "ipq807x")
SOC=ipq807x_64
subtarget:=$(CONFIG_TARGET_SUBTARGET)
else ifeq ($(CONFIG_TARGET_BOARD), "ipq60xx")
SOC=ipq60xx_64
subtarget:=$(SUBTARGET)
endif
define Build/Compile
+$(KERNEL_MAKE) \
M="$(PKG_BUILD_DIR)" \
SoC="$(subtarget)" \
modules
+$(MAKE) -C $(PKG_BUILD_DIR) $(strip $(QCA_NSS_MACSEC_CONFIG_OPTS)) -f Makefile.shell
endef
define KernelPackage/qca-nss-macsec/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/*.so $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/macsec_shell $(1)/usr/sbin/
endef
$(eval $(call KernelPackage,qca-nss-macsec))

View File

@ -0,0 +1,19 @@
--- a/nss_macsec_init.c
+++ b/nss_macsec_init.c
@@ -15,6 +15,7 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include "linux/kern_levels.h"
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
@@ -296,7 +297,7 @@ static int nss_macsec_dt_init(uint32_t d
nss_macsec_node = of_find_node_by_name(NULL, dev_name);
if (!nss_macsec_node) {
- printk(KERN_ERR "cannot find nss-macsec%d node\n", dev_id);
+ printk(KERN_DEBUG "cannot find nss-macsec%d node\n", dev_id);
return -ENODEV;
}
printk(KERN_INFO "%s DT exist!\n", dev_name);