├── Atheros_S17_Switch_ssdk_user_guide_rev14.pdf ├── README.md ├── S17-FAQ-20110524.pdf ├── broken ├── 980-patch-switch-ext.patch └── 999-add-ppp-function-QCA-SSDK.patch ├── patch ├── .directory ├── 001-mips-cflag-optimization.patch ├── 002-mips74kc-set-optimization.patch ├── 003-disable-mips16-all-package.patch ├── 004-kernel-mtune74kc.patch ├── 005-lzma-mips74kc-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 ├── 009-detach-rtl8366-smi-dependency.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-wdr4300-target.patch ├── 015-reg-wireless.patch ├── 016-enable-wireless-default.patch ├── 017-harden-buildroot.patch ├── 017-update-ath10k-firmware.patch ├── 021-make-pthread-depend-default.patch ├── 035-sysctl-optimization.patch ├── 040-gcc-final-toolchain-74kc-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 ├── 091-fix-qca-ssdk-nohnat.patch ├── 092-qca-undo-dts-node-change.patch ├── 099-add-ar7240-max-frame-size.patch ├── 099-add-default-package.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 ├── 983-strip-out-DESS-support.patch └── 999-disable-gso-default.patch └── patch_LEDE.sh /Atheros_S17_Switch_ssdk_user_guide_rev14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gwlim/mips74k-ar71xx-lede-patch/9c658493e1f4a6a8821319d9588897c8e1126efc/Atheros_S17_Switch_ssdk_user_guide_rev14.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Custom LEDE Patch For TL-WDR3500/3600/4300/4310/MW4350R (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 | git clone -b lede-17.01 https://github.com/lede-project/source.git lede 19 | 20 | Clone this Repository and copy into the LEDE repository 21 | 22 | git clone -b lede-17.01 https://github.com/gwlim/mips74k-lede-patch.git temp; mv temp/* lede/; rm -rf temp 23 | 24 | Change directory into the LEDE Repository 25 | 26 | cd lede 27 | 28 | Run the script 29 | 30 | ./patch_LEDE.sh 31 | 32 | Make Menuconfig Default Target is TL-WDR4300v1 (all the packages and config is inside) 33 | If you want to enable Fast Path select all the fast path modules in 34 | 35 | Kernel Modules > Network Support > 36 | 37 | Select 38 | 39 | * kmod-fast-classifier 40 | 41 | make menuconfig 42 | 43 | Save and make 44 | 45 | make V=s 46 | 47 | FAQ 48 | --- 49 | 50 | Cannot install packages with Kernel Dependencies? 51 | 52 | Use --nodeps in opkg 53 | 54 | 55 | Where can I download the firmware for my Router? 56 | 57 | https://github.com/gwlim/Fast-Path-LEDE-OpenWRT 58 | 59 | The binaries in the link above will contain firmware build with this patchset 60 | -------------------------------------------------------------------------------- /S17-FAQ-20110524.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gwlim/mips74k-ar71xx-lede-patch/9c658493e1f4a6a8821319d9588897c8e1126efc/S17-FAQ-20110524.pdf -------------------------------------------------------------------------------- /broken/980-patch-switch-ext.patch: -------------------------------------------------------------------------------- 1 | diff --git a/./target/linux/ar71xx/patches-4.4/980-patch-switch-ext.patch b/./target/linux/ar71xx/patches-4.4/980-patch-switch-ext.patch 2 | new file mode 100644 3 | index 0000000..022bbe6 4 | --- /dev/null 5 | +++ b/./target/linux/ar71xx/patches-4.4/980-patch-switch-ext.patch 6 | @@ -0,0 +1,32 @@ 7 | +--- a/include/linux/switch.h 2017-01-21 17:00:48.248001052 +0800 8 | ++++ b/include/linux/switch.h 2017-01-21 16:54:02.005185104 +0800 9 | +@@ -63,6 +63,11 @@ struct switch_port_stats { 10 | + unsigned long rx_bytes; 11 | + }; 12 | + 13 | ++struct switch_ext { 14 | ++ const char *option_name; 15 | ++ const char *option_value; 16 | ++ struct switch_ext *next; 17 | ++}; 18 | + /** 19 | + * struct switch_dev_ops - switch driver operations 20 | + * 21 | +@@ -154,6 +159,7 @@ struct switch_val { 22 | + const char *s; 23 | + u32 i; 24 | + struct switch_port *ports; 25 | ++ struct switch_ext *ext_val; 26 | + struct switch_port_link *link; 27 | + } value; 28 | + }; 29 | +--- a/include/uapi/linux/switch.h 2017-01-21 11:46:44.000000000 +0800 30 | ++++ b/include/uapi/linux/switch.h 2017-01-21 17:37:24.755150286 +0800 31 | +@@ -89,6 +89,7 @@ enum switch_val_type { 32 | + SWITCH_TYPE_PORTS, 33 | + SWITCH_TYPE_LINK, 34 | + SWITCH_TYPE_NOVAL, 35 | ++ SWITCH_TYPE_EXT, 36 | + }; 37 | + 38 | + /* port nested attributes */ 39 | -------------------------------------------------------------------------------- /broken/999-add-ppp-function-QCA-SSDK.patch: -------------------------------------------------------------------------------- 1 | diff --git a/./target/linux/ar71xx/patches-4.4/999-ppp-function.patch b/./target/linux/ar71xx/patches-4.4/999-ppp-function.patch 2 | new file mode 100644 3 | index 0000000..4c70b2b 4 | --- /dev/null 5 | +++ b/./target/linux/ar71xx/patches-4.4/999-ppp-function.patch 6 | @@ -0,0 +1,379 @@ 7 | +--- a/include/linux/ppp_channel.h.orig 2017-01-20 17:56:50.000000000 +0800 8 | ++++ b/include/linux/ppp_channel.h 2017-01-23 23:50:04.463896706 +0800 9 | +@@ -24,6 +24,8 @@ 10 | + #include 11 | + #include 12 | + 13 | ++typedef void (*ppp_channel_destroy_method_t)(void *, uint16_t, uint8_t *); 14 | ++ 15 | + struct ppp_channel; 16 | + 17 | + struct ppp_channel_ops { 18 | +@@ -32,6 +34,18 @@ struct ppp_channel_ops { 19 | + int (*start_xmit)(struct ppp_channel *, struct sk_buff *); 20 | + /* Handle an ioctl call that has come in via /dev/ppp. */ 21 | + int (*ioctl)(struct ppp_channel *, unsigned int, unsigned long); 22 | ++ /* Return the net_device of the given channel. */ 23 | ++ struct net_device* (*get_netdev)(struct ppp_channel *); 24 | ++ /* Register destroy function into PPP channels */ 25 | ++ bool (*reg_destroy_method)(struct ppp_channel *, ppp_channel_destroy_method_t method, void *); 26 | ++ /* Unregister destroy function from PPP channels */ 27 | ++ void (*unreg_destroy_method)(struct ppp_channel *); 28 | ++ /* Get channel protocol type, one of PX_PROTO_XYZ or specific to the channel subtype */ 29 | ++ int (*get_channel_protocol)(struct ppp_channel *); 30 | ++ /* Hold the channel from being destroyed */ 31 | ++ void (*hold)(struct ppp_channel *); 32 | ++ /* Release hold on the channel */ 33 | ++ void (*release)(struct ppp_channel *); 34 | + }; 35 | + 36 | + struct ppp_channel { 37 | +@@ -46,6 +60,37 @@ struct ppp_channel { 38 | + }; 39 | + 40 | + #ifdef __KERNEL__ 41 | ++/* Call this to obtain the underlying protocol of the PPP channel, e.g. PX_PROTO_OE */ 42 | ++extern int ppp_channel_get_protocol(struct ppp_channel *); 43 | ++ 44 | ++/* Call this to hold a channel */ 45 | ++extern bool ppp_channel_hold(struct ppp_channel *); 46 | ++ 47 | ++/* Call this to release a hold you have upon a channel */ 48 | ++extern void ppp_channel_release(struct ppp_channel *); 49 | ++ 50 | ++/* Register destroy function into PPP channels */ 51 | ++extern bool ppp_register_destroy_method(struct net_device *dev, ppp_channel_destroy_method_t method, void *arg); 52 | ++ 53 | ++/* Unregister destroy function from PPP channels */ 54 | ++extern bool ppp_unregister_destroy_method(struct net_device *dev); 55 | ++ 56 | ++/* Release hold on PPP channels */ 57 | ++extern void ppp_release_channels(struct ppp_channel *channels[], unsigned int chan_sz); 58 | ++ 59 | ++/* Hold PPP channels for the PPP device */ 60 | ++extern int ppp_hold_channels(struct net_device *dev, struct ppp_channel *channels[], unsigned int chan_sz); 61 | ++ 62 | ++/* Hold PPP channels for the PPP device */ 63 | ++extern int __ppp_hold_channels(struct net_device *dev, struct ppp_channel *channels[], unsigned int chan_sz); 64 | ++ 65 | ++/* Test if the ppp device is a multi-link ppp device */ 66 | ++extern int ppp_is_multilink(struct net_device *dev); 67 | ++ 68 | ++/* Update statistics of the PPP net_device by incrementing related 69 | ++ statistics field value with corresponding parameter */ 70 | ++extern void ppp_update_stats(struct net_device *dev, unsigned long rx_packets, 71 | ++ unsigned long rx_bytes, unsigned long tx_packets, unsigned long tx_bytes); 72 | + /* Called by the channel when it can send some more data. */ 73 | + extern void ppp_output_wakeup(struct ppp_channel *); 74 | + 75 | +--- a/drivers/net/ppp/ppp_generic.c 2017-01-20 17:56:50.000000000 +0800 76 | ++++ b/drivers/net/ppp/ppp_generic.c 2017-01-24 00:04:54.287164257 +0800 77 | +@@ -3042,6 +3042,291 @@ static void *unit_find(struct idr *p, in 78 | + return idr_find(p, n); 79 | + } 80 | + 81 | ++/* 82 | ++ * Registers a destroy method to the channel. When a PPP interface goes down, 83 | ++ * this destroy method is called if it is registered. 84 | ++ */ 85 | ++bool ppp_register_destroy_method(struct net_device *dev, ppp_channel_destroy_method_t method, void *arg) 86 | ++{ 87 | ++ struct channel *pch; 88 | ++ struct ppp *ppp; 89 | ++ struct ppp_net *pn; 90 | ++ 91 | ++ if (!dev) { 92 | ++ printk(KERN_NOTICE "net device is null\n"); 93 | ++ return false; 94 | ++ } 95 | ++ 96 | ++ if (dev->type != ARPHRD_PPP) { 97 | ++ printk(KERN_NOTICE "net device type is not PPP\n"); 98 | ++ return false; 99 | ++ } 100 | ++ 101 | ++ ppp = netdev_priv(dev); 102 | ++ pn = ppp_pernet(ppp->ppp_net); 103 | ++ 104 | ++ spin_lock_bh(&pn->all_channels_lock); 105 | ++ list_for_each_entry(pch, &ppp->channels, clist) { 106 | ++ if (pch->chan && pch->chan->ops->reg_destroy_method) { 107 | ++ if (!pch->chan->ops->reg_destroy_method(pch->chan, method, arg)) { 108 | ++ /* 109 | ++ * One of the channels has failed to register the destroy method. 110 | ++ */ 111 | ++ spin_unlock_bh(&pn->all_channels_lock); 112 | ++ printk(KERN_NOTICE "PPP channel %p failed to register destroy method\n", pch->chan); 113 | ++ return false; 114 | ++ } 115 | ++ } 116 | ++ } 117 | ++ spin_unlock_bh(&pn->all_channels_lock); 118 | ++ 119 | ++ return true; 120 | ++} 121 | ++ 122 | ++/* 123 | ++ * Unregisters the destroy method from the channel. 124 | ++ */ 125 | ++bool ppp_unregister_destroy_method(struct net_device *dev) 126 | ++{ 127 | ++ struct channel *pch; 128 | ++ struct ppp *ppp; 129 | ++ struct ppp_net *pn; 130 | ++ 131 | ++ if (!dev) { 132 | ++ printk(KERN_NOTICE "net device is null\n"); 133 | ++ return false; 134 | ++ } 135 | ++ 136 | ++ if (dev->type != ARPHRD_PPP) { 137 | ++ printk(KERN_NOTICE "net device type is not PPP\n"); 138 | ++ return false; 139 | ++ } 140 | ++ 141 | ++ ppp = netdev_priv(dev); 142 | ++ 143 | ++ pn = ppp_pernet(ppp->ppp_net); 144 | ++ 145 | ++ spin_lock_bh(&pn->all_channels_lock); 146 | ++ list_for_each_entry(pch, &ppp->channels, clist) { 147 | ++ if (pch->chan && pch->chan->ops->unreg_destroy_method) { 148 | ++ /* 149 | ++ * unregister function just sets the fields to NULL, so there is not any failure case. 150 | ++ */ 151 | ++ pch->chan->ops->unreg_destroy_method(pch->chan); 152 | ++ } 153 | ++ } 154 | ++ spin_unlock_bh(&pn->all_channels_lock); 155 | ++ 156 | ++ return true; 157 | ++} 158 | ++ 159 | ++/* 160 | ++ * ppp_is_multilink() 161 | ++ * Returns >0 if the device is a multilink PPP netdevice, 0 if not or < 0 if the device is not PPP 162 | ++ */ 163 | ++int ppp_is_multilink(struct net_device *dev) 164 | ++{ 165 | ++ struct ppp *ppp; 166 | ++ unsigned int flags; 167 | ++ 168 | ++ if (!dev) { 169 | ++ return -1; 170 | ++ } 171 | ++ if (dev->type != ARPHRD_PPP) { 172 | ++ return -1; 173 | ++ } 174 | ++ 175 | ++ ppp = netdev_priv(dev); 176 | ++ ppp_lock(ppp); 177 | ++ flags = ppp->flags; 178 | ++ ppp_unlock(ppp); 179 | ++ if (flags & SC_MULTILINK) { 180 | ++ return 1; 181 | ++ } 182 | ++ return 0; 183 | ++} 184 | ++ 185 | ++/* 186 | ++ * ppp_channel_get_protocol() 187 | ++ * Call this to obtain the underlying protocol of the PPP channel, e.g. PX_PROTO_OE 188 | ++ * 189 | ++ * NOTE: Some channels do not use PX sockets so the protocol value may be very different for them. 190 | ++ * NOTE: -1 indicates failure. 191 | ++ * NOTE: Once you know the channel protocol you may then either cast 'chan' to its sub-class or 192 | ++ * use the channel protocol specific API's as provided by that channel sub type. 193 | ++ */ 194 | ++int ppp_channel_get_protocol(struct ppp_channel *chan) 195 | ++{ 196 | ++ if (!chan->ops->get_channel_protocol) { 197 | ++ return -1; 198 | ++ } 199 | ++ return chan->ops->get_channel_protocol(chan); 200 | ++} 201 | ++ 202 | ++/* 203 | ++ * ppp_channel_hold() 204 | ++ * Call this to hold a channel. 205 | ++ * 206 | ++ * Returns true on success or false if the hold could not happen. 207 | ++ * 208 | ++ * NOTE: chan must be protected against destruction during this call - 209 | ++ * either by correct locking etc. or because you already have an implicit 210 | ++ * or explicit hold to the channel already and this is an additional hold. 211 | ++ */ 212 | ++bool ppp_channel_hold(struct ppp_channel *chan) 213 | ++{ 214 | ++ if (!chan->ops->hold) { 215 | ++ return false; 216 | ++ } 217 | ++ chan->ops->hold(chan); 218 | ++ return true; 219 | ++} 220 | ++ 221 | ++/* 222 | ++ * ppp_channel_release() 223 | ++ * Call this to release a hold you have upon a channel 224 | ++ */ 225 | ++void ppp_channel_release(struct ppp_channel *chan) 226 | ++{ 227 | ++ chan->ops->release(chan); 228 | ++} 229 | ++ 230 | ++/* 231 | ++ * ppp_hold_channels() 232 | ++ * Returns the PPP channels of the PPP device, storing each one into channels[]. 233 | ++ * 234 | ++ * channels[] has chan_sz elements. 235 | ++ * This function returns the number of channels stored, up to chan_sz. 236 | ++ * It will return < 0 if the device is not PPP. 237 | ++ * 238 | ++ * You MUST release the channels using ppp_release_channels(). 239 | ++ */ 240 | ++int ppp_hold_channels(struct net_device *dev, struct ppp_channel *channels[], unsigned int chan_sz) 241 | ++{ 242 | ++ struct ppp *ppp; 243 | ++ int c; 244 | ++ struct channel *pch; 245 | ++ 246 | ++ if (!dev) { 247 | ++ return -1; 248 | ++ } 249 | ++ if (dev->type != ARPHRD_PPP) { 250 | ++ return -1; 251 | ++ } 252 | ++ 253 | ++ ppp = netdev_priv(dev); 254 | ++ 255 | ++ c = 0; 256 | ++ ppp_lock(ppp); 257 | ++ list_for_each_entry(pch, &ppp->channels, clist) { 258 | ++ struct ppp_channel *chan; 259 | ++ 260 | ++ if (!pch->chan) { 261 | ++ /* 262 | ++ * Channel is going / gone away 263 | ++ */ 264 | ++ continue; 265 | ++ } 266 | ++ if (c == chan_sz) { 267 | ++ /* 268 | ++ * No space to record channel 269 | ++ */ 270 | ++ ppp_unlock(ppp); 271 | ++ return c; 272 | ++ } 273 | ++ 274 | ++ /* 275 | ++ * Hold the channel, if supported 276 | ++ */ 277 | ++ chan = pch->chan; 278 | ++ if (!chan->ops->hold) { 279 | ++ continue; 280 | ++ } 281 | ++ chan->ops->hold(chan); 282 | ++ 283 | ++ /* 284 | ++ * Record the channel 285 | ++ */ 286 | ++ channels[c++] = chan; 287 | ++ } 288 | ++ ppp_unlock(ppp); 289 | ++ return c; 290 | ++} 291 | ++ 292 | ++/* 293 | ++ * __ppp_hold_channels() 294 | ++ * Returns the PPP channels of the PPP device, storing each 295 | ++ * one into channels[]. 296 | ++ * 297 | ++ * channels[] has chan_sz elements. 298 | ++ * This function returns the number of channels stored, up to chan_sz. 299 | ++ * It will return < 0 if the device is not PPP. 300 | ++ * 301 | ++ * You MUST acquire ppp_lock & release the channels using 302 | ++ * ppp_release_channels(). 303 | ++ */ 304 | ++int __ppp_hold_channels(struct net_device *dev, struct ppp_channel *channels[], 305 | ++ unsigned int chan_sz) 306 | ++{ 307 | ++ struct ppp *ppp; 308 | ++ int c; 309 | ++ struct channel *pch; 310 | ++ 311 | ++ if (!dev) 312 | ++ return -1; 313 | ++ 314 | ++ if (dev->type != ARPHRD_PPP) 315 | ++ return -1; 316 | ++ 317 | ++ ppp = netdev_priv(dev); 318 | ++ 319 | ++ c = 0; 320 | ++ list_for_each_entry(pch, &ppp->channels, clist) { 321 | ++ struct ppp_channel *chan; 322 | ++ 323 | ++ if (!pch->chan) { 324 | ++ /* 325 | ++ * Channel is going / gone away 326 | ++ */ 327 | ++ continue; 328 | ++ } 329 | ++ if (c == chan_sz) { 330 | ++ /* 331 | ++ * No space to record channel 332 | ++ */ 333 | ++ return c; 334 | ++ } 335 | ++ 336 | ++ /* 337 | ++ * Hold the channel, if supported 338 | ++ */ 339 | ++ chan = pch->chan; 340 | ++ if (!chan->ops->hold) { 341 | ++ continue; 342 | ++ } 343 | ++ chan->ops->hold(chan); 344 | ++ 345 | ++ /* 346 | ++ * Record the channel 347 | ++ */ 348 | ++ channels[c++] = chan; 349 | ++ } 350 | ++ return c; 351 | ++} 352 | ++ 353 | ++/* 354 | ++ * ppp_release_channels() 355 | ++ * Releases channels 356 | ++ */ 357 | ++void ppp_release_channels(struct ppp_channel *channels[], unsigned int chan_sz) 358 | ++{ 359 | ++ unsigned int c; 360 | ++ for (c = 0; c < chan_sz; ++c) { 361 | ++ struct ppp_channel *chan; 362 | ++ chan = channels[c]; 363 | ++ chan->ops->release(chan); 364 | ++ } 365 | ++} 366 | + /* Module/initialization stuff */ 367 | + 368 | + module_init(ppp_init); 369 | +@@ -3058,6 +3343,16 @@ EXPORT_SYMBOL(ppp_input_error); 370 | + EXPORT_SYMBOL(ppp_output_wakeup); 371 | + EXPORT_SYMBOL(ppp_register_compressor); 372 | + EXPORT_SYMBOL(ppp_unregister_compressor); 373 | ++EXPORT_SYMBOL(ppp_register_destroy_method); 374 | ++EXPORT_SYMBOL(ppp_unregister_destroy_method); 375 | ++EXPORT_SYMBOL(ppp_is_multilink); 376 | ++EXPORT_SYMBOL(ppp_hold_channels); 377 | ++EXPORT_SYMBOL(__ppp_hold_channels); 378 | ++EXPORT_SYMBOL(ppp_release_channels); 379 | ++EXPORT_SYMBOL(ppp_channel_get_protocol); 380 | ++EXPORT_SYMBOL(ppp_channel_hold); 381 | ++EXPORT_SYMBOL(ppp_channel_release); 382 | ++ 383 | + MODULE_LICENSE("GPL"); 384 | + MODULE_ALIAS_CHARDEV(PPP_MAJOR, 0); 385 | + MODULE_ALIAS("devname:ppp"); 386 | -------------------------------------------------------------------------------- /patch/.directory: -------------------------------------------------------------------------------- 1 | [Dolphin] 2 | Timestamp=2016,6,10,21,0,3 3 | Version=3 4 | ViewMode=1 5 | -------------------------------------------------------------------------------- /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=74kc 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-mips74kc-set-optimization.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/ar71xx/Makefile b/target/linux/ar71xx/Makefile 2 | index 4341a9a..324d304 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-mtune74kc.patch: -------------------------------------------------------------------------------- 1 | diff --git a/./target/linux/ar71xx/patches-4.4/221-kernel-mtune-74kc.patch.patch b/./target/linux/ar71xx/patches-4.4/221-kernel-mtune-74kc.patch.patch 2 | new file mode 100644 3 | index 0000000..69e4453 4 | --- /dev/null 5 | +++ b/./target/linux/ar71xx/patches-4.4/221-kernel-mtune-74kc.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=74kc -mno-dspr2 -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt,-march=74kc -mno-dspr2 -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=74kc -mno-dspr2 -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-mips74kc-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=74kc -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt \ 18 | + -Wa,-32 -Wa,-march=74kc -mno-branch-likely -mno-mips16 -mno-interlink-compressed -msym32 -fno-caller-saves -fomit-frame-pointer -mframe-header-opt -Wa,-march=74kc -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-74kc.patch.patch b/target/linux/ar71xx/patches-4.4/222-kernel-branch-likely-74kc.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-74kc.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=74kc -mno-dspr2 -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..5024744 100644 3 | --- a/target/linux/ar71xx/config-4.4 4 | +++ b/target/linux/ar71xx/config-4.4 5 | @@ -20,7 +20,7 @@ CONFIG_ARCH_SUPPORTS_UPROBES=y 6 | CONFIG_ARCH_SUSPEND_POSSIBLE=y 7 | CONFIG_ARCH_USE_BUILTIN_BSWAP=y 8 | CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y 9 | -CONFIG_AT803X_PHY=y 10 | +# CONFIG_AT803X_PHY is not set 11 | CONFIG_ATH79=y 12 | CONFIG_ATH79_DEV_AP9X_PCI=y 13 | CONFIG_ATH79_DEV_DSA=y 14 | @@ -218,7 +218,7 @@ CONFIG_ATH79_MACH_WRT400N=y 15 | CONFIG_ATH79_MACH_WRTNODE2Q=y 16 | CONFIG_ATH79_MACH_WZR_450HP2=y 17 | CONFIG_ATH79_MACH_WZR_HP_AG300H=y 18 | -CONFIG_ATH79_MACH_WZR_HP_G300NH=y 19 | +# CONFIG_ATH79_MACH_WZR_HP_G300NH is not set 20 | CONFIG_ATH79_MACH_WZR_HP_G300NH2=y 21 | CONFIG_ATH79_MACH_WZR_HP_G450H=y 22 | CONFIG_ATH79_MACH_XD3200=y 23 | @@ -229,7 +229,7 @@ CONFIG_ATH79_NVRAM=y 24 | CONFIG_ATH79_PCI_ATH9K_FIXUP=y 25 | # CONFIG_ATH79_ROUTERBOOT is not set 26 | CONFIG_ATH79_WDT=y 27 | -CONFIG_CC_OPTIMIZE_FOR_SIZE=y 28 | +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 29 | CONFIG_CEVT_R4K=y 30 | CONFIG_CLKDEV_LOOKUP=y 31 | CONFIG_CLONE_BACKWARDS=y 32 | @@ -241,15 +241,15 @@ CONFIG_CPU_BIG_ENDIAN=y 33 | CONFIG_CPU_GENERIC_DUMP_TLB=y 34 | CONFIG_CPU_HAS_PREFETCH=y 35 | CONFIG_CPU_HAS_SYNC=y 36 | -CONFIG_CPU_MIPS32=y 37 | +CONFIG_CPU_MIPS32=y 38 | CONFIG_CPU_MIPS32_R2=y 39 | CONFIG_CPU_MIPSR2=y 40 | CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y 41 | -CONFIG_CPU_R4K_CACHE_TLB=y 42 | -CONFIG_CPU_R4K_FPU=y 43 | +CONFIG_CPU_R4K_CACHE_TLB=y 44 | +# CONFIG_CPU_R4K_FPU is not set 45 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 46 | CONFIG_CPU_SUPPORTS_HIGHMEM=y 47 | -CONFIG_CPU_SUPPORTS_MSA=y 48 | +# CONFIG_CPU_SUPPORTS_MSA is not set 49 | CONFIG_CRYPTO_RNG2=y 50 | CONFIG_CRYPTO_WORKQUEUE=y 51 | CONFIG_CSRC_R4K=y 52 | @@ -271,8 +271,8 @@ CONFIG_GPIOLIB=y 53 | CONFIG_GPIOLIB_IRQCHIP=y 54 | CONFIG_GPIO_DEVRES=y 55 | # CONFIG_GPIO_LATCH is not set 56 | -CONFIG_GPIO_NXP_74HC153=y 57 | -CONFIG_GPIO_PCF857X=y 58 | +# CONFIG_GPIO_NXP_74HC153 is not set 59 | +# CONFIG_GPIO_PCF857X is not set 60 | CONFIG_GPIO_SYSFS=y 61 | CONFIG_HARDWARE_WATCHPOINTS=y 62 | CONFIG_HAS_DMA=y 63 | @@ -281,29 +281,29 @@ CONFIG_HAS_IOPORT_MAP=y 64 | # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set 65 | # CONFIG_HAVE_ARCH_BITREVERSE is not set 66 | CONFIG_HAVE_ARCH_JUMP_LABEL=y 67 | -CONFIG_HAVE_ARCH_KGDB=y 68 | +CONFIG_HAVE_ARCH_KGDB=y 69 | CONFIG_HAVE_ARCH_SECCOMP_FILTER=y 70 | -CONFIG_HAVE_ARCH_TRACEHOOK=y 71 | +CONFIG_HAVE_ARCH_TRACEHOOK=y 72 | # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set 73 | -CONFIG_HAVE_BPF_JIT=y 74 | +# CONFIG_HAVE_BPF_JIT is not set 75 | CONFIG_HAVE_CC_STACKPROTECTOR=y 76 | CONFIG_HAVE_CLK=y 77 | CONFIG_HAVE_CLK_PREPARE=y 78 | CONFIG_HAVE_CONTEXT_TRACKING=y 79 | CONFIG_HAVE_C_RECORDMCOUNT=y 80 | -CONFIG_HAVE_DEBUG_KMEMLEAK=y 81 | -CONFIG_HAVE_DEBUG_STACKOVERFLOW=y 82 | -CONFIG_HAVE_DMA_API_DEBUG=y 83 | -CONFIG_HAVE_DMA_ATTRS=y 84 | -CONFIG_HAVE_DMA_CONTIGUOUS=y 85 | -CONFIG_HAVE_DYNAMIC_FTRACE=y 86 | -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 87 | -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 88 | -CONFIG_HAVE_FUNCTION_TRACER=y 89 | -CONFIG_HAVE_GENERIC_DMA_COHERENT=y 90 | -CONFIG_HAVE_IDE=y 91 | +CONFIG_HAVE_DEBUG_KMEMLEAK=y 92 | +CONFIG_HAVE_DEBUG_STACKOVERFLOW=y 93 | +CONFIG_HAVE_DMA_API_DEBUG=y 94 | +CONFIG_HAVE_DMA_ATTRS=y 95 | +CONFIG_HAVE_DMA_CONTIGUOUS=y 96 | +CONFIG_HAVE_DYNAMIC_FTRACE=y 97 | +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 98 | +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 99 | +CONFIG_HAVE_FUNCTION_TRACER=y 100 | +CONFIG_HAVE_GENERIC_DMA_COHERENT=y 101 | +CONFIG_HAVE_IDE=y 102 | CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y 103 | -CONFIG_HAVE_KVM=y 104 | +CONFIG_HAVE_KVM=y 105 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y 106 | CONFIG_HAVE_MEMBLOCK=y 107 | CONFIG_HAVE_MEMBLOCK_NODE_MAP=y 108 | @@ -311,7 +311,7 @@ CONFIG_HAVE_MOD_ARCH_SPECIFIC=y 109 | CONFIG_HAVE_NET_DSA=y 110 | CONFIG_HAVE_OPROFILE=y 111 | CONFIG_HAVE_PERF_EVENTS=y 112 | -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 113 | +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 114 | CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y 115 | CONFIG_HW_HAS_PCI=y 116 | CONFIG_HZ_PERIODIC=y 117 | @@ -323,7 +323,7 @@ CONFIG_IMAGE_CMDLINE_HACK=y 118 | CONFIG_INITRAMFS_ROOT_GID=0 119 | CONFIG_INITRAMFS_ROOT_UID=0 120 | CONFIG_INITRAMFS_SOURCE="../../root" 121 | -CONFIG_IP17XX_PHY=y 122 | +# CONFIG_IP17XX_PHY is not set 123 | CONFIG_IRQCHIP=y 124 | CONFIG_IRQ_DOMAIN=y 125 | CONFIG_IRQ_FORCED_THREADING=y 126 | @@ -333,11 +333,11 @@ CONFIG_LEDS_GPIO=y 127 | CONFIG_LEDS_NU801=y 128 | # CONFIG_LEDS_WNDR3700_USB is not set 129 | CONFIG_LIBFDT=y 130 | -CONFIG_MARVELL_PHY=y 131 | +# CONFIG_MARVELL_PHY is not set 132 | CONFIG_MDIO_BITBANG=y 133 | CONFIG_MDIO_BOARDINFO=y 134 | CONFIG_MDIO_GPIO=y 135 | -CONFIG_MICREL_PHY=y 136 | +# CONFIG_MICREL_PHY is not set 137 | CONFIG_MIPS=y 138 | CONFIG_MIPS_CLOCK_VSYSCALL=y 139 | # CONFIG_MIPS_CMDLINE_DTB_EXTEND is not set 140 | @@ -374,10 +374,10 @@ CONFIG_MTD_TPLINK_PARTS=y 141 | CONFIG_MYLOADER=y 142 | CONFIG_NEED_DMA_MAP_STATE=y 143 | CONFIG_NEED_PER_CPU_KM=y 144 | -CONFIG_NET_DSA=y 145 | -CONFIG_NET_DSA_MV88E6060=y 146 | -CONFIG_NET_DSA_MV88E6063=y 147 | -CONFIG_NET_DSA_TAG_TRAILER=y 148 | +# CONFIG_NET_DSA is not set 149 | +# CONFIG_NET_DSA_MV88E6060 is not set 150 | +# CONFIG_NET_DSA_MV88E6063 is not set 151 | +# CONFIG_NET_DSA_TAG_TRAILER is not set 152 | CONFIG_NET_SWITCHDEV=y 153 | CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y 154 | # CONFIG_NO_IOPORT_MAP is not set 155 | @@ -394,7 +394,7 @@ CONFIG_OF_NET=y 156 | CONFIG_OF_PCI=y 157 | CONFIG_OF_PCI_IRQ=y 158 | CONFIG_PCI=y 159 | -CONFIG_PCI_AR724X=y 160 | +# CONFIG_PCI_AR724X is not set 161 | CONFIG_PCI_DISABLE_COMMON_QUIRKS=y 162 | CONFIG_PCI_DOMAINS=y 163 | CONFIG_PERF_USE_VMALLOC=y 164 | @@ -402,11 +402,11 @@ CONFIG_PGTABLE_LEVELS=2 165 | CONFIG_PHYLIB=y 166 | CONFIG_RATIONAL=y 167 | # CONFIG_RCU_STALL_COMMON is not set 168 | -CONFIG_RTL8306_PHY=y 169 | -CONFIG_RTL8366RB_PHY=y 170 | -CONFIG_RTL8366S_PHY=y 171 | -CONFIG_RTL8366_SMI=y 172 | -CONFIG_RTL8367_PHY=y 173 | +# CONFIG_RTL8306_PHY is not set 174 | +# CONFIG_RTL8366RB_PHY is not set 175 | +# CONFIG_RTL8366S_PHY is not set 176 | +# CONFIG_RTL8366_SMI is not set 177 | +# CONFIG_RTL8367_PHY is not set 178 | CONFIG_SCHED_HRTICK=y 179 | # CONFIG_SCHED_INFO is not set 180 | # CONFIG_SCSI_DMA is not set 181 | @@ -416,12 +416,12 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=1 182 | CONFIG_SERIAL_AR933X=y 183 | CONFIG_SERIAL_AR933X_CONSOLE=y 184 | CONFIG_SERIAL_AR933X_NR_UARTS=2 185 | -CONFIG_SOC_AR71XX=y 186 | -CONFIG_SOC_AR724X=y 187 | -CONFIG_SOC_AR913X=y 188 | -CONFIG_SOC_AR933X=y 189 | +# CONFIG_SOC_AR71XX is not set 190 | +# CONFIG_SOC_AR724X is not set 191 | +# CONFIG_SOC_AR913X is not set 192 | +# CONFIG_SOC_AR933X is not set 193 | CONFIG_SOC_AR934X=y 194 | -CONFIG_SOC_QCA953X=y 195 | +# CONFIG_SOC_QCA953X is not set 196 | CONFIG_SOC_QCA955X=y 197 | CONFIG_SOC_QCA956X=y 198 | CONFIG_SPI=y 199 | @@ -433,13 +433,13 @@ CONFIG_SPI_MASTER=y 200 | CONFIG_SRCU=y 201 | CONFIG_SWCONFIG=y 202 | CONFIG_SWCONFIG_LEDS=y 203 | -CONFIG_SYSCTL_EXCEPTION_TRACE=y 204 | +CONFIG_SYSCTL_EXCEPTION_TRACE=y 205 | CONFIG_SYS_HAS_CPU_MIPS32_R2=y 206 | CONFIG_SYS_HAS_EARLY_PRINTK=y 207 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 208 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 209 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 210 | -CONFIG_SYS_SUPPORTS_MIPS16=y 211 | +# CONFIG_SYS_SUPPORTS_MIPS16 is not set 212 | CONFIG_SYS_SUPPORTS_ZBOOT=y 213 | CONFIG_TICK_CPU_ACCOUNTING=y 214 | CONFIG_USB_SUPPORT=y 215 | -------------------------------------------------------------------------------- /patch/009-detach-rtl8366-smi-dependency.patch: -------------------------------------------------------------------------------- 1 | diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt 2 | index 76ba6fa..694b23f 100644 3 | --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt 4 | +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt 5 | @@ -328,7 +328,6 @@ config ATH79_MACH_WZR_HP_G300NH 6 | select ATH79_DEV_LEDS_GPIO 7 | select ATH79_DEV_USB 8 | select ATH79_DEV_WMAC 9 | - select RTL8366_SMI 10 | 11 | config ATH79_MACH_WZR_HP_G300NH2 12 | bool "Buffalo WZR-HP-G300NH2 board support" 13 | -------------------------------------------------------------------------------- /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 | ++ 45 | ++ 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-wdr4300-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-wdr4300-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/017-update-ath10k-firmware.patch: -------------------------------------------------------------------------------- 1 | diff --git a/package/firmware/ath10k-firmware/Makefile b/package/firmware/ath10k-firmware/Makefile 2 | index 8bf5729..16d77a3 100644 3 | --- a/package/firmware/ath10k-firmware/Makefile 4 | +++ b/package/firmware/ath10k-firmware/Makefile 5 | @@ -8,9 +8,9 @@ 6 | include $(TOPDIR)/rules.mk 7 | 8 | PKG_NAME:=ath10k-firmware 9 | -PKG_SOURCE_DATE:=2017-01-11 10 | -PKG_SOURCE_VERSION:=ab432c60437931a165f0aff1a6e3371f358b75dd 11 | -PKG_MIRROR_HASH:=e3188ecd4d7470d3cdde89fefa6258f9ec4f404b23558d1474e5014679b28101 12 | +PKG_SOURCE_DATE:=2017-03-29 13 | +PKG_SOURCE_VERSION:=956e2609b7e42c8c710bba10ef925a5be1be5137 14 | +PKG_MIRROR_HASH:=25f724ff38c830281b3efba4a4ddffaae0c4bd8fea0f4c1061591229ff05535b 15 | PKG_RELEASE:=1 16 | 17 | PKG_SOURCE_PROTO:=git 18 | @@ -32,6 +32,11 @@ $(Package/ath10k-firmware-default) 19 | TITLE:=ath10k firmware for QCA9887 devices 20 | endef 21 | 22 | +define Package/ath10k-firmware-qca9888 23 | +$(Package/ath10k-firmware-default) 24 | + TITLE:=ath10k firmware for QCA9888 devices 25 | +endef 26 | + 27 | define Package/ath10k-firmware-qca9887-ct 28 | $(Package/ath10k-firmware-default) 29 | TITLE:=ath10k-CT firmware for QCA9887 devices 30 | @@ -76,34 +81,41 @@ define Download/ct-firmware 31 | URL_FILE:=$($(1)_FIRMWARE_FILE_CT) 32 | endef 33 | 34 | -QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community.bin-19-rc3-lede 35 | +QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community.bin-19-rc5-lede 36 | define Download/ath10k-firmware-qca988x-ct 37 | $(call Download/ct-firmware,QCA988X,) 38 | - HASH:=4112d78161a2c20e7a9490ea8d04e9f919508bafb097d88761dcce026c26f93f 39 | + HASH:=556d6a4df50cd94a229a240d6d1d108ed5910069902f1e0cbb57b02ede27690f 40 | endef 41 | $(eval $(call Download,ath10k-firmware-qca988x-ct)) 42 | 43 | -QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community.bin-19-rc3-lede 44 | +QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community.bin-19-rc5-lede 45 | define Download/ath10k-firmware-qca9887-ct 46 | $(call Download/ct-firmware,QCA9887,ath10k-9887) 47 | - HASH:=18b61875726d4384de46f75dec1d42fea31aa6d66dba4940cb9d375bc98732e4 48 | + HASH:=725982694156e0b891dcd1b1b18ba5318fbbe173f4ec9603ff7acbd08f7c4050 49 | endef 50 | $(eval $(call Download,ath10k-firmware-qca9887-ct)) 51 | 52 | -QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.001 53 | +QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.002 54 | define Download/ath10k-firmware-qca99x0-ct 55 | $(call Download/ct-firmware,QCA99X0,ath10k-10-4) 56 | - HASH:=61ff2b52617ae805579f423d6539284f056aba2b9f7e3629d600f6a5077ab703 57 | + HASH:=e3c77077b47d55219f90816a51bf046f5b40c32be5e96bf629b083d873a879ad 58 | endef 59 | $(eval $(call Download,ath10k-firmware-qca99x0-ct)) 60 | 61 | -QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.001 62 | +QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.002 63 | define Download/ath10k-firmware-qca9984-ct 64 | $(call Download/ct-firmware,QCA9984,ath10k-9984-10-4) 65 | - HASH:=e079db5059cf28979ff50c7f6706df87e96a375e8048deeb4f6ede5357577f74 66 | + HASH:=610f7747db6b101f4fc21431b776ac640b5977357e5be9aece2349447b9b1d85 67 | endef 68 | $(eval $(call Download,ath10k-firmware-qca9984-ct)) 69 | 70 | +QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.002 71 | +define Download/ath10k-firmware-qca9888-ct 72 | + $(call Download/ct-firmware,QCA9888,ath10k-9888-10-4) 73 | + HASH:=f92e7d7968698af7c6f2d76b31b3645589e03839e15838010ce457c635e5aae6 74 | +endef 75 | +$(eval $(call Download,ath10k-firmware-qca9888-ct)) 76 | + 77 | define Package/ath10k-firmware-qca99x0 78 | $(Package/ath10k-firmware-default) 79 | TITLE:=ath10k firmware for QCA99x0 devices 80 | @@ -158,6 +170,14 @@ This firmware conflicts with the standard 9984 firmware, so select only 81 | one. 82 | endef 83 | 84 | +define Package/ath10k-firmware-qca9888-ct/description 85 | +Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. 86 | +Enables IBSS and other features. See: 87 | +http://www.candelatech.com/ath10k-10.4.php 88 | +This firmware conflicts with the standard 9886 and 9888 firmware, so select only 89 | +one. 90 | +endef 91 | + 92 | define Package/ath10k-firmware-qca99x0/description 93 | Standard ath10k firmware for QCA99x0 from QCA 94 | This firmware conflicts with the CT 99x0 firmware, so select only 95 | @@ -178,6 +198,13 @@ $(Package/ath10k-firmware-default) 96 | CATEGORY:=Firmware 97 | endef 98 | 99 | +define Package/ath10k-firmware-qca9888-ct 100 | +$(Package/ath10k-firmware-default) 101 | + TITLE:=ath10k CT 10.4.3 firmware for QCA9886 and QCA9888 devices 102 | + SECTION:=firmware 103 | + CATEGORY:=Firmware 104 | +endef 105 | + 106 | define Package/ath10k-firmware-qca9984 107 | $(Package/ath10k-firmware-default) 108 | TITLE:=ath10k firmware for QCA9984 devices 109 | @@ -185,6 +212,13 @@ $(Package/ath10k-firmware-default) 110 | CATEGORY:=Firmware 111 | endef 112 | 113 | +define Package/ath10k-firmware-qca4019 114 | +$(Package/ath10k-firmware-default) 115 | + TITLE:=ath10k firmware for IPQ/QCA4019 devices 116 | + SECTION:=firmware 117 | + CATEGORY:=Firmware 118 | +endef 119 | + 120 | define Package/ath10k-firmware-qca6174 121 | $(Package/ath10k-firmware-default) 122 | TITLE:=ath10k firmware for QCA6174 devices 123 | @@ -203,31 +237,18 @@ define Download/qca99x0-board 124 | endef 125 | $(eval $(call Download,qca99x0-board)) 126 | 127 | -QCA9984_BOARD_REV:=719c0127e52bd70559e71b85ab0331790e1bf66c 128 | -QCA9984_BOARD_FILE:=board-2.bin 129 | -QCA9984_BOARD_FILE_DL:=$(QCA9984_BOARD_FILE).$(QCA9984_BOARD_REV) 130 | -QCA9984_FIRMWARE_REV:=d43cb1188154037506e94abf3aa456cc934c6861 131 | -QCA9984_FIRMWARE_FILE:=firmware-5.bin_10.4-3.4-00072 132 | -QCA9984_FIRMWARE_FILE_DL:=$(QCA9984_FIRMWARE_FILE).$(QCA9984_FIRMWARE_REV) 133 | - 134 | -define Download/ath10k-qca9984-board 135 | - URL:=https://source.codeaurora.org/quic/qsdk/oss/firmware/ath10k-firmware/plain/ath10k/QCA9984/hw1.0/ 136 | - URL_FILE:=$(QCA9984_BOARD_FILE)?id=$(QCA9984_BOARD_REV) 137 | - FILE:=$(QCA9984_BOARD_FILE_DL) 138 | - HASH:=e968b214fd76d5b7859f71841ce40fbd5f47336c3ccbaf95e23f902f5e569aef 139 | -endef 140 | -$(eval $(call Download,ath10k-qca9984-board)) 141 | +define Build/Compile 142 | 143 | -define Download/ath10k-qca9984-firmware 144 | - URL:=https://source.codeaurora.org/quic/qsdk/oss/firmware/ath10k-firmware/plain/ath10k/QCA9984/hw1.0/ 145 | - URL_FILE:=$(QCA9984_FIRMWARE_FILE)?id=$(QCA9984_FIRMWARE_REV) 146 | - FILE:=$(QCA9984_FIRMWARE_FILE_DL) 147 | - HASH:=28d5834e8c4ca8fcef9ea033cd8b9b0f9ee84ecf30dbde84c9c64bf8dd9912bc 148 | endef 149 | -$(eval $(call Download,ath10k-qca9984-firmware)) 150 | - 151 | -define Build/Compile 152 | 153 | +define Package/ath10k-firmware-qca4019/install 154 | + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 155 | + $(INSTALL_DATA) \ 156 | + $(PKG_BUILD_DIR)/QCA4019/hw1.0/board-2.bin \ 157 | + $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ 158 | + $(INSTALL_DATA) \ 159 | + $(PKG_BUILD_DIR)/QCA4019/hw1.0/3.2.1/firmware-5.bin_10.4-3.2.1-00053 \ 160 | + $(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin 161 | endef 162 | 163 | define Package/ath10k-firmware-qca9887/install 164 | @@ -240,13 +261,26 @@ define Package/ath10k-firmware-qca9887/install 165 | $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin 166 | endef 167 | 168 | +define Package/ath10k-firmware-qca9888/install 169 | + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 170 | + $(INSTALL_DATA) \ 171 | + $(PKG_BUILD_DIR)/QCA9888/hw2.0/board-2.bin \ 172 | + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin 173 | + $(INSTALL_DATA) \ 174 | + $(PKG_BUILD_DIR)/QCA9888/hw2.0/board-2.bin \ 175 | + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin 176 | + $(INSTALL_DATA) \ 177 | + $(PKG_BUILD_DIR)/QCA9888/hw2.0/firmware-5.bin_10.4-3.2-00072 \ 178 | + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin 179 | +endef 180 | + 181 | define Package/ath10k-firmware-qca988x/install 182 | $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 183 | $(INSTALL_DATA) \ 184 | $(PKG_BUILD_DIR)/QCA988X/hw2.0/board.bin \ 185 | $(1)/lib/firmware/ath10k/QCA988X/hw2.0/ 186 | $(INSTALL_DATA) \ 187 | - $(PKG_BUILD_DIR)/QCA988X/hw2.0/10.2.4-1.0/firmware-5.bin_10.2.4-1.0-00016 \ 188 | + $(PKG_BUILD_DIR)/QCA988X/hw2.0/10.2.4-1.0/firmware-5.bin_10.2.4-1.0-00029 \ 189 | $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin 190 | endef 191 | 192 | @@ -303,22 +337,16 @@ endef 193 | 194 | define Package/ath10k-firmware-qca9984/install 195 | $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 196 | - ln -s \ 197 | - ../../cal-pci-0000:01:00.0.bin \ 198 | - $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board.bin 199 | $(INSTALL_DATA) \ 200 | - $(DL_DIR)/$(QCA9984_BOARD_FILE_DL) \ 201 | + $(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \ 202 | $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin 203 | $(INSTALL_DATA) \ 204 | - $(DL_DIR)/$(QCA9984_FIRMWARE_FILE_DL) \ 205 | + $(PKG_BUILD_DIR)/QCA9984/hw1.0/3.4/firmware-5.bin_10.4-3.4-00082 \ 206 | $(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin 207 | endef 208 | 209 | define Package/ath10k-firmware-qca9984-ct/install 210 | $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 211 | - ln -s \ 212 | - ../../cal-pci-0000:01:00.0.bin \ 213 | - $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board.bin 214 | $(INSTALL_DATA) \ 215 | $(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \ 216 | $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin 217 | @@ -327,13 +355,29 @@ define Package/ath10k-firmware-qca9984-ct/install 218 | $(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin 219 | endef 220 | 221 | +define Package/ath10k-firmware-qca9888-ct/install 222 | + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 223 | + ln -s \ 224 | + ../../cal-pci-0000:01:00.0.bin \ 225 | + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin 226 | + $(INSTALL_DATA) \ 227 | + $(PKG_BUILD_DIR)/QCA9888/hw2.0/board-2.bin \ 228 | + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin 229 | + $(INSTALL_DATA) \ 230 | + $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9888) \ 231 | + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin 232 | +endef 233 | + 234 | $(eval $(call BuildPackage,ath10k-firmware-qca9887)) 235 | +$(eval $(call BuildPackage,ath10k-firmware-qca9888)) 236 | $(eval $(call BuildPackage,ath10k-firmware-qca988x)) 237 | $(eval $(call BuildPackage,ath10k-firmware-qca99x0)) 238 | $(eval $(call BuildPackage,ath10k-firmware-qca6174)) 239 | $(eval $(call BuildPackage,ath10k-firmware-qca9984)) 240 | +$(eval $(call BuildPackage,ath10k-firmware-qca4019)) 241 | 242 | $(eval $(call BuildPackage,ath10k-firmware-qca9887-ct)) 243 | $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct)) 244 | $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct)) 245 | $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct)) 246 | +$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct)) 247 | -------------------------------------------------------------------------------- /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-74kc-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=74kc -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 |