From 39cfa763a0a4d9b3e6c9f2dc811180e9c7fb560c Mon Sep 17 00:00:00 2001 From: Chen Minqiang Date: Wed, 21 Apr 2021 13:27:42 +0800 Subject: [PATCH 1/4] kernel: add kmod-ipvlan support This kmod is similar to macvlan with the difference being that the endpoints have the same mac address. It is useful on cloud where only one mac address allowed on port, where macvlan not works but ipvlan would. One use case is where multiple IPs and gateways assign on one net port Signed-off-by: Chen Minqiang --- target/linux/generic/config-4.14 | 1 + target/linux/generic/config-4.19 | 1 + target/linux/generic/config-4.9 | 1 + 3 files changed, 3 insertions(+) diff --git a/target/linux/generic/config-4.14 b/target/linux/generic/config-4.14 index f5069e349c..f1b556f797 100644 --- a/target/linux/generic/config-4.14 +++ b/target/linux/generic/config-4.14 @@ -2180,6 +2180,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_TUNNEL is not set # CONFIG_IPV6_VTI is not set # CONFIG_IPVLAN is not set +# CONFIG_IPVTAP is not set # CONFIG_IPW2100 is not set # CONFIG_IPW2100_DEBUG is not set CONFIG_IPW2100_MONITOR=y diff --git a/target/linux/generic/config-4.19 b/target/linux/generic/config-4.19 index 452f17eb26..602d020328 100644 --- a/target/linux/generic/config-4.19 +++ b/target/linux/generic/config-4.19 @@ -2283,6 +2283,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_TUNNEL is not set # CONFIG_IPV6_VTI is not set # CONFIG_IPVLAN is not set +# CONFIG_IPVTAP is not set # CONFIG_IPW2100 is not set # CONFIG_IPW2100_DEBUG is not set CONFIG_IPW2100_MONITOR=y diff --git a/target/linux/generic/config-4.9 b/target/linux/generic/config-4.9 index 9f1da66c7d..6a1baf8746 100644 --- a/target/linux/generic/config-4.9 +++ b/target/linux/generic/config-4.9 @@ -1938,6 +1938,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_TUNNEL is not set # CONFIG_IPV6_VTI is not set # CONFIG_IPVLAN is not set +# CONFIG_IPVTAP is not set # CONFIG_IPW2100 is not set # CONFIG_IPW2100_DEBUG is not set CONFIG_IPW2100_MONITOR=y From 6d369ccdb77e5f316521f9f7ff435e3608d139a0 Mon Sep 17 00:00:00 2001 From: Vieno Hakkerinen Date: Tue, 20 Apr 2021 15:37:44 +0200 Subject: [PATCH 2/4] kernel: netdev: add qlcnic Add driver for QLogic QLE8240 and QLE8242 Converged Ethernet devices. Signed-off-by: Vieno Hakkerinen --- package/kernel/linux/modules/netdevices.mk | 55 +++++++++++++++++----- target/linux/generic/config-4.14 | 2 +- target/linux/generic/config-4.19 | 2 +- 3 files changed, 46 insertions(+), 13 deletions(-) diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk index 2b60629ed5..d0cfb3eb26 100644 --- a/package/kernel/linux/modules/netdevices.mk +++ b/package/kernel/linux/modules/netdevices.mk @@ -1142,28 +1142,61 @@ endef $(eval $(call KernelPackage,mlx5-core)) + +define KernelPackage/qlcnic + SUBMENU:=$(NETWORK_DEVICES_MENU) + DEPENDS:=@PCI_SUPPORT + TITLE:=QLogic QLE8240 and QLE8242 device support + KCONFIG:=CONFIG_QLCNIC + FILES:=$(LINUX_DIR)/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko + AUTOLOAD:=$(call AutoProbe,qlcnic) +endef + +define KernelPackage/qlcnic/description + This driver supports QLogic QLE8240 and QLE8242 Converged Ethernet + devices. +endef + +$(eval $(call KernelPackage,qlcnic)) + + define KernelPackage/sfc SUBMENU:=$(NETWORK_DEVICES_MENU) - TITLE:=Solarflare SFC9000/SFC9100-family 10Gbps NIC support - DEPENDS:=@PCI_SUPPORT +kmod-mdio +kmod-i2c-core +kmod-i2c-algo-bit +kmod-hwmon-core +kmod-ptp +kmod-lib-crc32c -# add PCI_IOV + TITLE:=Solarflare SFC9000/SFC9100/EF100-family support + DEPENDS:=@PCI_SUPPORT +kmod-mdio +kmod-lib-crc32c +kmod-ptp +kmod-hwmon-core @!LINUX_4_9 KCONFIG:= \ - CONFIG_NET_VENDOR_SOLARFLARE=y \ - CONFIG_SFC=y \ - CONFIG_SFC_MTD=y \ - CONFIG_MCDI_MON=y \ - CONFIG_SFC_SRIOV=n \ - CONFIG_SFC_MCDI_LOGGING=n \ + CONFIG_SFC \ + CONFIG_SFC_MTD=y \ + CONFIG_SFC_MCDI_MON=y \ + CONFIG_SFC_MCDI_LOGGING=y \ + CONFIG_SFC_SRIOV=y FILES:=$(LINUX_DIR)/drivers/net/ethernet/sfc/sfc.ko - AUTOLOAD:=$(call AutoProbe, sfc) + AUTOLOAD:=$(call AutoProbe,sfc) endef define KernelPackage/sfc/description - Solarflare SFC9000/SFC9100-family 10Gbps NIC support + Solarflare SFC9000/SFC9100/EF100-family support endef $(eval $(call KernelPackage,sfc)) +define KernelPackage/sfc-falcon + SUBMENU:=$(NETWORK_DEVICES_MENU) + TITLE:=Solarflare SFC4000 support + DEPENDS:=@PCI_SUPPORT +kmod-mdio +kmod-lib-crc32c +kmod-i2c-core +kmod-i2c-algo-bit @!LINUX_4_9 + KCONFIG:= \ + CONFIG_SFC_FALCON \ + CONFIG_SFC_FALCON_MTD=y + FILES:=$(LINUX_DIR)/drivers/net/ethernet/sfc/falcon/sfc-falcon.ko + AUTOLOAD:=$(call AutoProbe,sfc-falcon) +endef + +define KernelPackage/sfc-falcon/description + Solarflare SFC4000 support +endef + +$(eval $(call KernelPackage,sfc-falcon)) + define KernelPackage/jme SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=JMicron(R) PCI-Express Gigabit Ethernet support diff --git a/target/linux/generic/config-4.14 b/target/linux/generic/config-4.14 index f1b556f797..43183f3904 100644 --- a/target/linux/generic/config-4.14 +++ b/target/linux/generic/config-4.14 @@ -4402,9 +4402,9 @@ CONFIG_SERIAL_EARLYCON=y # CONFIG_SERIO_SERPORT is not set # CONFIG_SERIO_SUN4I_PS2 is not set # CONFIG_SFC is not set +# CONFIG_SFC_FALCON is not set # CONFIG_SFC_MTD is not set # CONFIG_SFC_MCDI_LOGGING is not set -# CONFIG_SFC_FALCON is not set # CONFIG_SFI is not set # CONFIG_SGETMASK_SYSCALL is not set # CONFIG_SGI_IOC4 is not set diff --git a/target/linux/generic/config-4.19 b/target/linux/generic/config-4.19 index 602d020328..f16a3938d0 100644 --- a/target/linux/generic/config-4.19 +++ b/target/linux/generic/config-4.19 @@ -4601,9 +4601,9 @@ CONFIG_SERIAL_EARLYCON=y # CONFIG_SERIO_SERPORT is not set # CONFIG_SERIO_SUN4I_PS2 is not set # CONFIG_SFC is not set +# CONFIG_SFC_FALCON is not set # CONFIG_SFC_MTD is not set # CONFIG_SFC_MCDI_LOGGING is not set -# CONFIG_SFC_FALCON is not set # CONFIG_SFI is not set # CONFIG_SFP is not set # CONFIG_SGETMASK_SYSCALL is not set From 41f915fb32c038993da78da43bbd2a05ce6281f2 Mon Sep 17 00:00:00 2001 From: DENG Qingfang Date: Mon, 26 Apr 2021 12:13:50 +0800 Subject: [PATCH 3/4] toolchain/binutils: update to 2.35.2 Update binutils 2.35 to 2.35.2 Signed-off-by: DENG Qingfang --- toolchain/binutils/Config.in | 6 +++--- toolchain/binutils/Config.version | 4 ++-- toolchain/binutils/Makefile | 4 ++-- .../{2.35.1 => 2.35.2}/300-001_ld_makefile_patch.patch | 0 .../400-mips_no_dynamic_linking_sym.patch | 0 .../500-Change-default-emulation-for-mips64-linux.patch | 0 6 files changed, 7 insertions(+), 7 deletions(-) rename toolchain/binutils/patches/{2.35.1 => 2.35.2}/300-001_ld_makefile_patch.patch (100%) rename toolchain/binutils/patches/{2.35.1 => 2.35.2}/400-mips_no_dynamic_linking_sym.patch (100%) rename toolchain/binutils/patches/{2.35.1 => 2.35.2}/500-Change-default-emulation-for-mips64-linux.patch (100%) diff --git a/toolchain/binutils/Config.in b/toolchain/binutils/Config.in index 3d9e8284e9..3ef128d60f 100644 --- a/toolchain/binutils/Config.in +++ b/toolchain/binutils/Config.in @@ -14,9 +14,9 @@ choice bool "Binutils 2.34" select BINUTILS_VERSION_2_34 - config BINUTILS_USE_VERSION_2_35_1 - bool "Binutils 2.35.1" - select BINUTILS_VERSION_2_35_1 + config BINUTILS_USE_VERSION_2_35_2 + bool "Binutils 2.35.2" + select BINUTILS_VERSION_2_35_2 endchoice config EXTRA_BINUTILS_CONFIG_OPTIONS diff --git a/toolchain/binutils/Config.version b/toolchain/binutils/Config.version index ed3018328e..066b351dc1 100644 --- a/toolchain/binutils/Config.version +++ b/toolchain/binutils/Config.version @@ -5,11 +5,11 @@ config BINUTILS_VERSION_2_34 default y if !TOOLCHAINOPTS bool -config BINUTILS_VERSION_2_35_1 +config BINUTILS_VERSION_2_35_2 bool config BINUTILS_VERSION string default "2.32" if BINUTILS_VERSION_2_32 default "2.34" if BINUTILS_VERSION_2_34 - default "2.35.1" if BINUTILS_VERSION_2_35_1 + default "2.35.2" if BINUTILS_VERSION_2_35_2 diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile index 65d9925f9a..f1e94b5757 100644 --- a/toolchain/binutils/Makefile +++ b/toolchain/binutils/Makefile @@ -23,8 +23,8 @@ ifeq ($(PKG_VERSION),2.34) PKG_HASH:=f00b0e8803dc9bab1e2165bd568528135be734df3fabf8d0161828cd56028952 endif -ifeq ($(PKG_VERSION),2.35.1) - PKG_HASH:=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607 +ifeq ($(PKG_VERSION),2.35.2) + PKG_HASH:=dcd5b0416e7b0a9b24bed76cd8c6c132526805761863150a26d016415b8bdc7b endif HOST_BUILD_PARALLEL:=1 diff --git a/toolchain/binutils/patches/2.35.1/300-001_ld_makefile_patch.patch b/toolchain/binutils/patches/2.35.2/300-001_ld_makefile_patch.patch similarity index 100% rename from toolchain/binutils/patches/2.35.1/300-001_ld_makefile_patch.patch rename to toolchain/binutils/patches/2.35.2/300-001_ld_makefile_patch.patch diff --git a/toolchain/binutils/patches/2.35.1/400-mips_no_dynamic_linking_sym.patch b/toolchain/binutils/patches/2.35.2/400-mips_no_dynamic_linking_sym.patch similarity index 100% rename from toolchain/binutils/patches/2.35.1/400-mips_no_dynamic_linking_sym.patch rename to toolchain/binutils/patches/2.35.2/400-mips_no_dynamic_linking_sym.patch diff --git a/toolchain/binutils/patches/2.35.1/500-Change-default-emulation-for-mips64-linux.patch b/toolchain/binutils/patches/2.35.2/500-Change-default-emulation-for-mips64-linux.patch similarity index 100% rename from toolchain/binutils/patches/2.35.1/500-Change-default-emulation-for-mips64-linux.patch rename to toolchain/binutils/patches/2.35.2/500-Change-default-emulation-for-mips64-linux.patch From 6c1a0fb57d2b16ac0d4c7d67c35164f522490476 Mon Sep 17 00:00:00 2001 From: DENG Qingfang Date: Mon, 26 Apr 2021 12:13:51 +0800 Subject: [PATCH 4/4] toolchain/binutils: add binutils 2.36.1 Add binutils version 2.36.1 Signed-off-by: DENG Qingfang --- toolchain/binutils/Config.in | 4 ++ toolchain/binutils/Config.version | 6 ++- toolchain/binutils/Makefile | 4 ++ .../2.36.1/300-001_ld_makefile_patch.patch | 22 +++++++++++ .../400-mips_no_dynamic_linking_sym.patch | 18 +++++++++ ...e-default-emulation-for-mips64-linux.patch | 38 +++++++++++++++++++ 6 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 toolchain/binutils/patches/2.36.1/300-001_ld_makefile_patch.patch create mode 100644 toolchain/binutils/patches/2.36.1/400-mips_no_dynamic_linking_sym.patch create mode 100644 toolchain/binutils/patches/2.36.1/500-Change-default-emulation-for-mips64-linux.patch diff --git a/toolchain/binutils/Config.in b/toolchain/binutils/Config.in index 3ef128d60f..b436a66c98 100644 --- a/toolchain/binutils/Config.in +++ b/toolchain/binutils/Config.in @@ -17,6 +17,10 @@ choice config BINUTILS_USE_VERSION_2_35_2 bool "Binutils 2.35.2" select BINUTILS_VERSION_2_35_2 + + config BINUTILS_USE_VERSION_2_36_1 + bool "Binutils 2.36.1" + select BINUTILS_VERSION_2_36_1 endchoice config EXTRA_BINUTILS_CONFIG_OPTIONS diff --git a/toolchain/binutils/Config.version b/toolchain/binutils/Config.version index 066b351dc1..82ef9b8fc3 100644 --- a/toolchain/binutils/Config.version +++ b/toolchain/binutils/Config.version @@ -8,8 +8,12 @@ config BINUTILS_VERSION_2_34 config BINUTILS_VERSION_2_35_2 bool +config BINUTILS_VERSION_2_36_1 + bool + config BINUTILS_VERSION string default "2.32" if BINUTILS_VERSION_2_32 default "2.34" if BINUTILS_VERSION_2_34 - default "2.35.2" if BINUTILS_VERSION_2_35_2 + default "2.35.2" if BINUTILS_VERSION_2_35_2 + default "2.36.1" if BINUTILS_VERSION_2_36_1 diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile index f1e94b5757..5d1b518343 100644 --- a/toolchain/binutils/Makefile +++ b/toolchain/binutils/Makefile @@ -27,6 +27,10 @@ ifeq ($(PKG_VERSION),2.35.2) PKG_HASH:=dcd5b0416e7b0a9b24bed76cd8c6c132526805761863150a26d016415b8bdc7b endif +ifeq ($(PKG_VERSION),2.36.1) + PKG_HASH:=e81d9edf373f193af428a0f256674aea62a9d74dfe93f65192d4eae030b0f3b0 +endif + HOST_BUILD_PARALLEL:=1 PATCH_DIR:=./patches/$(PKG_VERSION) diff --git a/toolchain/binutils/patches/2.36.1/300-001_ld_makefile_patch.patch b/toolchain/binutils/patches/2.36.1/300-001_ld_makefile_patch.patch new file mode 100644 index 0000000000..f1cbb8198b --- /dev/null +++ b/toolchain/binutils/patches/2.36.1/300-001_ld_makefile_patch.patch @@ -0,0 +1,22 @@ +--- a/ld/Makefile.am ++++ b/ld/Makefile.am +@@ -50,7 +50,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ +--- a/ld/Makefile.in ++++ b/ld/Makefile.in +@@ -561,7 +561,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd + INCDIR = $(BASEDIR)/include diff --git a/toolchain/binutils/patches/2.36.1/400-mips_no_dynamic_linking_sym.patch b/toolchain/binutils/patches/2.36.1/400-mips_no_dynamic_linking_sym.patch new file mode 100644 index 0000000000..b426dabc97 --- /dev/null +++ b/toolchain/binutils/patches/2.36.1/400-mips_no_dynamic_linking_sym.patch @@ -0,0 +1,18 @@ +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -8053,6 +8053,7 @@ _bfd_mips_elf_create_dynamic_sections (b + + name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING"; + bh = NULL; ++ if (0) { + if (!(_bfd_generic_link_add_one_symbol + (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0, + NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) +@@ -8065,6 +8066,7 @@ _bfd_mips_elf_create_dynamic_sections (b + + if (! bfd_elf_link_record_dynamic_symbol (info, h)) + return FALSE; ++ } + + if (! mips_elf_hash_table (info)->use_rld_obj_head) + { diff --git a/toolchain/binutils/patches/2.36.1/500-Change-default-emulation-for-mips64-linux.patch b/toolchain/binutils/patches/2.36.1/500-Change-default-emulation-for-mips64-linux.patch new file mode 100644 index 0000000000..fb3f142624 --- /dev/null +++ b/toolchain/binutils/patches/2.36.1/500-Change-default-emulation-for-mips64-linux.patch @@ -0,0 +1,38 @@ +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -896,12 +896,12 @@ case "${targ}" in + targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" + ;; + mips64*el-*-linux*) +- targ_defvec=mips_elf32_ntrad_le_vec +- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec" ++ targ_defvec=mips_elf64_trad_le_vec ++ targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec" + ;; + mips64*-*-linux*) +- targ_defvec=mips_elf32_ntrad_be_vec +- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" ++ targ_defvec=mips_elf64_trad_be_vec ++ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec" + ;; + mips*el-*-linux*) + targ_defvec=mips_elf32_trad_le_vec +--- a/ld/configure.tgt ++++ b/ld/configure.tgt +@@ -531,12 +531,12 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvx + ;; + mips*-*-windiss) targ_emul=elf32mipswindiss + ;; +-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32 +- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" ++mips64*el-*-linux-*) targ_emul=elf64ltsmip ++ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip" + targ_extra_libpath=$targ_extra_emuls + ;; +-mips64*-*-linux-*) targ_emul=elf32btsmipn32 +- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" ++mips64*-*-linux-*) targ_emul=elf64btsmip ++ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip" + targ_extra_libpath=$targ_extra_emuls + ;; + mips*el-*-linux-*) targ_emul=elf32ltsmip