aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel
diff options
context:
space:
mode:
authorRobert Marko <robimarko@gmail.com>2023-05-23 14:55:48 +0200
committerChristian Marangi <ansuelsmth@gmail.com>2023-05-23 23:52:58 +0200
commit4a6847ce4e4a8034738484a0ff4cb012fa1b295e (patch)
tree92121d70e450de1983bec682e8c1e488f5edb805 /package/kernel
parent7df43979d102fac7b4f5ca519512c601709aac3b (diff)
downloadupstream-4a6847ce4e4a8034738484a0ff4cb012fa1b295e.tar.gz
upstream-4a6847ce4e4a8034738484a0ff4cb012fa1b295e.tar.bz2
upstream-4a6847ce4e4a8034738484a0ff4cb012fa1b295e.zip
kernel: qca-ssdk: backport support for building as kernel module
Currently, SSDK is rather special in the sense that its not being built as a proper out of tree module at all but rather like a userspace application and that involves a lot of make magic which unfortunately broke with make version 4.4 and newer. Luckily QCA finally added a way to build SSDK as an out of tree module and it uses the kernel buildsystem which makes it compile with make 4.4 as well. So lets backport the support for it and switch to using it. Signed-off-by: Robert Marko <robimarko@gmail.com> (cherry picked from commit 957f1ee85eb243c5c7397b1e3842a3c61a6b852f)
Diffstat (limited to 'package/kernel')
-rw-r--r--package/kernel/qca-ssdk/Makefile6
-rw-r--r--package/kernel/qca-ssdk/patches/0012-qca-ssdk-Support-Linux-Style-Makefile-for-SSDK.patch286
-rw-r--r--package/kernel/qca-ssdk/patches/0013-qca-ssdk-fix-compilation-issue-in-Linux-Style-Makefi.patch27
-rw-r--r--package/kernel/qca-ssdk/patches/0014-qca-ssdk-fix-compilation-issue-in-Miami-yocto.patch23
4 files changed, 340 insertions, 2 deletions
diff --git a/package/kernel/qca-ssdk/Makefile b/package/kernel/qca-ssdk/Makefile
index 62c60fc1be..92f7b66490 100644
--- a/package/kernel/qca-ssdk/Makefile
+++ b/package/kernel/qca-ssdk/Makefile
@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=qca-ssdk
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-ssdk.git
PKG_SOURCE_PROTO:=git
@@ -37,6 +37,8 @@ else
TOOLCHAIN_BIN_PATH=$(TOOLCHAIN_DIR)/bin
endif
+LNX_CONFIG_OPTS = LNX_MAKEOPTS='$(KERNEL_MAKEOPTS)' MODULE_TYPE=KSLIB modules
+
MAKE_FLAGS+= \
TARGET_NAME=$(CONFIG_TARGET_NAME) \
TOOL_PATH=$(TOOLCHAIN_BIN_PATH) \
@@ -47,7 +49,7 @@ MAKE_FLAGS+= \
TARGET_SUFFIX=$(CONFIG_TARGET_SUFFIX) \
GCC_VERSION=$(GCC_VERSION) \
EXTRA_CFLAGS=-fno-stack-protector -I$(STAGING_DIR)/usr/include \
- $(KERNEL_MAKE_FLAGS)
+ $(LNX_CONFIG_OPTS)
ifeq ($(CONFIG_TARGET_BOARD), "ipq807x")
MAKE_FLAGS+= CHIP_TYPE=HPPE PTP_FEATURE=disable SWCONFIG_FEATURE=disable
diff --git a/package/kernel/qca-ssdk/patches/0012-qca-ssdk-Support-Linux-Style-Makefile-for-SSDK.patch b/package/kernel/qca-ssdk/patches/0012-qca-ssdk-Support-Linux-Style-Makefile-for-SSDK.patch
new file mode 100644
index 0000000000..91b7d570d8
--- /dev/null
+++ b/package/kernel/qca-ssdk/patches/0012-qca-ssdk-Support-Linux-Style-Makefile-for-SSDK.patch
@@ -0,0 +1,286 @@
+From edd3d4347cc73a99c7cf59aceeb1e8ad4d4dd303 Mon Sep 17 00:00:00 2001
+From: crao <quic_crao@quicinc.com>
+Date: Tue, 15 Nov 2022 18:50:01 +0800
+Subject: [PATCH] [qca-ssdk]: Support Linux-Style Makefile for SSDK
+
+Change-Id: I8c4399433b6422ef6192f70bf08b0d3023cc94b6
+Signed-off-by: crao <quic_crao@quicinc.com>
+---
+ Makefile | 15 +++++++++++++
+ Makefile.modules | 16 ++++++++++++++
+ make/defs.mk | 1 +
+ make/linux_opt.mk | 54 ++++++++++++++++++++++++++++-------------------
+ make/target.mk | 12 +++++++++++
+ src/api/Makefile | 2 +-
+ 6 files changed, 77 insertions(+), 23 deletions(-)
+ mode change 100755 => 100644 Makefile
+ create mode 100644 Makefile.modules
+ mode change 100755 => 100644 make/defs.mk
+ mode change 100755 => 100644 make/linux_opt.mk
+ mode change 100755 => 100644 make/target.mk
+ mode change 100755 => 100644 src/api/Makefile
+
+--- a/Makefile
++++ b/Makefile
+@@ -12,6 +12,9 @@ include ./make/$(OS)_opt.mk
+ SUB_DIR=$(patsubst %/, %, $(dir $(wildcard src/*/Makefile)))
+ SUB_LIB=$(subst src/, , $(SUB_DIR))
+
++####################################################################
++# SSDK-Style Makefile
++####################################################################
+ all: $(BIN_DIR) kslib
+ mkdir -p ./temp/;cd ./temp;cp ../build/bin/ssdk_ks_km.a ./;ar -x ssdk_ks_km.a; cp ../ko_Makefile ./Makefile;
+ make -C $(SYS_PATH) M=$(PRJ_PATH)/temp/ CROSS_COMPILE=$(TOOLPREFIX) modules
+@@ -20,6 +23,18 @@ all: $(BIN_DIR) kslib
+ rm -Rf ./temp/*.o ./temp/*.ko ./temp/*.a
+ @echo "---Build [SSDK-$(VERSION)] at $(BUILD_DATE) finished."
+
++####################################################################
++# LNX Modules-Style Makefile
++####################################################################
++modules: $(BIN_DIR) kslib_c
++ cp Makefile.modules ./Makefile;
++ make -C $(SYS_PATH) M=$(PRJ_PATH)/ $(LNX_MAKEOPTS) modules
++ cp *.ko build/bin;
++ @echo "---Build [SSDK-$(VERSION)] at $(BUILD_DATE) finished."
++
++kslib_c:
++ $(foreach i, $(SUB_LIB), $(MAKE) MODULE_TYPE=KSLIB -C src/$i src_list_loop || exit 1;)
++
+ kslib:kslib_o
+ $(AR) -r $(BIN_DIR)/$(KS_MOD)_$(RUNMODE).a $(wildcard $(BLD_DIR)/KSLIB/*.o)
+
+--- /dev/null
++++ b/Makefile.modules
+@@ -0,0 +1,16 @@
++####################################################################
++# Add All Local Flags
++####################################################################
++ccflags-y += $(LNX_LOCAL_CFLAGS) -Wno-error
++
++####################################################################
++# Build Object List
++####################################################################
++SRC_LIST := $(shell cat $(PRJ_PATH)/src_list.dep)
++OBJ_LIST := $(patsubst %.c,%.o,$(SRC_LIST))
++
++####################################################################
++# Linux Kernel Module
++####################################################################
++obj-m := qca-ssdk.o
++qca-ssdk-objs := $(OBJ_LIST)
+--- a/make/defs.mk
++++ b/make/defs.mk
+@@ -7,6 +7,7 @@ ifeq (,$(findstring $(LIB), $(COMPONENTS
+ endif
+
+ SRC_FILE=$(addprefix $(PRJ_PATH)/$(LOC_DIR)/, $(SRC_LIST))
++LOC_SRC_FILE=$(addprefix $(LOC_DIR)/, $(SRC_LIST))
+
+ OBJ_LIST=$(SRC_LIST:.c=.o)
+ OBJ_FILE=$(addprefix $(DST_DIR)/, $(OBJ_LIST))
+--- a/make/linux_opt.mk
++++ b/make/linux_opt.mk
+@@ -295,7 +295,7 @@ ifeq (TRUE, $(DEBUG_ON))
+ MODULE_CFLAG += -g
+ endif
+
+-MODULE_CFLAG += $(OPT_FLAG) -Wall -DVERSION=\"$(VERSION)\" -DBUILD_DATE=\"$(BUILD_DATE)\" -DOS=\"$(OS)\" -D"KBUILD_STR(s)=\#s" -D"KBUILD_MODNAME=KBUILD_STR(qca-ssdk)"
++MODULE_CFLAG += $(OPT_FLAG) -Wall -DVERSION=\"$(VERSION)\" -DBUILD_DATE=\"$(BUILD_DATE)\" -DOS=\"$(OS)\" -D"KBUILD_STR(s)=\#s"
+
+ MODULE_INC += -I$(PRJ_PATH)/include \
+ -I$(PRJ_PATH)/include/common \
+@@ -450,7 +450,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ MODULE_CFLAG += -DKVER34
+ MODULE_CFLAG += -DKVER32
+ MODULE_CFLAG += -DLNX26_22
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
+ -I$(SYS_PATH)/include \
+ -I$(SYS_PATH)/source/include \
+@@ -473,7 +473,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ MODULE_CFLAG += -DKVER32
+ MODULE_CFLAG += -DLNX26_22
+ ifeq ($(ARCH), arm64)
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
+ -I$(SYS_PATH)/include \
+ -I$(SYS_PATH)/source \
+@@ -492,13 +492,13 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ -I$(SYS_PATH)/source/include/uapi
+
+ ifneq ($(wildcard $(SYS_PATH)/include/linux/kconfig.h),)
+- MODULE_INC += -include $(SYS_PATH)/include/linux/kconfig.h
++ SYS_INC += -include $(SYS_PATH)/include/linux/kconfig.h
+ else
+- MODULE_INC += -include $(KERNEL_SRC)/include/linux/kconfig.h
++ SYS_INC += -include $(KERNEL_SRC)/include/linux/kconfig.h
+ endif
+
+ else ifeq ($(ARCH), arm)
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
+ -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/7.5.0/include/ \
+ -I$(TOOL_PATH)/../../lib/armv7a-vfp-neon-rdk-linux-gnueabi/gcc/arm-rdk-linux-gnueabi/4.8.4/include/ \
+@@ -522,13 +522,13 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ -I$(TOOL_PATH)/../../lib/arm-rdk-linux-gnueabi/gcc/arm-rdk-linux-gnueabi/9.3.0/include/
+
+ ifneq ($(wildcard $(SYS_PATH)/include/linux/kconfig.h),)
+- MODULE_INC += -include $(SYS_PATH)/include/linux/kconfig.h
++ SYS_INC += -include $(SYS_PATH)/include/linux/kconfig.h
+ else
+- MODULE_INC += -include $(KERNEL_SRC)/include/linux/kconfig.h
++ SYS_INC += -include $(KERNEL_SRC)/include/linux/kconfig.h
+ endif
+
+ else
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
+ -I$(SYS_PATH)/include \
+ -I$(SYS_PATH)/source \
+@@ -564,7 +564,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ MODULE_CFLAG += -DLNX26_22
+ ifeq ($(ARCH), arm64)
+ KCONF_FILE = $(SYS_PATH)/source/include/linux/kconfig.h
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
+ -I$(SYS_PATH)/include \
+ -I$(SYS_PATH)/source/include \
+@@ -581,7 +581,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ -I$(SYS_PATH)/source/arch/arm64/include/asm/mach \
+ -include $(KCONF_FILE)
+ else ifeq ($(ARCH), arm)
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
+ -I$(TOOL_PATH)/../../lib/armv7a-vfp-neon-rdk-linux-gnueabi/gcc/arm-rdk-linux-gnueabi/4.8.4/include/ \
+ -I$(SYS_PATH)/include \
+@@ -604,7 +604,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ MODULE_CFLAG += -DKVER34
+ MODULE_CFLAG += -DKVER32
+ MODULE_CFLAG += -DLNX26_22
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
+ -I$(TOOL_PATH)/../../lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/include/ \
+ -I$(TOOL_PATH)/../../lib/armv7a-vfp-neon-rdk-linux-gnueabi/gcc/arm-rdk-linux-gnueabi/4.8.4/include/ \
+@@ -627,10 +627,10 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ -I$(EXT_PATH) \
+ -I$(SYS_PATH)/source/arch/arm/include/asm/mach
+ ifneq ($(wildcard $(SYS_PATH)/include/linux/kconfig.h),)
+- MODULE_INC += \
++ SYS_INC += \
+ -include $(SYS_PATH)/include/linux/kconfig.h
+ else
+- MODULE_INC += \
++ SYS_INC += \
+ -include $(SYS_PATH)/source/include/linux/kconfig.h
+ endif
+
+@@ -641,7 +641,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ MODULE_CFLAG += -DKVER32
+ MODULE_CFLAG += -DLNX26_22
+ MODULE_CFLAG += -Werror
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(SYS_PATH)/include \
+ -I$(SYS_PATH)/source/include \
+ -I$(SYS_PATH)/source/arch/arm/mach-msm/include \
+@@ -657,7 +657,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ MODULE_CFLAG += -DKVER32
+ MODULE_CFLAG += -DLNX26_22
+ ifeq (mips, $(CPU))
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(SYS_PATH)/include \
+ -I$(SYS_PATH)/arch/mips/include \
+ -I$(SYS_PATH)/arch/mips/include/asm/mach-ar7240 \
+@@ -678,7 +678,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ -O2 -fno-pic -pipe -mabi=32 -march=mips32r2 -DMODULE -mlong-calls -DEXPORT_SYMTAB
+ endif
+ else
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(SYS_PATH)/include \
+ -I$(SYS_PATH)/arch/arm/include \
+ -I$(SYS_PATH)/arch/arm/include/asm \
+@@ -695,7 +695,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ MODULE_CFLAG += -DKVER26
+ MODULE_CFLAG += -DLNX26_22
+ ifeq (mips, $(CPU))
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(SYS_PATH)/include \
+ -I$(SYS_PATH)/arch/mips/include \
+ -I$(SYS_PATH)/arch/mips/include/asm/mach-ar7240 \
+@@ -708,7 +708,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+ -O2 -fno-pic -pipe -mabi=32 -march=mips32r2 -DMODULE -mlong-calls -DEXPORT_SYMTAB
+ endif
+ else
+- MODULE_INC += -I$(SYS_PATH) \
++ SYS_INC += -I$(SYS_PATH) \
+ -I$(SYS_PATH)/include \
+ -I$(SYS_PATH)/arch/arm/include \
+ -I$(SYS_PATH)/arch/arm/include/asm \
+@@ -721,8 +721,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
+
+ endif
+
+- MODULE_CFLAG += -D__KERNEL__ -DKERNEL_MODULE $(CPU_CFLAG)
+-
++ MODULE_CFLAG += -D__KERNEL__ -DKERNEL_MODULE
+
+ endif
+
+@@ -748,4 +747,15 @@ ifneq (TRUE, $(KERNEL_MODE))
+ endif
+ endif
+
+-LOCAL_CFLAGS += $(MODULE_INC) $(MODULE_CFLAG) $(EXTRA_CFLAGS)
++LOCAL_CFLAGS += $(MODULE_INC) $(SYS_INC) $(MODULE_CFLAG) $(EXTRA_CFLAGS)
++
++####################################################################
++# cflags for SSDK-Style Makefile
++####################################################################
++LOCAL_CFLAGS += $(CPU_CFLAG) -D"KBUILD_MODNAME=KBUILD_STR(qca-ssdk)"
++
++####################################################################
++# cflags for LNX Modules-Style Makefile
++####################################################################
++LNX_LOCAL_CFLAGS += $(MODULE_INC) $(MODULE_CFLAG) ${EXTRA_INC}
++export LNX_LOCAL_CFLAGS
+--- a/make/target.mk
++++ b/make/target.mk
+@@ -3,6 +3,18 @@ include $(PRJ_PATH)/make/$(OS)_opt.mk
+
+ include $(PRJ_PATH)/make/tools.mk
+
++####################################################################
++# LNX Modules-Style Makefile
++####################################################################
++src_list_loop: src_list
++ $(foreach i, $(SUB_DIR), $(MAKE) -C $(i) src_list_loop || exit 1;)
++
++src_list:
++ echo -n "$(LOC_SRC_FILE) " >> $(PRJ_PATH)/src_list.dep
++
++####################################################################
++# SSDK-Style Makefile
++####################################################################
+ obj: $(OBJ_LIST)
+ $(OBJ_LOOP)
+
+--- a/src/api/Makefile
++++ b/src/api/Makefile
+@@ -1,4 +1,4 @@
+-LOC_DIR=src/sal
++LOC_DIR=src/api
+ LIB=API
+
+ include $(PRJ_PATH)/make/config.mk
diff --git a/package/kernel/qca-ssdk/patches/0013-qca-ssdk-fix-compilation-issue-in-Linux-Style-Makefi.patch b/package/kernel/qca-ssdk/patches/0013-qca-ssdk-fix-compilation-issue-in-Linux-Style-Makefi.patch
new file mode 100644
index 0000000000..792cd9e31b
--- /dev/null
+++ b/package/kernel/qca-ssdk/patches/0013-qca-ssdk-fix-compilation-issue-in-Linux-Style-Makefi.patch
@@ -0,0 +1,27 @@
+From 3026f89b06049df01d5fe19c5fccc972637aa344 Mon Sep 17 00:00:00 2001
+From: crao <quic_crao@quicinc.com>
+Date: Tue, 7 Mar 2023 17:15:07 +0800
+Subject: [PATCH] [qca-ssdk]: fix compilation issue in Linux-Style Makefile
+
+Change-Id: If38251fc0a2bf4abc666d30f4812c0d9507310dc
+Signed-off-by: crao <quic_crao@quicinc.com>
+---
+ Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+ mode change 100644 => 100755 Makefile
+
+--- a/Makefile
++++ b/Makefile
+@@ -27,9 +27,9 @@ all: $(BIN_DIR) kslib
+ # LNX Modules-Style Makefile
+ ####################################################################
+ modules: $(BIN_DIR) kslib_c
+- cp Makefile.modules ./Makefile;
+- make -C $(SYS_PATH) M=$(PRJ_PATH)/ $(LNX_MAKEOPTS) modules
+- cp *.ko build/bin;
++ mkdir -p ./temp/;cp * ./temp -a;cd ./temp;cp ../Makefile.modules ./Makefile;
++ make -C $(SYS_PATH) M=$(PRJ_PATH)/temp $(LNX_MAKEOPTS) modules
++ cp temp/*.ko build/bin;
+ @echo "---Build [SSDK-$(VERSION)] at $(BUILD_DATE) finished."
+
+ kslib_c:
diff --git a/package/kernel/qca-ssdk/patches/0014-qca-ssdk-fix-compilation-issue-in-Miami-yocto.patch b/package/kernel/qca-ssdk/patches/0014-qca-ssdk-fix-compilation-issue-in-Miami-yocto.patch
new file mode 100644
index 0000000000..53c0c34131
--- /dev/null
+++ b/package/kernel/qca-ssdk/patches/0014-qca-ssdk-fix-compilation-issue-in-Miami-yocto.patch
@@ -0,0 +1,23 @@
+From 6e4efd68e6e560a1994bc273fe6f7a72139f3957 Mon Sep 17 00:00:00 2001
+From: crao <quic_crao@quicinc.com>
+Date: Wed, 15 Mar 2023 11:19:39 +0800
+Subject: [PATCH] [qca-ssdk]: fix compilation issue in Miami yocto
+
+Change-Id: I8526b9e43667d72ae9afa4ef8a13167088d194ba
+Signed-off-by: crao <quic_crao@quicinc.com>
+---
+ Makefile | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/Makefile
++++ b/Makefile
+@@ -29,7 +29,9 @@ all: $(BIN_DIR) kslib
+ modules: $(BIN_DIR) kslib_c
+ mkdir -p ./temp/;cp * ./temp -a;cd ./temp;cp ../Makefile.modules ./Makefile;
+ make -C $(SYS_PATH) M=$(PRJ_PATH)/temp $(LNX_MAKEOPTS) modules
++ cp $(PRJ_PATH)/temp/Module.symvers $(PRJ_PATH)/Module.symvers;
+ cp temp/*.ko build/bin;
++ rm -Rf ./temp/*.o ./temp/*.ko ./temp/*.a
+ @echo "---Build [SSDK-$(VERSION)] at $(BUILD_DATE) finished."
+
+ kslib_c: