Compare commits

...

84 Commits

Author SHA1 Message Date
Matthias Schiffer
35c9f9aecc
ar71xx: sysupgrade: improve CPE/WBS 210/510 validation, add new metadata offset
Allow upgrades to current CPE210/510 images based on upcoming Gluon master.
2018-04-10 19:22:20 +02:00
Hoffmeister, Stefan
3d824bd21d modules: update url to chaos calmer git repository after upstream move (#1293) 2018-01-03 12:58:09 +01:00
Matthias Schiffer
26c55f2819
ar71xx: fix MAC addresses on TP-Link TL-WR1043ND v4 2017-09-11 20:09:11 +02:00
Matthias Schiffer
d722c2638a
docs: fix v2016.2.7 release notes 2017-08-14 01:54:44 +02:00
Matthias Schiffer
6642b6e928
docs, README: Gluon v2016.2.7 2017-08-14 01:41:24 +02:00
Matthias Schiffer
d3b721f2cd
docs: add v2016.2.7 release notes 2017-08-07 21:41:58 +02:00
Matthias Schiffer
76753ede0d
automake: import upstream fix for perl 5.26 2017-07-31 00:11:24 +02:00
Matthias Schiffer
f5876ddaf4
prereq: backport changes to git detection to work with newer Git versions 2017-07-30 21:15:31 +02:00
Matthias Schiffer
58b839308a
Backport sysupgrade error handling fixes 2017-07-30 20:57:33 +02:00
Matthias Schiffer
0d2b078a17
docs, README: Gluon v2016.2.6 2017-06-10 13:14:28 +02:00
Matthias Schiffer
3ce8280b94
docs: releases/v2016.2.6: add "Known issues" section 2017-06-07 16:42:23 +02:00
Matthias Schiffer
fd017477b0
docs: add v2016.2.6 release notes 2017-06-06 18:13:05 +02:00
Matthias Schiffer
b7f97a3402
docs: add TP-Link TL-WR841N/ND v12 to hardware support list 2017-06-06 17:34:11 +02:00
Matthias Schiffer
d4a69c0004
Backport staged sysupgrade patches
The staged sysupgrade allows to properly unmount the rootfs before writing
the new partitions. This will fix upgrades losing configuration when
parition sizes change on x86 and similar image types.
2017-06-02 01:56:39 +02:00
Matthias Schiffer
97f44c208b
gluon-mesh-batman-adv: enable bridge learning on bat0 again
Reverts d5829d87be ("gluon-mesh-batman-adv-core: disable bridge port
learning on bat0").

Fixes #1121
2017-05-12 15:46:44 +02:00
Matthias Schiffer
4014e43911
build: cmake: fix backport to use correct prefix for host packages 2017-05-10 10:34:41 +02:00
Matthias Schiffer
14c2aff7c0
quilt: backport relocatablity fixes
Fixes (some of the) issues breaking build using long paths.
2017-05-10 00:39:49 +02:00
Tarnatos
3d4f348f38
ar71xx-generic: backport support for TP-Link TL-WR841ND v12 2017-05-10 00:11:36 +02:00
Matthias Schiffer
b6a22ce793
build: backport patches for build with OpenSSL 1.1 2017-05-10 00:11:21 +02:00
Jan Niehusmann
03fc7b8e97 kernel: udp: properly support MSG_PEEK with truncated buffers (#1097)
Add upstream patch to fix CVE-2016-10229
2017-04-15 22:35:56 +02:00
Matthias Schiffer
84dd03a38f
docs, README: Gluon v2016.2.5 2017-04-09 18:44:46 +02:00
Matthias Schiffer
43805284d8
docs: add Gluon v2016.2.5 release notes 2017-04-09 18:41:48 +02:00
Matthias Schiffer
d452a7c2cf
batman-adv: fix broken double-free backport leading to frequent crashes 2017-03-28 14:41:09 +02:00
Matthias Schiffer
6cbd658586
docs, README: Gluon v2016.2.4 2017-03-13 14:56:50 +01:00
Matthias Schiffer
1535b1ad83
docs: releases/v2016.2.4: fix typo 2017-03-13 12:07:29 +01:00
Matthias Schiffer
b7588c0e41
docs: add release notes for Gluon v2016.2.4 2017-03-13 12:04:41 +01:00
Jan-Philipp Litza
9a0aeb9b74 netifd: Fix triggering of interface update event
This fixes excessively frequent calls to some init scripts.
2017-03-10 00:23:13 +01:00
Matthias Schiffer
b7eeef9b04
batman-adv: backport a few maint patches
In particular, this fixes packages of a certain range of sizes not being
transmitted correctly, leading to hanging TCP connections.
2017-03-09 19:56:45 +01:00
Christof Schulze
52b83b27e8
gluon-radvd: remove netdev from initscript
uradvd will tolerate devices appearing and disappearing during runtime.

Fixes endless restarts of uradvd.
2017-03-05 18:09:37 +01:00
Matthias Schiffer
ad37e2b6b4
x86: backport more sysupgrade patches
Should fix sysupgrades on disks with 4k block size.
2017-03-02 15:33:45 +01:00
Matthias Schiffer
9994eebe3e
scripts/download.pl: Use CDN for kernel downloads
Fixes #1059
2017-03-02 12:43:40 +01:00
Matthias Schiffer
f9d59be731
scripts: generate SHA256 manifest lines in addition to SHA512
The current autoupdater will only respect the last line for a given model
name, so we can add SHA256 checksums as long as they occur before the
corresponding SHA512 line.
2017-02-25 01:01:44 +01:00
Matthias Schiffer
242e636188
build: ensure that target-specific default packages are built 2017-02-18 22:39:20 +01:00
Matthias Schiffer
41fd50d20b
x86: generalize partition discovery for sysupgrade
Backport a few patches to allow sysupgrades on mmcblk and similar block
devices.
2017-02-18 19:20:24 +01:00
Matthias Schiffer
b0c647151c
docs, README: Gluon v2016.2.3 2017-02-13 02:15:00 +01:00
Matthias Schiffer
328df081e0
docs: add release notes for Gluon v2016.2.3 2017-02-10 05:37:09 +01:00
Matthias Schiffer
39f3801b41
Update Gluon packages 2017-02-03 20:04:13 +01:00
Matthias Schiffer
04c3ebb902
gluon-core: check_site.lua: only accept /64 as prefix6
A lot of our code does not actually work with other prefix lengths.

Fixes #1014
2017-01-26 19:10:27 +01:00
Jan-Philipp Litza
6788eb9ca0
gluon-respondd: restart on state change of client iface
Because we unconditionally appended `-i br-client` to the command line of
respondd, it wasn't restarted when br-client changed state. Now, we use a
jsonfilter expression on the network.interface dump data, similar to how the
other interface names are generated, and only add the interface to the argument
list if it is up.
2017-01-24 19:36:01 +01:00
Jan-Philipp Litza
3d5d69f9b0
gluon-respondd: Use procd in initscript and to restart on network changes 2017-01-24 19:35:55 +01:00
Christof Schulze
6af96a88ad
gluon-respondd: make initialisation mesh protocol agnostic (#946) 2017-01-24 19:35:12 +01:00
Matthias Schiffer
5559ee9cf6
ar71xx-generic: mark Meraki devices as BROKEN again
These devices don't have unique MAC addresses with OpenWrt/LEDE at the moment
(see #993).
2017-01-09 23:07:17 +01:00
Sven Eckelmann
86b938553d
mac80211: Allow switching of the ath10k regulatory domain (#1001)
ath10k has to switch the regulatory domain when switching the default
country when ATH_USER_REGD is enabled. This is for example important when
switching from country US (FCC) to DE (ETSI). The ath implementation will
use ath_reg_dyn_country_user_allow to check if this is allowed.

Unfortunately, this function always seems to return false to
ath_reg_notifier_apply even when ATH_USER_REGD is enabled. But it must
actually always accept the requests from the user (when ATH_USER_REGD is
enabled) to correctly set the conformance test limits in the ath10k binary
blob.

Not doing it will sometimes allow too high transmit powers on edge channels
for correctly calibrated devices outside their default regulatory domain.

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2017-01-09 23:02:51 +01:00
Matthias Schiffer
12fae2d1a2
ar71xx-generic: backport support for TP-LINK TL-WR1043ND v4
Fixes #961
2017-01-06 12:07:34 +01:00
Matthias Schiffer
fdb7303292
Refresh patches 2016-12-20 01:14:04 +01:00
Matthias Schiffer
30e627650c
scripts/update-patches: include unabbreviated object IDs in patch files
The default abbreviation length depends on factors like user configuration,
git version and number of repository objects. Use unabbreviates IDs to make
patch generation more reproducible.
2016-12-20 01:11:19 +01:00
Matthias Schiffer
2ec55f7845
docs: add TP-Link TL-WR940N v4 to hardware list 2016-12-19 15:10:16 +01:00
David Lutz
de0595c0c4
ar71xx-generic: add Support for TP-LINK TL-WR940N v4 2016-12-19 15:10:09 +01:00
Matthias Schiffer
9f1c00050c
docs, README: Gluon v2016.2.2 2016-12-18 23:15:12 +01:00
Matthias Schiffer
9bda217498
docs: add release notes for Gluon v2016.2.2 2016-12-17 03:56:42 +01:00
Matthias Schiffer
42035cafd8
docs: index: add TP-Link TL-WA801N/ND v3 to hardware list 2016-12-17 03:12:27 +01:00
Matthias Schiffer
1e0bc1b4f3
ar71xx-generic: update support list for CPE210/510/...
Fixes #975
2016-12-12 13:50:18 +01:00
Matthias Schiffer
a51f4e907f
docs: feature/roles: remove another outdated sentence 2016-12-07 11:47:33 +01:00
Matthias Schiffer
79edc73818
docs: feature/roles: update outdates site config docs 2016-12-07 11:47:13 +01:00
Matthias Schiffer
62f8a7e786
ar71xx: fix LEDs and sysupgrade support for TL-WA801ND v3, remove BROKEN 2016-12-06 19:02:59 +01:00
Sven Eckelmann
9ad10b59e2
openwrt: Remove extra soc check in ath79_gpio_output_select (#965)
The  assignment of the gpio_count and reg_base in ath79_gpio_output_select
takes care that only supported platforms can use ath79_gpio_output_select.
But the rebase of the patches after the last OpenWrt base update
accidentally added an extra check for the SoC which was missing support
soc_is_qca955x().

Boots on QCA955X devices which were using ath79_gpio_output_select stopped
with

    Kernel bug detected[#1]:
    [...]
    Call Trace:
    [<803e6174>] ath79_gpio_output_select+0x30/0xe8
    [<803ed590>] om5p_acv2_setup+0x24/0x200
    [<803e4dc0>] ath79_setup+0x28/0x38
    [<80069ac8>] do_one_initcall+0x148/0x1ec
    [<803e2cc4>] kernel_init_freeable+0x150/0x208
    [<80065218>] kernel_init+0x10/0x114
    [<80060878>] ret_from_kernel_thread+0x14/0x1c

Fixes: a22c1d5670 ("Update OpenWrt base")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2016-12-05 10:43:05 +01:00
Matthias Schiffer
185d3eb8c8
gluon-mesh-batman-adv-core: respondd: correctly detect lower interface types (#954)
Fixes #941
2016-12-03 13:22:48 +01:00
Matthias Schiffer
9dbe9f785d
gluon-next-node: fix ebtables rules without next_node.ip4 2016-11-30 15:30:21 +01:00
Sven Eckelmann
d54c9c5fb7 kernel: add at803x workaround for sgmii mode (#950)
Some (possibly broken) bootloaders incorrectly initialize the at8033 phy.
This breaks auto-negotation on these SGMII devices. The mode has therefore
to be set back in to a valid configuration by Linux.

Fixes #911
2016-11-29 15:30:02 +01:00
Matthias Schiffer
59deb2064d
gluon-core, gluon-setup-mode: fix WAN/LAN assignment on CPE210
The interfaces were accidentially switched when the CPE210 was separated
from the CPE510 code.
2016-11-22 20:02:36 +01:00
Matthias Schiffer
3f8672afb8
build: clean up postinst scripts after build
OpenWrt does this by default to save some space.
2016-11-22 18:32:22 +01:00
Matthias Schiffer
f9072a3641
build: fix setting of opkg tmpdir
Don't use system /tmp for build.
2016-11-22 18:32:19 +01:00
Matthias Schiffer
448ea1001e
docs: user/site: improve mcast_rate description 2016-11-16 18:24:45 +01:00
Matthias Schiffer
9c0a0898ea
ar71xx, ramips: reduce CPU load and flickering on devices using rsslieds
Fixes #897
2016-11-16 01:55:49 +01:00
Vieno Foo
3d568f377b
docs: fix typo in features/wlan-configuration 2016-11-15 22:46:49 +01:00
Matthias Schiffer
d43147a8e0
ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success
Fixes the Ubiquiti UAP Outdoor+ HSR.
2016-11-15 19:30:18 +01:00
Andreas Ziegler
ec35c65d34
x86: add mmc drivers to generic and 64 subtargets 2016-11-14 22:40:07 +01:00
Andreas Ziegler
2592e98e82
x86-64: add pata drivers 2016-11-14 22:40:07 +01:00
Matthias Schiffer
85ddc089ef
ar71xx-generic: backport region code support for TP-Link TL-WR841ND v11 2016-11-11 03:46:45 +01:00
Matthias Schiffer
d472604a43
linux-firmware: switch back to git protocol from https for download
Using HTTPS breaks the download on Debian Wheezy. The switch was an
unintended side effect of the backport from LEDE.

Also, fix the commit message of the backport patch (mwlwifi is not updated
anymore since the last OpenWrt base upgrade).

Fixes #919
2016-11-10 03:31:57 +01:00
Kevin Olbrich
c47514c535 docs: user/site: fix typo (#924) 2016-11-08 23:19:50 +01:00
Matthias Schiffer
383af2adf0
docs, README: Gluon v2016.2.1 2016-11-08 17:10:53 +01:00
Matthias Schiffer
f4941e8815
docs: add v2016.2.1 release notes 2016-11-07 15:06:29 +01:00
Matthias Schiffer
2ed35dae12
ar71xx: fix syntax error in /etc/uci-defaults/01_leds 2016-11-05 04:36:47 +01:00
Matthias Schiffer
1c3d97889a
Update OpenWrt base 2016-11-02 17:37:24 +01:00
Brother-Lal
00fdc37301
gluon-status-page: add hint to enable JavaScript if it is disabled (#913) 2016-11-02 17:37:18 +01:00
Brother-Lal
f2a52c285c
fix error in statuspage if cookies are disabled (#912)
If cookies are disabled, the Statuspage only displays an empty ("Not connected")
This checks if the localStorage API is available and working and only uses it in this case
Also allows better backwards compatibility.
2016-11-02 17:37:14 +01:00
Matthias Schiffer
e857bbc5a3
ar71xx-generic: set region code for TL-WA901ND v4 and remove BROKEN
Tested-by: Jannis Pinter <jannis@pinterjann.is>
2016-11-02 17:36:53 +01:00
Matthias Schiffer
8af15f243c
ath9k: remove intermediate queueing patch
The downgraded version of ath9k was reported to cause issues with Windows
clients before. Remove the problematic patch.
2016-11-02 17:36:49 +01:00
Matthias Schiffer
296f0f4cf7
Downgrade mac80211 to LEDE 6c2651566cce8f5b3a3d3b976439dee2bac5e07e
In addition, the temperature compensation support patch is reverted.

It seems that newer mac80211 version are less stable, so we downgrade it
for now.
2016-11-02 17:36:46 +01:00
Matthias Schiffer
1819883d77
kernel: add fix for CVE-2016-7117
This probably doesn't affect Gluon as nothing is using recvmmsg, but it's
still a good idea to get this fixed ASAP.
2016-11-02 17:36:39 +01:00
Matthias Schiffer
a22c1d5670
Update OpenWrt base 2016-11-02 17:36:03 +01:00
Matthias Schiffer
a54e7654cd
mac80211: backport ath9k stability fix 2016-09-30 18:15:26 +02:00
Simon Joda Stößer
ea2abfb9ef
docs: fixed link to issue #414 in v2016.2 release notes (#895) 2016-09-30 16:03:24 +02:00
231 changed files with 19469 additions and 8051 deletions

View File

@ -180,6 +180,7 @@ GLUON_$(1)_MODEL_$(2)_ALIASES += $(3)
endef
export SHA256SUM := $(GLUONDIR)/scripts/sha256sum.sh
export SHA512SUM := $(GLUONDIR)/scripts/sha512sum.sh
@ -280,7 +281,7 @@ config: FORCE
) \
cat $(GLUONDIR)/targets/$(GLUON_TARGET)/config 2>/dev/null; \
echo 'CONFIG_BUILD_SUFFIX="gluon-$(GLUON_TARGET)"'; \
echo '$(patsubst %,CONFIG_PACKAGE_%=m,$(sort $(filter-out -%,$(GLUON_DEFAULT_PACKAGES) $(GLUON_SITE_PACKAGES) $(PROFILE_PACKAGES))))' \
echo '$(patsubst %,CONFIG_PACKAGE_%=m,$(sort $(filter-out -%,$(DEFAULT_PACKAGES) $(GLUON_DEFAULT_PACKAGES) $(GLUON_SITE_PACKAGES) $(PROFILE_PACKAGES))))' \
| sed -e 's/ /\n/g'; \
echo '$(patsubst %,CONFIG_LUCI_LANG_%=y,$(GLUON_LANGS))' \
| sed -e 's/ /\n/g'; \
@ -379,7 +380,7 @@ BIN_DIR = $(PROFILE_BUILDDIR)/images
TARGET_DIR = $(PROFILE_BUILDDIR)/root
OPKG:= \
IPKG_TMP="$(TMP_DIR)/ipkgtmp" \
TMPDIR="$(TMP_DIR)" \
IPKG_INSTROOT="$(TARGET_DIR)" \
IPKG_CONF_DIR="$(TMP_DIR)" \
IPKG_OFFLINE_ROOT="$(TARGET_DIR)" \
@ -415,6 +416,7 @@ package_install: FORCE
+$(GLUONMAKE) enable_initscripts
rm -f $(TARGET_DIR)/usr/lib/opkg/lists/* $(TARGET_DIR)/tmp/opkg.lock
rm -f $(TARGET_DIR)/usr/lib/opkg/info/*.postinst*
# Remove opkg database when opkg is not intalled
if [ ! -x $(TARGET_DIR)/bin/opkg ]; then rm -rf $(TARGET_DIR)/usr/lib/opkg; fi
@ -488,11 +490,16 @@ manifest: FORCE
$(if $(GLUON_$(profile)_SYSUPGRADE_EXT), \
$(foreach model,$(GLUON_$(profile)_MODELS), \
file="$(IMAGE_PREFIX)-$(model)-sysupgrade$(GLUON_$(profile)_SYSUPGRADE_EXT)"; \
[ -e "$$file" ] && echo '$(model)' "$(PREPARED_RELEASE)" "$$($(SHA512SUM) "$$file")" "$$file"; \
\
[ -e "$$file" ] && ( \
echo '$(model)' "$(PREPARED_RELEASE)" "$$($(SHA256SUM) "$$file")" "$$file"; \
echo '$(model)' "$(PREPARED_RELEASE)" "$$($(SHA512SUM) "$$file")" "$$file"; \
); \
$(foreach alias,$(GLUON_$(profile)_MODEL_$(model)_ALIASES), \
file="$(IMAGE_PREFIX)-$(alias)-sysupgrade$(GLUON_$(profile)_SYSUPGRADE_EXT)"; \
[ -e "$$file" ] && echo '$(alias)' "$(PREPARED_RELEASE)" "$$($(SHA512SUM) "$$file")" "$$file"; \
[ -e "$$file" ] && ( \
echo '$(alias)' "$(PREPARED_RELEASE)" "$$($(SHA256SUM) "$$file")" "$$file"; \
echo '$(alias)' "$(PREPARED_RELEASE)" "$$($(SHA512SUM) "$$file")" "$$file"; \
); \
) \
) \
) \

View File

@ -19,7 +19,7 @@ the future development of Gluon.
Please refrain from using the `master` branch for anything else but development purposes!
Use the most recent release instead. You can list all relaseses by running `git branch -a`
and switch to one by running `git checkout v2016.2 && make update`.
and switch to one by running `git checkout v2016.2.7 && make update`.
If you're using the autoupdater, do not autoupdate nodes with anything but releases.
If you upgrade using random master commits the nodes *will break* eventually.

View File

@ -47,16 +47,16 @@ master_doc = 'index'
# General information about the project.
project = 'Gluon'
copyright = '2015-2016, Project Gluon'
copyright = '2015-2017, Project Gluon'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '2016.2'
version = '2016.2.7'
# The full version, including alpha/beta/rc tags.
release = '2016.2'
release = '2016.2.7'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -11,18 +11,20 @@ For this the section ``roles`` in ``site.conf`` is needed::
roles = {
default = 'node',
list = {
node = 'Normal Node',
test = 'Test Node',
backbone = 'Backbone Node',
service = 'Service Node',
'node',
'test',
'backbone',
'service',
},
},
The strings to display in the LuCI interface are configured per language in the
``i18n/en.po``, ``i18n/de.po``, etc. files of the site repository using message IDs like
``gluon-luci-node-role:role:node`` and ``gluon-luci-node-role:role:backbone``.
The value of ``default`` is the role every node will initially own. This value should be part of ``list`` as well.
If you want node owners to change the defined roles via config-mode you can add the package
``gluon-luci-node-role`` to your ``site.mk``. Then, you can select one of the defined roles from a dropdown list
where the right-handed value is the one which is displayed and the left-handed key the one which is configured into
the system.
``gluon-luci-node-role`` to your ``site.mk``.
The role is saved in ``gluon-node-info.system.role``. To change the role using command line do::

View File

@ -13,7 +13,7 @@ Upgrade behaviour
For each of these networks, the site configuration may define a `disabled` flag (by
default, all configured networks are enabled). This flag is merely a default setting,
on upgrades the existing setting is always retained (as this setting may have been changed
by the user). This means that is is not possible to enable or disable an existing network
by the user). This means that it is not possible to enable or disable an existing network
configurations during upgrades.
For the "mesh" and "ibss" networks, the default setting only has an effect if none

View File

@ -64,6 +64,13 @@ Releases
.. toctree::
:maxdepth: 1
releases/v2016.2.7
releases/v2016.2.6
releases/v2016.2.5
releases/v2016.2.4
releases/v2016.2.3
releases/v2016.2.2
releases/v2016.2.1
releases/v2016.2
releases/v2016.1.6
releases/v2016.1.5
@ -110,11 +117,6 @@ ar71xx-generic
- WZR-HP-G300NH2
- WZR-HP-G450H
* Cisco Meraki
- MR12 / MR62
- MR16 / MR66
* D-Link
- DIR-505 (A1, A2)
@ -169,11 +171,11 @@ ar71xx-generic
- TL-WA701N/ND (v1, v2)
- TL-WA750RE (v1)
- TL-WA7510N (v1)
- TL-WA801N/ND (v1, v2)
- TL-WA801N/ND (v1, v2, v3)
- TL-WA830RE (v1, v2)
- TL-WA850RE (v1)
- TL-WA860RE (v1)
- TL-WA901N/ND (v1, v2, v3)
- TL-WA901N/ND (v1, v2, v3, v4)
- TL-WDR3500 (v1)
- TL-WDR3600 (v1)
- TL-WDR4300 (v1)
@ -183,12 +185,12 @@ ar71xx-generic
- TL-WR741N/ND (v1, v2, v4, v5)
- TL-WR743N/ND (v1, v2)
- TL-WR801N/ND (v1, v2)
- TL-WR841N/ND (v3, v5, v7, v8, v9, v10, v11)
- TL-WR841N/ND (v3, v5, v7, v8, v9, v10, v11, v12)
- TL-WR842N/ND (v1, v2, v3)
- TL-WR843N/ND (v1)
- TL-WR940N (v1, v2, v3)
- TL-WR940N (v1, v2, v3, v4)
- TL-WR941ND (v2, v3, v4, v5, v6)
- TL-WR1043N/ND (v1, v2, v3)
- TL-WR1043N/ND (v1, v2, v3, v4)
- TL-WR2543N/ND (v1)
* Ubiquiti

View File

@ -0,0 +1,59 @@
Gluon 2016.2.1
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link
- TL-WA901ND v4
Bugfixes
~~~~~~~~
* Make status page work with disabled cookies/local storage
(`#912 <https://github.com/freifunk-gluon/gluon/pull/912>`_)
* Update kernel to 3.18.44
Fixes CVE-2016-5195 and CVE-2016-7117. It is unlikely that these issues pose
a threat to usual Gluon setups, but installing additional packages may make a
system vulnerable. In any case, updating is highly recommended.
* Downgrade mac80211 to an earlier state
Unfortunately, a mac80211 update that was done shortly before the release of
Gluon v2016.2 (that seemed necessary to properly support ath10k devices) had
again caused severe ath9k stability issues that remained unreported until v2016.2
was out.
We have now reverted mac80211 to an earlier state that was reported to be very
stable (while keeping the ath10k-specific changes); in addition, some patches
that were reported to cause connection or performance issues with certain clients
have been reverted. While is it still not perfectly stable, is should be at least
as good as (and probably better than) the v2016.1.x release series.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.
* Git HTTPS downloads from git.kernel.org fail on Debian Wheezy (`#919 <https://github.com/freifunk-gluon/gluon/issues/919>`_)
The GnuTLS version on Debian Wheezy is too old and can't establish a connection with
git.kernel.org anymore. A newer GnuTLS version is available in wheezy-backports, but
as there is no libcurl3-gnutls package linked against the new version, installing the
new version has no effect.

View File

@ -0,0 +1,78 @@
Gluon 2016.2.2
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link
- CPE210/510 EU/US versions
- TL-WA801N/ND v3
- TL-WR841ND v11 EU/US versions
Bugfixes
~~~~~~~~
* Fix boot on certain QCA955x-based devices (e.g. OpenMesh OM5P AC v2) (`#965 <https://github.com/freifunk-gluon/gluon/pull/965>`_)
This issue was a regression in Gluon v2016.2.1.
* Build: Fix git downloads from git.kernel.org on Debian Wheezy (`#919 <https://github.com/freifunk-gluon/gluon/issues/919>`_)
We've switched back from HTTPS to the git protocol for now to avoid using
the old GnuTLS version of Debian Wheezy which can't establish a HTTPS connection
with git.kernel.org anymore.
This issue was a regression in Gluon v2016.2.
* Fix RX filter of Ubiquiti UAP Outdoor+ (`d43147a8e03d <https://github.com/freifunk-gluon/gluon/commit/d43147a8e03dd17bc27e4ab203736f2151f9db3d>`_)
This issue was a regression in Gluon v2016.2.
* Fix switched WAN/LAN interface assignment on CPE210 (`59deb2064d54 <https://github.com/freifunk-gluon/gluon/commit/59deb2064d54a37e27139b76a3b6064f5f10f364>`_)
This issue was a regression in Gluon v2016.2.
* Significantly reduce CPU load used by signal strength LEDs (`#897 <https://github.com/freifunk-gluon/gluon/issues/897>`_)
* Fix ethernet port of the Ubiquiti UAP AC Lite (`#911 <https://github.com/freifunk-gluon/gluon/issues/911>`_)
* Build: Don't use host ``/tmp`` directory (`f9072a36411b <https://github.com/freifunk-gluon/gluon/commit/f9072a36411b92089c697b2c0a564155bfe10bd1>`_)
Fixes build when ``/tmp`` is mounted with *noexec*.
* Fix mesh interface type respondd/alfred announcements when using VLANs over IBSS (`#941 <https://github.com/freifunk-gluon/gluon/issues/941>`_)
* Fix next-node ebtables rules without *next_node.ip4* (`9dbe9f785d2b <https://github.com/freifunk-gluon/gluon/commit/9dbe9f785d2b439c3ebdae365b808ebf42b3cf03>`_)
Gluon v2016.2 added support for using the next-node feature without specifying an IPv4
address. Some scripts had not been adjusted, making the next-node unreliable when
no IPv4 address was specified.
Other changes
~~~~~~~~~~~~~
* x86-generic and x86-64 images now have PATA and MMC support to allow using them
on various devices that were previously unsupported.
* Clean up opkg postinst scripts up on image generation
OpenWrt does this by default to save a little space.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,62 @@
Gluon 2016.2.3
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link TL-WR940N v4
* TP-Link TL-WR1043ND v4
Removed hardware support
~~~~~~~~~~~~~~~~~~~~~~~~
Support for Meraki devices (MR12/16/62/66) has been removed for now because of
severe problems (all devices were using the same MAC addresses). Support will return
when the issues have been fixed.
Bugfixes
~~~~~~~~
* Automatically restart respondd on failure (`#863 <https://github.com/freifunk-gluon/gluon/issues/863>`_)
There have been many reports of respondd processes disappearing; the exact cause is unclear,
but might be related to the batman-adv debugfs interface and/or out-of-memory conditions.
A new respondd initscript uses procd to automatically restart respondd when it dies.
* Make autoupdater timeouts more robust (`#987 <https://github.com/freifunk-gluon/gluon/issues/987>`_)
It was reported that wget processes sometimes hang indefinitely during the autoupdater manifest
download. The autoupdater has been improved to ensure that wget can always be interrupted after
a timeout.
This issue, together with the recent addition of lock files to ensure that only one instance
of the autoupdater can run at a time, had caused the autoupdater to blocked completely
by hanging processes in some cases (till a node was rebooted).
* Fix regulation domain switching in ath10k (`#1001 <https://github.com/freifunk-gluon/gluon/pull/1001>`_)
Prevents use of too high transmission power in some cases.
* Ensure that *prefix6* in site.conf is always a /64 prefix (`6b62e2f <https://github.com/freifunk-gluon/gluon/commit/6b62e2fc788cd1f83f6634288a15724dfc42b0fd>`_)
Other prefix lengths were never supported and don't make sense in many places the prefix is used. Ensure
that such configurations will not pass validation.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,55 @@
Gluon 2016.2.4
==============
Bugfixes
~~~~~~~~
* Fix batman-adv (compat 15) not being able to transmit packages of specific sizes (`b7eeef9 <https://github.com/freifunk-gluon/gluon/commit/b7eeef9b04b44a70b2a953c4efe35a3fdceba2db>`_)
We suspect that this issue was also the reason for the autoupdater/wget hangs observed by many communities.
Non-Gluon nodes like gateways should be updated to batman-adv 2017.0.1 to get the fix.
* Fix build after ftp.all.kernel.org discontinuation (`#1059 <https://github.com/freifunk-gluon/gluon/issues/1059>`_)
* Fix high load because of frequent calls of the respondd initscript (`9a0aeb9 <https://github.com/freifunk-gluon/gluon/commit/9a0aeb9b7482df4e4515e61356b9d393e3a7eacb>`_)
The respondd restart triggers added in v2016.2.3 ran a significant portion of the respondd initscript for each router advertisement
received. This was fixed by a backport of a netifd patch.
* x86 sysupgrade fixes (`41fd50d <https://github.com/freifunk-gluon/gluon/commit/41fd50d20ba31d73c4796c5b2d4eb44ad2258b90>`_,
`ad37e2b <https://github.com/freifunk-gluon/gluon/commit/ad37e2b6b43b2c3389356d892b04f3873d8f6b93>`_)
This fixes sysupgrade on mmcblk and similar devices.
Other changes
~~~~~~~~~~~~~
* The manifest generator has been extended to generate SHA256 checksums in addition to SHA512 ones
(`f9d59be <https://github.com/freifunk-gluon/gluon/commit/f9d59be731efd31a26c59e049ccbdc4b1762f6b1>`_)
We have recently switched the autoupdater to SHA256 in the Gluon master to avoid mixing two different
lengths of hashes for no good reason. This makes the manifests of Gluon v2016.2.x compatible with the
new autoupdater so it doesn't prevent backports or downgrades.
**Note:** Downgrades of major Gluon versions are generally unsupported and will often lead to
broken configurations.
Known Issues
~~~~~~~~~~~~
* x86 sysupgrade (sometimes) loses config when kernel partition grows (`#1010 <https://github.com/freifunk-gluon/gluon/issues/1010>`_)
This issue affects upgrades from v2016.2.x and older to the Gluon master only, we hope to fix it before the next
major release.
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,36 @@
Gluon 2016.2.5
==============
This version contains only a single bugfix for a regression introduced in Gluon v2016.2.4.
As the regression affects batman-adv compat 15 only, firmwares using the compat 14 legacy
version don't need to be updated.
Bugfixes
~~~~~~~~
* Fix kernel crash with batman-adv compat 15 (`d452a7c <https://github.com/freifunk-gluon/gluon/commit/d452a7c2cf1c0da4e034666a50dc0e7aa9ddc592>`_)
An incorrect backport of a fix for a very improbable kernel crash caused a much more
frequent kernel crash. The backport has been fixed.
This bug a regression in Gluon v2016.2.4.
Known Issues
~~~~~~~~~~~~
* x86 sysupgrade (sometimes) loses config when kernel partition grows (`#1010 <https://github.com/freifunk-gluon/gluon/issues/1010>`_)
This issue affects upgrades from v2016.2.x and older to the Gluon master only, we hope to fix it before the next
major release.
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,57 @@
Gluon 2016.2.6
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link TL-WR841N/ND v12
Bugfixes
~~~~~~~~
* Fix `CVE-2016-10229 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10229>`_
(`#1097 <https://github.com/freifunk-gluon/gluon/issues/1097>`_)
Fortunately, the standard Gluon setup is not vulnerable, as the issue only affects
applications that use MSG_PEEK on UDP sockets. dnsmasq does use MSG_PEEK, but
only in the DHCP component, which is not enabled during normal node operation.
* Fix roaming issue affecting communication between clients
(`#1121 <https://github.com/freifunk-gluon/gluon/issues/1121>`_)
This issue affects all previous releases of Gluon v2016.2.x.
* Fix build against OpenSSL 1.1 (`b6a22ce <https://github.com/freifunk-gluon/gluon/commit/b6a22ce79307853b175192178bb0333d976a3a6f>`_)
* Fix build with long path names (`#1120 <https://github.com/freifunk-gluon/gluon/issues/1120>`_)
* Use new staged sysupgrade procedure (`d4a69c0 <https://github.com/freifunk-gluon/gluon/commit/d4a69c00047f72696a2400cd7129be032de458e3>`_)
The new sysupgrade fixes an issue affecting x86, causing nodes to lose their
configuration on upgrade when the size of the kernel partition grows. This is
the case when upgrading from Gluon v2016.2.x to newer (LEDE-based) Gluon
versions. **This means that a Gluon node running an older version must be
upgraded to Gluon v2016.2.6 first before switching to a LEDE-based version!**
One downside of the staged sysupgrade is that all processes, including the SSH
server, will be terminated at the start of the sysupgrade to allow unmounting
the root filesystem. This makes it impossible to get any feedback from the
upgrade process without a serial console.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,31 @@
Gluon 2016.2.7
==============
This release only fixes a single regression introduced in Gluon v2016.2.6, and
add support for building using Perl 5.26.
Bugfixes
~~~~~~~~
* Improve sysupgrade error handling (`#1160 <https://github.com/freifunk-gluon/gluon/issues/1160>`_)
If for some reason processes don't react to SIGKILL (usually because of a kernel bug),
a node could hang forever in sysupgrade, requiring a power cycle. This has been
fixed, triggering a reboot instead.
* Backport fixes to support building with Perl 5.26 or newer (`76753ed <https://github.com/freifunk-gluon/gluon/commit/76753ede0da78e24208f10675fa288247deec961>`_)
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -76,7 +76,7 @@ New features
the ``config_mode.owner.obligatory`` site.conf option
* The *node name* setting in the config mode is no longer restricted to valid DNS
hostnames, but allows any UTF-8 string (`#414 <https://github.com/freifunk-gluon/gluon/issues/#414>`_)
hostnames, but allows any UTF-8 string (`#414 <https://github.com/freifunk-gluon/gluon/issues/414>`_)
* Besides the hostname, public key, site config and primary MAC address, the contact
information can now be accessed from config mode site texts

View File

@ -1,4 +1,4 @@
-- This is an example site configuration for Gluon v2016.2
-- This is an example site configuration for Gluon v2016.2.7
--
-- Take a look at the documentation located at
-- http://gluon.readthedocs.org/ for details.

View File

@ -8,7 +8,7 @@ Gluon's releases are managed using `Git tags`_. If you are just getting
started with Gluon we recommend to use the latest stable release of Gluon.
Take a look at the `list of gluon releases`_ and notice the latest release,
e.g. *v2016.2*. Always get Gluon using git and don't try to download it
e.g. *v2016.2.7*. Always get Gluon using git and don't try to download it
as a Zip archive as the archive will be missing version information.
Please keep in mind that there is no "default Gluon" build; a site configuration
@ -42,7 +42,7 @@ Building the images
-------------------
To build Gluon, first check out the repository. Replace *RELEASE* with the
version you'd like to checkout, e.g. *v2016.2*.
version you'd like to checkout, e.g. *v2016.2.7*.
::

View File

@ -83,7 +83,7 @@ regdom \: optional
regdom = 'DE'
Setting ``regdom`` in mandatory if ``wifi24`` or ``wifi5`` is defined.
Setting ``regdom`` is mandatory if ``wifi24`` or ``wifi5`` is defined.
wifi24 \: optional
WLAN configuration for 2.4 GHz devices.
@ -115,7 +115,8 @@ wifi24 \: optional
An optional parameter ``vlan`` (integer) is supported.
Both ``mesh`` and ``ibss`` accept an optional ``mcast_rate`` (kbit/s) parameter for
setting the default multicast datarate.
setting the multicast bitrate. Increasing the default value of 1000 to something
like 12000 is recommended.
::
wifi24 = {
@ -282,7 +283,7 @@ roles \: optional
part of ``list``. If you want node owners to change the role via config mode add
the package ``gluon-luci-node-role`` to ``site.mk``.
The strings to display in the LuCI interface can be configured per language in the
The strings to display in the LuCI interface are configured per language in the
``i18n/en.po``, ``i18n/de.po``, etc. files of the site repository using message IDs like
``gluon-luci-node-role:role:node`` and ``gluon-luci-node-role:role:backbone``.
::

View File

@ -1,7 +1,7 @@
GLUON_FEEDS='openwrt gluon routing luci'
OPENWRT_REPO=git://github.com/openwrt/openwrt.git
OPENWRT_COMMIT=e663db7bb1797740c4a29ac0fc96eda1b88f9e6e
OPENWRT_REPO=git://github.com/openwrt/chaos_calmer.git
OPENWRT_COMMIT=0f757bd2606971252f901ef3faf4dbd0086315f7
OPENWRT_BRANCH=chaos_calmer
PACKAGES_OPENWRT_REPO=git://github.com/openwrt/packages.git
@ -9,7 +9,8 @@ PACKAGES_OPENWRT_COMMIT=73776792f7d58e982be9e5819450d4875b273159
PACKAGES_OPENWRT_BRANCH=for-15.05
PACKAGES_GLUON_REPO=git://github.com/freifunk-gluon/packages.git
PACKAGES_GLUON_COMMIT=90380414f10842238b7ebc21c34dbaf986659320
PACKAGES_GLUON_COMMIT=4346733427778af35f3934ef9a4ae8298228d151
PACKAGES_GLUON_BRANCH=v2016.2.x
PACKAGES_ROUTING_REPO=git://github.com/openwrt-routing/packages.git
PACKAGES_ROUTING_COMMIT=a4eae82c155079a4372e4b910ec733f77288b717

View File

@ -19,7 +19,7 @@ need_string 'timezone'
need_string_array('ntp_servers', false)
need_string_match('prefix6', '^[%x:]+/%d+$')
need_string_match('prefix6', '^[%x:]+/64$')
for _, config in ipairs({'wifi24', 'wifi5'}) do

View File

@ -16,7 +16,7 @@ if not (sysconfig.lan_ifname or sysconfig.wan_ifname) then
local lan_ifname = uci:get('network', 'lan', 'ifname')
local wan_ifname = uci:get('network', 'wan', 'ifname')
if platform.match('ar71xx', 'generic', {'cpe510', 'nanostation-m', 'nanostation-m-xw', 'unifi-outdoor-plus', 'uap-pro', 'unifiac-pro'}) then
if platform.match('ar71xx', 'generic', {'cpe210', 'cpe510', 'nanostation-m', 'nanostation-m-xw', 'unifi-outdoor-plus', 'uap-pro', 'unifiac-pro'}) then
lan_ifname, wan_ifname = wan_ifname, lan_ifname
end

View File

@ -0,0 +1 @@
client

View File

@ -43,19 +43,11 @@ uci:section('network', 'interface', 'bat0',
proto = 'none',
macaddr = sysconfig.primary_mac,
multicast_router = 2,
learning = 0,
learning = 1,
}
)
uci:delete('network', 'client_lan')
if sysconfig.lan_ifname then
uci:section('network', 'interface', 'client_lan',
{
unicast_flood = 0,
}
)
uci:set('network', 'client_lan', 'ifname', sysconfig.lan_ifname)
end
uci:save('network')

View File

@ -121,9 +121,31 @@ static void mesh_add_subif(const char *ifname, struct json_object *wireless,
struct json_object *tunnel, struct json_object *other) {
struct json_object *address = gluonutil_wrap_and_free_string(gluonutil_get_interface_address(ifname));
if (interface_file_exists(ifname, "wireless"))
char lowername[IFNAMSIZ];
strncpy(lowername, ifname, sizeof(lowername)-1);
lowername[sizeof(lowername)-1] = 0;
const char *format = "/sys/class/net/%s/lower_*";
char pattern[strlen(format) + IFNAMSIZ];
/* In case of VLAN and bridge interfaces, we want the lower interface
* to determine the interface type (but not for the interface address) */
while (true) {
snprintf(pattern, sizeof(pattern), format, lowername);
size_t pattern_len = strlen(pattern);
glob_t lower;
if (glob(pattern, GLOB_NOSORT, NULL, &lower))
break;
strncpy(lowername, lower.gl_pathv[0] + pattern_len - 1, sizeof(lowername)-1);
globfree(&lower);
}
if (interface_file_exists(lowername, "wireless"))
json_object_array_add(wireless, address);
else if (interface_file_exists(ifname, "tun_flags"))
else if (interface_file_exists(lowername, "tun_flags"))
json_object_array_add(tunnel, address);
else
json_object_array_add(other, address);

View File

@ -1,18 +1,20 @@
local site = require 'gluon.site_config'
local next_node = site.next_node
rule('FORWARD --logical-in br-client -p ARP --arp-ip-src ' .. next_node.ip4 .. ' -j DROP')
rule('FORWARD --logical-in br-client -p ARP --arp-ip-dst ' .. next_node.ip4 .. ' -j DROP')
rule('FORWARD --logical-out br-client -o bat0 -d ' .. next_node.mac .. ' -j DROP')
rule('OUTPUT --logical-out br-client -o bat0 -d ' .. next_node.mac .. ' -j DROP')
rule('FORWARD --logical-out br-client -o bat0 -s ' .. next_node.mac .. ' -j DROP')
rule('OUTPUT --logical-out br-client -o bat0 -s ' .. next_node.mac .. ' -j DROP')
if next_node.ip4 then
rule('FORWARD --logical-in br-client -p ARP --arp-ip-src ' .. next_node.ip4 .. ' -j DROP')
rule('FORWARD --logical-in br-client -p ARP --arp-ip-dst ' .. next_node.ip4 .. ' -j DROP')
rule('FORWARD --logical-out br-client -o bat0 -p IPv4 --ip-destination ' .. next_node.ip4 .. ' -j DROP')
rule('OUTPUT --logical-out br-client -o bat0 -p IPv4 --ip-destination ' .. next_node.ip4 .. ' -j DROP')
rule('FORWARD --logical-out br-client -o bat0 -p IPv4 --ip-source ' .. next_node.ip4 .. ' -j DROP')
rule('OUTPUT --logical-out br-client -o bat0 -p IPv4 --ip-source ' .. next_node.ip4 .. ' -j DROP')
end
rule('FORWARD --logical-out br-client -o bat0 -p IPv6 --ip6-destination ' .. next_node.ip6 .. ' -j DROP')
rule('OUTPUT --logical-out br-client -o bat0 -p IPv6 --ip6-destination ' .. next_node.ip6 .. ' -j DROP')

View File

@ -8,7 +8,6 @@ start_service() {
procd_open_instance
procd_set_param command /usr/sbin/uradvd $(/lib/gluon/radvd/arguments)
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
procd_set_param netdev br-client
procd_set_param stderr 1
procd_close_instance
}

View File

@ -1,34 +0,0 @@
#!/bin/sh
. /usr/share/libubox/jshn.sh
. /lib/functions/service.sh
DEVLIST=/var/run/gluon-respondd.devs
ifname_to_dev () {
json_load "$(ubus call network.interface.$1 status)"
json_get_var dev device
echo "$dev"
}
case "$ACTION" in
ifdown)
sed "/ $INTERFACE$/d" $DEVLIST > $DEVLIST.new
mv $DEVLIST.new $DEVLIST
;;
ifup)
DEVICE="$(ifname_to_dev "$INTERFACE")"
MESH="$(cat "/sys/class/net/$DEVICE/batman_adv/mesh_iface" 2>/dev/null)"
[ "$MESH" = "bat0" -o "$INTERFACE" = "client" ] || exit 0
DEVS=$(cat $DEVLIST 2>/dev/null; echo $DEVICE $INTERFACE)
echo "$DEVS" | sort -u > $DEVLIST.new
mv $DEVLIST.new $DEVLIST
/etc/init.d/gluon-respondd restart_if_running &
;;
esac

View File

@ -1,45 +1,30 @@
#!/bin/sh /etc/rc.common
EXTRA_COMMANDS='restart_if_running'
USE_PROCD=1
START=50
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1
DEVLIST=/var/run/gluon-respondd.devs
DAEMON=/usr/bin/respondd
LOCK=/var/run/gluon-respondd.lock
do_start() {
DEVS=$(cat $DEVLIST 2>/dev/null | while read dev iface; do echo -n " -i $dev"; done)
service_start $DAEMON -g ff02::2:1001 -p 1001 -d /lib/gluon/respondd $DEVS
start_service() {
DEVS=""
for dev in $( ubus call network.interface dump | jsonfilter \
-e "@.interface[@.proto='gluon_mesh' && @.up=true].device" \
-e "@.interface[@.interface='$(cat /lib/gluon/respondd/client.dev 2>/dev/null)' && @.up=true].device")
do
DEVS="$DEVS -i $dev"
done
procd_open_instance
procd_set_param command $DAEMON -g ff02::2:1001 -p 1001 -d /lib/gluon/respondd $DEVS
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
procd_set_param stderr 1
procd_close_instance
}
do_stop() {
service_stop $DAEMON
}
start() {
lock $LOCK
do_start
lock -u $LOCK
}
stop() {
lock $LOCK
do_stop
lock -u $LOCK
}
restart_if_running() {
lock $LOCK
if service_check $DAEMON; then
do_stop
do_start
fi
lock -u $LOCK
service_triggers() {
local script=$(readlink "$initscript")
local name=$(basename ${script:-$initscript})
procd_open_trigger
procd_add_raw_trigger "interface.*" 0 "/etc/init.d/$name" reload
procd_close_trigger
}

View File

@ -9,7 +9,7 @@ if sysconfig.setup_ifname then
end
if
platform.match('ar71xx', 'generic', {'cpe510', 'nanostation-m', 'nanostation-m-xw', 'unifi-outdoor-plus', 'uap-pro', 'unifiac-pro'}) or
platform.match('ar71xx', 'generic', {'cpe210', 'cpe510', 'nanostation-m', 'nanostation-m-xw', 'unifi-outdoor-plus', 'uap-pro', 'unifiac-pro'}) or
platform.match('ar71xx', 'mikrotik')
then
sysconfig.setup_ifname = sysconfig.config_ifname or sysconfig.wan_ifname or sysconfig.lan_ifname

View File

@ -13,5 +13,6 @@
</script>
</head>
<body>
<noscript>Bitte Javascript aktivieren.</noscript>
</body>
</html>

View File

@ -83,7 +83,17 @@ require([ "bacon"
return a
}
if (localStorage.nodes)
var lsavailable = false
try {
localStorage.setItem("t", "t")
localStorage.removeItem("t")
lsavailable = true
} catch(e) {
lsavailable = false
}
if ( lsavailable && localStorage.nodes)
JSON.parse(localStorage.nodes).forEach(nodesBusIn.push)
nodesBus.map(".nodes").onValue(function (nodes) {
@ -92,6 +102,7 @@ require([ "bacon"
for (var k in nodes)
out.push(nodes[k])
if (lsavailable)
localStorage.nodes = JSON.stringify(out)
})

View File

@ -3,7 +3,7 @@ Date: Sat, 26 Jul 2014 06:10:23 +0200
Subject: tools/Makefile: fix host tools build dependencies
diff --git a/tools/Makefile b/tools/Makefile
index d2fe2ff..c6cded8 100644
index d2fe2ffddf4b7207a937ca75efe1c2728e8067aa..c6cded8eccd81c422f99e7ee50754c4bc66decc7 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -95,10 +95,16 @@ define PrepareStaging

View File

@ -4,7 +4,7 @@ Subject: procd: add support for alternative rc.d directories
diff --git a/package/system/procd/patches/0001-Add-support-for-alternative-rc.d-directories.patch b/package/system/procd/patches/0001-Add-support-for-alternative-rc.d-directories.patch
new file mode 100644
index 0000000..bc24342
index 0000000000000000000000000000000000000000..bc2434200364b46f1db4c2eec22c4e8b973844d5
--- /dev/null
+++ b/package/system/procd/patches/0001-Add-support-for-alternative-rc.d-directories.patch
@@ -0,0 +1,97 @@

View File

@ -4,7 +4,7 @@ Subject: odhcp6c: always accept RDNSS, independent of the default router lifetim
diff --git a/package/network/ipv6/odhcp6c/patches/001-always_accept_rdnss.patch b/package/network/ipv6/odhcp6c/patches/001-always_accept_rdnss.patch
new file mode 100644
index 0000000..cb694ca
index 0000000000000000000000000000000000000000..cb694cadf4df4b487b3a4035eacca9c6a7798ecb
--- /dev/null
+++ b/package/network/ipv6/odhcp6c/patches/001-always_accept_rdnss.patch
@@ -0,0 +1,21 @@

View File

@ -3,7 +3,7 @@ Date: Fri, 5 Dec 2014 18:57:16 +0100
Subject: busybox: enable telnet only when root password is really empty, not when it is locked
diff --git a/package/utils/busybox/files/telnet b/package/utils/busybox/files/telnet
index a1d1cdf..f95be90 100755
index a1d1cdf9b18d69895e7a08a8b1318f1ff591ea07..f95be90490597f6251d8c3e1247b522dfd9e72c0 100755
--- a/package/utils/busybox/files/telnet
+++ b/package/utils/busybox/files/telnet
@@ -11,7 +11,7 @@ has_root_pwd() {

View File

@ -6,7 +6,7 @@ This conflicts with our reset button usage.
diff --git a/package/base-files/files/etc/rc.button/reset b/package/base-files/files/etc/rc.button/reset
deleted file mode 100755
index 3e24146..0000000
index 3e241460efbb08abaa775c1a7843b5fa3e237d44..0000000000000000000000000000000000000000
--- a/package/base-files/files/etc/rc.button/reset
+++ /dev/null
@@ -1,20 +0,0 @@

View File

@ -8,7 +8,7 @@ Backport of LEDE a176168a85477caa44eef7e979567d1d52868fde
diff --git a/target/linux/ar71xx/patches-3.18/640-MIPS-ath79-add-QCA955x-wmac-reset.patch b/target/linux/ar71xx/patches-3.18/640-MIPS-ath79-add-QCA955x-wmac-reset.patch
new file mode 100644
index 0000000..4ac5acd
index 0000000000000000000000000000000000000000..4ac5acd618748fc9ad0f091d110d2503cdc39d53
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.18/640-MIPS-ath79-add-QCA955x-wmac-reset.patch
@@ -0,0 +1,71 @@

View File

@ -4,7 +4,7 @@ Subject: iwinfo: update NanoStation (Loco) txpower offsets
diff --git a/package/network/utils/iwinfo/patches/001-update_nanostation_offsets.patch b/package/network/utils/iwinfo/patches/001-update_nanostation_offsets.patch
new file mode 100644
index 0000000..1e13570
index 0000000000000000000000000000000000000000..1e13570fc2b585a8e33275116370f5438c899633
--- /dev/null
+++ b/package/network/utils/iwinfo/patches/001-update_nanostation_offsets.patch
@@ -0,0 +1,14 @@

View File

@ -10,7 +10,7 @@ As a temporary fix, disable this channel switch function.
diff --git a/package/network/services/hostapd/patches/900-no_channel_switch.patch b/package/network/services/hostapd/patches/900-no_channel_switch.patch
new file mode 100644
index 0000000..c614515
index 0000000000000000000000000000000000000000..c6145156928ffa5a5195ca145b0655bb88c92091
--- /dev/null
+++ b/package/network/services/hostapd/patches/900-no_channel_switch.patch
@@ -0,0 +1,68 @@

View File

@ -12,7 +12,7 @@ crash.
diff --git a/target/linux/generic/patches-3.18/672-ipv6-fix-crash-on-ICMPv6-redirects-with-prohibited-blackholed-source.patch b/target/linux/generic/patches-3.18/672-ipv6-fix-crash-on-ICMPv6-redirects-with-prohibited-blackholed-source.patch
new file mode 100644
index 0000000..6e4b3da
index 0000000000000000000000000000000000000000..6e4b3da3ad820e789f57df71b33ccfc5eaead01e
--- /dev/null
+++ b/target/linux/generic/patches-3.18/672-ipv6-fix-crash-on-ICMPv6-redirects-with-prohibited-blackholed-source.patch
@@ -0,0 +1,39 @@

View File

@ -3,7 +3,7 @@ Date: Tue, 29 Dec 2015 22:48:52 +0100
Subject: lua: fix installation of headers for host build
diff --git a/package/utils/lua/Makefile b/package/utils/lua/Makefile
index 72d5631..c37d99b 100644
index 72d56316b45dc484888d219aebd98e651edbe415..c37d99b485d58d955b86a033ea776adb54cfa414 100644
--- a/package/utils/lua/Makefile
+++ b/package/utils/lua/Makefile
@@ -140,6 +140,7 @@ define Host/Install

View File

@ -4,7 +4,7 @@ Subject: kernel: fs, seq_file: fallback to vmalloc instead of oom kill processes
diff --git a/target/linux/generic/patches-3.18/089-fs-seq_file-fallback-to-vmalloc-instead-of-oom-kill-.patch b/target/linux/generic/patches-3.18/089-fs-seq_file-fallback-to-vmalloc-instead-of-oom-kill-.patch
new file mode 100644
index 0000000..cad56f4
index 0000000000000000000000000000000000000000..cad56f4275287b73dd5e769ea34daee064ee8d69
--- /dev/null
+++ b/target/linux/generic/patches-3.18/089-fs-seq_file-fallback-to-vmalloc-instead-of-oom-kill-.patch
@@ -0,0 +1,53 @@

View File

@ -5,7 +5,7 @@ Subject: fix UBNT XM model detection
Signed-off-by: Neal Oakey <neal.oakey@bingo-ev.de>
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index dab4d2c..e7b3cd2 100755
index a9dca58847fe1fb62a69c5845fda3206407c6727..1985c88e9c4ff5c63ac2c95e47ae576a6cb878a8 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -64,6 +64,40 @@ wndr3700_board_detect() {
@ -49,7 +49,7 @@ index dab4d2c..e7b3cd2 100755
cybertan_get_hw_magic() {
local part
@@ -475,12 +509,14 @@ ar71xx_board_detect() {
@@ -478,12 +512,14 @@ ar71xx_board_detect() {
;;
*"Bullet M")
name="bullet-m"
@ -64,7 +64,7 @@ index dab4d2c..e7b3cd2 100755
;;
*"Nanostation M XW")
name="nanostation-m-xw"
@@ -667,6 +703,7 @@ ar71xx_board_detect() {
@@ -685,6 +721,7 @@ ar71xx_board_detect() {
;;
*"Rocket M")
name="rocket-m"

View File

@ -12,7 +12,7 @@ Backport of r46271
diff --git a/package/base-files/files/etc/init.d/gpio_switch b/package/base-files/files/etc/init.d/gpio_switch
new file mode 100755
index 0000000..1f1b44b
index 0000000000000000000000000000000000000000..1f1b44b2129ce2315943f6a10508eefb66412c48
--- /dev/null
+++ b/package/base-files/files/etc/init.d/gpio_switch
@@ -0,0 +1,42 @@
@ -59,7 +59,7 @@ index 0000000..1f1b44b
+ }
+}
diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh
index 5a8809d..6577ecd 100644
index 5a8809d68c89ac0431919f15dad5f5c33351bbf2..6577ecdcde0c856b3e6dd1b9337f23cb782ef2be 100644
--- a/package/base-files/files/lib/functions/uci-defaults.sh
+++ b/package/base-files/files/lib/functions/uci-defaults.sh
@@ -2,6 +2,7 @@
@ -102,7 +102,7 @@ index 5a8809d..6577ecd 100644
set network.loopback='interface'
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches b/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches
new file mode 100644
index 0000000..81d3982
index 0000000000000000000000000000000000000000..81d3982ed8bf98e01ce2e161017f088a1d0f60dc
--- /dev/null
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches
@@ -0,0 +1,25 @@

View File

@ -14,7 +14,7 @@ Signed-off-by: Lars Kruse <lists@sumpfralle.de>
Backport of r46922
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches b/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches
index 81d3982..b41f275 100644
index 81d3982ed8bf98e01ce2e161017f088a1d0f60dc..b41f27554b1e3eac19c22af59731771631a1135b 100644
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches
@@ -10,10 +10,10 @@ board=$(ar71xx_board_name)

View File

@ -3,7 +3,7 @@ Date: Fri, 29 Jul 2016 21:28:24 +0200
Subject: netifd: update to latest version
diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index 619024b..dc83ca6 100644
index 619024bd708541dfb3bda28a963fc87a5d301a0d..dc83ca612bcd4c441e8fa0db77c98c8a1b97ad13 100644
--- a/package/network/config/netifd/Makefile
+++ b/package/network/config/netifd/Makefile
@@ -1,15 +1,15 @@
@ -26,7 +26,7 @@ index 619024b..dc83ca6 100644
# CMAKE_INSTALL:=1
diff --git a/package/network/config/netifd/files/etc/init.d/network b/package/network/config/netifd/files/etc/init.d/network
index 542fc08..bdadbbc 100755
index 542fc08958e001c2bfce7668ecd7d1c52a649e4e..bdadbbce6db6f9383a0e2c7fab25e7f5d8823091 100755
--- a/package/network/config/netifd/files/etc/init.d/network
+++ b/package/network/config/netifd/files/etc/init.d/network
@@ -21,7 +21,6 @@ start_service() {
@ -38,7 +38,7 @@ index 542fc08..bdadbbc 100755
procd_close_instance
}
diff --git a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
index 0e88af9..1d3a209 100755
index 0e88af9e96ad85e7c51ff0b497ce71342d2d1568..1d3a2091060aac6b89d8d10f915b11b251011a85 100755
--- a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
+++ b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
@@ -12,6 +12,7 @@ proto_dhcp_init_config() {
@ -82,7 +82,7 @@ index 0e88af9..1d3a209 100755
proto_dhcp_renew() {
diff --git a/package/network/config/netifd/files/sbin/ifup b/package/network/config/netifd/files/sbin/ifup
index af3aaa8..5515b91 100755
index af3aaa8453ce93f52c2b89e743f43f9c509ad696..5515b91f76df2b5c36d46ac4b86dfc9bdcd78b1d 100755
--- a/package/network/config/netifd/files/sbin/ifup
+++ b/package/network/config/netifd/files/sbin/ifup
@@ -67,12 +67,10 @@ if [ -n "$setup_wifi" ] && grep -sq config /etc/config/wireless; then

View File

@ -11,7 +11,7 @@ Signed-off-by: Alexander Dahl <alex@netz39.de>
Suggested-by: Matthias Schiffer <mschiffer@universe-factory.net>
diff --git a/target/linux/x86/base-files/lib/upgrade/platform.sh b/target/linux/x86/base-files/lib/upgrade/platform.sh
index 73ab5ef..adc119c 100644
index 73ab5ef0794c942495d18865fa2c2498b84e63e6..adc119c897ed840aef17c2041a48244d0922564e 100644
--- a/target/linux/x86/base-files/lib/upgrade/platform.sh
+++ b/target/linux/x86/base-files/lib/upgrade/platform.sh
@@ -17,7 +17,7 @@ platform_export_bootpart() {

View File

@ -13,7 +13,7 @@ Signed-off-by: Marek Behun <kabel@blackhole.sk>
Backport of r48267
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index 32c4ada..f36d57c 100644
index 32c4adabb748c4026d507d40769b3201e2ac5599..f36d57ce06c46be7ac33f3034ad08a3ce603089d 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -151,7 +151,7 @@ $(eval $(call SetupHostCommand,file,Please install the 'file' package, \

View File

@ -10,7 +10,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Backport of r49105
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index d025632..c5c1871 100755
index 762cd760ceb9ff3917903dfd26a5a7a42175abfe..024e4930949c927efd36c3ac67cd351dcaa4bf7b 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -66,6 +66,10 @@ tplink_get_image_hwid() {
@ -24,7 +24,7 @@ index d025632..c5c1871 100755
tplink_get_image_boot_size() {
get_image "$@" | dd bs=4 count=1 skip=37 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
}
@@ -366,13 +370,17 @@ platform_check_image() {
@@ -373,13 +377,17 @@ platform_check_image() {
}
local hwid

View File

@ -11,7 +11,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Backport of r49106
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index e7b3cd2..180a075 100755
index 1985c88e9c4ff5c63ac2c95e47ae576a6cb878a8..99c808caba61ff00eb45cef2230d201bd1f9adb5 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -133,7 +133,7 @@ tplink_board_detect() {

View File

@ -12,7 +12,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Backport of r49107
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 180a075..ddd6611 100755
index 99c808caba61ff00eb45cef2230d201bd1f9adb5..4780e2f55276ef113ae697b1e17d88d2e87a4912 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -162,6 +162,10 @@ tplink_board_detect() {

View File

@ -11,7 +11,7 @@ Signed off by: Norbert Wegener <nw@wegener-net.de>
Backport of r47849
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index 9a7acbd..d42ceef 100644
index a8073f2ecadce8404dde77278302202fe494cd75..0783381baeddef2064df8faff89c49c2bed6a28b 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -476,6 +476,15 @@ define Device/tl-wr710n-v2

View File

@ -4,7 +4,7 @@ Subject: xtables-addons: build: fix configure compatiblity with POSIX shells
diff --git a/package/network/utils/xtables-addons/patches/001-build-fix-configure-compatiblity-with-POSIX-shells.patch b/package/network/utils/xtables-addons/patches/001-build-fix-configure-compatiblity-with-POSIX-shells.patch
new file mode 100644
index 0000000..e0b11b5
index 0000000000000000000000000000000000000000..e0b11b5459e5e4cd49c80b76ed945eb96aa96e8d
--- /dev/null
+++ b/package/network/utils/xtables-addons/patches/001-build-fix-configure-compatiblity-with-POSIX-shells.patch
@@ -0,0 +1,51 @@
@ -60,7 +60,7 @@ index 0000000..e0b11b5
+2.8.0
+
diff --git a/package/network/utils/xtables-addons/patches/002-fix-kernel-version-detection.patch b/package/network/utils/xtables-addons/patches/002-fix-kernel-version-detection.patch
index d3b7caa..6a7a099 100644
index d3b7caa634ba0cc33b01bbf795f1f70995cb3dc6..6a7a099fcc3aad162fc2aaba70dac54882c2b464 100644
--- a/package/network/utils/xtables-addons/patches/002-fix-kernel-version-detection.patch
+++ b/package/network/utils/xtables-addons/patches/002-fix-kernel-version-detection.patch
@@ -1,1954 +1,11 @@

View File

@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of r46876
diff --git a/tools/Makefile b/tools/Makefile
index c6cded8..98ce8c5 100644
index c6cded8eccd81c422f99e7ee50754c4bc66decc7..98ce8c5f1577981136b277a800a3edd5edd4941e 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -81,6 +81,9 @@ endif
@ -22,7 +22,7 @@ index c6cded8..98ce8c5 100644
diff --git a/tools/tar/Makefile b/tools/tar/Makefile
new file mode 100644
index 0000000..975e783
index 0000000000000000000000000000000000000000..975e7835ef09131326ef10a7951c3866d6050801
--- /dev/null
+++ b/tools/tar/Makefile
@@ -0,0 +1,30 @@
@ -58,7 +58,7 @@ index 0000000..975e783
+$(eval $(call HostBuild))
diff --git a/tools/tar/patches/100-fix_xattr_disable.patch b/tools/tar/patches/100-fix_xattr_disable.patch
new file mode 100644
index 0000000..5735bd2
index 0000000000000000000000000000000000000000..5735bd2364a4f324b54a3a49826921ead905d06f
--- /dev/null
+++ b/tools/tar/patches/100-fix_xattr_disable.patch
@@ -0,0 +1,17 @@

View File

@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of r48413
diff --git a/tools/Makefile b/tools/Makefile
index 98ce8c5..3402c08 100644
index 98ce8c5f1577981136b277a800a3edd5edd4941e..3402c08d5c6729a510446a3e9cf586f2d8e15be4 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -26,7 +26,7 @@ endif

View File

@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of r48414
diff --git a/rules.mk b/rules.mk
index 9d0134d..ece5026 100644
index 9d0134d2b26a52b74d30546cc3d51f7e71d1bc75..ece502609bd08af21be782a706f0bf6599895568 100644
--- a/rules.mk
+++ b/rules.mk
@@ -310,12 +310,16 @@ endef

View File

@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of r48416
diff --git a/include/download.mk b/include/download.mk
index e518cce..9176b11 100644
index e518cce4b2793152b7f4ef92509f2be07fb5cd62..9176b11c836123a37533c3d6cbaa2650a4f7c73d 100644
--- a/include/download.mk
+++ b/include/download.mk
@@ -182,6 +182,6 @@ define Download

View File

@ -12,7 +12,7 @@ Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Backport of r48733
diff --git a/include/download.mk b/include/download.mk
index 9176b11..130bbc5 100644
index 9176b11c836123a37533c3d6cbaa2650a4f7c73d..130bbc57ba89b4ad0b8e8600f45bf553ad6ecfa1 100644
--- a/include/download.mk
+++ b/include/download.mk
@@ -48,7 +48,7 @@ define DownloadMethod/default

View File

@ -3,7 +3,7 @@ Date: Sat, 7 May 2016 00:07:51 +0200
Subject: kernel: backport spi-nor driver from 4.4.9
diff --git a/target/linux/ar71xx/patches-3.18/407-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch b/target/linux/ar71xx/patches-3.18/407-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch
index 568f516..6a91320 100644
index 568f5161b1e4639c005577ea46c2e0411f95ec7c..6a9132032ff1cefae213464d3212ef0d4e4b8011 100644
--- a/target/linux/ar71xx/patches-3.18/407-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch
+++ b/target/linux/ar71xx/patches-3.18/407-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch
@@ -1,11 +1,11 @@
@ -22,7 +22,7 @@ index 568f516..6a91320 100644
+ &ppdata,
data ? data->parts : NULL,
diff --git a/target/linux/ar71xx/patches-3.18/412-mtd-m25p80-zero-partition-parser-data.patch b/target/linux/ar71xx/patches-3.18/412-mtd-m25p80-zero-partition-parser-data.patch
index d51694d..175acf6 100644
index d51694d9fd2d6fa5a519ce27108c964b1b6f32f8..175acf630e0d0437936066b51ea086cf39740b30 100644
--- a/target/linux/ar71xx/patches-3.18/412-mtd-m25p80-zero-partition-parser-data.patch
+++ b/target/linux/ar71xx/patches-3.18/412-mtd-m25p80-zero-partition-parser-data.patch
@@ -1,10 +1,10 @@
@ -39,7 +39,7 @@ index d51694d..175acf6 100644
- return mtd_device_parse_register(&flash->mtd,
+ return mtd_device_parse_register(&nor->mtd,
diff --git a/target/linux/ar71xx/patches-3.18/462-mtd-m25p80-set-spi-transfer-type.patch b/target/linux/ar71xx/patches-3.18/462-mtd-m25p80-set-spi-transfer-type.patch
index 3320e5b..11bf9ff 100644
index 3320e5b845bdf2843f32e52b5b620ce880fd4e96..11bf9ff71b609b03239179bcd8977c2202f5c8cf 100644
--- a/target/linux/ar71xx/patches-3.18/462-mtd-m25p80-set-spi-transfer-type.patch
+++ b/target/linux/ar71xx/patches-3.18/462-mtd-m25p80-set-spi-transfer-type.patch
@@ -1,6 +1,6 @@
@ -51,7 +51,7 @@ index 3320e5b..11bf9ff 100644
m25p_addr2cmd(nor, from, flash->command);
diff --git a/target/linux/ar71xx/patches-3.18/464-spi-ath79-fix-fast-flash-read.patch b/target/linux/ar71xx/patches-3.18/464-spi-ath79-fix-fast-flash-read.patch
index e48665d..758d231 100644
index e48665d6a09fdcc77d027274016c24fe78e8d95a..758d23181d49eff6afeb35b1fbbd8f36efa2cfca 100644
--- a/target/linux/ar71xx/patches-3.18/464-spi-ath79-fix-fast-flash-read.patch
+++ b/target/linux/ar71xx/patches-3.18/464-spi-ath79-fix-fast-flash-read.patch
@@ -1,6 +1,6 @@
@ -72,7 +72,7 @@ index e48665d..758d231 100644
u32 speed_hz;
enum spi_transfer_type type;
diff --git a/target/linux/brcm63xx/patches-3.18/202-MTD-DEVICES-m25p80-use-parsers-if-provided-in-flash-.patch b/target/linux/brcm63xx/patches-3.18/202-MTD-DEVICES-m25p80-use-parsers-if-provided-in-flash-.patch
index b949694..be62e67 100644
index b94969406deed4d6b8d51789235cd3e63e432c7c..be62e6789c883a5854a7bc9fae6dcc882090800f 100644
--- a/target/linux/brcm63xx/patches-3.18/202-MTD-DEVICES-m25p80-use-parsers-if-provided-in-flash-.patch
+++ b/target/linux/brcm63xx/patches-3.18/202-MTD-DEVICES-m25p80-use-parsers-if-provided-in-flash-.patch
@@ -11,12 +11,12 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
@ -92,7 +92,7 @@ index b949694..be62e67 100644
data ? data->parts : NULL,
data ? data->nr_parts : 0);
diff --git a/target/linux/brcm63xx/patches-3.18/203-MTD-DEVICES-m25p80-add-support-for-limiting-reads.patch b/target/linux/brcm63xx/patches-3.18/203-MTD-DEVICES-m25p80-add-support-for-limiting-reads.patch
index 740fb2d..3877442 100644
index 740fb2dafc4ece9e0c88630a1ad2b800f763ed59..3877442d21eb8f6a9fdacc415c60be78d61b3c5f 100644
--- a/target/linux/brcm63xx/patches-3.18/203-MTD-DEVICES-m25p80-add-support-for-limiting-reads.patch
+++ b/target/linux/brcm63xx/patches-3.18/203-MTD-DEVICES-m25p80-add-support-for-limiting-reads.patch
@@ -11,15 +11,15 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
@ -133,7 +133,7 @@ index 740fb2d..3877442 100644
flash_name = spi->modalias;
diff --git a/target/linux/brcm63xx/patches-3.18/414-MTD-m25p80-allow-passing-pp_data.patch b/target/linux/brcm63xx/patches-3.18/414-MTD-m25p80-allow-passing-pp_data.patch
index b7bf57f..e421e9a 100644
index b7bf57f697961a06d1ccef93ce4474f34f5e03e4..e421e9adbefb45fa837f686e253636781842fa7e 100644
--- a/target/linux/brcm63xx/patches-3.18/414-MTD-m25p80-allow-passing-pp_data.patch
+++ b/target/linux/brcm63xx/patches-3.18/414-MTD-m25p80-allow-passing-pp_data.patch
@@ -10,7 +10,7 @@ Subject: [PATCH 64/79] MTD: m25p80: allow passing pp_data
@ -147,7 +147,7 @@ index b7bf57f..e421e9a 100644
diff --git a/target/linux/generic/patches-3.18/043-mtd_GD25Q128B_support_backport_from_3.19.patch b/target/linux/generic/patches-3.18/043-mtd_GD25Q128B_support_backport_from_3.19.patch
deleted file mode 100644
index 4d0403b..0000000
index 4d0403bfd8a4a076cc9e91349463593adb79047c..0000000000000000000000000000000000000000
--- a/target/linux/generic/patches-3.18/043-mtd_GD25Q128B_support_backport_from_3.19.patch
+++ /dev/null
@@ -1,10 +0,0 @@
@ -163,7 +163,7 @@ index 4d0403b..0000000
- { "160s33b", INFO(0x898911, 0, 64 * 1024, 32, 0) },
diff --git a/target/linux/generic/patches-3.18/093-m25p80_spi-nor_update_to_4.4.9.patch b/target/linux/generic/patches-3.18/093-m25p80_spi-nor_update_to_4.4.9.patch
new file mode 100644
index 0000000..5f74d3a
index 0000000000000000000000000000000000000000..5f74d3a07ba62c9e1da0a0b2aef8abe309efdbb9
--- /dev/null
+++ b/target/linux/generic/patches-3.18/093-m25p80_spi-nor_update_to_4.4.9.patch
@@ -0,0 +1,1579 @@
@ -1747,7 +1747,7 @@ index 0000000..5f74d3a
+ };
+
diff --git a/target/linux/generic/patches-3.18/462-m25p80-mx-disable-software-protection.patch b/target/linux/generic/patches-3.18/462-m25p80-mx-disable-software-protection.patch
index fef483a..eb99609 100644
index fef483a67d0f7c3f25a105f5f1d0faef4dfd1a38..eb99609fe29b136a2283ef347af6b1db97ad4978 100644
--- a/target/linux/generic/patches-3.18/462-m25p80-mx-disable-software-protection.patch
+++ b/target/linux/generic/patches-3.18/462-m25p80-mx-disable-software-protection.patch
@@ -1,10 +1,14 @@
@ -1772,7 +1772,7 @@ index fef483a..eb99609 100644
write_sr(nor, 0);
diff --git a/target/linux/generic/patches-3.18/472-mtd-m25p80-add-support-for-Winbond-W25X05-flash.patch b/target/linux/generic/patches-3.18/472-mtd-m25p80-add-support-for-Winbond-W25X05-flash.patch
deleted file mode 100644
index dca6895..0000000
index dca6895c1448a302f829bcfdde4842f0a000061d..0000000000000000000000000000000000000000
--- a/target/linux/generic/patches-3.18/472-mtd-m25p80-add-support-for-Winbond-W25X05-flash.patch
+++ /dev/null
@@ -1,20 +0,0 @@
@ -1798,7 +1798,7 @@ index dca6895..0000000
- { "w25x40", INFO(0xef3013, 0, 64 * 1024, 8, SECT_4K) },
diff --git a/target/linux/generic/patches-3.18/473-mtd-spi-nor-add-support-for-the-Macronix-MX25L512E-S.patch b/target/linux/generic/patches-3.18/473-mtd-spi-nor-add-support-for-the-Macronix-MX25L512E-S.patch
deleted file mode 100644
index 9ba7a4a..0000000
index 9ba7a4ab2f701440e78da0f9a2e2845f68652267..0000000000000000000000000000000000000000
--- a/target/linux/generic/patches-3.18/473-mtd-spi-nor-add-support-for-the-Macronix-MX25L512E-S.patch
+++ /dev/null
@@ -1,21 +0,0 @@
@ -1825,7 +1825,7 @@ index 9ba7a4a..0000000
- { "mx25l8005", INFO(0xc22014, 0, 64 * 1024, 16, 0) },
diff --git a/target/linux/generic/patches-3.18/474-mtd-spi-nor-add-support-for-the-ISSI-SI25CD512-SPI-f.patch b/target/linux/generic/patches-3.18/474-mtd-spi-nor-add-support-for-the-ISSI-SI25CD512-SPI-f.patch
deleted file mode 100644
index b06ac73..0000000
index b06ac73fae3fac808067b8643ac939adc56d35cb..0000000000000000000000000000000000000000
--- a/target/linux/generic/patches-3.18/474-mtd-spi-nor-add-support-for-the-ISSI-SI25CD512-SPI-f.patch
+++ /dev/null
@@ -1,22 +0,0 @@
@ -1853,7 +1853,7 @@ index b06ac73..0000000
- { "mx25l2005a", INFO(0xc22012, 0, 64 * 1024, 4, SECT_4K) },
diff --git a/target/linux/lantiq/patches-3.18/0022-MTD-m25p80-allow-loading-mtd-name-from-OF.patch b/target/linux/lantiq/patches-3.18/0022-MTD-m25p80-allow-loading-mtd-name-from-OF.patch
deleted file mode 100644
index 203eb94..0000000
index 203eb9495efe583abc1e7adc21f9c6d0e61e4e29..0000000000000000000000000000000000000000
--- a/target/linux/lantiq/patches-3.18/0022-MTD-m25p80-allow-loading-mtd-name-from-OF.patch
+++ /dev/null
@@ -1,44 +0,0 @@
@ -1902,7 +1902,7 @@ index 203eb94..0000000
- /* For some (historical?) reason many platforms provide two different
- * names in flash_platform_data: "name" and "type". Quite often name is
diff --git a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts
index 2beb39c..21f823d 100644
index 2beb39cf1f2b22d99207b2298bd550a71c8d7666..21f823d57ca1b7b072e060dd0460ffd4b251ec77 100644
--- a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts
+++ b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts
@@ -37,7 +37,7 @@
@ -1915,7 +1915,7 @@ index 2beb39c..21f823d 100644
spi-max-frequency = <25000000>;
diff --git a/target/linux/ramips/patches-3.18/0044-mtd-add-chunked-read-io-to-m25p80.patch b/target/linux/ramips/patches-3.18/0044-mtd-add-chunked-read-io-to-m25p80.patch
index 1716e1c..8dc181a 100644
index 1716e1cc499ede404c509a40370ff6fdeec0f1dc..8dc181afb84e4932b73b4a7a45daadb0da78ca20 100644
--- a/target/linux/ramips/patches-3.18/0044-mtd-add-chunked-read-io-to-m25p80.patch
+++ b/target/linux/ramips/patches-3.18/0044-mtd-add-chunked-read-io-to-m25p80.patch
@@ -1,33 +1,18 @@

View File

@ -4,7 +4,7 @@ Subject: kernel: mtd: spi-nor: wait until status register writes are ready
diff --git a/target/linux/generic/patches-3.18/094-0001-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch b/target/linux/generic/patches-3.18/094-0001-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch
new file mode 100644
index 0000000..2c2e5f3
index 0000000000000000000000000000000000000000..2c2e5f32259416f0cc7f342e420ffbd32c139d97
--- /dev/null
+++ b/target/linux/generic/patches-3.18/094-0001-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch
@@ -0,0 +1,66 @@
@ -76,7 +76,7 @@ index 0000000..2c2e5f3
+ /*
diff --git a/target/linux/generic/patches-3.18/094-0002-mtd-spi-nor-wait-for-SR_WIP-to-clear-on-initial-unlo.patch b/target/linux/generic/patches-3.18/094-0002-mtd-spi-nor-wait-for-SR_WIP-to-clear-on-initial-unlo.patch
new file mode 100644
index 0000000..a0573d5
index 0000000000000000000000000000000000000000..a0573d5aea939c965cb44b2e72a2b7d498b0a5cd
--- /dev/null
+++ b/target/linux/generic/patches-3.18/094-0002-mtd-spi-nor-wait-for-SR_WIP-to-clear-on-initial-unlo.patch
@@ -0,0 +1,33 @@

View File

@ -4,7 +4,7 @@ Subject: kernel: mtd: spi-nor: unlock Winbond flashs
diff --git a/target/linux/generic/patches-3.18/463-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch b/target/linux/generic/patches-3.18/463-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch
new file mode 100644
index 0000000..4682b7a
index 0000000000000000000000000000000000000000..4682b7a77b160a0814012d26f0edf1a7bfaf5312
--- /dev/null
+++ b/target/linux/generic/patches-3.18/463-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch
@@ -0,0 +1,46 @@

View File

@ -11,7 +11,7 @@ Signed-off-by: Miaoqing Pan <miaoqing@codeaurora.org>
Backport of OpenWrt r46971
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
index ff94e2e..31d2438 100644
index ff94e2ec3733b9473c4c3191cb47bd4ba8ac784d..31d24388d274b92e01642ad6d7f59d22f80dc2a6 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
@@ -633,7 +633,6 @@ static int __init ath79_setup_phy_if_mode(unsigned int id,

View File

@ -1,37 +0,0 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 8 May 2016 15:53:14 +0200
Subject: tools: pkg-config: fix build with GCC 6
Fixes the following error:
gdate.c: In function g_date_strftime:
gdate.c:2497:7: error: format not a string literal, format string not checked [-Werror=format-nonliteral]
tmplen = strftime (tmpbuf, tmpbufsize, locale_format, &tm);
^~~~~~
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
diff --git a/tools/pkg-config/patches/001-glib-gdate-suppress-string-format-literal-warning.patch b/tools/pkg-config/patches/001-glib-gdate-suppress-string-format-literal-warning.patch
new file mode 100644
index 0000000..6849299
--- /dev/null
+++ b/tools/pkg-config/patches/001-glib-gdate-suppress-string-format-literal-warning.patch
@@ -0,0 +1,18 @@
+--- a/glib/glib/gdate.c
++++ b/glib/glib/gdate.c
+@@ -2439,6 +2439,9 @@ win32_strftime_helper (const GDate *d,
+ *
+ * Returns: number of characters written to the buffer, or 0 the buffer was too small
+ */
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wformat-nonliteral"
++
+ gsize
+ g_date_strftime (gchar *s,
+ gsize slen,
+@@ -2549,3 +2552,5 @@ g_date_strftime (gchar *s,
+ return retval;
+ #endif
+ }
++
++#pragma GCC diagnostic pop

View File

@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of OpenWrt r47363
diff --git a/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch b/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch
index b5c88e9..d3a14b2 100644
index 0da81426ca7b1b1db46e869745f0ed00496bef78..2bb4286e5d805ff3c47486a1f091d2b5e6d78373 100644
--- a/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch
+++ b/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch
@@ -529,7 +529,7 @@

View File

@ -1,815 +0,0 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 8 May 2016 22:06:51 +0200
Subject: tools: mkimage: sync include/linux/compiler*.h with u-boot master
Fixes build with GCC 6.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
diff --git a/tools/mkimage/patches/200-compiler-support.patch b/tools/mkimage/patches/200-compiler-support.patch
new file mode 100644
index 0000000..ca9c5b5
--- /dev/null
+++ b/tools/mkimage/patches/200-compiler-support.patch
@@ -0,0 +1,702 @@
+diff --git b/include/linux/compiler-gcc.h a/include/linux/compiler-gcc.h
+index e057bd2..22ab246 100644
+--- b/include/linux/compiler-gcc.h
++++ a/include/linux/compiler-gcc.h
+@@ -5,14 +5,28 @@
+ /*
+ * Common definitions for all gcc versions go here.
+ */
+-#define GCC_VERSION (__GNUC__ * 10000 \
+- + __GNUC_MINOR__ * 100 \
+- + __GNUC_PATCHLEVEL__)
+-
++#define GCC_VERSION (__GNUC__ * 10000 \
++ + __GNUC_MINOR__ * 100 \
++ + __GNUC_PATCHLEVEL__)
+
+ /* Optimization barrier */
++
+ /* The "volatile" is due to gcc bugs */
+ #define barrier() __asm__ __volatile__("": : :"memory")
++/*
++ * This version is i.e. to prevent dead stores elimination on @ptr
++ * where gcc and llvm may behave differently when otherwise using
++ * normal barrier(): while gcc behavior gets along with a normal
++ * barrier(), llvm needs an explicit input variable to be assumed
++ * clobbered. The issue is as follows: while the inline asm might
++ * access any memory it wants, the compiler could have fit all of
++ * @ptr into memory registers instead, and since @ptr never escaped
++ * from that, it proofed that the inline asm wasn't touching any of
++ * it. This version works well with both compilers, i.e. we're telling
++ * the compiler that the inline asm absolutely may see the contents
++ * of @ptr. See also: https://llvm.org/bugs/show_bug.cgi?id=15495
++ */
++#define barrier_data(ptr) __asm__ __volatile__("": :"r"(ptr) :"memory")
+
+ /*
+ * This macro obfuscates arithmetic on a variable address so that gcc
+@@ -32,58 +46,63 @@
+ * the inline assembly constraint from =g to =r, in this particular
+ * case either is valid.
+ */
+-#define RELOC_HIDE(ptr, off) \
+- ({ unsigned long __ptr; \
+- __asm__ ("" : "=r"(__ptr) : "0"(ptr)); \
+- (typeof(ptr)) (__ptr + (off)); })
++#define RELOC_HIDE(ptr, off) \
++({ \
++ unsigned long __ptr; \
++ __asm__ ("" : "=r"(__ptr) : "0"(ptr)); \
++ (typeof(ptr)) (__ptr + (off)); \
++})
+
+ /* Make the optimizer believe the variable can be manipulated arbitrarily. */
+-#define OPTIMIZER_HIDE_VAR(var) __asm__ ("" : "=r" (var) : "0" (var))
++#define OPTIMIZER_HIDE_VAR(var) \
++ __asm__ ("" : "=r" (var) : "0" (var))
+
+ #ifdef __CHECKER__
+-#define __must_be_array(arr) 0
++#define __must_be_array(a) 0
+ #else
+ /* &a[0] degrades to a pointer: a different type from an array */
+-#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
++#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
+ #endif
+
+ /*
+ * Force always-inline if the user requests it so via the .config,
+ * or if gcc is too old:
+ */
+-#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \
++#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \
+ !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
+-# define inline inline __attribute__((always_inline)) notrace
+-# define __inline__ __inline__ __attribute__((always_inline)) notrace
+-# define __inline __inline __attribute__((always_inline)) notrace
++#define inline inline __attribute__((always_inline)) notrace
++#define __inline__ __inline__ __attribute__((always_inline)) notrace
++#define __inline __inline __attribute__((always_inline)) notrace
+ #else
+ /* A lot of inline functions can cause havoc with function tracing */
+-# define inline inline notrace
+-# define __inline__ __inline__ notrace
+-# define __inline __inline notrace
++#define inline inline notrace
++#define __inline__ __inline__ notrace
++#define __inline __inline notrace
+ #endif
+
+-#define __deprecated __attribute__((deprecated))
+-#ifndef __packed
+-#define __packed __attribute__((packed))
+-#endif
+-#ifndef __weak
+-#define __weak __attribute__((weak))
+-#endif
++#define __always_inline inline __attribute__((always_inline))
++#define noinline __attribute__((noinline))
++
++#define __deprecated __attribute__((deprecated))
++#define __packed __attribute__((packed))
++#define __weak __attribute__((weak))
++#define __alias(symbol) __attribute__((alias(#symbol)))
+
+ /*
+- * it doesn't make sense on ARM (currently the only user of __naked) to trace
+- * naked functions because then mcount is called without stack and frame pointer
+- * being set up and there is no chance to restore the lr register to the value
+- * before mcount was called.
++ * it doesn't make sense on ARM (currently the only user of __naked)
++ * to trace naked functions because then mcount is called without
++ * stack and frame pointer being set up and there is no chance to
++ * restore the lr register to the value before mcount was called.
++ *
++ * The asm() bodies of naked functions often depend on standard calling
++ * conventions, therefore they must be noinline and noclone.
+ *
+- * The asm() bodies of naked functions often depend on standard calling conventions,
+- * therefore they must be noinline and noclone. GCC 4.[56] currently fail to enforce
+- * this, so we must do so ourselves. See GCC PR44290.
++ * GCC 4.[56] currently fail to enforce this, so we must do so ourselves.
++ * See GCC PR44290.
+ */
+-#define __naked __attribute__((naked)) noinline __noclone notrace
++#define __naked __attribute__((naked)) noinline __noclone notrace
+
+-#define __noreturn __attribute__((noreturn))
++#define __noreturn __attribute__((noreturn))
+
+ /*
+ * From the GCC manual:
+@@ -95,34 +114,170 @@
+ * would be.
+ * [...]
+ */
+-#ifndef __pure
+-#define __pure __attribute__((pure))
++#define __pure __attribute__((pure))
++#define __aligned(x) __attribute__((aligned(x)))
++#define __printf(a, b) __attribute__((format(printf, a, b)))
++#define __scanf(a, b) __attribute__((format(scanf, a, b)))
++#define __attribute_const__ __attribute__((__const__))
++#define __maybe_unused __attribute__((unused))
++#define __always_unused __attribute__((unused))
++
++/* gcc version specific checks */
++
++#if GCC_VERSION < 30200
++# error Sorry, your compiler is too old - please upgrade it.
++#endif
++
++#if GCC_VERSION < 30300
++# define __used __attribute__((__unused__))
++#else
++# define __used __attribute__((__used__))
++#endif
++
++#ifdef CONFIG_GCOV_KERNEL
++# if GCC_VERSION < 30400
++# error "GCOV profiling support for gcc versions below 3.4 not included"
++# endif /* __GNUC_MINOR__ */
++#endif /* CONFIG_GCOV_KERNEL */
++
++#if GCC_VERSION >= 30400
++#define __must_check __attribute__((warn_unused_result))
++#endif
++
++#if GCC_VERSION >= 40000
++
++/* GCC 4.1.[01] miscompiles __weak */
++#ifdef __KERNEL__
++# if GCC_VERSION >= 40100 && GCC_VERSION <= 40101
++# error Your version of gcc miscompiles the __weak directive
++# endif
++#endif
++
++#define __used __attribute__((__used__))
++#define __compiler_offsetof(a, b) \
++ __builtin_offsetof(a, b)
++
++#if GCC_VERSION >= 40100 && GCC_VERSION < 40600
++# define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
++#endif
++
++#if GCC_VERSION >= 40300
++/* Mark functions as cold. gcc will assume any path leading to a call
++ * to them will be unlikely. This means a lot of manual unlikely()s
++ * are unnecessary now for any paths leading to the usual suspects
++ * like BUG(), printk(), panic() etc. [but let's keep them for now for
++ * older compilers]
++ *
++ * Early snapshots of gcc 4.3 don't support this and we can't detect this
++ * in the preprocessor, but we can live with this because they're unreleased.
++ * Maketime probing would be overkill here.
++ *
++ * gcc also has a __attribute__((__hot__)) to move hot functions into
++ * a special section, but I don't see any sense in this right now in
++ * the kernel context
++ */
++#define __cold __attribute__((__cold__))
++
++#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
++
++#ifndef __CHECKER__
++# define __compiletime_warning(message) __attribute__((warning(message)))
++# define __compiletime_error(message) __attribute__((error(message)))
++#endif /* __CHECKER__ */
++#endif /* GCC_VERSION >= 40300 */
++
++#if GCC_VERSION >= 40500
++/*
++ * Mark a position in code as unreachable. This can be used to
++ * suppress control flow warnings after asm blocks that transfer
++ * control elsewhere.
++ *
++ * Early snapshots of gcc 4.5 don't support this and we can't detect
++ * this in the preprocessor, but we can live with this because they're
++ * unreleased. Really, we need to have autoconf for the kernel.
++ */
++#define unreachable() __builtin_unreachable()
++
++/* Mark a function definition as prohibited from being cloned. */
++#define __noclone __attribute__((__noclone__))
++
++#endif /* GCC_VERSION >= 40500 */
++
++#if GCC_VERSION >= 40600
++/*
++ * When used with Link Time Optimization, gcc can optimize away C functions or
++ * variables which are referenced only from assembly code. __visible tells the
++ * optimizer that something else uses this function or variable, thus preventing
++ * this.
++ */
++#define __visible __attribute__((externally_visible))
+ #endif
+-#ifndef __aligned
+-#define __aligned(x) __attribute__((aligned(x)))
++
++
++#if GCC_VERSION >= 40900 && !defined(__CHECKER__)
++/*
++ * __assume_aligned(n, k): Tell the optimizer that the returned
++ * pointer can be assumed to be k modulo n. The second argument is
++ * optional (default 0), so we use a variadic macro to make the
++ * shorthand.
++ *
++ * Beware: Do not apply this to functions which may return
++ * ERR_PTRs. Also, it is probably unwise to apply it to functions
++ * returning extra information in the low bits (but in that case the
++ * compiler should see some alignment anyway, when the return value is
++ * massaged by 'flags = ptr & 3; ptr &= ~3;').
++ */
++#define __assume_aligned(a, ...) __attribute__((__assume_aligned__(a, ## __VA_ARGS__)))
+ #endif
+-#define __printf(a, b) __attribute__((format(printf, a, b)))
+-#define __scanf(a, b) __attribute__((format(scanf, a, b)))
+-#define noinline __attribute__((noinline))
+-#define __attribute_const__ __attribute__((__const__))
+-#define __maybe_unused __attribute__((unused))
+-#define __always_unused __attribute__((unused))
+
+-#define __gcc_header(x) #x
+-#define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h)
+-#define gcc_header(x) _gcc_header(x)
+-#include gcc_header(__GNUC__)
++/*
++ * GCC 'asm goto' miscompiles certain code sequences:
++ *
++ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
++ *
++ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
++ *
++ * (asm goto is automatically volatile - the naming reflects this.)
++ */
++#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
++
++#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
++#if GCC_VERSION >= 40400
++#define __HAVE_BUILTIN_BSWAP32__
++#define __HAVE_BUILTIN_BSWAP64__
++#endif
++#if GCC_VERSION >= 40800 || (defined(__powerpc__) && GCC_VERSION >= 40600)
++#define __HAVE_BUILTIN_BSWAP16__
++#endif
++#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
++
++#if GCC_VERSION >= 50000
++#define KASAN_ABI_VERSION 4
++#elif GCC_VERSION >= 40902
++#define KASAN_ABI_VERSION 3
++#endif
++
++#if GCC_VERSION >= 40902
++/*
++ * Tell the compiler that address safety instrumentation (KASAN)
++ * should not be applied to that function.
++ * Conflicts with inlining: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
++ */
++#define __no_sanitize_address __attribute__((no_sanitize_address))
++#endif
++
++#endif /* gcc version >= 40000 specific checks */
+
+ #if !defined(__noclone)
+ #define __noclone /* not needed */
+ #endif
+
++#if !defined(__no_sanitize_address)
++#define __no_sanitize_address
++#endif
++
+ /*
+ * A trick to suppress uninitialized variable warning without generating any
+ * code
+ */
+ #define uninitialized_var(x) x = x
+-
+-#ifndef __always_inline
+-#define __always_inline inline __attribute__((always_inline))
+-#endif
+diff --git b/include/linux/compiler-gcc3.h a/include/linux/compiler-gcc3.h
+deleted file mode 100644
+index 7d89feb..0000000
+--- b/include/linux/compiler-gcc3.h
++++ /dev/null
+@@ -1,23 +0,0 @@
+-#ifndef __LINUX_COMPILER_H
+-#error "Please don't include <linux/compiler-gcc3.h> directly, include <linux/compiler.h> instead."
+-#endif
+-
+-#if GCC_VERSION < 30200
+-# error Sorry, your compiler is too old - please upgrade it.
+-#endif
+-
+-#if GCC_VERSION >= 30300
+-# define __used __attribute__((__used__))
+-#else
+-# define __used __attribute__((__unused__))
+-#endif
+-
+-#if GCC_VERSION >= 30400
+-#define __must_check __attribute__((warn_unused_result))
+-#endif
+-
+-#ifdef CONFIG_GCOV_KERNEL
+-# if GCC_VERSION < 30400
+-# error "GCOV profiling support for gcc versions below 3.4 not included"
+-# endif /* __GNUC_MINOR__ */
+-#endif /* CONFIG_GCOV_KERNEL */
+diff --git b/include/linux/compiler-gcc4.h a/include/linux/compiler-gcc4.h
+deleted file mode 100644
+index c982a09..0000000
+--- b/include/linux/compiler-gcc4.h
++++ /dev/null
+@@ -1,81 +0,0 @@
+-#ifndef __LINUX_COMPILER_H
+-#error "Please don't include <linux/compiler-gcc4.h> directly, include <linux/compiler.h> instead."
+-#endif
+-
+-#define __used __attribute__((__used__))
+-#define __must_check __attribute__((warn_unused_result))
+-#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
+-
+-#if GCC_VERSION >= 40100 && GCC_VERSION < 40600
+-# define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
+-#endif
+-
+-#if GCC_VERSION >= 40300
+-/* Mark functions as cold. gcc will assume any path leading to a call
+- to them will be unlikely. This means a lot of manual unlikely()s
+- are unnecessary now for any paths leading to the usual suspects
+- like BUG(), printk(), panic() etc. [but let's keep them for now for
+- older compilers]
+-
+- Early snapshots of gcc 4.3 don't support this and we can't detect this
+- in the preprocessor, but we can live with this because they're unreleased.
+- Maketime probing would be overkill here.
+-
+- gcc also has a __attribute__((__hot__)) to move hot functions into
+- a special section, but I don't see any sense in this right now in
+- the kernel context */
+-#define __cold __attribute__((__cold__))
+-
+-#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
+-
+-#ifndef __CHECKER__
+-# define __compiletime_warning(message) __attribute__((warning(message)))
+-# define __compiletime_error(message) __attribute__((error(message)))
+-#endif /* __CHECKER__ */
+-#endif /* GCC_VERSION >= 40300 */
+-
+-#if GCC_VERSION >= 40500
+-/*
+- * Mark a position in code as unreachable. This can be used to
+- * suppress control flow warnings after asm blocks that transfer
+- * control elsewhere.
+- *
+- * Early snapshots of gcc 4.5 don't support this and we can't detect
+- * this in the preprocessor, but we can live with this because they're
+- * unreleased. Really, we need to have autoconf for the kernel.
+- */
+-#define unreachable() __builtin_unreachable()
+-
+-/* Mark a function definition as prohibited from being cloned. */
+-#define __noclone __attribute__((__noclone__))
+-
+-#endif /* GCC_VERSION >= 40500 */
+-
+-#if GCC_VERSION >= 40600
+-/*
+- * Tell the optimizer that something else uses this function or variable.
+- */
+-#define __visible __attribute__((externally_visible))
+-#endif
+-
+-/*
+- * GCC 'asm goto' miscompiles certain code sequences:
+- *
+- * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
+- *
+- * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
+- * Fixed in GCC 4.8.2 and later versions.
+- *
+- * (asm goto is automatically volatile - the naming reflects this.)
+- */
+-#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
+-
+-#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
+-#if GCC_VERSION >= 40400
+-#define __HAVE_BUILTIN_BSWAP32__
+-#define __HAVE_BUILTIN_BSWAP64__
+-#endif
+-#if GCC_VERSION >= 40800 || (defined(__powerpc__) && GCC_VERSION >= 40600)
+-#define __HAVE_BUILTIN_BSWAP16__
+-#endif
+-#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
+diff --git b/include/linux/compiler-intel.h a/include/linux/compiler-intel.h
+index ba147a1..d4c7113 100644
+--- b/include/linux/compiler-intel.h
++++ a/include/linux/compiler-intel.h
+@@ -13,9 +13,14 @@
+ /* Intel ECC compiler doesn't support gcc specific asm stmts.
+ * It uses intrinsics to do the equivalent things.
+ */
++#undef barrier
++#undef barrier_data
+ #undef RELOC_HIDE
+ #undef OPTIMIZER_HIDE_VAR
+
++#define barrier() __memory_barrier()
++#define barrier_data(ptr) barrier()
++
+ #define RELOC_HIDE(ptr, off) \
+ ({ unsigned long __ptr; \
+ __ptr = (unsigned long) (ptr); \
+diff --git b/include/linux/compiler.h a/include/linux/compiler.h
+index d5ad7b1..020ad16 100644
+--- b/include/linux/compiler.h
++++ a/include/linux/compiler.h
+@@ -17,6 +17,7 @@
+ # define __release(x) __context__(x,-1)
+ # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
+ # define __percpu __attribute__((noderef, address_space(3)))
++# define __pmem __attribute__((noderef, address_space(5)))
+ #ifdef CONFIG_SPARSE_RCU_POINTER
+ # define __rcu __attribute__((noderef, address_space(4)))
+ #else
+@@ -42,6 +43,7 @@ extern void __chk_io_ptr(const volatile void __iomem *);
+ # define __cond_lock(x,c) (c)
+ # define __percpu
+ # define __rcu
++# define __pmem
+ #endif
+
+ /* Indirect macros required for expanded argument pasting, eg. __LINE__. */
+@@ -54,7 +56,11 @@ extern void __chk_io_ptr(const volatile void __iomem *);
+ #include <linux/compiler-gcc.h>
+ #endif
+
++#if defined(CC_USING_HOTPATCH) && !defined(__CHECKER__)
++#define notrace __attribute__((hotpatch(0,0)))
++#else
+ #define notrace __attribute__((no_instrument_function))
++#endif
+
+ /* Intel compiler defines __GNUC__. So we will overwrite implementations
+ * coming from above header files here
+@@ -138,7 +144,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
+ */
+ #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
+ #define __trace_if(cond) \
+- if (__builtin_constant_p((cond)) ? !!(cond) : \
++ if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
+ ({ \
+ int ______r; \
+ static struct ftrace_branch_data \
+@@ -165,6 +171,10 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
+ # define barrier() __memory_barrier()
+ #endif
+
++#ifndef barrier_data
++# define barrier_data(ptr) barrier()
++#endif
++
+ /* Unreachable code */
+ #ifndef unreachable
+ # define unreachable() do { } while (1)
+@@ -186,6 +196,126 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
+ # define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __LINE__)
+ #endif
+
++#include <linux/types.h>
++
++#define __READ_ONCE_SIZE \
++({ \
++ switch (size) { \
++ case 1: *(__u8 *)res = *(volatile __u8 *)p; break; \
++ case 2: *(__u16 *)res = *(volatile __u16 *)p; break; \
++ case 4: *(__u32 *)res = *(volatile __u32 *)p; break; \
++ case 8: *(__u64 *)res = *(volatile __u64 *)p; break; \
++ default: \
++ barrier(); \
++ __builtin_memcpy((void *)res, (const void *)p, size); \
++ barrier(); \
++ } \
++})
++
++static __always_inline
++void __read_once_size(const volatile void *p, void *res, int size)
++{
++ __READ_ONCE_SIZE;
++}
++
++#ifdef CONFIG_KASAN
++/*
++ * This function is not 'inline' because __no_sanitize_address confilcts
++ * with inlining. Attempt to inline it may cause a build failure.
++ * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
++ * '__maybe_unused' allows us to avoid defined-but-not-used warnings.
++ */
++static __no_sanitize_address __maybe_unused
++void __read_once_size_nocheck(const volatile void *p, void *res, int size)
++{
++ __READ_ONCE_SIZE;
++}
++#else
++static __always_inline
++void __read_once_size_nocheck(const volatile void *p, void *res, int size)
++{
++ __READ_ONCE_SIZE;
++}
++#endif
++
++static __always_inline void __write_once_size(volatile void *p, void *res, int size)
++{
++ switch (size) {
++ case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
++ case 2: *(volatile __u16 *)p = *(__u16 *)res; break;
++ case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
++ case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
++ default:
++ barrier();
++ __builtin_memcpy((void *)p, (const void *)res, size);
++ barrier();
++ }
++}
++
++/*
++ * Prevent the compiler from merging or refetching reads or writes. The
++ * compiler is also forbidden from reordering successive instances of
++ * READ_ONCE, WRITE_ONCE and ACCESS_ONCE (see below), but only when the
++ * compiler is aware of some particular ordering. One way to make the
++ * compiler aware of ordering is to put the two invocations of READ_ONCE,
++ * WRITE_ONCE or ACCESS_ONCE() in different C statements.
++ *
++ * In contrast to ACCESS_ONCE these two macros will also work on aggregate
++ * data types like structs or unions. If the size of the accessed data
++ * type exceeds the word size of the machine (e.g., 32 bits or 64 bits)
++ * READ_ONCE() and WRITE_ONCE() will fall back to memcpy and print a
++ * compile-time warning.
++ *
++ * Their two major use cases are: (1) Mediating communication between
++ * process-level code and irq/NMI handlers, all running on the same CPU,
++ * and (2) Ensuring that the compiler does not fold, spindle, or otherwise
++ * mutilate accesses that either do not require ordering or that interact
++ * with an explicit memory barrier or atomic instruction that provides the
++ * required ordering.
++ */
++
++#define __READ_ONCE(x, check) \
++({ \
++ union { typeof(x) __val; char __c[1]; } __u; \
++ if (check) \
++ __read_once_size(&(x), __u.__c, sizeof(x)); \
++ else \
++ __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
++ __u.__val; \
++})
++#define READ_ONCE(x) __READ_ONCE(x, 1)
++
++/*
++ * Use READ_ONCE_NOCHECK() instead of READ_ONCE() if you need
++ * to hide memory access from KASAN.
++ */
++#define READ_ONCE_NOCHECK(x) __READ_ONCE(x, 0)
++
++#define WRITE_ONCE(x, val) \
++({ \
++ union { typeof(x) __val; char __c[1]; } __u = \
++ { .__val = (__force typeof(x)) (val) }; \
++ __write_once_size(&(x), __u.__c, sizeof(x)); \
++ __u.__val; \
++})
++
++/**
++ * smp_cond_acquire() - Spin wait for cond with ACQUIRE ordering
++ * @cond: boolean expression to wait for
++ *
++ * Equivalent to using smp_load_acquire() on the condition variable but employs
++ * the control dependency of the wait to reduce the barrier on many platforms.
++ *
++ * The control dependency provides a LOAD->STORE order, the additional RMB
++ * provides LOAD->LOAD order, together they provide LOAD->{LOAD,STORE} order,
++ * aka. ACQUIRE.
++ */
++#define smp_cond_acquire(cond) do { \
++ while (!(cond)) \
++ cpu_relax(); \
++ smp_rmb(); /* ctrl + rmb := acquire */ \
++} while (0)
++
+ #endif /* __KERNEL__ */
+
+ #endif /* __ASSEMBLY__ */
+@@ -304,6 +434,14 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
+ #define __visible
+ #endif
+
++/*
++ * Assume alignment of return value.
++ */
++#ifndef __assume_aligned
++#define __assume_aligned(a, ...)
++#endif
++
++
+ /* Are two types/vars the same type (ignoring qualifiers)? */
+ #ifndef __same_type
+ # define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
+@@ -311,7 +449,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
+
+ /* Is this type a native word size -- useful for atomic operations */
+ #ifndef __native_word
+-# define __native_word(t) (sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
++# define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
+ #endif
+
+ /* Compile time object size, -1 for unknown */
+@@ -373,12 +511,38 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
+ * to make the compiler aware of ordering is to put the two invocations of
+ * ACCESS_ONCE() in different C statements.
+ *
+- * This macro does absolutely -nothing- to prevent the CPU from reordering,
+- * merging, or refetching absolutely anything at any time. Its main intended
+- * use is to mediate communication between process-level code and irq/NMI
+- * handlers, all running on the same CPU.
++ * ACCESS_ONCE will only work on scalar types. For union types, ACCESS_ONCE
++ * on a union member will work as long as the size of the member matches the
++ * size of the union and the size is smaller than word size.
++ *
++ * The major use cases of ACCESS_ONCE used to be (1) Mediating communication
++ * between process-level code and irq/NMI handlers, all running on the same CPU,
++ * and (2) Ensuring that the compiler does not fold, spindle, or otherwise
++ * mutilate accesses that either do not require ordering or that interact
++ * with an explicit memory barrier or atomic instruction that provides the
++ * required ordering.
++ *
++ * If possible use READ_ONCE()/WRITE_ONCE() instead.
++ */
++#define __ACCESS_ONCE(x) ({ \
++ __maybe_unused typeof(x) __var = (__force typeof(x)) 0; \
++ (volatile typeof(x) *)&(x); })
++#define ACCESS_ONCE(x) (*__ACCESS_ONCE(x))
++
++/**
++ * lockless_dereference() - safely load a pointer for later dereference
++ * @p: The pointer to load
++ *
++ * Similar to rcu_dereference(), but for situations where the pointed-to
++ * object's lifetime is managed by something other than RCU. That
++ * "something other" might be reference counting or simple immortality.
+ */
+-#define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))
++#define lockless_dereference(p) \
++({ \
++ typeof(p) _________p1 = READ_ONCE(p); \
++ smp_read_barrier_depends(); /* Dependency order vs. p above. */ \
++ (_________p1); \
++})
+
+ /* Ignore/forbid kprobes attach on very low level functions marked by this attribute: */
+ #ifdef CONFIG_KPROBES
diff --git a/tools/mkimage/patches/200-gcc5_compat.patch b/tools/mkimage/patches/200-gcc5_compat.patch
deleted file mode 100644
index 4d55f00..0000000
--- a/tools/mkimage/patches/200-gcc5_compat.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 478b02f1a7043b673565075ea5016376f3293b23 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Sat, 7 Feb 2015 22:52:40 +0100
-Subject: [PATCH] Add linux/compiler-gcc5.h to fix builds with gcc5
-
-Add linux/compiler-gcc5/h from the kernel sources at:
-
-commit 5631b8fba640a4ab2f8a954f63a603fa34eda96b
-Author: Steven Noonan <steven@uplinklabs.net>
-Date: Sat Oct 25 15:09:42 2014 -0700
-
- compiler/gcc4+: Remove inaccurate comment about 'asm goto' miscompiles
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- include/linux/compiler-gcc5.h | 65 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 65 insertions(+)
- create mode 100644 include/linux/compiler-gcc5.h
-
-diff --git a/include/linux/compiler-gcc5.h b/include/linux/compiler-gcc5.h
-new file mode 100644
-index 0000000..c8c5659
---- /dev/null
-+++ b/include/linux/compiler-gcc5.h
-@@ -0,0 +1,65 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+#define __used __attribute__((__used__))
-+#define __must_check __attribute__((warn_unused_result))
-+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
-+
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+ to them will be unlikely. This means a lot of manual unlikely()s
-+ are unnecessary now for any paths leading to the usual suspects
-+ like BUG(), printk(), panic() etc. [but let's keep them for now for
-+ older compilers]
-+
-+ Early snapshots of gcc 4.3 don't support this and we can't detect this
-+ in the preprocessor, but we can live with this because they're unreleased.
-+ Maketime probing would be overkill here.
-+
-+ gcc also has a __attribute__((__hot__)) to move hot functions into
-+ a special section, but I don't see any sense in this right now in
-+ the kernel context */
-+#define __cold __attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+
-+/*
-+ * Mark a position in code as unreachable. This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased. Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone __attribute__((__noclone__))
-+
-+/*
-+ * Tell the optimizer that something else uses this function or variable.
-+ */
-+#define __visible __attribute__((externally_visible))
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
---
-1.7.10.4
-

View File

@ -12,7 +12,7 @@ Signed-off-by: Roman Yeryomin <roman@advem.lv>
Backport of OpenWrt r47981
diff --git a/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch b/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch
index d3a14b2..61b8976 100644
index 2bb4286e5d805ff3c47486a1f091d2b5e6d78373..61b897690a03fd46d2ea95451a09598b272266f9 100644
--- a/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch
+++ b/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch
@@ -105,7 +105,7 @@
@ -327,7 +327,7 @@ index d3a14b2..61b8976 100644
/*
* SPI block
*/
-@@ -766,6 +868,19 @@
-@@ -774,6 +876,19 @@
+@@ -766,6 +875,19 @@
#define QCA953X_GPIO_OUT_MUX_LED_LINK4 44
#define QCA953X_GPIO_OUT_MUX_LED_LINK5 45
@ -336,7 +336,7 @@ index d3a14b2..61b8976 100644
#define AR71XX_GPIO_COUNT 16
#define AR7240_GPIO_COUNT 18
#define AR7241_GPIO_COUNT 20
-@@ -774,6 +889,7 @@
-@@ -782,6 +897,7 @@
+@@ -774,6 +896,7 @@
#define AR934X_GPIO_COUNT 23
#define QCA953X_GPIO_COUNT 18
@ -379,3 +379,37 @@ index d3a14b2..61b8976 100644
+}
+
extern void __iomem *ath79_ddr_base;
diff --git a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
index a36b8c319f7d08fe5daab867a10edca4dfcd4706..44c9c6281e683792af37b6f9b32357b2a4ec2fd4 100644
--- a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
+++ b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
@@ -9,8 +9,8 @@
+ soc_is_qca955x())
reg = AR71XX_GPIO_REG_FUNC;
else if (soc_is_ar934x() ||
- soc_is_qca953x() || soc_is_qca956x())
-@@ -185,15 +186,27 @@ void __init ath79_gpio_output_select(uns
+ soc_is_qca953x() ||
+@@ -187,15 +188,30 @@ void __init ath79_gpio_output_select(uns
{
void __iomem *base = ath79_gpio_base;
unsigned long flags;
@@ -19,7 +19,7 @@
+ unsigned long gpio_count;
u32 t, s;
-- BUG_ON(!soc_is_ar934x() && !soc_is_qca953x());
+- BUG_ON(!soc_is_ar934x() && !soc_is_qca953x() && !soc_is_qca956x());
+ if (soc_is_ar934x()) {
+ gpio_count = AR934X_GPIO_COUNT;
+ reg_base = AR934X_GPIO_REG_OUT_FUNC0;
@@ -29,6 +29,9 @@
+ } else if (soc_is_qca955x()) {
+ gpio_count = QCA955X_GPIO_COUNT;
+ reg_base = QCA955X_GPIO_REG_OUT_FUNC0;
++ } else if (soc_is_qca956x()) {
++ gpio_count = QCA956X_GPIO_COUNT;
++ reg_base = QCA956X_GPIO_REG_OUT_FUNC0;
+ } else {
+ BUG();
+ }

View File

@ -1,144 +0,0 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Mon, 9 May 2016 00:16:38 +0200
Subject: toolchain: gcc: fix build with GCC 6
At least for GCC 4.8, which is used by most targets.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
diff --git a/toolchain/gcc/patches/4.8-linaro/030-gcc-6-compile.patch b/toolchain/gcc/patches/4.8-linaro/030-gcc-6-compile.patch
new file mode 100644
index 0000000..c74f2aa
--- /dev/null
+++ b/toolchain/gcc/patches/4.8-linaro/030-gcc-6-compile.patch
@@ -0,0 +1,130 @@
+Upstream commit r233721
+
+diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
+index bd1c1d7..a0ea0d4 100644
+--- a/gcc/cp/Make-lang.in
++++ b/gcc/cp/Make-lang.in
+@@ -111,7 +111,7 @@ else
+ # deleting the $(srcdir)/cp/cfns.h file.
+ $(srcdir)/cp/cfns.h:
+ endif
+- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
++ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
+ $(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
+
+ #
+diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
+index 05ca753..d9b16b8 100644
+--- a/gcc/cp/cfns.gperf
++++ b/gcc/cp/cfns.gperf
+@@ -1,3 +1,5 @@
++%language=C++
++%define class-name libc_name
+ %{
+ /* Copyright (C) 2000-2014 Free Software Foundation, Inc.
+
+@@ -16,14 +18,6 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ %}
+ %%
+ # The standard C library functions, for feeding to gperf; the result is used
+diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
+index c845ddf..65801d1 100644
+--- a/gcc/cp/cfns.h
++++ b/gcc/cp/cfns.h
+@@ -1,5 +1,5 @@
+-/* ANSI-C code produced by gperf version 3.0.3 */
+-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */
++/* C++ code produced by gperf version 3.0.4 */
++/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */
+
+ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+@@ -28,7 +28,7 @@
+ #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+ #endif
+
+-#line 1 "cfns.gperf"
++#line 3 "cfns.gperf"
+
+ /* Copyright (C) 2000-2014 Free Software Foundation, Inc.
+
+@@ -47,25 +47,18 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ /* maximum key range = 391, duplicates = 0 */
+
+-#ifdef __GNUC__
+-__inline
+-#else
+-#ifdef __cplusplus
+-inline
+-#endif
+-#endif
+-static unsigned int
+-hash (register const char *str, register unsigned int len)
++class libc_name
++{
++private:
++ static inline unsigned int hash (const char *str, unsigned int len);
++public:
++ static const char *libc_name_p (const char *str, unsigned int len);
++};
++
++inline unsigned int
++libc_name::hash (register const char *str, register unsigned int len)
+ {
+ static const unsigned short asso_values[] =
+ {
+@@ -122,14 +115,8 @@ hash (register const char *str, register unsigned int len)
+ return hval + asso_values[(unsigned char)str[len - 1]];
+ }
+
+-#ifdef __GNUC__
+-__inline
+-#ifdef __GNUC_STDC_INLINE__
+-__attribute__ ((__gnu_inline__))
+-#endif
+-#endif
+ const char *
+-libc_name_p (register const char *str, register unsigned int len)
++libc_name::libc_name_p (register const char *str, register unsigned int len)
+ {
+ enum
+ {
+diff --git a/gcc/cp/except.c b/gcc/cp/except.c
+index 221971a..32340f5 100644
+--- a/gcc/cp/except.c
++++ b/gcc/cp/except.c
+@@ -1030,7 +1030,8 @@ nothrow_libfn_p (const_tree fn)
+ unless the system headers are playing rename tricks, and if
+ they are, we don't want to be confused by them. */
+ id = DECL_NAME (fn);
+- return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
++ return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id),
++ IDENTIFIER_LENGTH (id));
+ }
+
+ /* Returns nonzero if an exception of type FROM will be caught by a
+--
+1.7.1
+

View File

@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of OpenWrt r48650
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
index 31d2438..2efb9c7 100644
index 31d24388d274b92e01642ad6d7f59d22f80dc2a6..2efb9c70ff31f5c11bcdff6c6326743e4d5b5a11 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
@@ -198,7 +198,6 @@ void __init ath79_register_mdio(unsigned int id, u32 phy_mask)

View File

@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of OpenWrt r48651
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
index 2efb9c7..12a376e 100644
index 2efb9c70ff31f5c11bcdff6c6326743e4d5b5a11..12a376e1322ae14dd714297ed5f8319ae09eeb64 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
@@ -183,7 +183,8 @@ void __init ath79_register_mdio(unsigned int id, u32 phy_mask)

View File

@ -10,7 +10,7 @@ Signed-off-by: Weijie Gao <hackpascal@gmail.com>
Backport of OpenWrt r48937
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
index 12a376e..b43c80a 100644
index 12a376e1322ae14dd714297ed5f8319ae09eeb64..b43c80a3762ddebe46d8443660714922165a2287 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
@@ -271,6 +271,7 @@ void __init ath79_register_mdio(unsigned int id, u32 phy_mask)

View File

@ -8,10 +8,10 @@ Signed-off-by: P.Wassi <p.wassi at gmx.at>
Backport of OpenWrt r48711
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index 5a184cd..8c6ac9a 100644
index 486879f512cd28f1b80e828809359b55956fbcc3..3adc449b23e9c590d57cdd914b6c8d990a50e0b0 100644
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -296,7 +296,8 @@ get_status_led() {
@@ -309,7 +309,8 @@ get_status_led() {
unifi)
status_led="ubnt:green:dome"
;;
@ -22,10 +22,10 @@ index 5a184cd..8c6ac9a 100644
;;
unifi-outdoor-plus)
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
index b2e15bb..e4a1473 100755
index 032c671341fd526c7e4e32cb9cba42217165cf5c..a79376a8cff56b144268130a24a930ff2bee95cd 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
@@ -366,6 +366,7 @@ tl-wa901nd-v3 |\
@@ -369,6 +369,7 @@ tl-wa901nd-v3 |\
tl-wa901nd-v4 |\
tl-wr703n |\
tube2h |\
@ -34,10 +34,10 @@ index b2e15bb..e4a1473 100755
mynet-rext |\
wp543)
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index ddd6611..8670583 100755
index 4780e2f55276ef113ae697b1e17d88d2e87a4912..0fd139c88e223feada2ad67645cf4d76146ad4dd 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -881,6 +881,9 @@ ar71xx_board_detect() {
@@ -902,6 +902,9 @@ ar71xx_board_detect() {
*UniFi)
name="unifi"
;;
@ -48,10 +48,10 @@ index ddd6611..8670583 100755
name="uap-pro"
;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index c5c1871..4c43166 100755
index 024e4930949c927efd36c3ac67cd351dcaa4bf7b..fff1c3c912cee678ea88e225958b28ceb4c4b742 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -251,6 +251,7 @@ platform_check_image() {
@@ -252,6 +252,7 @@ platform_check_image() {
wlae-ag300n | \
nbg460n_550n_550nh | \
unifi | \
@ -60,10 +60,10 @@ index c5c1871..4c43166 100755
carambola2 | \
weio )
diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18
index e2ff826..9a81911 100644
index e0d52d9fcbad980f7220dd1f93388359e52dc8f9..a068cc5768aed6f29a67de27d24f00dc57e0695a 100644
--- a/target/linux/ar71xx/config-3.18
+++ b/target/linux/ar71xx/config-3.18
@@ -137,6 +137,7 @@ CONFIG_ATH79_MACH_TL_WR941ND=y
@@ -141,6 +141,7 @@ CONFIG_ATH79_MACH_TL_WR941ND=y
CONFIG_ATH79_MACH_TL_WR941ND_V6=y
CONFIG_ATH79_MACH_TUBE2H=y
CONFIG_ATH79_MACH_UBNT=y
@ -71,7 +71,7 @@ index e2ff826..9a81911 100644
CONFIG_ATH79_MACH_UBNT_XM=y
CONFIG_ATH79_MACH_WEIO=y
CONFIG_ATH79_MACH_WHR_HP_G300N=y
@@ -320,7 +321,7 @@ CONFIG_SOC_AR933X=y
@@ -324,7 +325,7 @@ CONFIG_SOC_AR933X=y
CONFIG_SOC_AR934X=y
CONFIG_SOC_QCA953X=y
CONFIG_SOC_QCA955X=y
@ -82,7 +82,7 @@ index e2ff826..9a81911 100644
CONFIG_SPI_ATH79=y
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
new file mode 100644
index 0000000..3617ca7
index 0000000000000000000000000000000000000000..3617ca7d5fc0fff00fce9741b5d9169fac8c83c8
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
@@ -0,0 +1,109 @@
@ -196,7 +196,7 @@ index 0000000..3617ca7
+MIPS_MACHINE(ATH79_MACH_UBNT_UNIFIAC, "UBNT-UF-AC", "Ubiquiti UniFi-AC",
+ ubnt_unifiac_setup);
diff --git a/target/linux/ar71xx/generic/profiles/ubnt.mk b/target/linux/ar71xx/generic/profiles/ubnt.mk
index d8e24d0..94eff18 100644
index d8e24d0032d75231d27be8207fe55294fd108282..94eff18318264de85ea459e94280c88726404888 100644
--- a/target/linux/ar71xx/generic/profiles/ubnt.mk
+++ b/target/linux/ar71xx/generic/profiles/ubnt.mk
@@ -38,6 +38,17 @@ endef
@ -218,7 +218,7 @@ index d8e24d0..94eff18 100644
NAME:=Ubiquiti UniFiAP Outdoor
PACKAGES:=
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index d42ceef..dd59f2d 100644
index 0783381baeddef2064df8faff89c49c2bed6a28b..aaaf89ac1a369431cf9bc15c13e774ba6826bbf3 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -740,6 +740,16 @@ define Device/oolite
@ -239,7 +239,7 @@ index d42ceef..dd59f2d 100644
# $(1): rootfs type.
diff --git a/target/linux/ar71xx/mikrotik/config-default b/target/linux/ar71xx/mikrotik/config-default
index b8a7bf1..2b1fe24 100644
index b8a7bf13f2582b0b458d17f5e4b266a6e110faa1..2b1fe2491c7a00449453efdc4969015ec1b28291 100644
--- a/target/linux/ar71xx/mikrotik/config-default
+++ b/target/linux/ar71xx/mikrotik/config-default
@@ -97,6 +97,7 @@ CONFIG_ATH79_MACH_RBSXTLITE=y
@ -251,7 +251,7 @@ index b8a7bf1..2b1fe24 100644
# CONFIG_ATH79_MACH_WLAE_AG300N is not set
# CONFIG_ATH79_MACH_WLR8100 is not set
diff --git a/target/linux/ar71xx/nand/config-default b/target/linux/ar71xx/nand/config-default
index 626d676..f62cf1a 100644
index 626d676c621b90feb31a88e7b8c2daa587a8f603..f62cf1a4399718b2f4e94a974d26ddaf8d46a8ec 100644
--- a/target/linux/ar71xx/nand/config-default
+++ b/target/linux/ar71xx/nand/config-default
@@ -59,6 +59,7 @@
@ -263,18 +263,18 @@ index 626d676..f62cf1a 100644
# CONFIG_ATH79_MACH_WLAE_AG300N is not set
# CONFIG_ATH79_MACH_WNDAP360 is not set
diff --git a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
index d6e786d..5a7a72c 100644
index 76aeb94412e6f44b9a81fc44858e9c4540a08845..27dc73ffa239979a799bbede72440907e9d0e187 100644
--- a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
+++ b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
-@@ -16,22 +16,199 @@
+@@ -16,22 +16,200 @@
-@@ -16,22 +16,200 @@
+@@ -16,22 +16,201 @@
enum ath79_mach_type {
ATH79_MACH_GENERIC = 0,
@@ -164,6 +164,7 @@
@@ -165,6 +165,7 @@
+ ATH79_MACH_UBNT_RS, /* Ubiquiti RouterStation */
ATH79_MACH_UBNT_UAP_PRO, /* Ubiquiti UniFi AP Pro */
ATH79_MACH_UBNT_UNIFI, /* Ubiquiti Unifi */
@ -282,7 +282,7 @@ index d6e786d..5a7a72c 100644
ATH79_MACH_UBNT_UNIFI_OUTDOOR, /* Ubiquiti UnifiAP Outdoor */
+ ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, /* Ubiquiti UnifiAP Outdoor+ */
ATH79_MACH_UBNT_XM, /* Ubiquiti Networks XM board rev 1.0 */
@@ -1097,10 +1098,7 @@
@@ -1098,10 +1099,7 @@
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_USB
+ select ATH79_DEV_WMAC
@ -294,7 +294,7 @@ index d6e786d..5a7a72c 100644
+config ATH79_MACH_TL_WA7210N_V2
+ bool "TP-LINK TL-WA7210N v2 support"
+ select SOC_AR724X
@@ -1115,19 +1113,12 @@
@@ -1116,19 +1114,12 @@
+ bool "TP-LINK TL-WA830RE v2 support"
+ select SOC_AR934X
+ select ATH79_DEV_ETH
@ -319,7 +319,7 @@ index d6e786d..5a7a72c 100644
+config ATH79_MACH_TL_WA901ND
+ bool "TP-LINK TL-WA901ND/TL-WA7510N support"
+ select SOC_AR724X
@@ -1139,11 +1130,11 @@
@@ -1140,11 +1131,11 @@
+
+config ATH79_MACH_TL_WA901ND_V2
+ bool "TP-LINK TL-WA901ND v2 support"
@ -336,7 +336,7 @@ index d6e786d..5a7a72c 100644
+ select ATH79_DEV_WMAC
+
+config ATH79_MACH_TL_WDR3500
@@ -1154,34 +1145,13 @@
@@ -1155,34 +1146,13 @@
+ select ATH79_DEV_GPIO_BUTTONS
+ select ATH79_DEV_LEDS_GPIO
+ select ATH79_DEV_M25P80
@ -376,7 +376,7 @@ index d6e786d..5a7a72c 100644
+ select ATH79_DEV_ETH
+ select ATH79_DEV_GPIO_BUTTONS
+ select ATH79_DEV_LEDS_GPIO
@@ -1189,8 +1159,8 @@
@@ -1190,8 +1160,8 @@
+ select ATH79_DEV_USB
+ select ATH79_DEV_WMAC
+
@ -387,7 +387,7 @@ index d6e786d..5a7a72c 100644
+ select SOC_AR933X
+ select ATH79_DEV_ETH
+ select ATH79_DEV_GPIO_BUTTONS
@@ -1198,7 +1168,28 @@
@@ -1199,7 +1169,28 @@
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_USB
+ select ATH79_DEV_WMAC
@ -417,7 +417,7 @@ index d6e786d..5a7a72c 100644
+config ATH79_MACH_TL_WR741ND
+ bool "TP-LINK TL-WR741ND support"
+ select SOC_AR724X
@@ -1211,21 +1202,25 @@
@@ -1212,21 +1203,25 @@
+config ATH79_MACH_TL_WR741ND_V4
+ bool "TP-LINK TL-WR741ND v4/TL-MR3220 v2 support"
+ select SOC_AR933X
@ -455,7 +455,7 @@ index d6e786d..5a7a72c 100644
+ select ATH79_DEV_M25P80
+
+config ATH79_MACH_TL_WR841N_V8
@@ -1268,15 +1263,21 @@
@@ -1269,15 +1264,21 @@
+
+config ATH79_MACH_TL_WR1041N_V2
+ bool "TP-LINK TL-WR1041N v2 support"
@ -486,7 +486,7 @@ index d6e786d..5a7a72c 100644
+config ATH79_MACH_TL_WR1043ND
+ bool "TP-LINK TL-WR1043ND support"
+ select SOC_AR913X
@@ -1319,11 +1320,12 @@
@@ -1320,11 +1321,12 @@
+
+config ATH79_MACH_TEW_673GRU
+ bool "TRENDnet TEW-673GRU support"
@ -503,7 +503,7 @@ index d6e786d..5a7a72c 100644
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_USB
+ select ATH79_NVRAM
@@ -1361,10 +1363,20 @@
@@ -1362,10 +1364,20 @@
config ATH79_MACH_UBNT_XM
bool "Ubiquiti Networks XM/UniFi boards"
@ -525,7 +525,7 @@ index d6e786d..5a7a72c 100644
+config ATH79_MACH_WEIO
+ bool "WeIO board"
+ select SOC_AR933X
@@ -1468,7 +1480,7 @@
@@ -1469,7 +1481,7 @@
endmenu
config SOC_AR71XX
@ -534,7 +534,7 @@ index d6e786d..5a7a72c 100644
config ATH79_DEV_ETH
def_bool n
@@ -1480,7 +1492,7 @@
@@ -1481,7 +1493,7 @@
def_bool n
config ATH79_DEV_GPIO_BUTTONS
@ -543,7 +543,7 @@ index d6e786d..5a7a72c 100644
def_bool n
config ATH79_ROUTERBOOT
@@ -1494,7 +1506,7 @@
@@ -1495,7 +1507,7 @@
endif
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@ -552,7 +552,7 @@ index d6e786d..5a7a72c 100644
#
# Machines
#
@@ -1596,6 +1608,7 @@
@@ -1597,6 +1609,7 @@
+obj-$(CONFIG_ATH79_MACH_TL_WR720N_V3) += mach-tl-wr720n-v3.o
+obj-$(CONFIG_ATH79_MACH_TUBE2H) += mach-tube2h.o
+obj-$(CONFIG_ATH79_MACH_UBNT) += mach-ubnt.o

View File

@ -8,7 +8,7 @@ Signed-off-by: Paul Wassi <p.wassi at gmx.at>
Backport of OpenWrt r49277
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
index 3617ca7..072cf12 100644
index 3617ca7d5fc0fff00fce9741b5d9169fac8c83c8..072cf12a31a0921a8e9b90689864f5d981cd2c32 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
@@ -84,6 +84,7 @@ static void __init ubnt_unifiac_setup(void)

View File

@ -10,10 +10,10 @@ Signed-off-by: P.Wassi <p.wassi at gmx.at>
Backport of LEDE c855e70491fbd5d432915c4cbeb3b80f3a117e30
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index 8c6ac9a..3d711ca 100644
index 3adc449b23e9c590d57cdd914b6c8d990a50e0b0..924c1163e26eb84b71e4734b95221104674bfe3e 100644
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -297,7 +297,7 @@ get_status_led() {
@@ -310,7 +310,7 @@ get_status_led() {
status_led="ubnt:green:dome"
;;
uap-pro | \
@ -23,10 +23,10 @@ index 8c6ac9a..3d711ca 100644
;;
unifi-outdoor-plus)
diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index e6fcec8..fa8a2c8 100644
index ab7d93c693f8422bbb518c6accd4ffed169398cd..7777734ae3899840c1c47e7b24373b4bceee0adc 100644
--- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -75,7 +75,7 @@ case "$FIRMWARE" in
@@ -81,7 +81,7 @@ case "$FIRMWARE" in
ath10kcal_extract "ART" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
;;
@ -36,10 +36,10 @@ index e6fcec8..fa8a2c8 100644
;;
esac
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
index e4a1473..0269e6d 100755
index a79376a8cff56b144268130a24a930ff2bee95cd..20070426fd033e4ff2e904f9247deed9eb48c3c3 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
@@ -366,7 +366,7 @@ tl-wa901nd-v3 |\
@@ -369,7 +369,7 @@ tl-wa901nd-v3 |\
tl-wa901nd-v4 |\
tl-wr703n |\
tube2h |\
@ -49,10 +49,10 @@ index e4a1473..0269e6d 100755
mynet-rext |\
wp543)
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 8670583..d3e6db9 100755
index 0fd139c88e223feada2ad67645cf4d76146ad4dd..a8d889662c95aa87a262cb43efe2f70a0f211b76 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -881,8 +881,8 @@ ar71xx_board_detect() {
@@ -902,8 +902,8 @@ ar71xx_board_detect() {
*UniFi)
name="unifi"
;;
@ -64,10 +64,10 @@ index 8670583..d3e6db9 100755
*"UniFi AP Pro")
name="uap-pro"
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 4c43166..a1b65b7 100755
index fff1c3c912cee678ea88e225958b28ceb4c4b742..90f961f3f0aaf3c76a0a8022258fbf5404165ca8 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -251,7 +251,7 @@ platform_check_image() {
@@ -252,7 +252,7 @@ platform_check_image() {
wlae-ag300n | \
nbg460n_550n_550nh | \
unifi | \
@ -77,7 +77,7 @@ index 4c43166..a1b65b7 100755
carambola2 | \
weio )
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
index 072cf12..31cbe30 100644
index 072cf12a31a0921a8e9b90689864f5d981cd2c32..31cbe30d3ff9b323cb336c62d6fe0d7a0c67ba42 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
@@ -73,7 +73,7 @@ static struct gpio_keys_button ubnt_unifiac_gpio_keys[] __initdata = {
@ -117,7 +117,7 @@ index 072cf12..31cbe30 100644
+MIPS_MACHINE(ATH79_MACH_UBNT_UNIFIAC_LITE, "UBNT-UF-AC-LITE", "Ubiquiti UniFi-AC-LITE",
+ ubnt_unifiac_lite_setup);
diff --git a/target/linux/ar71xx/generic/profiles/ubnt.mk b/target/linux/ar71xx/generic/profiles/ubnt.mk
index 94eff18..eac0240 100644
index 94eff18318264de85ea459e94280c88726404888..eac02406bbbffebbcb20962929fb8254edba520e 100644
--- a/target/linux/ar71xx/generic/profiles/ubnt.mk
+++ b/target/linux/ar71xx/generic/profiles/ubnt.mk
@@ -38,16 +38,16 @@ endef
@ -143,7 +143,7 @@ index 94eff18..eac0240 100644
define Profile/UBNTUNIFIOUTDOOR
NAME:=Ubiquiti UniFiAP Outdoor
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index dd59f2d..3efa2e1 100644
index aaaf89ac1a369431cf9bc15c13e774ba6826bbf3..42ffc69ca3f9b1cffa542fc2d06ead2ef224d6b2 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -741,14 +741,19 @@ endef
@ -170,10 +170,10 @@ index dd59f2d..3efa2e1 100644
rootfs_type=$(patsubst jffs2-%,jffs2,$(patsubst squashfs-%,squashfs,$(1)))
diff --git a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
index 5a7a72c..0ade403 100644
index 27dc73ffa239979a799bbede72440907e9d0e187..9a28f58f67d5f98fcd4aa83dc09698705e2dfa3e 100644
--- a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
+++ b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
@@ -164,7 +164,7 @@
@@ -165,7 +165,7 @@
+ ATH79_MACH_UBNT_RS, /* Ubiquiti RouterStation */
ATH79_MACH_UBNT_UAP_PRO, /* Ubiquiti UniFi AP Pro */
ATH79_MACH_UBNT_UNIFI, /* Ubiquiti Unifi */
@ -182,7 +182,7 @@ index 5a7a72c..0ade403 100644
ATH79_MACH_UBNT_UNIFI_OUTDOOR, /* Ubiquiti UnifiAP Outdoor */
+ ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, /* Ubiquiti UnifiAP Outdoor+ */
ATH79_MACH_UBNT_XM, /* Ubiquiti Networks XM board rev 1.0 */
@@ -1368,7 +1368,7 @@
@@ -1369,7 +1369,7 @@
Ubiquiti Networks XM (rev 1.0) board.
+config ATH79_MACH_UBNT_UNIFIAC

View File

@ -8,10 +8,10 @@ Signed-off-by: P.Wassi <p.wassi at gmx.at>
Backport of LEDE 8307c2fe686ded345c80318359d5b6679e581fa2
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index 3d711ca..775aac6 100644
index 924c1163e26eb84b71e4734b95221104674bfe3e..cb92349cab833179a87a195b94e2539cc5ce3e79 100644
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -297,7 +297,8 @@ get_status_led() {
@@ -310,7 +310,8 @@ get_status_led() {
status_led="ubnt:green:dome"
;;
uap-pro | \
@ -22,10 +22,10 @@ index 3d711ca..775aac6 100644
;;
unifi-outdoor-plus)
diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index fa8a2c8..cde7aaf 100644
index 7777734ae3899840c1c47e7b24373b4bceee0adc..5eb20bb26521258599898125d42f6b73b9c81f94 100644
--- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -75,7 +75,8 @@ case "$FIRMWARE" in
@@ -81,7 +81,8 @@ case "$FIRMWARE" in
ath10kcal_extract "ART" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
;;
@ -36,10 +36,10 @@ index fa8a2c8..cde7aaf 100644
;;
esac
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
index 0269e6d..0a23756 100755
index 20070426fd033e4ff2e904f9247deed9eb48c3c3..b59844eac49a1269edb88890d89b0b4d8a7121d0 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
@@ -398,6 +398,13 @@ wpj344)
@@ -401,6 +401,13 @@ wpj344)
ucidef_add_switch_vlan "switch0" "2" "0t 2"
;;
@ -54,10 +54,10 @@ index 0269e6d..0a23756 100755
ucidef_set_interfaces_lan_wan "eth0" "eth1"
;;
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index d3e6db9..7fc951a 100755
index a8d889662c95aa87a262cb43efe2f70a0f211b76..28f07b8de66c8262a7d3fb6428b91f22593292c9 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -884,6 +884,9 @@ ar71xx_board_detect() {
@@ -905,6 +905,9 @@ ar71xx_board_detect() {
*"UniFi-AC-LITE")
name="unifiac-lite"
;;
@ -68,10 +68,10 @@ index d3e6db9..7fc951a 100755
name="uap-pro"
;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index a1b65b7..0e9833d 100755
index 90f961f3f0aaf3c76a0a8022258fbf5404165ca8..0228f14774d5873a52f19b60ed84389c7be86e51 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -252,6 +252,7 @@ platform_check_image() {
@@ -253,6 +253,7 @@ platform_check_image() {
nbg460n_550n_550nh | \
unifi | \
unifiac-lite | \
@ -80,7 +80,7 @@ index a1b65b7..0e9833d 100755
carambola2 | \
weio )
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
index 31cbe30..9194bc1 100644
index 31cbe30d3ff9b323cb336c62d6fe0d7a0c67ba42..9194bc1c0799d83fca3f6fe76b2602d72e5f4ef8 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
@@ -21,6 +21,7 @@
@ -171,7 +171,7 @@ index 31cbe30..9194bc1 100644
+MIPS_MACHINE(ATH79_MACH_UBNT_UNIFIAC_PRO, "UBNT-UF-AC-PRO", "Ubiquiti UniFi-AC-PRO",
+ ubnt_unifiac_pro_setup);
diff --git a/target/linux/ar71xx/generic/profiles/ubnt.mk b/target/linux/ar71xx/generic/profiles/ubnt.mk
index eac0240..69b8398 100644
index eac02406bbbffebbcb20962929fb8254edba520e..69b83985bd6623c0d6732399d3e2cc8c0af9f9f1 100644
--- a/target/linux/ar71xx/generic/profiles/ubnt.mk
+++ b/target/linux/ar71xx/generic/profiles/ubnt.mk
@@ -49,6 +49,17 @@ endef
@ -193,7 +193,7 @@ index eac0240..69b8398 100644
NAME:=Ubiquiti UniFiAP Outdoor
PACKAGES:=
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index 3efa2e1..58118f2 100644
index 42ffc69ca3f9b1cffa542fc2d06ead2ef224d6b2..7c648f26e10c49000b848e9b300701b388410c04 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -753,7 +753,13 @@ define Device/ubnt-unifiac-lite
@ -212,18 +212,18 @@ index 3efa2e1..58118f2 100644
rootfs_type=$(patsubst jffs2-%,jffs2,$(patsubst squashfs-%,squashfs,$(1)))
diff --git a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
index 0ade403..dbd3fca 100644
index 9a28f58f67d5f98fcd4aa83dc09698705e2dfa3e..debde6e6a552e71b551d8c01ba06af03013407bf 100644
--- a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
+++ b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
-@@ -16,22 +16,200 @@
+@@ -16,22 +16,201 @@
-@@ -16,22 +16,201 @@
+@@ -16,22 +16,202 @@
enum ath79_mach_type {
ATH79_MACH_GENERIC = 0,
@@ -165,6 +165,7 @@
@@ -166,6 +166,7 @@
ATH79_MACH_UBNT_UAP_PRO, /* Ubiquiti UniFi AP Pro */
ATH79_MACH_UBNT_UNIFI, /* Ubiquiti Unifi */
+ ATH79_MACH_UBNT_UNIFIAC_LITE, /* Ubiquiti Unifi AC LITE/LR */
@ -231,7 +231,7 @@ index 0ade403..dbd3fca 100644
ATH79_MACH_UBNT_UNIFI_OUTDOOR, /* Ubiquiti UnifiAP Outdoor */
+ ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, /* Ubiquiti UnifiAP Outdoor+ */
ATH79_MACH_UBNT_XM, /* Ubiquiti Networks XM board rev 1.0 */
@@ -1363,12 +1364,12 @@
@@ -1364,12 +1365,12 @@
config ATH79_MACH_UBNT_XM
bool "Ubiquiti Networks XM/UniFi boards"
@ -246,7 +246,7 @@ index 0ade403..dbd3fca 100644
+ select SOC_QCA956X
+ select ATH79_DEV_AP9X_PCI if PCI
+ select ATH79_DEV_ETH
@@ -1376,6 +1377,7 @@
@@ -1377,6 +1378,7 @@
+ select ATH79_DEV_LEDS_GPIO
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_WMAC
@ -254,7 +254,7 @@ index 0ade403..dbd3fca 100644
+
+config ATH79_MACH_WEIO
+ bool "WeIO board"
@@ -1480,7 +1482,7 @@
@@ -1481,7 +1483,7 @@
endmenu
config SOC_AR71XX
@ -263,7 +263,7 @@ index 0ade403..dbd3fca 100644
config ATH79_DEV_ETH
def_bool n
@@ -1492,7 +1494,7 @@
@@ -1493,7 +1495,7 @@
def_bool n
config ATH79_DEV_GPIO_BUTTONS

View File

@ -4,7 +4,7 @@ Subject: libjson-c: Add support for custom format strings for doubles
diff --git a/package/libs/libjson-c/patches/002-custom-format-string.patch b/package/libs/libjson-c/patches/002-custom-format-string.patch
new file mode 100644
index 0000000..2f454c5
index 0000000000000000000000000000000000000000..2f454c560ff78c1edd4654b9651f0e6299bd5e6f
--- /dev/null
+++ b/package/libs/libjson-c/patches/002-custom-format-string.patch
@@ -0,0 +1,98 @@

View File

@ -6,7 +6,7 @@ Patch-by: Stefan Rompf <stefan@loplof.de>
diff --git a/package/kernel/mac80211/patches/931-ubnt-uap-plus-hsr.patch b/package/kernel/mac80211/patches/931-ubnt-uap-plus-hsr.patch
new file mode 100644
index 0000000..8e09fee
index 0000000000000000000000000000000000000000..8e09fee938951ab3636d23b5fe4dee3ab0e11c7a
--- /dev/null
+++ b/package/kernel/mac80211/patches/931-ubnt-uap-plus-hsr.patch
@@ -0,0 +1,349 @@
@ -360,7 +360,7 @@ index 0000000..8e09fee
+
+ #endif /* _LINUX_ATH9K_PLATFORM_H */
diff --git a/target/linux/ar71xx/patches-3.18/608-MIPS-ath79-ubnt-xm-add-more-boards.patch b/target/linux/ar71xx/patches-3.18/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
index 7803513..d865ed2 100644
index 78035131db93f3e465585d7e96bfae9e88783d28..d865ed29ac268b6b49644c0841be6dfeace75038 100644
--- a/target/linux/ar71xx/patches-3.18/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
+++ b/target/linux/ar71xx/patches-3.18/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
@@ -254,6 +254,7 @@
@ -373,7 +373,7 @@ index 7803513..d865ed2 100644
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_unifi_outdoor_plus_leds_gpio),
diff --git a/target/linux/generic/patches-3.18/150-ath9k_ubnt_hsr_filter.patch b/target/linux/generic/patches-3.18/150-ath9k_ubnt_hsr_filter.patch
new file mode 100644
index 0000000..b8844f1
index 0000000000000000000000000000000000000000..b8844f1341f9a8a478730ef6ac440833b84b3e98
--- /dev/null
+++ b/target/linux/generic/patches-3.18/150-ath9k_ubnt_hsr_filter.patch
@@ -0,0 +1,16 @@

View File

@ -14,7 +14,7 @@ Signed-off-by: Riley Baird <BM-2cVqnDuYbAU5do2DfJTrN7ZbAJ246S4XiX@bitmessage.ch>
Backport of r47236
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c
index 0087cac..5d23f21 100644
index 0087cac62087786d45bd5c8b68b2ec2ce3b5715e..5d23f21763cd9f4ddafc97f79ff47e819a18f2a6 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c
@@ -36,7 +36,7 @@

View File

@ -1,30 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Tue, 17 May 2016 16:38:29 +0200
Subject: ar71xx: Generate sysupgrade images for OpenMesh devices
Some OpenWrt based firmwares like Gluon expect that a sysupgrade image
exists when a device firmware can be updated via sysupgrade. This image
wasn't created until now because OpenMesh devices use the same image for
factory and sysupgrade flash. Copying the image from *factory.bin to
*sysupgrade.bin is therefore enough to make the sysupgrade functionality
visible.
Reported-by: Matthias Schiffer <mschiffer@universe-factory.net>
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Forwarded: https://patchwork.ozlabs.org/patch/624172/
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index 58118f2..7aee0c8 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -1877,6 +1877,9 @@ define Image/Build/OpenMesh
"$(BUILD_DIR)/fwupgrade.cfg-$(4)" "fwupgrade.cfg" \
"$(KDIR_TMP)/vmlinux-$(2).uImage" "kernel" \
"$(KDIR)/root.$(1)" "rootfs"
+ if [ -e "$(call factoryname,$(1),$(2))" ]; then \
+ cp "$(call factoryname,$(1),$(2))" "$(call sysupname,$(1),$(2))"; \
+ fi
endef

View File

@ -11,7 +11,7 @@ Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Backport of r49100
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c
index 5d23f21..37ffc4c 100644
index 5d23f21763cd9f4ddafc97f79ff47e819a18f2a6..37ffc4c56be33be96c43078117d7b123679378b3 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c
@@ -12,6 +12,7 @@

View File

@ -10,10 +10,10 @@ Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
Backport of r49101
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
index 9a768cd..ae17853 100644
index f4d523418c8d59e3c96dbe3d68eedd8d85e33546..b8677960249c1e05703570fdf2be4197bde5cac5 100644
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
@@ -590,6 +590,21 @@ wnr2000-v4)
@@ -600,6 +600,21 @@ wnr2000-v4)
ucidef_set_led_usbdev "usb" "USB" "netgear:amber:status" "1-1"
;;
@ -36,7 +36,7 @@ index 9a768cd..ae17853 100644
ucidef_set_led_netdev "wan-amber" "WAN (amber)" "netgear:amber:wan" "eth0"
ucidef_set_led_wlan "wlan" "WLAN" "netgear:blue:wlan" "phy0tpt"
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c
index 37ffc4c..258d254 100644
index 37ffc4c56be33be96c43078117d7b123679378b3..258d254cf4abfc01a4d859f3f464b2a25aeec165 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c
@@ -15,6 +15,8 @@

View File

@ -1,202 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Mon, 14 Sep 2015 20:10:43 +0000
Subject: ar71xx: add kernel support for the OpenMesh MR1750 board
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r46926
Forwarded: https://patchwork.ozlabs.org/patch/624173/
diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18
index 9a81911..c5a3c9a 100644
--- a/target/linux/ar71xx/config-3.18
+++ b/target/linux/ar71xx/config-3.18
@@ -79,6 +79,7 @@ CONFIG_ATH79_MACH_JWAP003=y
CONFIG_ATH79_MACH_MC_MAC1200R=y
CONFIG_ATH79_MACH_MR16=y
CONFIG_ATH79_MACH_MR12=y
+CONFIG_ATH79_MACH_MR1750=y
CONFIG_ATH79_MACH_MR600=y
CONFIG_ATH79_MACH_MR900=y
CONFIG_ATH79_MACH_MYNET_N600=y
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
new file mode 100644
index 0000000..8ace02f
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
@@ -0,0 +1,129 @@
+/*
+ * MR1750 board support
+ *
+ * Copyright (c) 2012 Qualcomm Atheros
+ * Copyright (c) 2012-2013 Marek Lindner <marek@open-mesh.com>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+#include <linux/platform_device.h>
+#include <linux/ar8216_platform.h>
+
+#include <asm/mach-ath79/ar71xx_regs.h>
+
+#include "common.h"
+#include "dev-ap9x-pci.h"
+#include "dev-gpio-buttons.h"
+#include "dev-eth.h"
+#include "dev-leds-gpio.h"
+#include "dev-m25p80.h"
+#include "dev-wmac.h"
+#include "machtypes.h"
+#include "pci.h"
+
+#define MR1750_GPIO_LED_LAN 12
+#define MR1750_GPIO_LED_WLAN_2G 13
+#define MR1750_GPIO_LED_STATUS_GREEN 19
+#define MR1750_GPIO_LED_STATUS_RED 21
+#define MR1750_GPIO_LED_POWER 22
+#define MR1750_GPIO_LED_WLAN_5G 23
+
+#define MR1750_GPIO_BTN_RESET 17
+
+#define MR1750_KEYS_POLL_INTERVAL 20 /* msecs */
+#define MR1750_KEYS_DEBOUNCE_INTERVAL (3 * MR1750_KEYS_POLL_INTERVAL)
+
+#define MR1750_MAC0_OFFSET 0
+#define MR1750_WMAC_CALDATA_OFFSET 0x1000
+
+static struct gpio_led mr1750_leds_gpio[] __initdata = {
+ {
+ .name = "mr1750:blue:power",
+ .gpio = MR1750_GPIO_LED_POWER,
+ .active_low = 1,
+ },
+ {
+ .name = "mr1750:blue:wan",
+ .gpio = MR1750_GPIO_LED_LAN,
+ .active_low = 1,
+ },
+ {
+ .name = "mr1750:blue:wlan24",
+ .gpio = MR1750_GPIO_LED_WLAN_2G,
+ .active_low = 1,
+ },
+ {
+ .name = "mr1750:blue:wlan58",
+ .gpio = MR1750_GPIO_LED_WLAN_5G,
+ .active_low = 1,
+ },
+ {
+ .name = "mr1750:green:status",
+ .gpio = MR1750_GPIO_LED_STATUS_GREEN,
+ .active_low = 1,
+ },
+ {
+ .name = "mr1750:red:status",
+ .gpio = MR1750_GPIO_LED_STATUS_RED,
+ .active_low = 1,
+ },
+};
+
+static struct gpio_keys_button mr1750_gpio_keys[] __initdata = {
+ {
+ .desc = "Reset button",
+ .type = EV_KEY,
+ .code = KEY_RESTART,
+ .debounce_interval = MR1750_KEYS_DEBOUNCE_INTERVAL,
+ .gpio = MR1750_GPIO_BTN_RESET,
+ .active_low = 1,
+ },
+};
+
+static void __init mr1750_setup(void)
+{
+ u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
+ u8 mac[6];
+
+ ath79_eth0_pll_data.pll_1000 = 0xbe000101;
+ ath79_eth0_pll_data.pll_100 = 0x80000101;
+ ath79_eth0_pll_data.pll_10 = 0x80001313;
+
+ ath79_register_m25p80(NULL);
+
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(mr1750_leds_gpio),
+ mr1750_leds_gpio);
+ ath79_register_gpio_keys_polled(-1, MR1750_KEYS_POLL_INTERVAL,
+ ARRAY_SIZE(mr1750_gpio_keys),
+ mr1750_gpio_keys);
+
+ ath79_init_mac(mac, art + MR1750_MAC0_OFFSET, 1);
+ ath79_register_wmac(art + MR1750_WMAC_CALDATA_OFFSET, mac);
+ ath79_register_pci();
+
+ ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
+ ath79_register_mdio(0, 0x0);
+
+ ath79_init_mac(ath79_eth0_data.mac_addr, art + MR1750_MAC0_OFFSET, 0);
+
+ /* GMAC0 is connected to the RMGII interface */
+ ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
+ ath79_eth0_data.phy_mask = BIT(5);
+ ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
+
+ ath79_register_eth(0);
+}
+
+MIPS_MACHINE(ATH79_MACH_MR1750, "MR1750", "OpenMesh MR1750", mr1750_setup);
diff --git a/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch b/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch
new file mode 100644
index 0000000..d802a12
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch
@@ -0,0 +1,39 @@
+--- a/arch/mips/ath79/Kconfig
++++ b/arch/mips/ath79/Kconfig
+@@ -763,6 +763,16 @@ config ATH79_MACH_CAP4200AG
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_WMAC
+
++config ATH79_MACH_MR1750
++ bool "OpenMesh MR1750 board support"
++ select SOC_QCA955X
++ select ATH79_DEV_AP9X_PCI if PCI
++ select ATH79_DEV_ETH
++ select ATH79_DEV_GPIO_BUTTONS
++ select ATH79_DEV_LEDS_GPIO
++ select ATH79_DEV_M25P80
++ select ATH79_DEV_WMAC
++
+ config ATH79_MACH_MR900
+ bool "OpenMesh MR900 board support"
+ select SOC_QCA955X
+--- a/arch/mips/ath79/Makefile
++++ b/arch/mips/ath79/Makefile
+@@ -80,6 +80,7 @@ obj-$(CONFIG_ATH79_MACH_HORNET_UB) += ma
+ obj-$(CONFIG_ATH79_MACH_MC_MAC1200R) += mach-mc-mac1200r.o
+ obj-$(CONFIG_ATH79_MACH_MR12) += mach-mr12.o
+ obj-$(CONFIG_ATH79_MACH_MR16) += mach-mr16.o
++obj-$(CONFIG_ATH79_MACH_MR1750) += mach-mr1750.o
+ obj-$(CONFIG_ATH79_MACH_MR600) += mach-mr600.o
+ obj-$(CONFIG_ATH79_MACH_MR900) += mach-mr900.o
+ obj-$(CONFIG_ATH79_MACH_MYNET_N600) += mach-mynet-n600.o
+--- a/arch/mips/ath79/machtypes.h
++++ b/arch/mips/ath79/machtypes.h
+@@ -69,6 +69,7 @@ enum ath79_mach_type {
+ ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */
+ ATH79_MACH_MR12, /* Cisco Meraki MR12 */
+ ATH79_MACH_MR16, /* Cisco Meraki MR16 */
++ ATH79_MACH_MR1750, /* OpenMesh MR1750 */
+ ATH79_MACH_MR600V2, /* OpenMesh MR600v2 */
+ ATH79_MACH_MR600, /* OpenMesh MR600 */
+ ATH79_MACH_MR900, /* OpenMesh MR900 */

View File

@ -9,10 +9,10 @@ https://raw.githubusercontent.com/domino-team/OpenWrt-patches/master/AR150%2C%20
(and fixed indentation in target/linux/ar71xx/base-files/lib/ar71xx.sh)
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
index ae17853..dc8b8d6 100644
index b8677960249c1e05703570fdf2be4197bde5cac5..d81358d6bf9103ffeb2929b06d3ab01efffe931c 100644
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
@@ -181,6 +181,10 @@ dlan-pro-1200-ac)
@@ -188,6 +188,10 @@ dlan-pro-1200-ac)
ucidef_set_led_trigger_gpio "plcr" "dLAN" "devolo:error:dlan" "16" "0"
;;
@ -24,10 +24,10 @@ index ae17853..dc8b8d6 100644
ucidef_set_led_netdev "lan" "LAN" "gl-connect:green:lan" "eth1"
ucidef_set_led_wlan "wlan" "WLAN" "gl-connect:red:wlan" "phy0tpt"
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
index 4066506..89a2184 100755
index b59844eac49a1269edb88890d89b0b4d8a7121d0..ac3deb8aa2ed4717e2bd682cb4ffd7d32c50134f 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
@@ -381,6 +381,7 @@ dir-505-a1)
@@ -383,6 +383,7 @@ dir-505-a1)
alfa-ap96 |\
alfa-nx |\
ap83 |\
@ -36,10 +36,10 @@ index 4066506..89a2184 100755
jwap003 |\
pb42 |\
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index fbf76c8..db908f9 100755
index 28f07b8de66c8262a7d3fb6428b91f22593292c9..3bd6aed909efc84ab1657862b4bd36534a54f2c2 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -500,6 +500,9 @@ ar71xx_board_detect() {
@@ -503,6 +503,9 @@ ar71xx_board_detect() {
name="gl-inet"
gl_inet_board_detect
;;
@ -50,10 +50,10 @@ index fbf76c8..db908f9 100755
name="epg5000"
;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 4a4c476..aeb4577 100755
index 0228f14774d5873a52f19b60ed84389c7be86e51..d816f211891d6a259930f2781574504ea62b4e16 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -215,6 +215,7 @@ platform_check_image() {
@@ -216,6 +216,7 @@ platform_check_image() {
dlan-pro-500-wp | \
dlan-pro-1200-ac | \
dragino2 | \
@ -62,10 +62,10 @@ index 4a4c476..aeb4577 100755
esr1750 | \
esr900 | \
diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18
index 514f7d5..0903ee9 100644
index a068cc5768aed6f29a67de27d24f00dc57e0695a..d4d92738d0ab010e1d43ebed0baef34fd9bc3f9d 100644
--- a/target/linux/ar71xx/config-3.18
+++ b/target/linux/ar71xx/config-3.18
@@ -69,6 +69,7 @@ CONFIG_ATH79_MACH_ESR1750=y
@@ -70,6 +70,7 @@ CONFIG_ATH79_MACH_ESR1750=y
CONFIG_ATH79_MACH_ESR900=y
CONFIG_ATH79_MACH_EW_DORIN=y
CONFIG_ATH79_MACH_F9K1115V2=y
@ -75,7 +75,7 @@ index 514f7d5..0903ee9 100644
CONFIG_ATH79_MACH_GS_OOLITE=y
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-gl-ar150.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-gl-ar150.c
new file mode 100644
index 0000000..310182c
index 0000000000000000000000000000000000000000..310182cc8e9c22e2bfcb168996d4f01d117dc103
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-gl-ar150.c
@@ -0,0 +1,125 @@
@ -206,7 +206,7 @@ index 0000000..310182c
+MIPS_MACHINE(ATH79_MACH_GL_AR150, "GL-AR150", "GL AR150",gl_ar150_setup);
diff --git a/target/linux/ar71xx/generic/profiles/gl-connect.mk b/target/linux/ar71xx/generic/profiles/gl-connect.mk
deleted file mode 100644
index e9377db..0000000
index e9377dbbfa042f790f15817313c24b2700617f37..0000000000000000000000000000000000000000
--- a/target/linux/ar71xx/generic/profiles/gl-connect.mk
+++ /dev/null
@@ -1,17 +0,0 @@
@ -229,7 +229,7 @@ index e9377db..0000000
-$(eval $(call Profile,GLINET))
diff --git a/target/linux/ar71xx/generic/profiles/gli.mk b/target/linux/ar71xx/generic/profiles/gli.mk
new file mode 100644
index 0000000..a6ad661
index 0000000000000000000000000000000000000000..a6ad661666a168a591319e74ef211277f8617fca
--- /dev/null
+++ b/target/linux/ar71xx/generic/profiles/gli.mk
@@ -0,0 +1,27 @@
@ -261,7 +261,7 @@ index 0000000..a6ad661
+
+$(eval $(call Profile,GL-AR150))
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index 0cf1df1..b790610 100644
index 7c648f26e10c49000b848e9b300701b388410c04..05eea0b16c362ba5f70c9f435dbe312087b319c2 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -144,6 +144,14 @@ define Device/weio
@ -281,7 +281,7 @@ index 0cf1df1..b790610 100644
NETGEAR_KERNEL_MAGIC = 0x33373030
diff --git a/target/linux/ar71xx/patches-3.18/911-MIPS-ath79-add-gl_ar150.patch b/target/linux/ar71xx/patches-3.18/911-MIPS-ath79-add-gl_ar150.patch
new file mode 100644
index 0000000..31db581
index 0000000000000000000000000000000000000000..31db5816caf5dc8076ceec349884cf9a47b2fc68
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.18/911-MIPS-ath79-add-gl_ar150.patch
@@ -0,0 +1,39 @@

View File

@ -1,67 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Mon, 14 Sep 2015 20:11:01 +0000
Subject: ar71xx: add user-space support for the OpenMesh MR1750 board
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r46927
Forwarded: https://patchwork.ozlabs.org/patch/624174/
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
index 775aac6..44d2ddf 100644
--- a/target/linux/ar71xx/base-files/etc/diag.sh
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
@@ -143,6 +143,9 @@ get_status_led() {
mr600v2)
status_led="mr600:blue:power"
;;
+ mr1750)
+ status_led="mr1750:blue:power"
+ ;;
mr900 | \
mr900v2)
status_led="mr900:blue:power"
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
index a4b355a..c451124 100644
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
@@ -239,6 +239,12 @@ mr600)
ucidef_set_led_wlan "wlan58" "WLAN58" "mr600:green:wlan58" "phy0tpt"
;;
+mr1750)
+ ucidef_set_led_netdev "lan" "LAN" "mr1750:blue:wan" "eth0"
+ ucidef_set_led_wlan "wlan58" "WLAN58" "mr1750:blue:wlan58" "phy0tpt"
+ ucidef_set_led_wlan "wlan24" "WLAN24" "mr1750:blue:wlan24" "phy1tpt"
+ ;;
+
mr900 | \
mr900v2)
ucidef_set_led_netdev "lan" "LAN" "mr900:blue:wan" "eth0"
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
index 0a23756..4066506 100755
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
@@ -334,6 +334,7 @@ eap300v2 |\
eap7660d |\
el-mini |\
loco-m-xw |\
+mr1750 |\
mr600 |\
mr600v2 |\
mr900 |\
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 7fc951a..587d029 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -562,6 +562,9 @@ ar71xx_board_detect() {
*MR600v2)
name="mr600v2"
;;
+ *MR1750)
+ name="mr1750"
+ ;;
*MR600)
name="mr600"
;;

View File

@ -21,7 +21,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Backport of LEDE 6fb212f2933bbbdf2935124205717c9d0ca72b32
diff --git a/include/host-build.mk b/include/host-build.mk
index e2b5f2f..44401b8 100644
index e2b5f2f8d1882207e11697df3df1302076adfaa3..44401b866a4d637648bb093470a5e66b4a3e38fc 100644
--- a/include/host-build.mk
+++ b/include/host-build.mk
@@ -10,7 +10,7 @@ HOST_INSTALL_DIR ?= $(HOST_BUILD_DIR)/host-install
@ -34,7 +34,7 @@ index e2b5f2f..44401b8 100644
HOST_MAKE_J:=-j$(CONFIG_PKG_BUILD_JOBS)
endif
diff --git a/include/package.mk b/include/package.mk
index c69d928..a99cdc6 100644
index c69d92819779dd0ee92381620accd73ef2b80de6..a99cdc6990280d7ef83223861cd9f224c6eebc33 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -23,7 +23,7 @@ PKG_RELRO_PARTIAL ?= 1

View File

@ -1,32 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Mon, 14 Sep 2015 20:11:18 +0000
Subject: scripts/om-fwupgradecfg-gen.sh: add support for the MR1750
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r46928
Forwarded: https://patchwork.ozlabs.org/patch/624175/
diff --git a/scripts/om-fwupgradecfg-gen.sh b/scripts/om-fwupgradecfg-gen.sh
index e132954..c790214 100644
--- a/scripts/om-fwupgradecfg-gen.sh
+++ b/scripts/om-fwupgradecfg-gen.sh
@@ -7,7 +7,7 @@
#
usage() {
- echo "Usage: $0 <OM2P|OM5P|MR600|MR900> <out file path> <kernel path> <rootfs path>"
+ echo "Usage: $0 <OM2P|OM5P|MR600|MR900|MR1750> <out file path> <kernel path> <rootfs path>"
rm -f $CFG_OUT
exit 1
}
@@ -26,7 +26,7 @@ case $CE_TYPE in
FLASH_BS=262144
MD5_SKIP_BLOCKS=1
;;
- OM5P|MR600|MR900)
+ OM5P|MR600|MR900|MR1750)
MAX_PART_SIZE=7808
KERNEL_FLASH_ADDR=0xb0000
FLASH_BS=65536

View File

@ -1,55 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Mon, 14 Sep 2015 20:11:24 +0000
Subject: ar71xx: enable sysupgrade for the OpenMesh MR1750
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r46929
Forwarded: https://patchwork.ozlabs.org/patch/624176/
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
index 547116e..9ca0f5b 100644
--- a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
@@ -72,6 +72,11 @@ platform_check_image_openmesh()
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
return 1
;;
+ MR1750)
+ [ "$board" = "mr1750" ] && break
+ echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
+ return 1
+ ;;
MR600)
[ "$board" = "mr600" ] && break
[ "$board" = "mr600v2" ] && break
@@ -157,7 +162,7 @@ platform_do_upgrade_openmesh()
kernel_start_addr1=0x9f1c0000
kernel_start_addr2=0x9f8c0000
;;
- OM5P|MR600|MR900)
+ OM5P|MR600|MR900|MR1750)
block_size=$((64 * 1024))
total_size=7995392
kernel_start_addr1=0x9f0b0000
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 0e9833d..ac060ea 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -296,6 +296,7 @@ platform_check_image() {
return 0;
;;
+ mr1750 | \
mr600 | \
mr600v2 | \
mr900 | \
@@ -528,6 +529,7 @@ platform_do_upgrade() {
tew-673gru)
platform_do_upgrade_dir825b "$ARGV"
;;
+ mr1750 | \
mr600 | \
mr600v2 | \
mr900 | \

View File

@ -10,7 +10,7 @@ kmod-ipv6 is added to the PROVIDES of the kernel package, so we don't have
to adjust all packages depending on kmod-ipv6.
diff --git a/config/Config-build.in b/config/Config-build.in
index 4674d84..cd50290 100644
index 4674d8403539a3b209d709342ab71a6e6ff79de2..cd50290f812f73bc6886a789a456956fa4fb1e42 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -83,7 +83,7 @@ menu "Global build settings"
@ -23,7 +23,7 @@ index 4674d84..cd50290 100644
config PKG_BUILD_PARALLEL
bool
diff --git a/package/kernel/linux/Makefile b/package/kernel/linux/Makefile
index 45ca9fa..b06c49a 100644
index 45ca9faa923eb1a1db97d94d0406a46223c59a8f..b06c49a92fd396e8edcb0ca7a7a94b74b05a87e0 100644
--- a/package/kernel/linux/Makefile
+++ b/package/kernel/linux/Makefile
@@ -49,6 +49,7 @@ define Package/kernel
@ -35,7 +35,7 @@ index 45ca9fa..b06c49a 100644
define Package/kernel/install
diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
index cea8e47..8a2760d 100644
index cea8e47a65b5283640a17ed6c311bd87c70373b2..8a2760d8a4a429f206eba41a8c83432e5b6ddab7 100644
--- a/package/kernel/linux/modules/netsupport.mk
+++ b/package/kernel/linux/modules/netsupport.mk
@@ -439,7 +439,7 @@ $(eval $(call KernelPackage,iptunnel4))
@ -130,7 +130,7 @@ index cea8e47..8a2760d 100644
define KernelPackage/sctp/description
diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile
index 19a8df9..8fd51fe 100644
index 19a8df9009da7fee967b84f65248470db3b34150..8fd51fe8748082b072710b718300a706832b25be 100644
--- a/package/network/services/dnsmasq/Makefile
+++ b/package/network/services/dnsmasq/Makefile
@@ -52,7 +52,6 @@ define Package/dnsmasq-full

View File

@ -7,7 +7,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Backport of LEDE 3ee6c17cd14ec1fed0b0491542c499c03fc6d211
diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk
index eb4c874..1830d64 100644
index eb4c874047e8a9e24a4d77b13f7ba66e1221cbb5..1830d644c36fa3dad342d3283529a18b8d70a377 100644
--- a/include/package-ipkg.mk
+++ b/include/package-ipkg.mk
@@ -154,7 +154,7 @@ Package: $(1)

View File

@ -1,23 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Mon, 14 Sep 2015 20:11:35 +0000
Subject: package/om-watchdog: add OpenMesh MR1750 support
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r46930
Forwarded: https://patchwork.ozlabs.org/patch/624177/
diff --git a/package/kernel/om-watchdog/files/om-watchdog.init b/package/kernel/om-watchdog/files/om-watchdog.init
index 135fef7..c792968 100644
--- a/package/kernel/om-watchdog/files/om-watchdog.init
+++ b/package/kernel/om-watchdog/files/om-watchdog.init
@@ -25,7 +25,7 @@ boot() {
"mr600v2")
service_start /sbin/om-watchdog 15
;;
- "mr900"|"mr900v2")
+ "mr900"|"mr900v2"|"mr1750")
service_start /sbin/om-watchdog 16
;;
esac

View File

@ -13,7 +13,7 @@ The packages kmod-crypto-{core,arc4} are added to kernel PROVIDES to
satisfy dependencies of CC packages.
diff --git a/package/kernel/linux/Makefile b/package/kernel/linux/Makefile
index b06c49a..19bcbd5 100644
index b06c49a92fd396e8edcb0ca7a7a94b74b05a87e0..19bcbd582ba06cb8cdb9ee869c50a67dbfd470bb 100644
--- a/package/kernel/linux/Makefile
+++ b/package/kernel/linux/Makefile
@@ -49,7 +49,7 @@ define Package/kernel
@ -26,7 +26,7 @@ index b06c49a..19bcbd5 100644
define Package/kernel/install
diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
index c8e0fbb..926dab0 100644
index c8e0fbb04397c9b1fa7ebde3579f663b5d756e1b..926dab0e3379efbc92aeac865b02673928c18644 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -15,24 +15,9 @@ crypto_confvar=CONFIG_CRYPTO_$(word 1,$(subst =,$(space),$(1)))
@ -74,7 +74,7 @@ index c8e0fbb..926dab0 100644
TITLE:=Combined mode wrapper for IPsec
DEPENDS:=+kmod-crypto-manager
diff --git a/package/kernel/linux/modules/fs.mk b/package/kernel/linux/modules/fs.mk
index fa18237..cc87a45 100644
index fa182375ea8b0224753141620bd168328194ddf4..cc87a45961d04d93badce575530495f994deee86 100644
--- a/package/kernel/linux/modules/fs.mk
+++ b/package/kernel/linux/modules/fs.mk
@@ -91,7 +91,6 @@ define KernelPackage/fs-cifs
@ -86,7 +86,7 @@ index fa18237..cc87a45 100644
+kmod-crypto-md5 \
+kmod-crypto-md4 \
diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
index 8a2760d..ab76946 100644
index 8a2760d8a4a429f206eba41a8c83432e5b6ddab7..ab76946d2ab30e748ea5bc69c24051dbfc411036 100644
--- a/package/kernel/linux/modules/netsupport.mk
+++ b/package/kernel/linux/modules/netsupport.mk
@@ -714,7 +714,7 @@ $(eval $(call KernelPackage,ipoa))
@ -108,7 +108,7 @@ index 8a2760d..ab76946 100644
define KernelPackage/rxrpc/description
diff --git a/target/linux/generic/config-3.18 b/target/linux/generic/config-3.18
index 6038692..a0dc3c9 100644
index 6038692b7e81334e4864d30453f734f4fe829aa0..a0dc3c9b607abe32c1ca021b7fad293a8f742ec1 100644
--- a/target/linux/generic/config-3.18
+++ b/target/linux/generic/config-3.18
@@ -700,9 +700,10 @@ CONFIG_CRYPTO_ALGAPI=y
@ -125,7 +125,7 @@ index 6038692..a0dc3c9 100644
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_CAST5 is not set
diff --git a/target/linux/omap/config-3.18 b/target/linux/omap/config-3.18
index a06a350..d5003c2 100644
index a06a350a37c035c66ec8d6242f28379e7992685e..d5003c275b2b2a167d4614f5e33269941a02173e 100644
--- a/target/linux/omap/config-3.18
+++ b/target/linux/omap/config-3.18
@@ -114,9 +114,6 @@ CONFIG_CPU_V7=y
@ -139,7 +139,7 @@ index a06a350..d5003c2 100644
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CTR=m
diff --git a/target/linux/sunxi/config-3.18 b/target/linux/sunxi/config-3.18
index ddc3f7a..57651bb 100644
index ddc3f7acb82064fb3be16f5111b0c4344b01c362..57651bbd65ebc61b14d45aefaaf20e5b8d59e27a 100644
--- a/target/linux/sunxi/config-3.18
+++ b/target/linux/sunxi/config-3.18
@@ -110,9 +110,6 @@ CONFIG_CPU_TLB_V7=y

View File

@ -1,22 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Mon, 14 Sep 2015 20:11:43 +0000
Subject: package/uboot-envtools: add OpenMesh MR1750 support
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r46931
Forwarded: https://patchwork.ozlabs.org/patch/624178/
diff --git a/package/boot/uboot-envtools/files/ar71xx b/package/boot/uboot-envtools/files/ar71xx
index ec8541c..ef00f17 100644
--- a/package/boot/uboot-envtools/files/ar71xx
+++ b/package/boot/uboot-envtools/files/ar71xx
@@ -21,6 +21,7 @@ carambola2 | \
eap300v2 | \
hornet-ub | \
hornet-ub-x2 | \
+mr1750 | \
mr600 | \
mr600v2 | \
mr900 | \

View File

@ -1,57 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Mon, 14 Sep 2015 20:11:51 +0000
Subject: ar71xx: create profile and build image for the OpenMesh MR1750 board
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r46932
Forwarded: https://patchwork.ozlabs.org/patch/624179/
diff --git a/target/linux/ar71xx/generic/profiles/openmesh.mk b/target/linux/ar71xx/generic/profiles/openmesh.mk
index 41b462e..06cf135 100644
--- a/target/linux/ar71xx/generic/profiles/openmesh.mk
+++ b/target/linux/ar71xx/generic/profiles/openmesh.mk
@@ -49,9 +49,20 @@ endef
$(eval $(call Profile,MR900))
+define Profile/MR1750
+ NAME:=OpenMesh MR1750
+ PACKAGES:=kmod-ath9k kmod-ath10k ath10k-firmware-qca988x
+endef
+
+define Profile/MR1750/Description
+ Package set optimized for the OpenMesh MR1750.
+endef
+
+$(eval $(call Profile,MR1750))
+
define Profile/OPENMESH
NAME:=OpenMesh products
- PACKAGES:=kmod-ath9k om-watchdog
+ PACKAGES:=kmod-ath9k kmod-ath10k om-watchdog
endef
define Profile/OPENMESH/Description
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index 7aee0c8..0ebb7dc 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -2045,6 +2045,7 @@ $(eval $(call SingleProfile,OpenMesh,squashfs-only,OM2P,om2p,,,,OM2P))
$(eval $(call SingleProfile,OpenMesh,squashfs-only,OM5P,om5p,,,,OM5P))
$(eval $(call SingleProfile,OpenMesh,squashfs-only,MR600,mr600,,,,MR600))
$(eval $(call SingleProfile,OpenMesh,squashfs-only,MR900,mr900,,,,MR900))
+$(eval $(call SingleProfile,OpenMesh,squashfs-only,MR1750,mr1750,,,,MR1750))
$(eval $(call SingleProfile,PB4X,128k,ALL0305,all0305,ALL0305,ttyS0,115200))
$(eval $(call SingleProfile,PB4X,128k,EAP7660D,eap7660d,EAP7660D,ttyS0,115200))
@@ -2138,7 +2139,7 @@ $(eval $(call MultiProfile,AP121,AP121_2M AP121_4M))
$(eval $(call MultiProfile,DIR615IX,DIR615I1 DIR615I3))
$(eval $(call MultiProfile,AP136,AP136_010 AP136_020))
$(eval $(call MultiProfile,EWDORIN, EWDORINAP EWDORINRT EWDORIN16M))
-$(eval $(call MultiProfile,OPENMESH,OM2P OM5P MR600 MR900))
+$(eval $(call MultiProfile,OPENMESH,OM2P OM5P MR600 MR900 MR1750))
$(eval $(call MultiProfile,TEW652BRP,TEW652BRP_FW TEW652BRP_RECOVERY))
$(eval $(call MultiProfile,TLMR3220,TLMR3220V1))
$(eval $(call MultiProfile,TLMR3420,TLMR3420V1))

View File

@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
Backport of LEDE d5ee23ee275fcd6550b0051de59706cc928cdac8
diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile
index e7e02f1..6f64eba 100644
index e7e02f15fbb3d1638b26982e7ddff305464e6851..6f64eba398e34093308b766839e69780512a4ca8 100644
--- a/target/linux/x86/image/Makefile
+++ b/target/linux/x86/image/Makefile
@@ -40,7 +40,7 @@ ifneq ($(GRUB_TERMINALS),)

View File

@ -1,47 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Wed, 16 Mar 2016 09:27:01 +0000
Subject: ar71xx: Extend the list of bits in QCA955X_GMAC_REG_ETH_CFG
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r49027
Forwarded: https://patchwork.ozlabs.org/patch/624180/
diff --git a/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch b/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch
index 8bf7658..797977f 100644
--- a/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch
+++ b/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch
@@ -207,7 +207,7 @@
#define AR934X_GPIO_REG_FUNC 0x6c
#define AR71XX_GPIO_COUNT 16
-@@ -560,4 +663,153 @@
+@@ -560,4 +663,170 @@
#define AR934X_SRIF_DPLL2_OUTDIV_SHIFT 13
#define AR934X_SRIF_DPLL2_OUTDIV_MASK 0x7
@@ -358,6 +358,23 @@
+#define QCA955X_GMAC_REG_ETH_CFG 0x00
+
+#define QCA955X_ETH_CFG_RGMII_EN BIT(0)
++#define QCA955X_ETH_CFG_MII_GE0 BIT(1)
++#define QCA955X_ETH_CFG_GMII_GE0 BIT(2)
++#define QCA955X_ETH_CFG_MII_GE0_MASTER BIT(3)
++#define QCA955X_ETH_CFG_MII_GE0_SLAVE BIT(4)
++#define QCA955X_ETH_CFG_GE0_ERR_EN BIT(5)
+#define QCA955X_ETH_CFG_GE0_SGMII BIT(6)
++#define QCA955X_ETH_CFG_RMII_GE0 BIT(10)
++#define QCA955X_ETH_CFG_MII_CNTL_SPEED BIT(11)
++#define QCA955X_ETH_CFG_RMII_GE0_MASTER BIT(12)
++#define QCA955X_ETH_CFG_RXD_DELAY_MASK 0x3
++#define QCA955X_ETH_CFG_RXD_DELAY_SHIFT 14
++#define QCA955X_ETH_CFG_RDV_DELAY BIT(16)
++#define QCA955X_ETH_CFG_RDV_DELAY_MASK 0x3
++#define QCA955X_ETH_CFG_RDV_DELAY_SHIFT 16
++#define QCA955X_ETH_CFG_TXD_DELAY_MASK 0x3
++#define QCA955X_ETH_CFG_TXD_DELAY_SHIFT 18
++#define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3
++#define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20
+
#endif /* __ASM_MACH_AR71XX_REGS_H */

View File

@ -4,7 +4,7 @@ Subject: mt76: fix build with kernel 3.18
diff --git a/package/kernel/mac80211/patches/945-netdev_alloc_frag.patch b/package/kernel/mac80211/patches/945-netdev_alloc_frag.patch
new file mode 100644
index 0000000..ea389cd
index 0000000000000000000000000000000000000000..ea389cd85cb15c7ecb20a1e0c934fcf8b58c0eda
--- /dev/null
+++ b/package/kernel/mac80211/patches/945-netdev_alloc_frag.patch
@@ -0,0 +1,11 @@
@ -20,7 +20,7 @@ index 0000000..ea389cd
+
+ /*
diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile
index bd851e6..989ba0c 100644
index bd851e61910c9a57ca45a570855ca22329c9ae4b..989ba0c2e8d10f6e7bb8fbd31e7181efff19be7c 100644
--- a/package/kernel/mt76/Makefile
+++ b/package/kernel/mt76/Makefile
@@ -24,7 +24,7 @@ include $(INCLUDE_DIR)/package.mk

View File

@ -1,49 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Tue, 7 Jul 2015 13:47:39 +0000
Subject: ar71xx: Use *_eth_cfg helper for Open Mesh MR900 boards
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r46241
Forwarded: https://patchwork.ozlabs.org/patch/624181/
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
index fe3e1fa..9c3164d 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
@@ -94,24 +94,6 @@ static struct gpio_keys_button mr900_gpio_keys[] __initdata = {
},
};
-
-static void __init mr900_gmac_setup(void)
-{
- void __iomem *base;
- u32 t;
-
- base = ioremap(QCA955X_GMAC_BASE, QCA955X_GMAC_SIZE);
-
- t = __raw_readl(base + QCA955X_GMAC_REG_ETH_CFG);
-
- t &= ~(QCA955X_ETH_CFG_RGMII_EN | QCA955X_ETH_CFG_GE0_SGMII);
- t |= QCA955X_ETH_CFG_RGMII_EN;
-
- __raw_writel(t, base + QCA955X_GMAC_REG_ETH_CFG);
-
- iounmap(base);
-}
-
static void __init mr900_setup(void)
{
u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
@@ -141,8 +123,7 @@ static void __init mr900_setup(void)
}
pdata->use_eeprom = true;
- mr900_gmac_setup();
-
+ ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
ath79_register_mdio(0, 0x0);
ath79_init_mac(ath79_eth0_data.mac_addr, art + MR900_MAC0_OFFSET, 0);

View File

@ -9,7 +9,7 @@ Signed-off-by: Johannes Wienke <languitar@semipol.de>
Backport of OpenWrt r48715
diff --git a/target/linux/ramips/dts/DIR-860L-B1.dts b/target/linux/ramips/dts/DIR-860L-B1.dts
index 23ec114..2582b3d 100644
index 23ec1140bc89fa06aa2920bc43efc8bb7465fb42..2582b3d4182d3a0fcee6e6ea6f97ab8007edf3a2 100644
--- a/target/linux/ramips/dts/DIR-860L-B1.dts
+++ b/target/linux/ramips/dts/DIR-860L-B1.dts
@@ -97,6 +97,26 @@

View File

@ -1,79 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Fri, 24 Jul 2015 09:10:00 +0000
Subject: ar71xx: Allow to use ath79_gpio_output_select on QCA955x
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r46459
Forwarded: https://patchwork.ozlabs.org/patch/624182/
diff --git a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
new file mode 100644
index 0000000..e71b6e2
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
@@ -0,0 +1,63 @@
+--- a/arch/mips/ath79/gpio.c
++++ b/arch/mips/ath79/gpio.c
+@@ -187,15 +187,30 @@ void __init ath79_gpio_output_select(uns
+ {
+ void __iomem *base = ath79_gpio_base;
+ unsigned long flags;
+- unsigned int reg;
++ unsigned int reg, reg_base;
++ unsigned long gpio_count;
+ u32 t, s;
+
+- BUG_ON(!soc_is_ar934x() && !soc_is_qca953x() && !soc_is_qca956x());
++ if (soc_is_ar934x()) {
++ gpio_count = AR934X_GPIO_COUNT;
++ reg_base = AR934X_GPIO_REG_OUT_FUNC0;
++ } else if (soc_is_qca953x()) {
++ gpio_count = QCA953X_GPIO_COUNT;
++ reg_base = QCA953X_GPIO_REG_OUT_FUNC0;
++ } else if (soc_is_qca955x()) {
++ gpio_count = QCA955X_GPIO_COUNT;
++ reg_base = QCA955X_GPIO_REG_OUT_FUNC0;
++ } else if (soc_is_qca956x()) {
++ gpio_count = QCA956X_GPIO_COUNT;
++ reg_base = QCA956X_GPIO_REG_OUT_FUNC0;
++ } else {
++ BUG();
++ }
+
+- if (gpio >= AR934X_GPIO_COUNT)
++ if (gpio >= gpio_count)
+ return;
+
+- reg = AR934X_GPIO_REG_OUT_FUNC0 + 4 * (gpio / 4);
++ reg = reg_base + 4 * (gpio / 4);
+ s = 8 * (gpio % 4);
+
+ spin_lock_irqsave(&ath79_gpio_lock, flags);
+--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
+@@ -875,6 +875,14 @@
+ #define QCA953X_GPIO_OUT_MUX_LED_LINK4 44
+ #define QCA953X_GPIO_OUT_MUX_LED_LINK5 45
+
++#define QCA955X_GPIO_REG_OUT_FUNC0 0x2c
++#define QCA955X_GPIO_REG_OUT_FUNC1 0x30
++#define QCA955X_GPIO_REG_OUT_FUNC2 0x34
++#define QCA955X_GPIO_REG_OUT_FUNC3 0x38
++#define QCA955X_GPIO_REG_OUT_FUNC4 0x3c
++#define QCA955X_GPIO_REG_OUT_FUNC5 0x40
++#define QCA955X_GPIO_REG_FUNC 0x6c
++
+ #define QCA956X_GPIO_REG_OUT_FUNC0 0x2c
+ #define QCA956X_GPIO_REG_OUT_FUNC1 0x30
+ #define QCA956X_GPIO_REG_OUT_FUNC2 0x34
+@@ -1014,6 +1022,8 @@
+ #define AR934X_GPIO_OUT_EXT_LNA0 46
+ #define AR934X_GPIO_OUT_EXT_LNA1 47
+
++#define QCA955X_GPIO_OUT_GPIO 0
++
+ /*
+ * MII_CTRL block
+ */

View File

@ -5,7 +5,7 @@ Subject: ramips: add button support and make LEDs known to userspace for DIR-860
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds
index 5327d00..5fb28a5 100755
index 5327d006299ed94c645542f687e20962c83e842d..5fb28a52f7632bf09e7f62ff77dcd7254a2ebcc2 100755
--- a/target/linux/ramips/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/base-files/etc/board.d/01_leds
@@ -114,6 +114,9 @@ case $board in
@ -19,7 +19,7 @@ index 5327d00..5fb28a5 100755
ucidef_set_led_default "power_r" "POWER (red)" "ex2700:red:power" "0"
set_wifi_led "ex2700:green:router"
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
index 6474ebd..37360a4 100644
index 6474ebdde354b51648fcafd426e3256f0b6fe8b4..37360a417cb24eaedef24766510db7146c92e3cb 100644
--- a/target/linux/ramips/base-files/etc/diag.sh
+++ b/target/linux/ramips/base-files/etc/diag.sh
@@ -54,6 +54,9 @@ get_status_led() {
@ -33,7 +33,7 @@ index 6474ebd..37360a4 100644
status_led="d-link:blue:power"
;;
diff --git a/target/linux/ramips/dts/DIR-860L-B1.dts b/target/linux/ramips/dts/DIR-860L-B1.dts
index 2582b3d..c0bcc86 100644
index 2582b3d4182d3a0fcee6e6ea6f97ab8007edf3a2..c0bcc86216cf4bd343b688aa7e717b5c45775c50 100644
--- a/target/linux/ramips/dts/DIR-860L-B1.dts
+++ b/target/linux/ramips/dts/DIR-860L-B1.dts
@@ -124,5 +124,17 @@

View File

@ -1,32 +0,0 @@
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Date: Wed, 23 Mar 2016 12:52:27 +0000
Subject: ar71xx: Add support for ath79_gpio_function_* on QCA955X
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Backport of r49074
Forwarded: https://patchwork.ozlabs.org/patch/624183/
diff --git a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
index e71b6e2..0e87357 100644
--- a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
+++ b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
@@ -1,6 +1,16 @@
--- a/arch/mips/ath79/gpio.c
+++ b/arch/mips/ath79/gpio.c
-@@ -187,15 +187,30 @@ void __init ath79_gpio_output_select(uns
+@@ -146,7 +146,8 @@ static void __iomem *ath79_gpio_get_func
+ if (soc_is_ar71xx() ||
+ soc_is_ar724x() ||
+ soc_is_ar913x() ||
+- soc_is_ar933x())
++ soc_is_ar933x() ||
++ soc_is_qca955x())
+ reg = AR71XX_GPIO_REG_FUNC;
+ else if (soc_is_ar934x() ||
+ soc_is_qca953x() ||
+@@ -187,15 +188,30 @@ void __init ath79_gpio_output_select(uns
{
void __iomem *base = ath79_gpio_base;
unsigned long flags;

Some files were not shown because too many files have changed in this diff Show More