├── .directory ├── README.md ├── patch ├── .directory ├── 001-mips-cflag-optimization.patch ├── 002-mips24kc-set-optimization.patch ├── 003-disable-mips16-all-package.patch ├── 004-kernel-mtune24kc.patch ├── 005-lzma-mips24kc-optimize.patch ├── 006-branch-likely-optimize.patch ├── 007-config-image-squashfs-size.patch ├── 007-config-kernel-no-symbol.patch ├── 008-generic-kernel-options.patch ├── 008-remove-kernel-debug.patch ├── 009-ar71xx-kernel-options.patch ├── 010-no-l2-cache-runtime-check.patch ├── 011-add-DNDEBUG-default.patch ├── 012-fix-upstream-feed.patch ├── 012-update-kernel-version.patch ├── 013-set-default-wr1043nd-target.patch ├── 015-reg-wireless.patch ├── 016-enable-wireless-default.patch ├── 017-harden-buildroot.patch ├── 021-make-pthread-depend-default.patch ├── 035-sysctl-optimization.patch ├── 040-gcc-final-toolchain-24kc-optimize.patch ├── 041-update-toolchain.patch ├── 043-musl-enable-visibility-pic.patch ├── 044-mips-musl-optimize.patch ├── 045-force-enable-gcc6.patch ├── 045-port-uclibcng-mips-memset-memcpy-optimize.patch ├── 052-add-realtek-switch-feature.patch ├── 053-QCA-ar71xx-efficient-cache-blast.patch ├── 054-netdev-align-NET_SKB_PAD-platform.patch ├── 059-add-gro-support-to-ar71xx.patch ├── 059-pack-ag71xx.patch ├── 059-strip-even-more-debug-ar71xx.patch ├── 060-change-luci-version.patch ├── 060-remove-debug-napi.patch ├── 061-remove-pppoa-luci.patch ├── 061-remove-root-luci-default.patch ├── 062-luci-vlan.patch ├── 063-add-DNS-cachesize-option.patch ├── 063-add-luci-mips-processor-march.patch ├── 064-luci-wifi-add-feature.patch ├── 064-mwan3-luci.patch ├── 065-enable-luci-src-diet.patch ├── 065-use-openssl-for-hostapd.patch ├── 066-wireguard-update.patch ├── 070-miniupnpd-rebrand.patch ├── 071-optimize-cmake.patch ├── 080-busybox-tweak.patch ├── 081-enable-openssl-thread.patch ├── 081-modify-libnl-tiny-cflag.patch ├── 099-add-ar7240-max-frame-size.patch ├── 099-add-default-package.patch ├── 100-align-netfilter-32bit.patch ├── 202-funit-at-a-time.patch ├── 895-SFE-support-kernel.patch ├── 896-SFE-kernel-driver.patch ├── 897-SFE-export-tcp-no-window-check.patch ├── 898-SFE-enable-disable-acceleration.patch ├── 899-SFE-patch-package-makefile.patch ├── 900-SFE-use-aligned-headers-disable-debug.patch ├── 901-SFE-backport-upstream-changes.patch └── 999-disable-gso-default.patch └── patch_LEDE.sh /.directory: -------------------------------------------------------------------------------- 1 | [Dolphin] 2 | Timestamp=2016,6,5,7,47,24 3 | Version=3 4 | 5 | [Settings] 6 | HiddenFilesShown=true 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Custom LEDE Patch For TL-WR1043ND (With Working Fast Path) 2 | ========================================================== 3 | 4 | Dependencies 5 | ------------ 6 | 7 | * LEDE BuildRoot 8 | * LEDE BuildRoot Dependencies 9 | * Java Runtime 10 | 11 | How to use 12 | ---------- 13 | 14 | * Install all the development packages required for LEDE BuildRoot 15 | * Install Java Runtime 16 | * Clone the LEDE Repository 17 | 18 | ```shell 19 | git clone -b lede-17.01 https://github.com/lede-project/source.git lede 20 | ``` 21 | 22 | * Clone this Repository and copy into the LEDE repository 23 | 24 | ```shell 25 | git clone -b lede-17.01 https://github.com/gwlim/mips24k-lede-patch.git temp; mv temp/* lede/; rm -rf temp 26 | ``` 27 | 28 | * Change directory into the LEDE Repository 29 | 30 | ```shell 31 | cd lede 32 | ``` 33 | 34 | * Run the script 35 | 36 | ```shell 37 | ./patch_LEDE.sh 38 | ``` 39 | 40 | * > `make menuconfig` Default Target Profile is TP-LINK TL-WR1043ND (all the packages and config is inside) 41 | 42 | If you want to enable Fast Path select all the fast path modules in 43 | 44 | > Kernel Modules > Network Support > 45 | 46 | Select 47 | 48 | > * kmod-fast-classifier 49 | 50 | ```shell 51 | make menuconfig 52 | ``` 53 | 54 | * Save and make 55 | 56 | ```shell 57 | make V=s 58 | ``` 59 | 60 | FAQ 61 | --- 62 | 63 | Cannot install packages with Kernel Dependencies? 64 | 65 | Use `--nodeps` in opkg. 66 | 67 | 68 | Where can I download the firmware for my Router? 69 | 70 | https://github.com/gwlim/Fast-Path-LEDE-OpenWRT 71 | 72 | The binaries in the link above will contain firmware build with this patchset 73 | -------------------------------------------------------------------------------- /patch/.directory: -------------------------------------------------------------------------------- 1 | [Dolphin] 2 | SortRole=date 3 | Timestamp=2016,6,5,14,1,21 4 | Version=3 5 | ViewMode=1 6 | -------------------------------------------------------------------------------- /patch/001-mips-cflag-optimization.patch: -------------------------------------------------------------------------------- 1 | diff --git a/include/target.mk b/include/target.mk 2 | index 3099448..cc9c546 100644 3 | --- a/include/target.mk 4 | +++ b/include/target.mk 5 | @@ -155,18 +155,21 @@ LINUX_RECONF_DIFF = $(call __linux_confcmd,$(filter-out $(LINUX_RECONFIG_TARGET) 6 | ifeq ($(DUMP),1) 7 | BuildTarget=$(BuildTargets/DumpCurrent) 8 | 9 | - CPU_CFLAGS = -Os -pipe 10 | + CPU_CFLAGS = -O2 -pipe 11 | ifneq ($(findstring mips,$(ARCH)),) 12 | ifneq ($(findstring mips64,$(ARCH)),) 13 | CPU_TYPE ?= mips64 14 | else 15 | CPU_TYPE ?= mips32 16 | endif 17 | - CPU_CFLAGS += -mno-branch-likely 18 | + CPU_CFLAGS += -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -mframe-header-opt 19 | CPU_CFLAGS_mips32 = -mips32 -mtune=mips32 20 | CPU_CFLAGS_mips64 = -mips64 -mtune=mips64 -mabi=64 21 | - CPU_CFLAGS_24kc = -mips32r2 -mtune=24kc 22 | - CPU_CFLAGS_74kc = -mips32r2 -mtune=74kc 23 | + CPU_CFLAGS_24kc = -march=24kc 24 | + CPU_CFLAGS_24kec = -march=24kec 25 | + CPU_CFLAGS_34kc = -march=34kc 26 | + CPU_CFLAGS_74kc = -march=74kc 27 | + CPU_CFLAGS_1004kc = -march=1004kc 28 | CPU_CFLAGS_octeon = -march=octeon -mabi=64 29 | endif 30 | ifeq ($(ARCH),i386) 31 | -------------------------------------------------------------------------------- /patch/002-mips24kc-set-optimization.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/ar71xx/Makefile b/target/linux/ar71xx/Makefile 2 | index 3f5bc67..e17760b 100644 3 | --- a/target/linux/ar71xx/Makefile 4 | +++ b/target/linux/ar71xx/Makefile 5 | @@ -10,7 +10,8 @@ ARCH:=mips 6 | BOARD:=ar71xx 7 | BOARDNAME:=Atheros AR7xxx/AR9xxx 8 | FEATURES:= 9 | -CPU_TYPE:=24kc 10 | +CPU_TYPE:=24kc 11 | +CPU_SUBTYPE:= 12 | SUBTARGETS:=generic nand mikrotik 13 | 14 | KERNEL_PATCHVER:=4.4 15 | @@ -19,6 +20,6 @@ include $(INCLUDE_DIR)/target.mk 16 | 17 | DEFAULT_PACKAGES += \ 18 | kmod-gpio-button-hotplug swconfig \ 19 | - kmod-ath9k wpad-mini uboot-envtools 20 | + kmod-ath9k wpad 21 | 22 | $(eval $(call BuildTarget)) 23 | -------------------------------------------------------------------------------- /patch/003-disable-mips16-all-package.patch: -------------------------------------------------------------------------------- 1 | diff --git a/include/package.mk b/include/package.mk 2 | index 092811c..a8e511d 100644 3 | --- a/include/package.mk 4 | +++ b/include/package.mk 5 | @@ -13,7 +13,7 @@ PKG_BUILD_DIR ?= $(BUILD_DIR)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION)) 6 | PKG_INSTALL_DIR ?= $(PKG_BUILD_DIR)/ipkg-install 7 | PKG_MD5SUM ?= unknown 8 | PKG_BUILD_PARALLEL ?= 9 | -PKG_USE_MIPS16 ?= 1 10 | +PKG_USE_MIPS16 ?= 0 11 | PKG_IREMAP ?= 1 12 | 13 | ifneq ($(CONFIG_PKG_BUILD_USE_JOBSERVER),) 14 | -------------------------------------------------------------------------------- /patch/004-kernel-mtune24kc.patch: -------------------------------------------------------------------------------- 1 | diff --git a/./target/linux/ar71xx/patches-4.4/221-kernel-mtune-24kc.patch.patch b/./target/linux/ar71xx/patches-4.4/221-kernel-mtune-24kc.patch.patch 2 | new file mode 100644 3 | index 0000000..7e4adcc 4 | --- /dev/null 5 | +++ b/./target/linux/ar71xx/patches-4.4/221-kernel-mtune-24kc.patch.patch 6 | @@ -0,0 +1,13 @@ 7 | +--- a/arch/mips/Makefile 8 | ++++ b/arch/mips/Makefile 9 | +@@ -145,8 +145,8 @@ cflags-$(CONFIG_CPU_R4X00) += -march=r46 10 | + cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap 11 | + cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ 12 | + -Wa,-mips32 -Wa,--trap 13 | +-cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2 -mtune=34kc,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ 14 | +- -Wa,-mips32r2 -Wa,--trap 15 | ++cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=24kc -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt,-march=24kc -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ 16 | ++ -Wa,-march=24kc -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt -Wa,--trap 17 | + cflags-$(CONFIG_CPU_MIPS32_R6) += -march=mips32r6 -Wa,--trap 18 | + cflags-$(CONFIG_CPU_MIPS64_R1) += $(call cc-option,-march=mips64,-mips64 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ 19 | + -Wa,-mips64 -Wa,--trap 20 | -------------------------------------------------------------------------------- /patch/005-lzma-mips24kc-optimize.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/ar71xx/image/lzma-loader/src/Makefile b/target/linux/ar71xx/image/lzma-loader/src/Makefile 2 | index 5f10bdb..15932cc 100644 3 | --- a/target/linux/ar71xx/image/lzma-loader/src/Makefile 4 | +++ b/target/linux/ar71xx/image/lzma-loader/src/Makefile 5 | @@ -30,12 +30,12 @@ OBJDUMP := $(CROSS_COMPILE)objdump 6 | BIN_FLAGS := -O binary -R .reginfo -R .note -R .comment -R .mdebug \ 7 | -R .MIPS.abiflags -S 8 | 9 | -CFLAGS = -D__KERNEL__ -Wall -Wstrict-prototypes -Wno-trigraphs -Os \ 10 | +CFLAGS = -D__KERNEL__ -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \ 11 | -fno-strict-aliasing -fno-common -fomit-frame-pointer -G 0 \ 12 | - -mno-abicalls -fno-pic -ffunction-sections -pipe -mlong-calls \ 13 | + -mno-abicalls -fno-pic -ffunction-sections -pipe \ 14 | -fno-common -ffreestanding -fhonour-copts \ 15 | - -mabi=32 -march=mips32r2 \ 16 | - -Wa,-32 -Wa,-march=mips32r2 -Wa,-mips32r2 -Wa,--trap 17 | + -mabi=32 -march=24kc -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt \ 18 | + -Wa,-32 -Wa,-march=24kc -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt -Wa,-march=24kc -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt -Wa,--trap 19 | CFLAGS += -D_LZMA_PROB32 20 | 21 | ASFLAGS = $(CFLAGS) -D__ASSEMBLY__ 22 | -------------------------------------------------------------------------------- /patch/006-branch-likely-optimize.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/ar71xx/patches-4.4/222-kernel-branch-likely-24kc.patch.patch b/target/linux/ar71xx/patches-4.4/222-kernel-branch-likely-24kc.patch.patch 2 | new file mode 100644 3 | index 0000000..02b4026 4 | --- /dev/null 5 | +++ b/target/linux/ar71xx/patches-4.4/222-kernel-branch-likely-24kc.patch.patch 6 | @@ -0,0 +1,14 @@ 7 | +--- a/arch/mips/Makefile 8 | ++++ b/arch/mips/Makefile 9 | +@@ -87,9 +87,9 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin 10 | + # machines may also. Since BFD is incredibly buggy with respect to 11 | + # crossformat linking we rely on the elf2ecoff tool for format conversion. 12 | + # 13 | +-cflags-y += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely 14 | ++cflags-y += -march=24kc -mno-abicalls -fno-pic -pipe -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt 15 | + cflags-y += -msoft-float 16 | +-LDFLAGS_vmlinux += -G 0 -static -n -nostdlib --gc-sections 17 | ++LDFLAGS_vmlinux += -static -n -nostdlib --gc-sections 18 | + ifdef CONFIG_64BIT 19 | + KBUILD_AFLAGS_MODULE += -mlong-calls 20 | + KBUILD_CFLAGS_MODULE += -mlong-calls 21 | -------------------------------------------------------------------------------- /patch/007-config-image-squashfs-size.patch: -------------------------------------------------------------------------------- 1 | diff --git a/config/Config-images.in b/config/Config-images.in 2 | index f59a336..8e6fd17 100644 3 | --- a/config/Config-images.in 4 | +++ b/config/Config-images.in 5 | @@ -141,7 +141,7 @@ menu "Target Images" 6 | int "Block size (in KiB)" 7 | depends on TARGET_ROOTFS_SQUASHFS 8 | default 64 if LOW_MEMORY_FOOTPRINT 9 | - default 256 10 | + default 512 11 | 12 | menuconfig TARGET_ROOTFS_UBIFS 13 | bool "ubifs" 14 | -------------------------------------------------------------------------------- /patch/007-config-kernel-no-symbol.patch: -------------------------------------------------------------------------------- 1 | diff --git a/config/Config-kernel.in b/config/Config-kernel.in 2 | index a4c46f5..0596124 100644 3 | --- a/config/Config-kernel.in 4 | +++ b/config/Config-kernel.in 5 | @@ -6,7 +6,7 @@ 6 | 7 | config KERNEL_BUILD_USER 8 | string "Custom Kernel Build User Name" 9 | - default "" 10 | + default "gwlim" 11 | help 12 | Sets the Kernel build user string, which for example will be returned 13 | by 'uname -a' on running systems. 14 | @@ -14,7 +14,7 @@ config KERNEL_BUILD_USER 15 | 16 | config KERNEL_BUILD_DOMAIN 17 | string "Custom Kernel Build Domain Name" 18 | - default "" 19 | + default "lede-project.org" 20 | help 21 | Sets the Kernel build domain string, which for example will be 22 | returned by 'uname -a' on running systems. 23 | @@ -27,7 +27,7 @@ config KERNEL_PRINTK 24 | config KERNEL_CRASHLOG 25 | bool "Crash logging" 26 | depends on !(arm || powerpc || sparc || TARGET_uml || i386 || x86_64) 27 | - default y 28 | + default n 29 | 30 | config KERNEL_SWAP 31 | bool "Support for paging of anonymous memory (swap)" 32 | @@ -35,7 +35,7 @@ config KERNEL_SWAP 33 | 34 | config KERNEL_DEBUG_FS 35 | bool "Compile the kernel with debug filesystem enabled" 36 | - default y 37 | + default n 38 | help 39 | debugfs is a virtual file system that kernel developers use to put 40 | debugging files into. Enable this option to be able to read and 41 | @@ -62,7 +62,7 @@ config KERNEL_PROFILING 42 | 43 | config KERNEL_KALLSYMS 44 | bool "Compile the kernel with symbol table information" 45 | - default y if !SMALL_FLASH 46 | + default n 47 | help 48 | This will give you more information in stack traces from kernel oopses. 49 | 50 | @@ -107,7 +107,7 @@ config KERNEL_DEBUG_KERNEL 51 | 52 | config KERNEL_DEBUG_INFO 53 | bool "Compile the kernel with debug information" 54 | - default y 55 | + default n 56 | select KERNEL_DEBUG_KERNEL 57 | help 58 | This will compile your kernel and modules with debug information. 59 | @@ -188,7 +188,7 @@ config KERNEL_BLK_DEV_BSG 60 | 61 | config KERNEL_MAGIC_SYSRQ 62 | bool "Compile the kernel with SysRq support" 63 | - default y 64 | + default n 65 | 66 | config KERNEL_DEBUG_PINCTRL 67 | bool "Compile the kernel with pinctrl debugging" 68 | @@ -204,7 +204,7 @@ config KERNEL_COREDUMP 69 | config KERNEL_ELF_CORE 70 | bool "Enable process core dump support" 71 | select KERNEL_COREDUMP 72 | - default y 73 | + default n 74 | 75 | config KERNEL_PROVE_LOCKING 76 | bool "Enable kernel lock checking" 77 | -------------------------------------------------------------------------------- /patch/008-generic-kernel-options.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/generic/config-4.4 b/target/linux/generic/config-4.4 2 | index 4711fd7..62c38b1 100644 3 | --- a/target/linux/generic/config-4.4 4 | +++ b/target/linux/generic/config-4.4 5 | @@ -84,7 +84,7 @@ CONFIG_32BIT=y 6 | # CONFIG_ADT7316 is not set 7 | # CONFIG_ADVISE_SYSCALLS is not set 8 | # CONFIG_ADXRS450 is not set 9 | -CONFIG_AEABI=y 10 | +# CONFIG_AEABI is not set 11 | # CONFIG_AFFS_FS is not set 12 | # CONFIG_AFS_FS is not set 13 | # CONFIG_AF_RXRPC is not set 14 | @@ -93,7 +93,7 @@ CONFIG_AEABI=y 15 | # CONFIG_AHCI_IMX is not set 16 | # CONFIG_AHCI_MVEBU is not set 17 | # CONFIG_AHCI_QORIQ is not set 18 | -CONFIG_AIO=y 19 | +# CONFIG_AIO is not set 20 | # CONFIG_AIRO is not set 21 | # CONFIG_AIRO_CS is not set 22 | # CONFIG_AIX_PARTITION is not set 23 | @@ -101,7 +101,7 @@ CONFIG_AIO=y 24 | # CONFIG_AK8975 is not set 25 | # CONFIG_AL3320A is not set 26 | # CONFIG_ALIM7101_WDT is not set 27 | -CONFIG_ALLOW_DEV_COREDUMP=y 28 | +# CONFIG_ALLOW_DEV_COREDUMP is not set 29 | # CONFIG_ALTERA_MBOX is not set 30 | # CONFIG_ALTERA_STAPL is not set 31 | # CONFIG_ALTERA_TSE is not set 32 | @@ -215,10 +215,10 @@ CONFIG_ARCH_FLATMEM_ENABLE=y 33 | # CONFIG_ARM_CCI400_PMU is not set 34 | # CONFIG_ARM_CCI500_PMU is not set 35 | # CONFIG_ARM_CCN is not set 36 | -CONFIG_ARM_CPU_TOPOLOGY=y 37 | +# CONFIG_ARM_CPU_TOPOLOGY is not set 38 | # CONFIG_ARM_CPUIDLE is not set 39 | # CONFIG_ARM_CRYPTO is not set 40 | -CONFIG_ARM_DMA_MEM_BUFFERABLE=y 41 | +# CONFIG_ARM_DMA_MEM_BUFFERABLE is not set 42 | # CONFIG_ARM_ERRATA_326103 is not set 43 | # CONFIG_ARM_ERRATA_364296 is not set 44 | # CONFIG_ARM_ERRATA_411920 is not set 45 | @@ -366,7 +366,7 @@ CONFIG_BASE_SMALL=0 46 | # CONFIG_BCM87XX_PHY is not set 47 | # CONFIG_BCMA is not set 48 | # CONFIG_BCMA_DRIVER_GPIO is not set 49 | -CONFIG_BCMA_POSSIBLE=y 50 | +# CONFIG_BCMA_POSSIBLE is not set 51 | # CONFIG_BCMGENET is not set 52 | # CONFIG_BCM_KONA_USB2_PHY is not set 53 | # CONFIG_BDI_SWITCH is not set 54 | @@ -485,9 +485,9 @@ CONFIG_BLOCK=y 55 | CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3 56 | # CONFIG_BOOT_PRINTK_DELAY is not set 57 | CONFIG_BOOT_RAW=y 58 | -CONFIG_BPF=y 59 | +# CONFIG_BPF is not set 60 | # CONFIG_BPF_JIT is not set 61 | -CONFIG_BPF_SYSCALL=y 62 | +# CONFIG_BPF_SYSCALL is not set 63 | # CONFIG_BPQETHER is not set 64 | CONFIG_BQL=y 65 | CONFIG_BRANCH_PROFILE_NONE=y 66 | @@ -561,7 +561,7 @@ CONFIG_BT_HCIUART_H4=y 67 | # CONFIG_BT_RFCOMM is not set 68 | CONFIG_BT_RFCOMM_TTY=y 69 | # CONFIG_BT_SELFTEST is not set 70 | -CONFIG_BUG=y 71 | +# CONFIG_BUG is not set 72 | CONFIG_BUILDTIME_EXTABLE_SORT=y 73 | # CONFIG_BUILD_BIN2C is not set 74 | # CONFIG_C2PORT is not set 75 | @@ -582,7 +582,7 @@ CONFIG_BUILDTIME_EXTABLE_SORT=y 76 | # CONFIG_CAPI_AVM is not set 77 | # CONFIG_CAPI_EICON is not set 78 | # CONFIG_CAPI_TRACE is not set 79 | -CONFIG_CARDBUS=y 80 | +CONFIG_CARDBUS=y 81 | # CONFIG_CARDMAN_4000 is not set 82 | # CONFIG_CARDMAN_4040 is not set 83 | # CONFIG_CARL9170 is not set 84 | @@ -591,10 +591,10 @@ CONFIG_CARDBUS=y 85 | # CONFIG_CB710_CORE is not set 86 | # CONFIG_CC10001_ADC is not set 87 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 88 | -# CONFIG_CC_STACKPROTECTOR is not set 89 | -CONFIG_CC_STACKPROTECTOR_NONE=y 90 | +CONFIG_CC_STACKPROTECTOR=y 91 | +# CONFIG_CC_STACKPROTECTOR_NONE is not set 92 | # CONFIG_CC_STACKPROTECTOR_REGULAR is not set 93 | -# CONFIG_CC_STACKPROTECTOR_STRONG is not set 94 | +CONFIG_CC_STACKPROTECTOR_STRONG=y 95 | # CONFIG_CDROM_PKTCDVD is not set 96 | # CONFIG_CEPH_FS is not set 97 | # CONFIG_CEPH_LIB is not set 98 | @@ -635,7 +635,7 @@ CONFIG_CC_STACKPROTECTOR_NONE=y 99 | # CONFIG_CIFS_NFSD_EXPORT is not set 100 | CONFIG_CIFS_POSIX=y 101 | # CONFIG_CIFS_SMB2 is not set 102 | -CONFIG_CIFS_STATS=y 103 | +CONFIG_CIFS_STATS=y 104 | # CONFIG_CIFS_STATS2 is not set 105 | # CONFIG_CIFS_WEAK_PW_HASH is not set 106 | # CONFIG_CIFS_XATTR is not set 107 | @@ -852,7 +852,7 @@ CONFIG_DEBUG_FS=y 108 | # CONFIG_DEBUG_INFO_DWARF4 is not set 109 | CONFIG_DEBUG_INFO_REDUCED=y 110 | # CONFIG_DEBUG_INFO_SPLIT is not set 111 | -CONFIG_DEBUG_KERNEL=y 112 | +# CONFIG_DEBUG_KERNEL is not set 113 | # CONFIG_DEBUG_KMEMLEAK is not set 114 | # CONFIG_DEBUG_KOBJECT is not set 115 | # CONFIG_DEBUG_KOBJECT_RELEASE is not set 116 | @@ -999,9 +999,9 @@ CONFIG_DUMMY_CONSOLE_ROWS=25 117 | # CONFIG_EEPROM_MAX6875 is not set 118 | CONFIG_EFI_PARTITION=y 119 | # CONFIG_EFS_FS is not set 120 | -# CONFIG_ELF_CORE is not set 121 | +# CONFIG_ELF_CORE is not set 122 | # CONFIG_EMAC_ROCKCHIP is not set 123 | -CONFIG_EMBEDDED=y 124 | +CONFIG_EMBEDDED=y 125 | # CONFIG_EM_TIMER_STI is not set 126 | # CONFIG_ENABLE_MUST_CHECK is not set 127 | CONFIG_ENABLE_WARN_DEPRECATED=y 128 | @@ -1018,7 +1018,7 @@ CONFIG_EPOLL=y 129 | CONFIG_ETHERNET=y 130 | # CONFIG_ETHOC is not set 131 | CONFIG_EVENTFD=y 132 | -CONFIG_EXPERT=y 133 | +CONFIG_EXPERT=y 134 | # CONFIG_EXPORTFS is not set 135 | # CONFIG_EXT2_FS is not set 136 | # CONFIG_EXT2_FS_XATTR is not set 137 | @@ -1136,7 +1136,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 138 | # CONFIG_FENCE_TRACE is not set 139 | # CONFIG_FHANDLE is not set 140 | CONFIG_FIB_RULES=y 141 | -CONFIG_FILE_LOCKING=y 142 | +CONFIG_FILE_LOCKING=y 143 | # CONFIG_FIREWIRE is not set 144 | # CONFIG_FIREWIRE_NOSY is not set 145 | # CONFIG_FIREWIRE_SERIAL is not set 146 | @@ -1257,8 +1257,8 @@ CONFIG_HAVE_KERNEL_LZ4=y 147 | CONFIG_HAVE_KERNEL_LZMA=y 148 | CONFIG_HAVE_KERNEL_LZO=y 149 | CONFIG_HAVE_KERNEL_XZ=y 150 | -CONFIG_HAVE_KPROBES=y 151 | -CONFIG_HAVE_KRETPROBES=y 152 | +# CONFIG_HAVE_KPROBES is not set 153 | +# CONFIG_HAVE_KRETPROBES is not set 154 | # CONFIG_HCALL_STATS is not set 155 | # CONFIG_HDC100X is not set 156 | # CONFIG_HDLC is not set 157 | @@ -1397,14 +1397,14 @@ CONFIG_HW_PERF_EVENTS=y 158 | # CONFIG_HW_RANDOM_VIRTIO is not set 159 | # CONFIG_HYPERV is not set 160 | # CONFIG_HYSDN is not set 161 | -CONFIG_HZ=100 162 | -CONFIG_HZ_100=y 163 | +CONFIG_HZ=250 164 | +# CONFIG_HZ_100 is not set 165 | # CONFIG_HZ_1000 is not set 166 | # CONFIG_HZ_1024 is not set 167 | # CONFIG_HZ_128 is not set 168 | # CONFIG_HZ_200 is not set 169 | # CONFIG_HZ_24 is not set 170 | -# CONFIG_HZ_250 is not set 171 | +CONFIG_HZ_250=y 172 | # CONFIG_HZ_256 is not set 173 | # CONFIG_HZ_300 is not set 174 | # CONFIG_HZ_48 is not set 175 | @@ -1496,7 +1496,7 @@ CONFIG_HZ_100=y 176 | # CONFIG_IBM_EMAC_ZMII is not set 177 | # CONFIG_ICPLUS_PHY is not set 178 | # CONFIG_ICS932S401 is not set 179 | -# CONFIG_IDE is not set 180 | +# CONFIG_IDE is not set 181 | # CONFIG_IDEAPAD_LAPTOP is not set 182 | # CONFIG_IDE_GD is not set 183 | # CONFIG_IDE_PROC_FS is not set 184 | @@ -1651,8 +1651,8 @@ CONFIG_INPUT_MISC=y 185 | CONFIG_IOSCHED_DEADLINE=y 186 | CONFIG_IOSCHED_NOOP=y 187 | # CONFIG_IP17XX_PHY is not set 188 | -# CONFIG_IP6_NF_FILTER is not set 189 | -# CONFIG_IP6_NF_IPTABLES is not set 190 | +# CONFIG_IP6_NF_FILTER is not set 191 | +# CONFIG_IP6_NF_IPTABLES is not set 192 | # CONFIG_IP6_NF_MANGLE is not set 193 | # CONFIG_IP6_NF_MATCH_AH is not set 194 | # CONFIG_IP6_NF_MATCH_EUI64 is not set 195 | @@ -1671,7 +1671,7 @@ CONFIG_IOSCHED_NOOP=y 196 | # CONFIG_IPACK_BUS is not set 197 | # CONFIG_IPC_NS is not set 198 | # CONFIG_IPMI_HANDLER is not set 199 | -# CONFIG_IPV6 is not set 200 | +# CONFIG_IPV6 is not set 201 | # CONFIG_IPV6_ILA is not set 202 | # CONFIG_IPV6_MIP6 is not set 203 | # CONFIG_IPV6_MROUTE is not set 204 | @@ -1707,9 +1707,10 @@ CONFIG_IP_MULTIPLE_TABLES=y 205 | # CONFIG_IP_NF_ARPFILTER is not set 206 | # CONFIG_IP_NF_ARPTABLES is not set 207 | # CONFIG_IP_NF_ARP_MANGLE is not set 208 | -# CONFIG_IP_NF_FILTER is not set 209 | -# CONFIG_IP_NF_IPTABLES is not set 210 | +# CONFIG_IP_NF_FILTER is not set 211 | +# CONFIG_IP_NF_IPTABLES is not set 212 | # CONFIG_IP_NF_MANGLE is not set 213 | +# CONFIG_IP_NF_NAT is not set 214 | # CONFIG_IP_NF_MATCH_AH is not set 215 | # CONFIG_IP_NF_MATCH_ECN is not set 216 | # CONFIG_IP_NF_MATCH_RPFILTER is not set 217 | @@ -1718,11 +1719,11 @@ CONFIG_IP_MULTIPLE_TABLES=y 218 | # CONFIG_IP_NF_SECURITY is not set 219 | # CONFIG_IP_NF_TARGET_CLUSTERIP is not set 220 | # CONFIG_IP_NF_TARGET_ECN is not set 221 | -# CONFIG_IP_NF_TARGET_MASQUERADE is not set 222 | -# CONFIG_IP_NF_TARGET_NETMAP is not set 223 | -# CONFIG_IP_NF_TARGET_REDIRECT is not set 224 | -# CONFIG_IP_NF_TARGET_REJECT is not set 225 | -# CONFIG_IP_NF_TARGET_SYNPROXY is not set 226 | +# CONFIG_IP_NF_TARGET_MASQUERADE is not set 227 | +# CONFIG_IP_NF_TARGET_NETMAP is not set 228 | +# CONFIG_IP_NF_TARGET_REDIRECT is not set 229 | +# CONFIG_IP_NF_TARGET_REJECT is not set 230 | +# CONFIG_IP_NF_TARGET_SYNPROXY is not set 231 | # CONFIG_IP_NF_TARGET_TTL is not set 232 | # CONFIG_IP_PIMSM_V1 is not set 233 | # CONFIG_IP_PIMSM_V2 is not set 234 | @@ -1755,7 +1756,7 @@ CONFIG_IP_ROUTE_VERBOSE=y 235 | # CONFIG_IR_TTUSBIR is not set 236 | # CONFIG_ISCSI_BOOT_SYSFS is not set 237 | # CONFIG_ISCSI_TCP is not set 238 | -CONFIG_ISDN=y 239 | +# CONFIG_ISDN is not set 240 | # CONFIG_ISDN_AUDIO is not set 241 | # CONFIG_ISDN_CAPI is not set 242 | # CONFIG_ISDN_CAPI_CAPIDRV is not set 243 | @@ -1806,8 +1807,8 @@ CONFIG_JFFS2_SUMMARY=y 244 | # CONFIG_JME is not set 245 | CONFIG_JOLIET=y 246 | # CONFIG_JSA1212 is not set 247 | -# CONFIG_JUMP_LABEL is not set 248 | -# CONFIG_KALLSYMS is not set 249 | +CONFIG_JUMP_LABEL=y 250 | +# CONFIG_KALLSYMS is not set 251 | # CONFIG_KALLSYMS_ALL is not set 252 | # CONFIG_KALLSYMS_UNCOMPRESSED is not set 253 | # CONFIG_KARMA_PARTITION is not set 254 | @@ -1817,7 +1818,7 @@ CONFIG_JOLIET=y 255 | # CONFIG_KERNEL_LZ4 is not set 256 | # CONFIG_KERNEL_LZMA is not set 257 | # CONFIG_KERNEL_LZO is not set 258 | -CONFIG_KERNEL_MODE_NEON=y 259 | +# CONFIG_KERNEL_MODE_NEON is not set 260 | CONFIG_KERNEL_XZ=y 261 | CONFIG_KERNFS=y 262 | # CONFIG_KEXEC is not set 263 | @@ -1861,7 +1862,7 @@ CONFIG_KERNFS=y 264 | # CONFIG_KS8851_MLL is not set 265 | # CONFIG_KSM is not set 266 | # CONFIG_KSZ884X_PCI is not set 267 | -CONFIG_KUSER_HELPERS=y 268 | +# CONFIG_KUSER_HELPERS is not set 269 | # CONFIG_KVM_AMD is not set 270 | # CONFIG_KVM_GUEST is not set 271 | # CONFIG_KVM_INTEL is not set 272 | @@ -1967,7 +1968,7 @@ CONFIG_LOCKD_V4=y 273 | # CONFIG_LOGITECH_FF is not set 274 | # CONFIG_LOGIWHEELS_FF is not set 275 | # CONFIG_LOGO is not set 276 | -CONFIG_LOG_BUF_SHIFT=17 277 | +CONFIG_LOG_BUF_SHIFT=17 278 | CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 279 | # CONFIG_LOONGSON_MC146818 is not set 280 | # CONFIG_LPC_ICH is not set 281 | @@ -2011,7 +2012,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 282 | # CONFIG_MAC_PARTITION is not set 283 | # CONFIG_MAG3110 is not set 284 | # CONFIG_MAGIC_SYSRQ is not set 285 | -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 286 | +# CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE is not set 287 | # CONFIG_MAGIC_SYSRQ_SERIAL is not set 288 | # CONFIG_MAILBOX is not set 289 | # CONFIG_MANGLE_BOOTARGS is not set 290 | @@ -2401,8 +2402,8 @@ CONFIG_MULTIUSER=y 291 | CONFIG_NET=y 292 | # CONFIG_NETCONSOLE is not set 293 | CONFIG_NETDEVICES=y 294 | -# CONFIG_NETFILTER is not set 295 | -# CONFIG_NETFILTER_ADVANCED is not set 296 | +# CONFIG_NETFILTER is not set 297 | +# CONFIG_NETFILTER_ADVANCED is not set 298 | # CONFIG_NETFILTER_DEBUG is not set 299 | # CONFIG_NETFILTER_INGRESS is not set 300 | # CONFIG_NETFILTER_NETLINK is not set 301 | @@ -2410,7 +2411,8 @@ CONFIG_NETDEVICES=y 302 | # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set 303 | # CONFIG_NETFILTER_NETLINK_LOG is not set 304 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set 305 | -# CONFIG_NETFILTER_XTABLES is not set 306 | +# CONFIG_NETFILTER_SYNPROXY is not set 307 | +# CONFIG_NETFILTER_XTABLES is not set 308 | # CONFIG_NETFILTER_XT_CONNMARK is not set 309 | # CONFIG_NETFILTER_XT_MARK is not set 310 | # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set 311 | @@ -2458,6 +2460,7 @@ CONFIG_NETDEVICES=y 312 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set 313 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set 314 | # CONFIG_NETFILTER_XT_MATCH_U32 is not set 315 | +# CONFIG_NETFILTER_XT_NAT is not set 316 | # CONFIG_NETFILTER_XT_TARGET_AUDIT is not set 317 | # CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set 318 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 319 | @@ -2470,12 +2473,12 @@ CONFIG_NETDEVICES=y 320 | # CONFIG_NETFILTER_XT_TARGET_LED is not set 321 | # CONFIG_NETFILTER_XT_TARGET_LOG is not set 322 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set 323 | -# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set 324 | +# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set 325 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 326 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 327 | # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set 328 | # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set 329 | -# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set 330 | +# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set 331 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 332 | # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set 333 | # CONFIG_NETFILTER_XT_TARGET_TEE is not set 334 | @@ -2668,13 +2671,14 @@ CONFIG_NFS_V3=y 335 | # CONFIG_NFTL is not set 336 | # CONFIG_NFT_DUP_IPV4 is not set 337 | # CONFIG_NFT_DUP_IPV6 is not set 338 | -# CONFIG_NF_CONNTRACK is not set 339 | +# CONFIG_NF_CONNTRACK is not set 340 | +# CONFIG_NF_CONNTRACK_RTCACHE is not set 341 | # CONFIG_NF_CONNTRACK_AMANDA is not set 342 | # CONFIG_NF_CONNTRACK_EVENTS is not set 343 | # CONFIG_NF_CONNTRACK_FTP is not set 344 | # CONFIG_NF_CONNTRACK_H323 is not set 345 | -# CONFIG_NF_CONNTRACK_IPV4 is not set 346 | -# CONFIG_NF_CONNTRACK_IPV6 is not set 347 | +# CONFIG_NF_CONNTRACK_IPV4 is not set 348 | +# CONFIG_NF_CONNTRACK_IPV6 is not set 349 | # CONFIG_NF_CONNTRACK_IRC is not set 350 | # CONFIG_NF_CONNTRACK_MARK is not set 351 | # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set 352 | @@ -2686,7 +2690,7 @@ CONFIG_NF_CONNTRACK_PROCFS=y 353 | # CONFIG_NF_CONNTRACK_SNMP is not set 354 | # CONFIG_NF_CONNTRACK_TFTP is not set 355 | # CONFIG_NF_CONNTRACK_TIMEOUT is not set 356 | -# CONFIG_NF_CONNTRACK_TIMESTAMP is not set 357 | +# CONFIG_NF_CONNTRACK_TIMESTAMP is not set 358 | # CONFIG_NF_CONNTRACK_ZONES is not set 359 | # CONFIG_NF_CT_NETLINK is not set 360 | # CONFIG_NF_CT_NETLINK_TIMEOUT is not set 361 | @@ -2694,27 +2698,31 @@ CONFIG_NF_CONNTRACK_PROCFS=y 362 | # CONFIG_NF_CT_PROTO_GRE is not set 363 | # CONFIG_NF_CT_PROTO_SCTP is not set 364 | # CONFIG_NF_CT_PROTO_UDPLITE is not set 365 | -# CONFIG_NF_DEFRAG_IPV4 is not set 366 | +# CONFIG_NF_DEFRAG_IPV4 is not set 367 | # CONFIG_NF_DUP_IPV4 is not set 368 | # CONFIG_NF_DUP_IPV6 is not set 369 | # CONFIG_NF_LOG_ARP is not set 370 | -# CONFIG_NF_LOG_IPV4 is not set 371 | -# CONFIG_NF_NAT is not set 372 | +# CONFIG_NF_LOG_IPV4 is not set 373 | +# CONFIG_NF_LOG_IPV6 is not set 374 | +# CONFIG_NF_NAT is not set 375 | +# CONFIG_NF_NAT_IPV4 is not set 376 | +# CONFIG_NF_DEFRAG_IPV6 is not set 377 | # CONFIG_NF_NAT_AMANDA is not set 378 | # CONFIG_NF_NAT_FTP is not set 379 | # CONFIG_NF_NAT_H323 is not set 380 | # CONFIG_NF_NAT_IPV6 is not set 381 | # CONFIG_NF_NAT_IRC is not set 382 | -# CONFIG_NF_NAT_MASQUERADE_IPV4 is not set 383 | +# CONFIG_NF_NAT_MASQUERADE_IPV4 is not set 384 | # CONFIG_NF_NAT_MASQUERADE_IPV6 is not set 385 | -# CONFIG_NF_NAT_NEEDED is not set 386 | +# CONFIG_NF_NAT_NEEDED is not set 387 | +# CONFIG_NF_NAT_REDIRECT is not set 388 | # CONFIG_NF_NAT_PPTP is not set 389 | # CONFIG_NF_NAT_PROTO_GRE is not set 390 | # CONFIG_NF_NAT_SIP is not set 391 | # CONFIG_NF_NAT_SNMP_BASIC is not set 392 | # CONFIG_NF_NAT_TFTP is not set 393 | -# CONFIG_NF_REJECT_IPV4 is not set 394 | -# CONFIG_NF_REJECT_IPV6 is not set 395 | +# CONFIG_NF_REJECT_IPV4 is not set 396 | +# CONFIG_NF_REJECT_IPV6 is not set 397 | # CONFIG_NF_TABLES is not set 398 | # CONFIG_NF_TABLES_NETDEV is not set 399 | # CONFIG_NI65 is not set 400 | @@ -2914,7 +2922,7 @@ CONFIG_PARTITION_ADVANCED=y 401 | # CONFIG_PCI_MSI is not set 402 | # CONFIG_PCI_PASID is not set 403 | # CONFIG_PCI_PRI is not set 404 | -CONFIG_PCI_QUIRKS=y 405 | +CONFIG_PCI_QUIRKS=y 406 | # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set 407 | # CONFIG_PCI_STUB is not set 408 | CONFIG_PCI_SYSCALL=y 409 | @@ -2982,7 +2990,7 @@ CONFIG_PINMUX=y 410 | # CONFIG_PM_AUTOSLEEP is not set 411 | # CONFIG_PM_DEVFREQ is not set 412 | # CONFIG_PM_WAKELOCKS is not set 413 | -# CONFIG_POSIX_MQUEUE is not set 414 | +# CONFIG_POSIX_MQUEUE is not set 415 | # CONFIG_POWERCAP is not set 416 | # CONFIG_POWER_AVS is not set 417 | # CONFIG_POWER_RESET is not set 418 | @@ -2999,7 +3007,7 @@ CONFIG_PINMUX=y 419 | # CONFIG_PPC4xx_GPIO is not set 420 | # CONFIG_PPC_16K_PAGES is not set 421 | # CONFIG_PPC_256K_PAGES is not set 422 | -CONFIG_PPC_4K_PAGES=y 423 | +# CONFIG_PPC_4K_PAGES is not set 424 | # CONFIG_PPC_64K_PAGES is not set 425 | # CONFIG_PPC_DISABLE_WERROR is not set 426 | # CONFIG_PPC_EMULATED_STATS is not set 427 | @@ -3034,7 +3042,7 @@ CONFIG_PRINT_STACK_DEPTH=64 428 | # CONFIG_PRISM54 is not set 429 | # CONFIG_PROC_CHILDREN is not set 430 | CONFIG_PROC_FS=y 431 | -# CONFIG_PROC_KCORE is not set 432 | +# CONFIG_PROC_KCORE is not set 433 | # CONFIG_PROC_PAGE_MONITOR is not set 434 | CONFIG_PROC_STRIPPED=y 435 | CONFIG_PROC_SYSCTL=y 436 | @@ -3104,7 +3112,7 @@ CONFIG_RCU_FANOUT_LEAF=16 437 | CONFIG_RCU_KTHREAD_PRIO=0 438 | # CONFIG_RCU_NOCB_CPU is not set 439 | # CONFIG_RCU_TORTURE_TEST is not set 440 | -CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 441 | +# CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY is not set 442 | # CONFIG_RCU_TRACE is not set 443 | # CONFIG_RC_ATI_REMOTE is not set 444 | # CONFIG_RC_CORE is not set 445 | @@ -3633,7 +3641,7 @@ CONFIG_SERIAL_EARLYCON=y 446 | # CONFIG_SGI_IP28 is not set 447 | # CONFIG_SGI_IP32 is not set 448 | # CONFIG_SGI_PARTITION is not set 449 | -CONFIG_SHMEM=y 450 | +CONFIG_SHMEM=y 451 | # CONFIG_SH_ETH is not set 452 | # CONFIG_SH_TIMER_CMT is not set 453 | # CONFIG_SH_TIMER_MTU2 is not set 454 | @@ -4014,7 +4022,7 @@ CONFIG_SSB_POSSIBLE=y 455 | # CONFIG_SSB_SILENT is not set 456 | # CONFIG_SSFDC is not set 457 | # CONFIG_STACKTRACE is not set 458 | -CONFIG_STACKTRACE_SUPPORT=y 459 | +CONFIG_STACKTRACE_SUPPORT=y 460 | # CONFIG_STACK_TRACER is not set 461 | CONFIG_STAGING=y 462 | # CONFIG_STAGING_BOARD is not set 463 | @@ -4045,7 +4053,7 @@ CONFIG_STRIP_ASM_SYMS=y 464 | # CONFIG_SUN_PARTITION is not set 465 | # CONFIG_SUSPEND is not set 466 | # CONFIG_SUSPEND_SKIP_SYNC is not set 467 | -CONFIG_SWAP=y 468 | +CONFIG_SWAP=y 469 | # CONFIG_SWCONFIG is not set 470 | # CONFIG_SWCONFIG_LEDS is not set 471 | # CONFIG_SX9500 is not set 472 | @@ -4053,7 +4061,7 @@ CONFIG_SWAP=y 473 | # CONFIG_SYNCLINK_CS is not set 474 | # CONFIG_SYNOPSYS_DWC_ETH_QOS is not set 475 | CONFIG_SYN_COOKIES=y 476 | -CONFIG_SYSCTL=y 477 | +CONFIG_SYSCTL=y 478 | # CONFIG_SYSCTL_SYSCALL is not set 479 | CONFIG_SYSFS=y 480 | # CONFIG_SYSFS_DEPRECATED is not set 481 | @@ -4220,11 +4228,11 @@ CONFIG_TMPFS_XATTR=y 482 | # CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set 483 | # CONFIG_TRACE_BRANCH_PROFILING is not set 484 | # CONFIG_TRACE_ENUM_MAP_FILE is not set 485 | -CONFIG_TRACE_IRQFLAGS_SUPPORT=y 486 | +CONFIG_TRACE_IRQFLAGS_SUPPORT=y 487 | # CONFIG_TRACE_SINK is not set 488 | # CONFIG_TRACING_EVENTS_GPIO is not set 489 | -CONFIG_TRACING_SUPPORT=y 490 | -CONFIG_TRAD_SIGNALS=y 491 | +CONFIG_TRACING_SUPPORT=y 492 | +CONFIG_TRAD_SIGNALS=y 493 | # CONFIG_TRANSPARENT_HUGEPAGE is not set 494 | # CONFIG_TREE_RCU is not set 495 | # CONFIG_TREE_RCU_TRACE is not set 496 | @@ -4252,7 +4260,7 @@ CONFIG_UEVENT_HELPER=y 497 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 498 | # CONFIG_UFS_FS is not set 499 | # CONFIG_UHID is not set 500 | -CONFIG_UID16=y 501 | +CONFIG_UID16=y 502 | # CONFIG_UIO is not set 503 | # CONFIG_ULTRA is not set 504 | # CONFIG_ULTRIX_PARTITION is not set 505 | @@ -4700,7 +4708,7 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y 506 | # CONFIG_VIRTUALIZATION is not set 507 | # CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set 508 | # CONFIG_VIRT_DRIVERS is not set 509 | -CONFIG_VIRT_TO_BUS=y 510 | +CONFIG_VIRT_TO_BUS=y 511 | # CONFIG_VITESSE_PHY is not set 512 | CONFIG_VLAN_8021Q=y 513 | # CONFIG_VLAN_8021Q_GVRP is not set 514 | @@ -4771,12 +4779,12 @@ CONFIG_WLAN=y 515 | # CONFIG_WLCORE is not set 516 | # CONFIG_WL_MEDIATEK is not set 517 | CONFIG_WL_TI=y 518 | -CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y 519 | +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set 520 | # CONFIG_X25 is not set 521 | # CONFIG_X509_CERTIFICATE_PARSER is not set 522 | # CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set 523 | # CONFIG_X86_PKG_TEMP_THERMAL is not set 524 | -CONFIG_X86_SYSFB=y 525 | +# CONFIG_X86_SYSFB is not set 526 | # CONFIG_XEN is not set 527 | CONFIG_XFRM=y 528 | # CONFIG_XFRM_IPCOMP is not set 529 | @@ -4795,7 +4803,7 @@ CONFIG_XFRM=y 530 | # CONFIG_XILINX_LL_TEMAC is not set 531 | # CONFIG_XILINX_WATCHDOG is not set 532 | # CONFIG_XILLYBUS is not set 533 | -# CONFIG_XIP_KERNEL is not set 534 | +# CONFIG_XIP_KERNEL is not set 535 | # CONFIG_XMON is not set 536 | CONFIG_XZ_DEC=y 537 | # CONFIG_XZ_DEC_ARM is not set 538 | -------------------------------------------------------------------------------- /patch/008-remove-kernel-debug.patch: -------------------------------------------------------------------------------- 1 | diff --git a/./target/linux/generic/patches-4.4/008-remove-kernel-debug.patch b/./target/linux/generic/patches-4.4/008-remove-kernel-debug.patch 2 | new file mode 100644 3 | index 0000000..a5b843a 4 | --- /dev/null 5 | +++ b/./target/linux/generic/patches-4.4/008-remove-kernel-debug.patch 6 | @@ -0,0 +1,10 @@ 7 | +--- a/init/Kconfig 2017-01-31 03:02:50.000000000 +0800 8 | ++++ b/init/Kconfig 2017-01-31 08:20:27.460797686 +0800 9 | +@@ -1380,7 +1380,6 @@ config BPF 10 | + menuconfig EXPERT 11 | + bool "Configure standard kernel features (expert users)" 12 | + # Unhide debug options, to make the on-by-default options visible 13 | +- select DEBUG_KERNEL 14 | + help 15 | + This option allows certain base kernel options and settings 16 | + to be disabled or tweaked. This is for specialized 17 | -------------------------------------------------------------------------------- /patch/009-ar71xx-kernel-options.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/ar71xx/config-4.4 b/target/linux/ar71xx/config-4.4 2 | index ff6bb13..98781eb 100644 3 | --- a/target/linux/ar71xx/config-4.4 4 | +++ b/target/linux/ar71xx/config-4.4 5 | @@ -1,9 +1,9 @@ 6 | CONFIG_AG71XX=y 7 | -CONFIG_AG71XX_AR8216_SUPPORT=y 8 | +# CONFIG_AG71XX_AR8216_SUPPORT is not set 9 | # CONFIG_AG71XX_DEBUG is not set 10 | # CONFIG_AG71XX_DEBUG_FS is not set 11 | -CONFIG_AR8216_PHY=y 12 | -CONFIG_AR8216_PHY_LEDS=y 13 | +# CONFIG_AR8216_PHY is not set 14 | +# CONFIG_AR8216_PHY_LEDS is not set 15 | CONFIG_ARCH_BINFMT_ELF_STATE=y 16 | CONFIG_ARCH_CLOCKSOURCE_DATA=y 17 | CONFIG_ARCH_DISCARD_MEMBLOCK=y 18 | @@ -20,7 +20,7 @@ CONFIG_ARCH_SUPPORTS_UPROBES=y 19 | CONFIG_ARCH_SUSPEND_POSSIBLE=y 20 | CONFIG_ARCH_USE_BUILTIN_BSWAP=y 21 | CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y 22 | -CONFIG_AT803X_PHY=y 23 | +# CONFIG_AT803X_PHY is not set 24 | CONFIG_ATH79=y 25 | CONFIG_ATH79_DEV_AP9X_PCI=y 26 | CONFIG_ATH79_DEV_DSA=y 27 | @@ -229,7 +229,7 @@ CONFIG_ATH79_NVRAM=y 28 | CONFIG_ATH79_PCI_ATH9K_FIXUP=y 29 | # CONFIG_ATH79_ROUTERBOOT is not set 30 | CONFIG_ATH79_WDT=y 31 | -CONFIG_CC_OPTIMIZE_FOR_SIZE=y 32 | +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 33 | CONFIG_CEVT_R4K=y 34 | CONFIG_CLKDEV_LOOKUP=y 35 | CONFIG_CLONE_BACKWARDS=y 36 | @@ -241,15 +241,15 @@ CONFIG_CPU_BIG_ENDIAN=y 37 | CONFIG_CPU_GENERIC_DUMP_TLB=y 38 | CONFIG_CPU_HAS_PREFETCH=y 39 | CONFIG_CPU_HAS_SYNC=y 40 | -CONFIG_CPU_MIPS32=y 41 | +CONFIG_CPU_MIPS32=y 42 | CONFIG_CPU_MIPS32_R2=y 43 | CONFIG_CPU_MIPSR2=y 44 | CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y 45 | -CONFIG_CPU_R4K_CACHE_TLB=y 46 | -CONFIG_CPU_R4K_FPU=y 47 | +CONFIG_CPU_R4K_CACHE_TLB=y 48 | +# CONFIG_CPU_R4K_FPU is not set 49 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 50 | CONFIG_CPU_SUPPORTS_HIGHMEM=y 51 | -CONFIG_CPU_SUPPORTS_MSA=y 52 | +# CONFIG_CPU_SUPPORTS_MSA is not set 53 | CONFIG_CRYPTO_RNG2=y 54 | CONFIG_CRYPTO_WORKQUEUE=y 55 | CONFIG_CSRC_R4K=y 56 | @@ -281,29 +281,29 @@ CONFIG_HAS_IOPORT_MAP=y 57 | # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set 58 | # CONFIG_HAVE_ARCH_BITREVERSE is not set 59 | CONFIG_HAVE_ARCH_JUMP_LABEL=y 60 | -CONFIG_HAVE_ARCH_KGDB=y 61 | +CONFIG_HAVE_ARCH_KGDB=y 62 | CONFIG_HAVE_ARCH_SECCOMP_FILTER=y 63 | -CONFIG_HAVE_ARCH_TRACEHOOK=y 64 | +CONFIG_HAVE_ARCH_TRACEHOOK=y 65 | # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set 66 | -CONFIG_HAVE_BPF_JIT=y 67 | +# CONFIG_HAVE_BPF_JIT is not set 68 | CONFIG_HAVE_CC_STACKPROTECTOR=y 69 | CONFIG_HAVE_CLK=y 70 | CONFIG_HAVE_CLK_PREPARE=y 71 | CONFIG_HAVE_CONTEXT_TRACKING=y 72 | CONFIG_HAVE_C_RECORDMCOUNT=y 73 | -CONFIG_HAVE_DEBUG_KMEMLEAK=y 74 | -CONFIG_HAVE_DEBUG_STACKOVERFLOW=y 75 | -CONFIG_HAVE_DMA_API_DEBUG=y 76 | -CONFIG_HAVE_DMA_ATTRS=y 77 | -CONFIG_HAVE_DMA_CONTIGUOUS=y 78 | -CONFIG_HAVE_DYNAMIC_FTRACE=y 79 | -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 80 | -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 81 | -CONFIG_HAVE_FUNCTION_TRACER=y 82 | -CONFIG_HAVE_GENERIC_DMA_COHERENT=y 83 | -CONFIG_HAVE_IDE=y 84 | +CONFIG_HAVE_DEBUG_KMEMLEAK=y 85 | +CONFIG_HAVE_DEBUG_STACKOVERFLOW=y 86 | +CONFIG_HAVE_DMA_API_DEBUG=y 87 | +CONFIG_HAVE_DMA_ATTRS=y 88 | +CONFIG_HAVE_DMA_CONTIGUOUS=y 89 | +CONFIG_HAVE_DYNAMIC_FTRACE=y 90 | +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 91 | +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 92 | +CONFIG_HAVE_FUNCTION_TRACER=y 93 | +CONFIG_HAVE_GENERIC_DMA_COHERENT=y 94 | +CONFIG_HAVE_IDE=y 95 | CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y 96 | -CONFIG_HAVE_KVM=y 97 | +CONFIG_HAVE_KVM=y 98 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y 99 | CONFIG_HAVE_MEMBLOCK=y 100 | CONFIG_HAVE_MEMBLOCK_NODE_MAP=y 101 | @@ -311,7 +311,7 @@ CONFIG_HAVE_MOD_ARCH_SPECIFIC=y 102 | CONFIG_HAVE_NET_DSA=y 103 | CONFIG_HAVE_OPROFILE=y 104 | CONFIG_HAVE_PERF_EVENTS=y 105 | -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 106 | +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 107 | CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y 108 | CONFIG_HW_HAS_PCI=y 109 | CONFIG_HZ_PERIODIC=y 110 | @@ -323,7 +323,7 @@ CONFIG_IMAGE_CMDLINE_HACK=y 111 | CONFIG_INITRAMFS_ROOT_GID=0 112 | CONFIG_INITRAMFS_ROOT_UID=0 113 | CONFIG_INITRAMFS_SOURCE="../../root" 114 | -CONFIG_IP17XX_PHY=y 115 | +# CONFIG_IP17XX_PHY is not set 116 | CONFIG_IRQCHIP=y 117 | CONFIG_IRQ_DOMAIN=y 118 | CONFIG_IRQ_FORCED_THREADING=y 119 | @@ -333,11 +333,11 @@ CONFIG_LEDS_GPIO=y 120 | CONFIG_LEDS_NU801=y 121 | # CONFIG_LEDS_WNDR3700_USB is not set 122 | CONFIG_LIBFDT=y 123 | -CONFIG_MARVELL_PHY=y 124 | +# CONFIG_MARVELL_PHY is not set 125 | CONFIG_MDIO_BITBANG=y 126 | CONFIG_MDIO_BOARDINFO=y 127 | CONFIG_MDIO_GPIO=y 128 | -CONFIG_MICREL_PHY=y 129 | +# CONFIG_MICREL_PHY is not set 130 | CONFIG_MIPS=y 131 | CONFIG_MIPS_CLOCK_VSYSCALL=y 132 | # CONFIG_MIPS_CMDLINE_DTB_EXTEND is not set 133 | @@ -374,10 +374,10 @@ CONFIG_MTD_TPLINK_PARTS=y 134 | CONFIG_MYLOADER=y 135 | CONFIG_NEED_DMA_MAP_STATE=y 136 | CONFIG_NEED_PER_CPU_KM=y 137 | -CONFIG_NET_DSA=y 138 | -CONFIG_NET_DSA_MV88E6060=y 139 | -CONFIG_NET_DSA_MV88E6063=y 140 | -CONFIG_NET_DSA_TAG_TRAILER=y 141 | +# CONFIG_NET_DSA is not set 142 | +# CONFIG_NET_DSA_MV88E6060 is not set 143 | +# CONFIG_NET_DSA_MV88E6063 is not set 144 | +# CONFIG_NET_DSA_TAG_TRAILER is not set 145 | CONFIG_NET_SWITCHDEV=y 146 | CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y 147 | # CONFIG_NO_IOPORT_MAP is not set 148 | @@ -402,7 +402,7 @@ CONFIG_PGTABLE_LEVELS=2 149 | CONFIG_PHYLIB=y 150 | CONFIG_RATIONAL=y 151 | # CONFIG_RCU_STALL_COMMON is not set 152 | -CONFIG_RTL8306_PHY=y 153 | +# CONFIG_RTL8306_PHY is not set 154 | CONFIG_RTL8366RB_PHY=y 155 | CONFIG_RTL8366S_PHY=y 156 | CONFIG_RTL8366_SMI=y 157 | @@ -420,10 +420,10 @@ CONFIG_SOC_AR71XX=y 158 | CONFIG_SOC_AR724X=y 159 | CONFIG_SOC_AR913X=y 160 | CONFIG_SOC_AR933X=y 161 | -CONFIG_SOC_AR934X=y 162 | +# CONFIG_SOC_AR934X is not set 163 | CONFIG_SOC_QCA953X=y 164 | -CONFIG_SOC_QCA955X=y 165 | -CONFIG_SOC_QCA956X=y 166 | +# CONFIG_SOC_QCA955X is not set 167 | +# CONFIG_SOC_QCA956X is not set 168 | CONFIG_SPI=y 169 | CONFIG_SPI_ATH79=y 170 | CONFIG_SPI_BITBANG=y 171 | @@ -433,13 +433,13 @@ CONFIG_SPI_MASTER=y 172 | CONFIG_SRCU=y 173 | CONFIG_SWCONFIG=y 174 | CONFIG_SWCONFIG_LEDS=y 175 | -CONFIG_SYSCTL_EXCEPTION_TRACE=y 176 | +CONFIG_SYSCTL_EXCEPTION_TRACE=y 177 | CONFIG_SYS_HAS_CPU_MIPS32_R2=y 178 | CONFIG_SYS_HAS_EARLY_PRINTK=y 179 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 180 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 181 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 182 | -CONFIG_SYS_SUPPORTS_MIPS16=y 183 | +# CONFIG_SYS_SUPPORTS_MIPS16 is not set 184 | CONFIG_SYS_SUPPORTS_ZBOOT=y 185 | CONFIG_TICK_CPU_ACCOUNTING=y 186 | CONFIG_USB_SUPPORT=y 187 | -------------------------------------------------------------------------------- /patch/010-no-l2-cache-runtime-check.patch: -------------------------------------------------------------------------------- 1 | diff --git a/./target/linux/ar71xx/patches-4.4/221-no-l2-cache-runtime-check.patch b/./target/linux/ar71xx/patches-4.4/221-no-l2-cache-runtime-check.patch 2 | new file mode 100644 3 | index 0000000..8a793a4 4 | --- /dev/null 5 | +++ b/./target/linux/ar71xx/patches-4.4/221-no-l2-cache-runtime-check.patch 6 | @@ -0,0 +1,42 @@ 7 | +--- a/arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h 8 | ++++ b/arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h 9 | +@@ -22,6 +22,7 @@ 10 | + #define cpu_has_4k_cache 1 11 | + #define cpu_has_tx39_cache 0 12 | + #define cpu_has_sb1_cache 0 13 | ++#define cpu_has_inclusive_pcaches 0 14 | + #define cpu_has_fpu 0 15 | + #define cpu_has_32fpr 0 16 | + #define cpu_has_counter 1 17 | +@@ -32,17 +33,29 @@ 18 | + #define cpu_has_ejtag 1 19 | + #define cpu_has_llsc 1 20 | + 21 | +-#define cpu_has_mips16 1 22 | ++#define cpu_has_msa 0 23 | ++#define cpu_has_mips16 0 24 | + #define cpu_has_mdmx 0 25 | + #define cpu_has_mips3d 0 26 | + #define cpu_has_smartmips 0 27 | + #define cpu_has_rixi 0 28 | + 29 | +-#define cpu_has_mips32r1 1 30 | ++#define cpu_has_mips_1 0 31 | ++#define cpu_has_mips_2 0 32 | ++#define cpu_has_mips_3 0 33 | ++#define cpu_has_mips_4 0 34 | ++#define cpu_has_mips_5 0 35 | ++#define cpu_has_mips32r1 0 36 | + #define cpu_has_mips32r2 1 37 | ++#define cpu_has_mips32r6 0 38 | + #define cpu_has_mips64r1 0 39 | + #define cpu_has_mips64r2 0 40 | ++#define cpu_has_mips64r6 0 41 | ++ 42 | + 43 | ++#define cpu_has_wsbh 1 44 | ++#define cpu_has_dsp 0 45 | ++#define cpu_has_dsp2 0 46 | + #define cpu_has_mipsmt 0 47 | + #define cpu_has_userlocal 0 48 | + 49 | -------------------------------------------------------------------------------- /patch/011-add-DNDEBUG-default.patch: -------------------------------------------------------------------------------- 1 | diff --git a/config/Config-devel.in b/config/Config-devel.in 2 | index 938f0b3..d8dde72 100644 3 | --- a/config/Config-devel.in 4 | +++ b/config/Config-devel.in 5 | @@ -106,7 +106,7 @@ menuconfig DEVEL 6 | 7 | config EXTRA_OPTIMIZATION 8 | string "Additional compiler options" if DEVEL 9 | - default "-fno-caller-saves -fno-plt" if !CONFIG_EXTERNAL_TOOLCHAIN && !arc 10 | - default "-fno-caller-saves" 11 | + default "-fno-caller-saves -fno-plt -fomit-frame-pointer -DNDEBUG" if !CONFIG_EXTERNAL_TOOLCHAIN && !arc 12 | + default "-fno-caller-saves -DNDEBUG" 13 | help 14 | Extra target-independent optimizations to use when building for the target. 15 | -------------------------------------------------------------------------------- /patch/012-fix-upstream-feed.patch: -------------------------------------------------------------------------------- 1 | diff --git a/include/version.mk b/include/version.mk 2 | index 8a6ab94..2132a96 100644 3 | --- a/include/version.mk 4 | +++ b/include/version.mk 5 | @@ -40,7 +40,7 @@ VERSION_NICK:=$(call qstrip_escape,$(CONFIG_VERSION_NICK)) 6 | VERSION_NICK:=$(if $(VERSION_NICK),$(VERSION_NICK),$(RELEASE)) 7 | 8 | VERSION_REPO:=$(call qstrip_escape,$(CONFIG_VERSION_REPO)) 9 | -VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),http://downloads.lede-project.org/releases/17.01-SNAPSHOT) 10 | +VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),http://downloads.lede-project.org/releases/17.01.2) 11 | 12 | VERSION_DIST:=$(call qstrip_escape,$(CONFIG_VERSION_DIST)) 13 | VERSION_DIST:=$(if $(VERSION_DIST),$(VERSION_DIST),LEDE) 14 | -------------------------------------------------------------------------------- /patch/012-update-kernel-version.patch: -------------------------------------------------------------------------------- 1 | diff --git a/include/kernel-version.mk b/include/kernel-version.mk 2 | index 150fd3f..d59a334 100644 3 | --- a/include/kernel-version.mk 4 | +++ b/include/kernel-version.mk 5 | @@ -3,10 +3,10 @@ 6 | LINUX_RELEASE?=1 7 | 8 | LINUX_VERSION-3.18 = .43 9 | -LINUX_VERSION-4.4 = .87 10 | +LINUX_VERSION-4.4 = .87 11 | 12 | LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c 13 | -LINUX_KERNEL_HASH-4.4.87 = 1ab05222c3c55e062c3f7418976137ee529f92174261ccb0cd5a7d3370ff6f5b 14 | +LINUX_KERNEL_HASH-4.4.87 = 1ab05222c3c55e062c3f7418976137ee529f92174261ccb0cd5a7d3370ff6f5b 15 | 16 | ifdef KERNEL_PATCHVER 17 | LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) 18 | -------------------------------------------------------------------------------- /patch/013-set-default-wr1043nd-target.patch: -------------------------------------------------------------------------------- 1 | diff --git a/scripts/target-metadata.pl b/scripts/target-metadata.pl 2 | index 31de3c7..f7c82c5 100755 3 | --- a/scripts/target-metadata.pl 4 | +++ b/scripts/target-metadata.pl 5 | @@ -203,7 +203,7 @@ endchoice 6 | 7 | choice 8 | prompt "Target Profile" 9 | - default TARGET_MULTI_PROFILE if BUILDBOT 10 | + default TARGET_ar71xx_generic_DEVICE_tl-wr1043nd-v1 11 | 12 | EOF 13 | foreach my $target (@target) { 14 | -------------------------------------------------------------------------------- /patch/015-reg-wireless.patch: -------------------------------------------------------------------------------- 1 | diff --git a/package/kernel/mac80211/files/regdb.txt b/package/kernel/mac80211/files/regdb.txt 2 | index 463ace3..5a6982e 100644 3 | --- a/package/kernel/mac80211/files/regdb.txt 4 | +++ b/package/kernel/mac80211/files/regdb.txt 5 | @@ -1,18 +1,18 @@ 6 | # This is the world regulatory domain 7 | country 00: 8 | - (2402 - 2472 @ 40), (20) 9 | + (2402 - 2472 @ 40), (30) 10 | # Channel 12 - 13. 11 | - (2457 - 2482 @ 20), (20), NO-IR, AUTO-BW 12 | + (2457 - 2482 @ 20), (30), NO-IR, AUTO-BW 13 | # Channel 14. Only JP enables this and for 802.11b only 14 | (2474 - 2494 @ 20), (20), NO-IR, NO-OFDM 15 | # Channel 36 - 48 16 | - (5170 - 5250 @ 80), (20), AUTO-BW 17 | + (5170 - 5250 @ 80), (30), AUTO-BW 18 | # Channel 52 - 64 19 | - (5250 - 5330 @ 80), (20), NO-IR, DFS, AUTO-BW 20 | + (5250 - 5330 @ 80), (30), NO-IR, DFS, AUTO-BW 21 | # Channel 100 - 144 22 | - (5490 - 5730 @ 160), (20), NO-IR, DFS 23 | + (5490 - 5730 @ 160), (30), NO-IR, DFS 24 | # Channel 149 - 165 25 | - (5735 - 5835 @ 80), (20), NO-IR 26 | + (5735 - 5835 @ 80), (30), NO-IR 27 | # IEEE 802.11ad (60GHz), channels 1..3 28 | (57240 - 63720 @ 2160), (0) 29 | 30 | -------------------------------------------------------------------------------- /patch/016-enable-wireless-default.patch: -------------------------------------------------------------------------------- 1 | diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh 2 | index 4bfc742..795b3e7 100644 3 | --- a/package/kernel/mac80211/files/lib/wifi/mac80211.sh 4 | +++ b/package/kernel/mac80211/files/lib/wifi/mac80211.sh 5 | @@ -116,7 +116,6 @@ detect_mac80211() { 6 | set wireless.radio${devidx}.hwmode=11${mode_band} 7 | ${dev_id} 8 | ${ht_capab} 9 | - set wireless.radio${devidx}.disabled=1 10 | 11 | set wireless.default_radio${devidx}=wifi-iface 12 | set wireless.default_radio${devidx}.device=radio${devidx} 13 | -------------------------------------------------------------------------------- /patch/017-harden-buildroot.patch: -------------------------------------------------------------------------------- 1 | diff --git a/config/Config-build.in b/config/Config-build.in 2 | index 7c82e8b..a3b88b5 100644 3 | --- a/config/Config-build.in 4 | +++ b/config/Config-build.in 5 | @@ -221,7 +221,7 @@ menu "Global build settings" 6 | choice 7 | prompt "User space Stack-Smashing Protection" 8 | depends on USE_MUSL 9 | - default PKG_CC_STACKPROTECTOR_REGULAR 10 | + default PKG_CC_STACKPROTECTOR_STRONG 11 | help 12 | Enable GCC Stack Smashing Protection (SSP) for userspace applications 13 | config PKG_CC_STACKPROTECTOR_NONE 14 | @@ -239,7 +239,7 @@ menu "Global build settings" 15 | 16 | choice 17 | prompt "Kernel space Stack-Smashing Protection" 18 | - default KERNEL_CC_STACKPROTECTOR_REGULAR 19 | + default KERNEL_CC_STACKPROTECTOR_STRONG 20 | depends on USE_MUSL || !(x86_64 || i386) 21 | help 22 | Enable GCC Stack-Smashing Protection (SSP) for the kernel 23 | -------------------------------------------------------------------------------- /patch/021-make-pthread-depend-default.patch: -------------------------------------------------------------------------------- 1 | diff --git a/include/package-defaults.mk b/include/package-defaults.mk 2 | index 2896b4c..276540b 100644 3 | --- a/include/package-defaults.mk 4 | +++ b/include/package-defaults.mk 5 | @@ -5,7 +5,7 @@ 6 | # See /LICENSE for more information. 7 | # 8 | 9 | -PKG_DEFAULT_DEPENDS = +libc +SSP_SUPPORT:libssp +USE_GLIBC:librt +USE_GLIBC:libpthread 10 | +PKG_DEFAULT_DEPENDS = +libc +SSP_SUPPORT:libssp +USE_GLIBC:librt +USE_GLIBC:libpthread +libpthread 11 | 12 | ifneq ($(PKG_NAME),toolchain) 13 | PKG_FIXUP_DEPENDS = $(if $(filter kmod-%,$(1)),$(2),$(PKG_DEFAULT_DEPENDS) $(filter-out $(PKG_DEFAULT_DEPENDS),$(2))) 14 | -------------------------------------------------------------------------------- /patch/035-sysctl-optimization.patch: -------------------------------------------------------------------------------- 1 | diff --git a/package/base-files/files/etc/sysctl.conf b/package/base-files/files/etc/sysctl.conf 2 | index 91a3ac9..4860566 100644 3 | --- a/package/base-files/files/etc/sysctl.conf 4 | +++ b/package/base-files/files/etc/sysctl.conf 5 | @@ -1,13 +1,22 @@ 6 | kernel.panic=3 7 | kernel.core_pattern=/tmp/%e.%t.%p.%s.core 8 | +net.core.rmem_max=2097152 9 | +net.core.wmem_max=2097152 10 | +net.core.netdev_max_backlog=16384 11 | +net.ipv4.tcp_max_syn_backlog=16384 12 | +net.ipv4.tcp_rmem=4096 87380 2097152 13 | +net.ipv4.tcp_wmem=4096 65536 2097152 14 | +net.ipv4.tcp_slow_start_after_idle=0 15 | 16 | net.ipv4.conf.default.arp_ignore=1 17 | net.ipv4.conf.all.arp_ignore=1 18 | +net.ipv4.conf.all.rp_filter=1 19 | net.ipv4.ip_forward=1 20 | net.ipv4.icmp_echo_ignore_broadcasts=1 21 | net.ipv4.icmp_ignore_bogus_error_responses=1 22 | net.ipv4.igmp_max_memberships=100 23 | net.ipv4.tcp_fin_timeout=30 24 | +net.ipv4.tcp_fastopen=3 25 | net.ipv4.tcp_keepalive_time=120 26 | net.ipv4.tcp_syncookies=1 27 | net.ipv4.tcp_timestamps=1 28 | @@ -16,6 +25,9 @@ net.ipv4.tcp_dsack=1 29 | 30 | net.ipv6.conf.default.forwarding=1 31 | net.ipv6.conf.all.forwarding=1 32 | +# Uncomment to enable ipv6 privacy mode 33 | +#net.ipv6.conf.all.use_tempaddr=2 34 | +#net.ipv6.conf.default.use_tempaddr=2 35 | 36 | net.netfilter.nf_conntrack_acct=1 37 | net.netfilter.nf_conntrack_checksum=0 38 | -------------------------------------------------------------------------------- /patch/040-gcc-final-toolchain-24kc-optimize.patch: -------------------------------------------------------------------------------- 1 | diff --git a/toolchain/gcc/final/Makefile b/toolchain/gcc/final/Makefile 2 | index 3434d89..f64242b 100644 3 | --- a/toolchain/gcc/final/Makefile 4 | +++ b/toolchain/gcc/final/Makefile 5 | @@ -7,9 +7,11 @@ GCC_CONFIGURE += \ 6 | --disable-libsanitizer \ 7 | --enable-languages=$(TARGET_LANGUAGES) \ 8 | --enable-shared \ 9 | - --enable-threads \ 10 | + --enable-threads=posix \ 11 | --with-slibdir=$(TOOLCHAIN_DIR)/lib \ 12 | --enable-lto \ 13 | + --enable-libstdcxx-threads \ 14 | + --disable-nls --with-mips-plt \ 15 | --with-libelf=$(TOPDIR)/staging_dir/host 16 | 17 | ifdef CONFIG_USE_MUSL 18 | diff --git a/toolchain/Config.in b/toolchain/Config.in 19 | index c7072fc..eee45cb 100644 20 | --- a/toolchain/Config.in 21 | +++ b/toolchain/Config.in 22 | @@ -28,7 +28,7 @@ menuconfig TARGET_OPTIONS 23 | config USE_MIPS16 24 | bool "Build packages with MIPS16 instructions" if TARGET_OPTIONS 25 | depends on HAS_MIPS16 26 | - default y 27 | + default n 28 | help 29 | If your target CPU does support the MIPS16 instruction set 30 | and you want to use it for packages, enable this option. 31 | -------------------------------------------------------------------------------- /patch/041-update-toolchain.patch: -------------------------------------------------------------------------------- 1 | diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in 2 | index 41ea61c..1ad283f 100644 3 | --- a/toolchain/gcc/Config.in 4 | +++ b/toolchain/gcc/Config.in 5 | @@ -3,7 +3,7 @@ 6 | choice 7 | prompt "GCC compiler Version" if TOOLCHAINOPTS 8 | default GCC_USE_VERSION_4_8_ARC if arc 9 | - default GCC_USE_VERSION_5 10 | + default GCC_USE_VERSION_6 11 | help 12 | Select the version of gcc you wish to use. 13 | 14 | diff --git a/toolchain/binutils/Config.in b/toolchain/binutils/Config.in 15 | index 9e535c4..5a22693 100644 16 | --- a/toolchain/binutils/Config.in 17 | +++ b/toolchain/binutils/Config.in 18 | @@ -2,7 +2,7 @@ 19 | 20 | choice 21 | prompt "Binutils Version" if TOOLCHAINOPTS 22 | - default BINUTILS_USE_VERSION_2_25_1 if !arc 23 | + default BINUTILS_USE_VERSION_2_27 if !arc 24 | default BINUTILS_USE_VERSION_2_26_ARC if arc 25 | help 26 | Select the version of binutils you wish to use. 27 | diff --git a/toolchain/gcc/final/Makefile b/toolchain/gcc/final/Makefile 28 | index 01fec38..5c5f720 100644 29 | --- a/toolchain/gcc/final/Makefile 30 | +++ b/toolchain/gcc/final/Makefile 31 | @@ -11,7 +11,7 @@ GCC_CONFIGURE += \ 32 | --with-slibdir=$(TOOLCHAIN_DIR)/lib \ 33 | --enable-lto \ 34 | --enable-libstdcxx-threads \ 35 | - --disable-nls --with-mips-plt \ 36 | + --disable-nls --with-mips-plt --enable-default-pie \ 37 | --with-libelf=$(TOPDIR)/staging_dir/host 38 | 39 | ifdef CONFIG_USE_MUSL 40 | -------------------------------------------------------------------------------- /patch/043-musl-enable-visibility-pic.patch: -------------------------------------------------------------------------------- 1 | diff --git a/toolchain/musl/common.mk b/toolchain/musl/common.mk 2 | index 3045c63..3ef6324 100644 3 | --- a/toolchain/musl/common.mk 4 | +++ b/toolchain/musl/common.mk 5 | @@ -37,8 +37,9 @@ MUSL_CONFIGURE:= \ 6 | --prefix=/ \ 7 | --host=$(GNU_HOST_NAME) \ 8 | --target=$(REAL_GNU_TARGET_NAME) \ 9 | + --enable-visibility \ 10 | --disable-gcc-wrapper \ 11 | - --enable-debug 12 | + --disable-debug 13 | 14 | define Host/Prepare 15 | $(call Host/Prepare/Default) 16 | -------------------------------------------------------------------------------- /patch/044-mips-musl-optimize.patch: -------------------------------------------------------------------------------- 1 | diff --git a/./toolchain/musl/patches/930-mips-optimize.patch b/./toolchain/musl/patches/930-mips-optimize.patch 2 | new file mode 100644 3 | index 0000000..41ef8dc 4 | --- /dev/null 5 | +++ b/./toolchain/musl/patches/930-mips-optimize.patch 6 | @@ -0,0 +1,11 @@ 7 | +--- a/Makefile 8 | ++++ b/Makefile 9 | +@@ -33,7 +33,7 @@ LDFLAGS_AUTO = 10 | + LIBCC = -lgcc 11 | + CPPFLAGS = 12 | + CFLAGS = 13 | +-CFLAGS_AUTO = -Os -pipe 14 | ++CFLAGS_AUTO = -O2 -pipe -march=24kc -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt 15 | + CFLAGS_C99FSE = -std=c99 -ffreestanding -nostdinc 16 | + 17 | + CFLAGS_ALL = $(CFLAGS_C99FSE) 18 | -------------------------------------------------------------------------------- /patch/045-force-enable-gcc6.patch: -------------------------------------------------------------------------------- 1 | diff --git a/config/Config-devel.in b/config/Config-devel.in 2 | index 938f0b3..52bcb57 100644 3 | --- a/config/Config-devel.in 4 | +++ b/config/Config-devel.in 5 | @@ -6,7 +6,7 @@ 6 | 7 | menuconfig DEVEL 8 | bool "Advanced configuration options (for developers)" 9 | - default n 10 | + default y 11 | 12 | config BROKEN 13 | bool "Show broken platforms / packages" if DEVEL 14 | diff --git a/toolchain/Config.in b/toolchain/Config.in 15 | index b53b8e6..11eed77 100644 16 | --- a/toolchain/Config.in 17 | +++ b/toolchain/Config.in 18 | @@ -163,6 +163,7 @@ config NEED_TOOLCHAIN 19 | menuconfig TOOLCHAINOPTS 20 | bool "Toolchain Options" if DEVEL 21 | depends on NEED_TOOLCHAIN 22 | + default y 23 | 24 | menuconfig EXTRA_TARGET_ARCH 25 | bool 26 | -------------------------------------------------------------------------------- /patch/052-add-realtek-switch-feature.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c 2 | index f4ec748..eef9193 100644 3 | --- a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c 4 | +++ b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c 5 | @@ -204,6 +204,25 @@ 6 | /* Include/Exclude Preamble and IFG (20 bytes). 0:Exclude, 1:Include. */ 7 | #define RTL8366RB_QOS_DEFAULT_PREIFG 1 8 | 9 | +/* Port-based priority register */ 10 | +#define RTL8366RB_PORT_PRIORITY_BASE 0x020C 11 | +#define RTL8366RB_PORT_PRIORITY_BITS 3 12 | +#define RTL8366RB_PORT_PRIORITY_MASK 0x7 13 | + 14 | +/* Storm Control Register 15 | + * Filter for: broadcast, multicast, unknown address, unknown multicast 16 | + */ 17 | +#define RTL8366RB_STORM_BC_REG 0x03E0 18 | +#define RTL8366RB_STORM_MC_REG 0x03E1 19 | +#define RTL8366RB_STORM_UA_REG 0x03E2 20 | +#define RTL8366RB_STORM_UM_REG 0x03E3 21 | +#define RTL8366RB_STORM_PORT_MASK(pnum) (1 << pnum) 22 | +#define RTL8366RB_STORM_RATE_BASE 0x03E4 23 | +#define RTL8366RB_STORM_RATE_REG(pnum) (RTL8366RB_STORM_RATE_BASE + pnum) 24 | +#define RTL8366RB_STORM_RATE_MASK 0x3FFF 25 | +#define RTL8366RB_STORM_RATE_MAX 1048576 26 | +#define RTL8366RB_STORM_RATE_UNIT 64 27 | +#define RTL8366RB_STORM_RATE_DEFAULT 0 28 | 29 | static struct rtl8366_mib_counter rtl8366rb_mib_counters[] = { 30 | { 0, 0, 4, "IfInOctets" }, 31 | @@ -695,6 +714,48 @@ static int rtl8366rb_sw_set_learning_enable(struct switch_dev *dev, 32 | return 0; 33 | } 34 | 35 | +static int rtl8366rb_sw_get_max_length(struct switch_dev *dev, 36 | + const struct switch_attr *attr, 37 | + struct switch_val *val) 38 | +{ 39 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 40 | + u32 data; 41 | + 42 | + rtl8366_smi_read_reg(smi, RTL8366RB_SGCR, &data); 43 | + 44 | + val->value.i = ((data & (RTL8366RB_SGCR_MAX_LENGTH_MASK)) >> 4); 45 | + 46 | + return 0; 47 | +} 48 | + 49 | +static int rtl8366rb_sw_set_max_length(struct switch_dev *dev, 50 | + const struct switch_attr *attr, 51 | + struct switch_val *val) 52 | + { 53 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 54 | + char length_code; 55 | + 56 | + switch (val->value.i) { 57 | + case 0: 58 | + length_code = RTL8366RB_SGCR_MAX_LENGTH_1522; 59 | + break; 60 | + case 1: 61 | + length_code = RTL8366RB_SGCR_MAX_LENGTH_1536; 62 | + break; 63 | + case 2: 64 | + length_code = RTL8366RB_SGCR_MAX_LENGTH_1552; 65 | + break; 66 | + case 3: 67 | + length_code = RTL8366RB_SGCR_MAX_LENGTH_9216; 68 | + break; 69 | + default: 70 | + return -EINVAL; 71 | + } 72 | + return rtl8366_smi_rmwr(smi, RTL8366RB_SGCR, 73 | + RTL8366RB_SGCR_MAX_LENGTH_MASK, 74 | + length_code); 75 | +} 76 | + 77 | static int rtl8366rb_sw_get_port_link(struct switch_dev *dev, 78 | int port, 79 | struct switch_port_link *link) 80 | @@ -781,6 +842,61 @@ static int rtl8366rb_sw_get_port_led(struct switch_dev *dev, 81 | return 0; 82 | } 83 | 84 | +static int rtl8366rb_sw_set_port_pri(struct switch_dev *dev, 85 | + const struct switch_attr *attr, 86 | + struct switch_val *val) 87 | +{ 88 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 89 | + u32 mask; 90 | + u32 reg; 91 | + u32 data; 92 | + 93 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS || val->value.i > attr->max) 94 | + return -EINVAL; 95 | + 96 | + if (val->port_vlan < 5) { 97 | + mask = RTL8366RB_PORT_PRIORITY_MASK << 98 | + (RTL8366RB_PORT_PRIORITY_BITS * val->port_vlan); 99 | + reg = RTL8366RB_PORT_PRIORITY_BASE; 100 | + data = val->value.i << 101 | + (RTL8366RB_PORT_PRIORITY_BITS * val->port_vlan); 102 | + } else { 103 | + mask = RTL8366RB_PORT_PRIORITY_MASK; 104 | + reg = RTL8366RB_PORT_PRIORITY_BASE + 1; 105 | + data = val->value.i; 106 | + } 107 | + 108 | + return rtl8366_smi_rmwr(smi, reg, mask, data); 109 | +} 110 | + 111 | +static int rtl8366rb_sw_get_port_pri(struct switch_dev *dev, 112 | + const struct switch_attr *attr, 113 | + struct switch_val *val) 114 | +{ 115 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 116 | + u32 reg; 117 | + u32 shift; 118 | + u32 data = 0; 119 | + 120 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS || val->value.i > attr->max) 121 | + return -EINVAL; 122 | + 123 | + if (val->port_vlan < 5) { 124 | + reg = RTL8366RB_PORT_PRIORITY_BASE; 125 | + shift = RTL8366RB_PORT_PRIORITY_BITS * val->port_vlan; 126 | + 127 | + } else { 128 | + reg = RTL8366RB_PORT_PRIORITY_BASE + 1; 129 | + shift = 0; 130 | + } 131 | + 132 | + rtl8366_smi_read_reg(smi, reg, &data); 133 | + 134 | + val->value.i = ((data >> shift) & RTL8366RB_PORT_PRIORITY_MASK); 135 | + 136 | + return 0; 137 | +} 138 | + 139 | static int rtl8366rb_sw_set_port_disable(struct switch_dev *dev, 140 | const struct switch_attr *attr, 141 | struct switch_val *val) 142 | @@ -903,6 +1019,169 @@ static int rtl8366rb_sw_get_port_rate_out(struct switch_dev *dev, 143 | return 0; 144 | } 145 | 146 | +static int rtl8366rb_sw_set_port_bc_stfilter(struct switch_dev *dev, 147 | + const struct switch_attr *attr, 148 | + struct switch_val *val) 149 | +{ 150 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 151 | + 152 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS || val->value.i > attr->max) 153 | + return -EINVAL; 154 | + 155 | + return rtl8366_smi_rmwr(smi, RTL8366RB_STORM_BC_REG, 156 | + RTL8366RB_STORM_PORT_MASK(val->port_vlan), 157 | + (val->value.i << val->port_vlan)); 158 | +} 159 | + 160 | +static int rtl8366rb_sw_get_port_bc_stfilter(struct switch_dev *dev, 161 | + const struct switch_attr *attr, 162 | + struct switch_val *val) 163 | +{ 164 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 165 | + u32 data; 166 | + 167 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS) 168 | + return -EINVAL; 169 | + 170 | + rtl8366_smi_read_reg(smi, RTL8366RB_STORM_BC_REG, &data); 171 | + val->value.i= (data & RTL8366RB_STORM_PORT_MASK(val->port_vlan)) 172 | + >> val->port_vlan; 173 | + 174 | + return 0; 175 | +} 176 | + 177 | +static int rtl8366rb_sw_set_port_mc_stfilter(struct switch_dev *dev, 178 | + const struct switch_attr *attr, 179 | + struct switch_val *val) 180 | +{ 181 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 182 | + 183 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS || val->value.i > attr->max) 184 | + return -EINVAL; 185 | + 186 | + return rtl8366_smi_rmwr(smi, RTL8366RB_STORM_MC_REG, 187 | + RTL8366RB_STORM_PORT_MASK(val->port_vlan), 188 | + (val->value.i << val->port_vlan)); 189 | +} 190 | + 191 | +static int rtl8366rb_sw_get_port_mc_stfilter(struct switch_dev *dev, 192 | + const struct switch_attr *attr, 193 | + struct switch_val *val) 194 | +{ 195 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 196 | + u32 data; 197 | + 198 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS) 199 | + return -EINVAL; 200 | + 201 | + rtl8366_smi_read_reg(smi, RTL8366RB_STORM_MC_REG, &data); 202 | + val->value.i= (data & RTL8366RB_STORM_PORT_MASK(val->port_vlan)) 203 | + >> val->port_vlan; 204 | + 205 | + return 0; 206 | +} 207 | + 208 | +static int rtl8366rb_sw_set_port_ua_stfilter(struct switch_dev *dev, 209 | + const struct switch_attr *attr, 210 | + struct switch_val *val) 211 | +{ 212 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 213 | + 214 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS || val->value.i > attr->max) 215 | + return -EINVAL; 216 | + 217 | + return rtl8366_smi_rmwr(smi, RTL8366RB_STORM_UA_REG, 218 | + RTL8366RB_STORM_PORT_MASK(val->port_vlan), 219 | + (val->value.i << val->port_vlan)); 220 | +} 221 | + 222 | +static int rtl8366rb_sw_get_port_ua_stfilter(struct switch_dev *dev, 223 | + const struct switch_attr *attr, 224 | + struct switch_val *val) 225 | +{ 226 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 227 | + u32 data; 228 | + 229 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS) 230 | + return -EINVAL; 231 | + 232 | + rtl8366_smi_read_reg(smi, RTL8366RB_STORM_UA_REG, &data); 233 | + val->value.i= (data & RTL8366RB_STORM_PORT_MASK(val->port_vlan)) 234 | + >> val->port_vlan; 235 | + 236 | + return 0; 237 | +} 238 | + 239 | +static int rtl8366rb_sw_set_port_um_stfilter(struct switch_dev *dev, 240 | + const struct switch_attr *attr, 241 | + struct switch_val *val) 242 | +{ 243 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 244 | + 245 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS || val->value.i > attr->max) 246 | + return -EINVAL; 247 | + 248 | + return rtl8366_smi_rmwr(smi, RTL8366RB_STORM_UM_REG, 249 | + RTL8366RB_STORM_PORT_MASK(val->port_vlan), 250 | + (val->value.i << val->port_vlan)); 251 | +} 252 | + 253 | +static int rtl8366rb_sw_get_port_um_stfilter(struct switch_dev *dev, 254 | + const struct switch_attr *attr, 255 | + struct switch_val *val) 256 | +{ 257 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 258 | + u32 data; 259 | + 260 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS) 261 | + return -EINVAL; 262 | + 263 | + rtl8366_smi_read_reg(smi, RTL8366RB_STORM_UM_REG, &data); 264 | + val->value.i= (data & RTL8366RB_STORM_PORT_MASK(val->port_vlan)) 265 | + >> val->port_vlan; 266 | + 267 | + return 0; 268 | +} 269 | + 270 | +static int rtl8366rb_sw_set_port_stfilter_rate(struct switch_dev *dev, 271 | + const struct switch_attr *attr, 272 | + struct switch_val *val) 273 | +{ 274 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 275 | + 276 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS || val->value.i > attr->max) 277 | + return -EINVAL; 278 | + 279 | + val->value.i = (val->value.i - 1) / RTL8366RB_STORM_RATE_UNIT; 280 | + if (val->value.i < 0) 281 | + val->value.i = RTL8366RB_STORM_RATE_DEFAULT; 282 | + 283 | + return rtl8366_smi_rmwr(smi, RTL8366RB_STORM_RATE_REG(val->port_vlan), 284 | + RTL8366RB_STORM_RATE_MASK, 285 | + val->value.i); 286 | +} 287 | + 288 | +static int rtl8366rb_sw_get_port_stfilter_rate(struct switch_dev *dev, 289 | + const struct switch_attr *attr, 290 | + struct switch_val *val) 291 | +{ 292 | + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); 293 | + u32 data; 294 | + 295 | + if (val->port_vlan >= RTL8366RB_NUM_PORTS) 296 | + return -EINVAL; 297 | + 298 | + rtl8366_smi_read_reg(smi, RTL8366RB_STORM_RATE_REG(val->port_vlan), 299 | + &data); 300 | + 301 | + data &= RTL8366RB_STORM_RATE_MASK; 302 | + data += 1; 303 | + 304 | + val->value.i = data * RTL8366RB_STORM_RATE_UNIT; 305 | + 306 | + return 0; 307 | +} 308 | + 309 | static int rtl8366rb_sw_set_qos_enable(struct switch_dev *dev, 310 | const struct switch_attr *attr, 311 | struct switch_val *val) 312 | @@ -1165,6 +1444,14 @@ static struct switch_attr rtl8366rb_globals[] = { 313 | .set = rtl8366rb_sw_set_qos_enable, 314 | .get = rtl8366rb_sw_get_qos_enable, 315 | .max = 1 316 | + }, { 317 | + .type = SWITCH_TYPE_INT, 318 | + .name = "max_length", 319 | + .description = "Get/Set the maximum length of valid packets" 320 | + " (0 = 1522, 1 = 1536, 2 = 1552, 3 = 9216)", 321 | + .set = rtl8366rb_sw_set_max_length, 322 | + .get = rtl8366rb_sw_get_max_length, 323 | + .max = 3 324 | }, { 325 | .type = SWITCH_TYPE_INT, 326 | .name = "enable_mirror_rx", 327 | @@ -1251,6 +1538,48 @@ static struct switch_attr rtl8366rb_port[] = { 328 | .max = RTL8366RB_BDTH_SW_MAX, 329 | .set = rtl8366rb_sw_set_port_rate_out, 330 | .get = rtl8366rb_sw_get_port_rate_out, 331 | + },{ 332 | + .type = SWITCH_TYPE_INT, 333 | + .name = "priority", 334 | + .description = "Get/Set port priority (0-7)", 335 | + .set = rtl8366rb_sw_set_port_pri, 336 | + .get = rtl8366rb_sw_get_port_pri, 337 | + .max = 7 338 | + }, { 339 | + .type = SWITCH_TYPE_INT, 340 | + .name = "bc_storm_filter", 341 | + .description = "Get/Set broadcast storm filtering (enabled or disabled)", 342 | + .max = 1, 343 | + .set = rtl8366rb_sw_set_port_bc_stfilter, 344 | + .get = rtl8366rb_sw_get_port_bc_stfilter, 345 | + }, { 346 | + .type = SWITCH_TYPE_INT, 347 | + .name = "mc_storm_filter", 348 | + .description = "Get/Set multicast storm filtering (enabled or disabled)", 349 | + .max = 1, 350 | + .set = rtl8366rb_sw_set_port_mc_stfilter, 351 | + .get = rtl8366rb_sw_get_port_mc_stfilter, 352 | + }, { 353 | + .type = SWITCH_TYPE_INT, 354 | + .name = "ua_storm_filter", 355 | + .description = "Get/Set unknown address storm filtering (enabled or disabled)", 356 | + .max = 1, 357 | + .set = rtl8366rb_sw_set_port_ua_stfilter, 358 | + .get = rtl8366rb_sw_get_port_ua_stfilter, 359 | + }, { 360 | + .type = SWITCH_TYPE_INT, 361 | + .name = "um_storm_filter", 362 | + .description = "Get/Set unknown multicast storm filtering (enabled or disabled)", 363 | + .max = 1, 364 | + .set = rtl8366rb_sw_set_port_um_stfilter, 365 | + .get = rtl8366rb_sw_get_port_um_stfilter, 366 | + }, { 367 | + .type = SWITCH_TYPE_INT, 368 | + .name = "storm_filter_rate", 369 | + .description = "Get/Set storm filtering rate in kbps", 370 | + .max = RTL8366RB_STORM_RATE_MAX, 371 | + .set = rtl8366rb_sw_set_port_stfilter_rate, 372 | + .get = rtl8366rb_sw_get_port_stfilter_rate, 373 | }, 374 | }; 375 | 376 | -------------------------------------------------------------------------------- /patch/053-QCA-ar71xx-efficient-cache-blast.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/ar71xx/patches-4.4/903-QCA-ar71xx-efficient-cache-blast.patch b/target/linux/ar71xx/patches-4.4/903-QCA-ar71xx-efficient-cache-blast.patch 2 | new file mode 100644 3 | index 0000000..1cc6b5d 4 | --- /dev/null 5 | +++ b/target/linux/ar71xx/patches-4.4/903-QCA-ar71xx-efficient-cache-blast.patch 6 | @@ -0,0 +1,56 @@ 7 | +--- a/arch/mips/include/asm/r4kcache.h 8 | ++++ b/arch/mips/include/asm/r4kcache.h 9 | +@@ -661,16 +661,48 @@ static inline void prot##extra##blast_## 10 | + unsigned long end) \ 11 | + { \ 12 | + unsigned long lsize = cpu_##desc##_line_size(); \ 13 | ++ unsigned long lsize_2 = lsize * 2; \ 14 | ++ unsigned long lsize_3 = lsize * 3; \ 15 | ++ unsigned long lsize_4 = lsize * 4; \ 16 | ++ unsigned long lsize_5 = lsize * 5; \ 17 | ++ unsigned long lsize_6 = lsize * 6; \ 18 | ++ unsigned long lsize_7 = lsize * 7; \ 19 | ++ unsigned long lsize_8 = lsize * 8; \ 20 | + unsigned long addr = start & ~(lsize - 1); \ 21 | +- unsigned long aend = (end - 1) & ~(lsize - 1); \ 22 | ++ unsigned long aend = (end + lsize - 1) & ~(lsize - 1); \ 23 | ++ int lines = (aend - addr) / lsize; \ 24 | + \ 25 | + __##pfx##flush_prologue \ 26 | + \ 27 | +- while (1) { \ 28 | ++ while (lines >= 8) { \ 29 | ++ prot##cache_op(hitop, addr); \ 30 | ++ prot##cache_op(hitop, addr + lsize); \ 31 | ++ prot##cache_op(hitop, addr + lsize_2); \ 32 | ++ prot##cache_op(hitop, addr + lsize_3); \ 33 | ++ prot##cache_op(hitop, addr + lsize_4); \ 34 | ++ prot##cache_op(hitop, addr + lsize_5); \ 35 | ++ prot##cache_op(hitop, addr + lsize_6); \ 36 | ++ prot##cache_op(hitop, addr + lsize_7); \ 37 | ++ addr += lsize_8; \ 38 | ++ lines -= 8; \ 39 | ++ } \ 40 | ++ \ 41 | ++ if (lines & 0x4) { \ 42 | ++ prot##cache_op(hitop, addr); \ 43 | ++ prot##cache_op(hitop, addr + lsize); \ 44 | ++ prot##cache_op(hitop, addr + lsize_2); \ 45 | ++ prot##cache_op(hitop, addr + lsize_3); \ 46 | ++ addr += lsize_4; \ 47 | ++ } \ 48 | ++ \ 49 | ++ if (lines & 0x2) { \ 50 | ++ prot##cache_op(hitop, addr); \ 51 | ++ prot##cache_op(hitop, addr + lsize); \ 52 | ++ addr += lsize_2; \ 53 | ++ } \ 54 | ++ \ 55 | ++ if (lines & 0x1) { \ 56 | + prot##cache_op(hitop, addr); \ 57 | +- if (addr == aend) \ 58 | +- break; \ 59 | +- addr += lsize; \ 60 | + } \ 61 | + \ 62 | + __##pfx##flush_epilogue \ 63 | -------------------------------------------------------------------------------- /patch/054-netdev-align-NET_SKB_PAD-platform.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/ar71xx/patches-4.4/952-netdev-align-NET_SKB_PAD-platform.patch b/target/linux/ar71xx/patches-4.4/952-netdev-align-NET_SKB_PAD-platform.patch 2 | new file mode 100644 3 | index 0000000..827d302 4 | --- /dev/null 5 | +++ b/target/linux/ar71xx/patches-4.4/952-netdev-align-NET_SKB_PAD-platform.patch 6 | @@ -0,0 +1,11 @@ 7 | +--- a/include/linux/skbuff.h 8 | ++++ b/include/linux/skbuff.h 9 | +@@ -2028,7 +2028,7 @@ static inline int pskb_network_may_pull( 10 | + * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) 11 | + */ 12 | + #ifndef NET_SKB_PAD 13 | +-#define NET_SKB_PAD max(64, L1_CACHE_BYTES) 14 | ++#define NET_SKB_PAD max(64, L1_CACHE_BYTES) // Optimal Value is 64. Significant effect on Wireless Throughput 15 | + #endif 16 | + 17 | + int ___pskb_trim(struct sk_buff *skb, unsigned int len); 18 | -------------------------------------------------------------------------------- /patch/059-add-gro-support-to-ar71xx.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c 2 | index 566e951..204e420 100644 3 | --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c 4 | +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c 5 | @@ -1089,7 +1089,7 @@ next: 6 | 7 | while ((skb = __skb_dequeue(&queue)) != NULL) { 8 | skb->protocol = eth_type_trans(skb, dev); 9 | - netif_receive_skb(skb); 10 | + netif_receive_skb(skb); 11 | } 12 | 13 | DBG("%s: rx finish, curr=%u, dirty=%u, done=%d\n", 14 | @@ -1141,7 +1141,7 @@ static int ag71xx_poll(struct napi_struct *napi, int limit) 15 | DBG("%s: disable polling mode, rx=%d, tx=%d,limit=%d\n", 16 | dev->name, rx_done, tx_done, limit); 17 | 18 | - napi_complete(napi); 19 | + napi_complete_done(napi,rx_done); 20 | 21 | /* enable interrupts */ 22 | spin_lock_irqsave(&ag->lock, flags); 23 | @@ -1160,7 +1160,7 @@ oom: 24 | pr_info("%s: out of memory\n", dev->name); 25 | 26 | mod_timer(&ag->oom_timer, jiffies + AG71XX_OOM_REFILL); 27 | - napi_complete(napi); 28 | + napi_complete_done(napi,rx_done); 29 | return 0; 30 | } 31 | 32 | -------------------------------------------------------------------------------- /patch/059-pack-ag71xx.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h 2 | index 898bde1..1c8c3d4 100644 3 | --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h 4 | +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h 5 | @@ -156,7 +156,7 @@ struct ag71xx { 6 | struct napi_struct napi; 7 | u32 msg_enable; 8 | 9 | - struct ag71xx_desc *stop_desc; 10 | + struct ag71xx_desc *stop_desc __attribute__((aligned(4))); 11 | dma_addr_t stop_desc_dma; 12 | 13 | struct ag71xx_ring rx_ring; 14 | -------------------------------------------------------------------------------- /patch/059-strip-even-more-debug-ar71xx.patch: -------------------------------------------------------------------------------- 1 | --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c 2 | +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c 3 | @@ -250,19 +250,18 @@ static int ag71xx_ring_rx_init(struct ag 4 | int ring_size = BIT(ring->order); 5 | int ring_mask = BIT(ring->order) - 1; 6 | unsigned int i; 7 | - int ret; 8 | + int ret = 0; 9 | int offset = ag71xx_buffer_offset(ag); 10 | 11 | - ret = 0; 12 | for (i = 0; i < ring_size; i++) { 13 | struct ag71xx_desc *desc = ag71xx_ring_desc(ring, i); 14 | 15 | desc->next = (u32) (ring->descs_dma + 16 | AG71XX_DESC_SIZE * ((i + 1) & ring_mask)); 17 | 18 | - DBG("ag71xx: RX desc at %p, next is %08x\n", 19 | +/* DBG("ag71xx: RX desc at %p, next is %08x\n", 20 | desc, desc->next); 21 | - } 22 | +*/ } 23 | 24 | for (i = 0; i < ring_size; i++) { 25 | struct ag71xx_desc *desc = ag71xx_ring_desc(ring, i); 26 | @@ -289,10 +288,9 @@ static int ag71xx_ring_rx_refill(struct 27 | { 28 | struct ag71xx_ring *ring = &ag->rx_ring; 29 | int ring_mask = BIT(ring->order) - 1; 30 | - unsigned int count; 31 | + unsigned int count = 0; 32 | int offset = ag71xx_buffer_offset(ag); 33 | 34 | - count = 0; 35 | for (; ring->curr - ring->dirty > 0; ring->dirty++) { 36 | struct ag71xx_desc *desc; 37 | unsigned int i; 38 | @@ -297,7 +295,7 @@ static int ag71xx_ring_rx_refill(struct 39 | /* flush descriptors */ 40 | wmb(); 41 | 42 | - DBG("%s: %u rx descriptors refilled\n", ag->dev->name, count); 43 | +// DBG("%s: %u rx descriptors refilled\n", ag->dev->name, count); 44 | 45 | return count; 46 | } 47 | @@ -610,7 +608,7 @@ void ag71xx_link_adjust(struct ag71xx *a 48 | ag71xx_speed_str(ag), 49 | (DUPLEX_FULL == ag->duplex) ? "Full" : "Half"); 50 | 51 | - DBG("%s: fifo_cfg0=%#x, fifo_cfg1=%#x, fifo_cfg2=%#x\n", 52 | +/* DBG("%s: fifo_cfg0=%#x, fifo_cfg1=%#x, fifo_cfg2=%#x\n", 53 | ag->dev->name, 54 | ag71xx_rr(ag, AG71XX_REG_FIFO_CFG0), 55 | ag71xx_rr(ag, AG71XX_REG_FIFO_CFG1), 56 | @@ -625,7 +623,7 @@ void ag71xx_link_adjust(struct ag71xx *a 57 | DBG("%s: mac_cfg2=%#x, mac_ifctl=%#x\n", 58 | ag->dev->name, 59 | ag71xx_rr(ag, AG71XX_REG_MAC_CFG2), 60 | - ag71xx_rr(ag, AG71XX_REG_MAC_IFCTL)); 61 | + ag71xx_rr(ag, AG71XX_REG_MAC_IFCTL));*/ 62 | } 63 | 64 | static int ag71xx_open(struct net_device *dev) 65 | @@ -747,7 +745,7 @@ static netdev_tx_t ag71xx_hard_start_xmi 66 | ag71xx_add_ar8216_header(ag, skb); 67 | 68 | if (skb->len <= 4) { 69 | - DBG("%s: packet len is too small\n", ag->dev->name); 70 | +// DBG("%s: packet len is too small\n", ag->dev->name); 71 | goto err_drop; 72 | } 73 | 74 | @@ -816,11 +814,11 @@ static netdev_tx_t ag71xx_hard_start_xmi 75 | ring_min *= AG71XX_TX_RING_DS_PER_PKT; 76 | 77 | if (ring->curr - ring->dirty >= ring_size - ring_min) { 78 | - DBG("%s: tx queue full\n", dev->name); 79 | +// DBG("%s: tx queue full\n", dev->name); 80 | netif_stop_queue(dev); 81 | } 82 | 83 | - DBG("%s: packet injected into TX queue\n", ag->dev->name); 84 | +// DBG("%s: packet injected into TX queue\n", ag->dev->name); 85 | 86 | /* enable TX engine */ 87 | ag71xx_wr(ag, AG71XX_REG_TX_CTRL, TX_CTRL_TXE); 88 | @@ -902,7 +900,7 @@ static int ag71xx_tx_packets(struct ag71 89 | int bytes_compl = 0; 90 | int n = 0; 91 | 92 | - DBG("%s: processing TX ring\n", ag->dev->name); 93 | +// DBG("%s: processing TX ring\n", ag->dev->name); 94 | 95 | while (ring->dirty + n != ring->curr) { 96 | unsigned int i = (ring->dirty + n) % ring->size; 97 | @@ -934,7 +932,7 @@ static int ag71xx_tx_packets(struct ag71 98 | } 99 | } 100 | 101 | - DBG("%s: %d packets sent out\n", ag->dev->name, sent); 102 | +// DBG("%s: %d packets sent out\n", ag->dev->name, sent); 103 | 104 | ag->dev->stats.tx_bytes += bytes_compl; 105 | ag->dev->stats.tx_packets += sent; 106 | @@ -957,8 +955,8 @@ static int ag71xx_rx_packets(struct ag71 107 | unsigned int pktlen_mask = ag->desc_pktlen_mask; 108 | int done = 0; 109 | 110 | - DBG("%s: rx packets, limit=%d, curr=%u, dirty=%u\n", 111 | - dev->name, limit, ring->curr, ring->dirty); 112 | +// DBG("%s: rx packets, limit=%d, curr=%u, dirty=%u\n", 113 | +// dev->name, limit, ring->curr, ring->dirty); 114 | 115 | while (done < limit) { 116 | unsigned int i = ring->curr % ring->size; 117 | @@ -1014,8 +1012,8 @@ next: 118 | 119 | ag71xx_ring_rx_refill(ag); 120 | 121 | - DBG("%s: rx finish, curr=%u, dirty=%u, done=%d\n", 122 | - dev->name, ring->curr, ring->dirty, done); 123 | +// DBG("%s: rx finish, curr=%u, dirty=%u, done=%d\n", 124 | +// dev->name, ring->curr, ring->dirty, done); 125 | 126 | return done; 127 | } 128 | @@ -1034,7 +1032,7 @@ static int ag71xx_poll(struct napi_struc 129 | pdata->ddr_flush(); 130 | tx_done = ag71xx_tx_packets(ag, false); 131 | 132 | - DBG("%s: processing RX ring\n", dev->name); 133 | +// DBG("%s: processing RX ring\n", dev->name); 134 | rx_done = ag71xx_rx_packets(ag, limit); 135 | 136 | ag71xx_debugfs_update_napi_stats(ag, rx_done, tx_done); 137 | @@ -1060,8 +1058,8 @@ static int ag71xx_poll(struct napi_struc 138 | if (status & TX_STATUS_PS) 139 | goto more; 140 | 141 | - DBG("%s: disable polling mode, rx=%d, tx=%d,limit=%d\n", 142 | - dev->name, rx_done, tx_done, limit); 143 | +// DBG("%s: disable polling mode, rx=%d, tx=%d,limit=%d\n", 144 | +// dev->name, rx_done, tx_done, limit); 145 | 146 | napi_complete(napi); 147 | 148 | @@ -1073,8 +1071,8 @@ static int ag71xx_poll(struct napi_struc 149 | } 150 | 151 | more: 152 | - DBG("%s: stay in polling mode, rx=%d, tx=%d, limit=%d\n", 153 | - dev->name, rx_done, tx_done, limit); 154 | +// DBG("%s: stay in polling mode, rx=%d, tx=%d, limit=%d\n", 155 | +// dev->name, rx_done, tx_done, limit); 156 | return limit; 157 | 158 | oom: 159 | @@ -1111,7 +1109,7 @@ static irqreturn_t ag71xx_interrupt(int 160 | 161 | if (likely(status & AG71XX_INT_POLL)) { 162 | ag71xx_int_disable(ag, AG71XX_INT_POLL); 163 | - DBG("%s: enable polling mode\n", dev->name); 164 | +// DBG("%s: enable polling mode\n", dev->name); 165 | napi_schedule(&ag->napi); 166 | } 167 | 168 | -------------------------------------------------------------------------------- /patch/060-change-luci-version.patch: -------------------------------------------------------------------------------- 1 | --- a/feeds/luci/modules/luci-base/src/mkversion.sh 2 | +++ b/feeds/luci/modules/luci-base/src/mkversion.sh 3 | @@ -20,5 +20,5 @@ else 4 | end 5 | 6 | luciname = "${3:-LuCI}" 7 | -luciversion = "${2:-Git}" 8 | +luciversion = " Trunk " 9 | EOF 10 | -------------------------------------------------------------------------------- /patch/060-remove-debug-napi.patch: -------------------------------------------------------------------------------- 1 | --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c 2 | +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c 3 | @@ -1084,7 +1084,7 @@ static int ag71xx_poll(struct napi_struc 4 | // DBG("%s: processing RX ring\n", dev->name); 5 | int rx_done = ag71xx_rx_packets(ag, limit); 6 | 7 | - ag71xx_debugfs_update_napi_stats(ag, rx_done, tx_done); 8 | +// ag71xx_debugfs_update_napi_stats(ag, rx_done, tx_done); 9 | 10 | rx_ring = &ag->rx_ring; 11 | if (rx_ring->buf[rx_ring->dirty % rx_ring->size].rx_buf == NULL) 12 | @@ -1163,7 +1163,7 @@ static irqreturn_t ag71xx_interrupt(int 13 | napi_schedule(&ag->napi); 14 | } 15 | 16 | - ag71xx_debugfs_update_int_stats(ag, status); 17 | +// ag71xx_debugfs_update_int_stats(ag, status); 18 | 19 | return IRQ_HANDLED; 20 | } 21 | --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c 22 | +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c 23 | @@ -936,7 +936,7 @@ static int ag71xx_tx_packets(struct ag71 24 | 25 | // DBG("%s: processing TX ring\n", ag->dev->name); 26 | 27 | - while (ring->dirty + n != ring->curr) { 28 | + while (ring->curr != ring->dirty + n) { 29 | unsigned int i = (ring->dirty + n) & ring_mask; 30 | struct ag71xx_desc *desc = ag71xx_ring_desc(ring, i); 31 | struct sk_buff *skb = ring->buf[i].skb; 32 | @@ -1007,7 +1007,7 @@ static int ag71xx_rx_packets(struct ag71 33 | if (ag71xx_desc_empty(desc)) 34 | break; 35 | 36 | - if ((ring->dirty + ring_size) == ring->curr) { 37 | + if (ring->curr == (ring->dirty + ring_size)) { 38 | ag71xx_assert(0); 39 | break; 40 | } 41 | diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar8216.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar8216.c 42 | index 7ec43b7..3ceaf54 100644 43 | --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar8216.c 44 | +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar8216.c 45 | @@ -28,10 +28,7 @@ void ag71xx_add_ar8216_header(struct ag71xx *ag, struct sk_buff *skb) 46 | int ag71xx_remove_ar8216_header(struct ag71xx *ag, struct sk_buff *skb, 47 | int pktlen) 48 | { 49 | - u8 type; 50 | - 51 | - type = skb->data[1] & AR8216_PACKET_TYPE_MASK; 52 | - switch (type) { 53 | + switch (skb->data[1] & AR8216_PACKET_TYPE_MASK) { 54 | case AR8216_PACKET_TYPE_NORMAL: 55 | break; 56 | 57 | -------------------------------------------------------------------------------- /patch/061-remove-pppoa-luci.patch: -------------------------------------------------------------------------------- 1 | --- a/feeds/luci/protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua 2 | +++ b/feeds/luci/protocols/luci-proto-ppp/luasrc/model/network/proto_ppp.lua 3 | @@ -4,7 +4,7 @@ 4 | local netmod = luci.model.network 5 | 6 | local _, p 7 | -for _, p in ipairs({"ppp", "pptp", "pppoe", "pppoa", "3g", "l2tp", "pppossh"}) do 8 | +for _, p in ipairs({"ppp", "pptp", "pppoe", "3g", "l2tp", "pppossh"}) do 9 | 10 | local proto = netmod:register_protocol(p) 11 | 12 | @@ -17,8 +17,6 @@ for _, p in ipairs({"ppp", "pptp", "pppo 13 | return luci.i18n.translate("UMTS/GPRS/EV-DO") 14 | elseif p == "pppoe" then 15 | return luci.i18n.translate("PPPoE") 16 | - elseif p == "pppoa" then 17 | - return luci.i18n.translate("PPPoATM") 18 | elseif p == "l2tp" then 19 | return luci.i18n.translate("L2TP") 20 | elseif p == "pppossh" then 21 | @@ -39,8 +37,6 @@ for _, p in ipairs({"ppp", "pptp", "pppo 22 | return "ppp-mod-pptp" 23 | elseif p == "pppoe" then 24 | return "ppp-mod-pppoe" 25 | - elseif p == "pppoa" then 26 | - return "ppp-mod-pppoa" 27 | elseif p == "l2tp" then 28 | return "xl2tpd" 29 | elseif p == "pppossh" then 30 | @@ -49,9 +45,7 @@ for _, p in ipairs({"ppp", "pptp", "pppo 31 | end 32 | 33 | function proto.is_installed(self) 34 | - if p == "pppoa" then 35 | - return (nixio.fs.glob("/usr/lib/pppd/*/pppoatm.so")() ~= nil) 36 | - elseif p == "pppoe" then 37 | + if p == "pppoe" then 38 | return (nixio.fs.glob("/usr/lib/pppd/*/rp-pppoe.so")() ~= nil) 39 | elseif p == "pptp" then 40 | return (nixio.fs.glob("/usr/lib/pppd/*/pptp.so")() ~= nil) 41 | -------------------------------------------------------------------------------- /patch/061-remove-root-luci-default.patch: -------------------------------------------------------------------------------- 1 | --- a/feeds/luci/modules/luci-base/luasrc/view/sysauth.htm 2 | +++ b/feeds/luci/modules/luci-base/luasrc/view/sysauth.htm 3 | @@ -20,7 +20,7 @@ 4 |
5 | 6 |
7 | - 8 | + 9 |
10 |
11 |
12 | @@ -37,11 +37,6 @@ 13 | 14 |
15 | 16 | - 21 | 22 | <% 23 | local uci = require "luci.model.uci".cursor() 24 | -------------------------------------------------------------------------------- /patch/062-luci-vlan.patch: -------------------------------------------------------------------------------- 1 | --- a/feeds/luci/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua 2 | +++ b/feeds/luci/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua 3 | @@ -48,6 +48,7 @@ m.uci:foreach("network", "switch", 4 | local has_vlan = nil 5 | local has_learn = nil 6 | local has_vlan4k = nil 7 | + local has_qos = nil 8 | local has_jumbo3 = nil 9 | local has_mirror = nil 10 | local min_vid = 0 11 | @@ -102,6 +103,9 @@ m.uci:foreach("network", "switch", 12 | elseif line:match(": enable_vlan4k") then 13 | enable_vlan4k = true 14 | 15 | + elseif line:match(": enable_qos") then 16 | + has_qos = "enable_qos" 17 | + 18 | elseif line:match(": enable_vlan") then 19 | has_vlan = "enable_vlan" 20 | 21 | @@ -136,16 +140,23 @@ m.uci:foreach("network", "switch", 22 | x.default = x.enabled 23 | end 24 | 25 | + if has_qos then 26 | + s:option(Flag, has_qos, translate("Enable QoS")) 27 | + end 28 | + 29 | if has_jumbo3 then 30 | - x = s:option(Flag, has_jumbo3, translate("Enable Jumbo Frame passthrough")) 31 | - x.enabled = "3" 32 | - x.rmempty = true 33 | + x = s:option(ListValue, has_jumbo3, translate("Enable Jumbo Frame passthrough")) 34 | + x:value("0", "1522") 35 | + x:value("1", "1536") 36 | + x:value("2", "1552") 37 | + x:value("3", "9216") 38 | end 39 | 40 | -- Does this switch support port mirroring? 41 | if has_mirror then 42 | s:option(Flag, "enable_mirror_rx", translate("Enable mirroring of incoming packets")) 43 | s:option(Flag, "enable_mirror_tx", translate("Enable mirroring of outgoing packets")) 44 | + s:option(Flag, "enable_mirror_pause_frames", translate("Enable mirroring of incoming pause frames")) 45 | 46 | local sp = s:option(ListValue, "mirror_source_port", translate("Mirror source port")) 47 | local mp = s:option(ListValue, "mirror_monitor_port", translate("Mirror monitor port")) 48 | @@ -161,6 +172,7 @@ m.uci:foreach("network", "switch", 49 | sp:value(pt.num, pt.label) 50 | mp:value(pt.num, pt.label) 51 | end 52 | + s:option(Flag, "enable_monitor_isolation", translate("Enable monitor isolation"),translate("This prevents forwarding of packets sent to the mirror port")) 53 | end 54 | 55 | -- VLAN table 56 | -------------------------------------------------------------------------------- /patch/063-add-DNS-cachesize-option.patch: -------------------------------------------------------------------------------- 1 | --- a/feeds/luci/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua 2 | +++ b/feeds/luci/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua 3 | @@ -120,6 +120,9 @@ s:taboption("advanced", Flag, "strictord 4 | translate("DNS servers will be queried in the " .. 5 | "order of the resolvfile")).optional = true 6 | 7 | +s:taboption("advanced", Flag, "allservers", 8 | + translate("All Servers"), 9 | + translate("Query all available upstream DNS servers")).optional = true 10 | 11 | bn = s:taboption("advanced", DynamicList, "bogusnxdomain", translate("Bogus NX Domain Override"), 12 | translate("List of hosts that supply bogus NX domain results")) 13 | @@ -199,7 +202,7 @@ em = s:taboption("advanced", Value, "edn 14 | 15 | em.optional = true 16 | em.datatype = "uinteger" 17 | -em.placeholder = 1280 18 | +em.placeholder = 4096 19 | 20 | 21 | cq = s:taboption("advanced", Value, "dnsforwardmax", 22 | @@ -210,6 +213,13 @@ cq.optional = true 23 | cq.datatype = "uinteger" 24 | cq.placeholder = 150 25 | 26 | +cs = s:taboption("advanced", Value, "cachesize", 27 | + translate("DNS Cache size"), 28 | + translate("Set size of DNS Cache")) 29 | + 30 | +cs.optional = true 31 | +cs.datatype = "uinteger" 32 | +cs.placeholder = 150 33 | 34 | s:taboption("tftp", Flag, "enable_tftp", 35 | translate("Enable TFTP server")).optional = true 36 | 37 | -------------------------------------------------------------------------------- /patch/063-add-luci-mips-processor-march.patch: -------------------------------------------------------------------------------- 1 | --- a/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm 2 | +++ b/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm 3 | @@ -16,6 +16,9 @@ 4 | 5 | local sysinfo = luci.util.ubus("system", "info") or { } 6 | local boardinfo = luci.util.ubus("system", "board") or { } 7 | + local cpuinfo = luci.sys.exec("cat /proc/cpuinfo") or { } 8 | + local processor = cpuinfo:match("system type\t+: ([^\n]+)") or { } 9 | + local march = cpuinfo:match("cpu model\t+: ([^\n]+)") or { } 10 | local unameinfo = nixio.uname() or { } 11 | 12 | local meminfo = sysinfo.memory or { 13 | @@ -682,6 +685,8 @@ 14 | 15 | 16 | 17 | + 18 | + 19 |
<%:Hostname%><%=luci.sys.hostname() or "?"%>
<%:Model%><%=pcdata(boardinfo.model or boardinfo.system or "?")%>
<%:Processor%><%=pcdata(processor or "?")%>
<%:Architecture%><%=pcdata(march or "?")%>
<%:Firmware Version%> 20 | <%=pcdata(ver.distname)%> <%=pcdata(ver.distversion)%> / 21 | <%=pcdata(ver.luciname)%> (<%=pcdata(ver.luciversion)%>) 22 | -------------------------------------------------------------------------------- /patch/064-luci-wifi-add-feature.patch: -------------------------------------------------------------------------------- 1 | --- a/feeds/luci/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua 2 | +++ b/feeds/luci/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua 3 | @@ -243,8 +243,24 @@ if hwtype == "mac80211" then 4 | end 5 | end 6 | 7 | + noscan=s:taboption("advanced", Flag, "noscan", translate("Force 40MHz mode"),"Always use 40MHz channels even if the secondary channel overlaps. Using this option does not comply with IEEE 802.11n-2009!") 8 | + noscan.optional = true 9 | + 10 | s:taboption("advanced", Value, "frag", translate("Fragmentation Threshold")) 11 | s:taboption("advanced", Value, "rts", translate("RTS/CTS Threshold")) 12 | + 13 | + log_level = s:taboption("advanced", ListValue, "log_level", translate("Logging Level")) 14 | + log_level.optional = true 15 | + log_level:value("2", "Informational Message") 16 | + log_level:value("0", "Verbose Debugging") 17 | + log_level:value("1", "Debugging") 18 | + log_level:value("3", "Notification") 19 | + log_level:value("4", "Warning") 20 | + beacon_int = s:taboption("advanced", Value, "beacon_int", translate("Beacon Interval"),"(15 - 65535)") 21 | + beacon_int.optional = true 22 | + beacon_int.placeholder = 100 23 | + legacy_rates = s:taboption("general", Flag, "legacy_rates", translate("Enable Legacy Rates")) 24 | + legacy_rates.default = legacy_rates.enabled 25 | end 26 | 27 | 28 | @@ -521,6 +537,21 @@ if hwtype == "mac80211" then 29 | 30 | ifname = s:taboption("advanced", Value, "ifname", translate("Interface name"), translate("Override default interface name")) 31 | ifname.optional = true 32 | + 33 | + short_preamble = s:taboption("general", Flag, "short_preamble", translate("Short Preamble")) 34 | + short_preamble.default = short_preamble.enabled 35 | + 36 | + isolate = s:taboption("general", Flag, "isolate", translate("Wireless Client Isolation")) 37 | + isolate.optional = true 38 | + isolate:depends({mode="ap"}) 39 | + 40 | + dtim_period = s:taboption("general", Value, "dtim_period", translate("DTIM Interval"),"Delivery Traffic Indication Message Interval") 41 | + dtim_period.optional = true 42 | + dtim_period.placeholder = 2 43 | + 44 | + disassoc_low_ack = s:taboption("general", Flag, "disassoc_low_ack", translate("Disassociate On Low Acknowledgement"),"Allow AP mode to disconnect STAs based on low ACK condition") 45 | + disassoc_low_ack.default = disassoc_low_ack.enabled 46 | + 47 | end 48 | 49 | 50 | -------------------------------------------------------------------------------- /patch/064-mwan3-luci.patch: -------------------------------------------------------------------------------- 1 | --- ./feeds/packages/net/mwan3-luci/files/usr/lib/lua/luci/view/mwan/advanced_diagnostics.htm 2017-02-22 23:50:19.817546768 +0800 2 | +++ ./feeds/packages/net/mwan3-luci/files/usr/lib/lua/luci/view/mwan/advanced_diagnostics.htmadvanced_diagnostics.htm 2017-02-22 23:51:12.380685082 +0800 3 | @@ -93,12 +93,6 @@ 4 | 5 | 6 |