Petr Štetiar [Mon, 19 Nov 2018 20:44:50 +0000 (21:44 +0100)]
ath79: ubnt-m-xw: Fix factory image flashing using TFTP recovery method
Ubiquity allows flashing of unsigned factory images via TFTP recovery
method[1]. They claim in airOS v6.0.7 release changelog[2] following:
All future airOS versions will be signed in this way and not allow
unsigned firmware to be loaded except via TFTP.
U-boot bootloader on M-XW devices expects factory image revision
version in specific format. On airOS v6.1.7 with `U-Boot 1.1.4-s1039
(May 24 2017 - 15:58:18)` bootloader checks if the revision major(?)
number is actually a number, but in currently generated images there's
OpenWrt text and so the check fails:
Hit any key to stop autoboot: 0
Setting default IP 192.168.1.20
Starting TFTP server...
Receiving file from 192.168.1.25:38438
Received 4981148 bytes
Firmware check failed! (1)
By placing arbitrary correct number first in major version, we make the
bootloader happy and we can flash factory images over TFTP again:
.---------------------------------.
| |
[ETH] J1 [ANT]
| o VCC o RX o TX o GND |
`---------------------------------'
Flashing instructions
A) Serial console, U-Boot and TFTP
1. Connect to serial header J1 on the PCB
2. Power on device and enter U-Boot console
3. Set up TFTP server serving an OpenWrt initramfs build
4. Load initramfs build using the command tftpboot in the U-Boot cli
5. Boot the loaded image using the command bootm
6. Copy squashfs OpenWrt sysupgrade build to the booted device
7. Use mtd to write sysupgrade to partition "firmware"
8. Reboot and enjoy
B) Experimental factory image flashing over SSH from airOS v6.1.7
1. You need to flash your UBNT M2HP with airOS v6.1.7 firmware
no other airOS version is currently supported
2. git clone https://github.com/true-systems/ubnt-bullet-m2hp-openwrt-flashing
3. cd ubnt-bullet-m2hp-openwrt-flashing
4. make flash-factory FW_OWRT=/path/to/your/openwrt-ath79-generic-ubnt_bullet-m-xw-squashfs-factory.bin
Belkin F5D8235 v2 has two ethernet switches on board.
One internal rt3052 and rtl8366rb on rgmii interface.
Looks like internal switch settings were lost in
translation to device tree infrastructure.
Specification:
- MediaTek MT7628N/N (580 Mhz)
- 64 MB of RAM
- 16 MB of FLASH
- 2T2R 2.4 GHz
- 5x 10/100 Mbps Ethernet
- 2x u.FL
- Power by micro-USB connector at USB1 on EVB
- UART via micro-USB connector at USB3 on EVB (57600 8n1)
- 5x Ethernet LEDs
- 1x WLAN LEDs
- 1x WPS LED connected by jumper wire from I2S_CK on J20 to WPS_LED pin hole next
to daughter board on EVB
- WPS/Reset button (S2 on EVB)
- RESET button (S1 on EVB) is *not* connected to RST hole next to daughter board
Flash instruction:
>From Skylab firmware:
1. Associate with SKYLAP_AP
2. In a browser, load: http://10.10.10.254/
3. Username/password: admin/admin
4. In web admin interface: Administration / Upload Firmware, browse to
sysupgrade image, apply, flash will fail with a message:
Not a valid firmware. *** Warning: "/var/tmpFW" has corrupted data!
5. Telnet to 10.10.10.254, drops you into a root shell with no credentials
6. # cd /var
7. # mtd_write -r write tmpFW mtd4
Unlocking mtd4 ...
Writing from tmpFW to mtd4 ... [e]
8. When flash has completed, you will have booted into your firmware.
>From U-boot via TFTP and initramfs:
1. Place openwrt-ramips-mt76x8-skw92a-initramfs-kernel.bin on a TFTP server
2. Connect to serial console at USB3 on EVB
3. Connect ethernet between port 1 (not WAN) and your TFTP server (e.g.
192.168.11.20)
4. Start terminal software (e.g. screen /dev/ttyUSB0 57600) on PC
5. Apply power to EVB
6. Interrupt u-boot with keypress of "1"
7. At u-boot prompts:
Input device IP (10.10.10.123) ==:192.168.11.21
Input server IP (10.10.10.3) ==:192.168.11.20
Input Linux Kernel filename (root_uImage) ==:openwrt-ramips-mt76x8-skw92a-initramfs-kernel.bin
8. Move ethernet to port 0 (WAN) on EVB
9. At new OpenWrt console shell, fetch squashfs-sysupgrade image and flash
with sysupgrade.
>From U-boot via TFTP direct flash:
1. Place openwrt-ramips-mt76x8-skw92a-squashfs-sysupgrade.bin on a TFTP server
2. Connect to serial console at USB3 on EVB (57600 8N1)
3. Connect ethernet between port 1 (not WAN) an your TFTP server (e.g.
192.168.11.20)
4. Start terminal software (e.g. screen /dev/ttyUSB0 57600) on PC
5. Apply power to EVB
6. Interrupt u-boot with keypress of "2"
7. At u-boot prompts:
Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N) Y
Input device IP (10.10.10.123) ==:192.168.11.21
Input server IP (10.10.10.3) ==:192.168.11.20
Input Linux Kernel filename (root_uImage) ==:openwrt-ramips-mt76x8-skw92a-squashfs-sysupgrade.bin
8. When transfer is complete or as OpenWrt begins booting, move ethernet to
port 0 (WAN).
Signed-off-by: Russell Senior <russell@personaltelco.net>
Petr Štetiar [Fri, 23 Nov 2018 09:53:37 +0000 (10:53 +0100)]
build: Introduce building of artifacts
We currently could (ab)use IMAGES for this task, but the downside is,
that the filenames has filesystem tied to the filename, which might be
confusing as the artifact itself don't has to be used with that specific
filesystem. Another downside is, that the artifacts built with IMAGES
target are build for every FILESYSTEMS filesystem.
Hans Dedecker [Sun, 25 Nov 2018 19:17:52 +0000 (20:17 +0100)]
nghttp2: bump to 1.35.0
e520469b Update manual pages 54067256 Bump up version number to 1.35.0 c4d2eeee Update AUTHORS f51e696e asio: Add stop() to listen_and_serve doc a433b132 Merge pull request #1260 from nghttp2/h2load-non-final-response cf48a56d Merge pull request #1238 from jktjkt/cmake-fix-libevent-detection 6cad1b24 nghttpx: Write mruby send_info early 3c393dca nghttpx: Fix assertion failure on mruby send_info with HTTP/1 frontend 17292445 h2load: Handle HTTP/1 non-final response f6644a92 make clang-format 48998f72 Merge pull request #1222 from donny-dont/fix/declspec 15ff52f9 Update README 6c03bb14 Upgrade travis toolchain 524b4392 Fix travis build failure 859bf2bc Update manual pages b5619fb1 h2load: Clarify that time for connect includes TLS handshake dcbe0c69 nghttpx: Simplify move ctor and operator 2996c284 nghttpx: Cleanup 42e8ceb6 nghttpx: Convert API status code to enum class 1daf9ce8 nghttpx: Convert WorkerEventType to enum class d68edf56 nghttpx: Convert MemcachedStatusCode to enum class 0c4e9fef nghttpx: Convert memcached op to enum class 571404c6 nghttpx: Convert MemcachedParseState to enum class 4d562b77 nghttpx: Convert LogFragmentType to enum class e6225871 nghttpx: Convert connection check status to enum class 4bd075de nghttpx: Convert Http2Session state to enum class b46a3249 nghttpx: Convert FreelistZone to enum class 4bd44b9c nghttpx: Convert dispatch state to enum class 1b42110d nghttpx: Make Downstream state enum class 0735ec55 nghttpx: Convert shrpx_connect_proto to enum class 00554779 nghttpx: Convert DNSResolverStatus to enum class 0963f389 nghttpx: Convert SerialEventType to enum class 1abfa3ca nghttpx: Make TLS handshake state enum class f2159bc2 nghttpx: Convert UpstreamAltMode to enum class b0eb68ee nghttpx: Convert shrpx_forwarded_node_type to enum class e7b7b037 nghttpx: Convert shrpx_cookie_secure to enum class 5e4f434f nghttpx: Convert shrpx_session_affinity to enum class 20ea964f nghttpx: Convert shrpx_proto to enum class d105619b src: Remove extra braces if possible ec5729b1 Use std::make_unique 6c919695 Use C++14 46576178 Don't send Transfer-Encoding to pre-HTTP/1.1 clients 5e925f87 Update doc 153531d4 nghttpx: Use the same type as standard stream operator<< f7287df0 Bump up version number to 1.35.0-DEV
Rosen Penev [Tue, 13 Nov 2018 20:59:47 +0000 (12:59 -0800)]
flex: Add a lex symlink
Some packages like libpfring assume the presense of lex, which on some
other systems is a symlink to flex but not all. Symlink flex to fix
compilation.
This is probably theoretical problem as the Ventana is defined first in
the image Makefile, but once the position of the definition would change
in the future (alphabetical sorting?) it would get bootscript from the
previous board which would have BOOT_SCRIPT set.
Cc: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
Daniel Golle [Sun, 25 Nov 2018 13:35:49 +0000 (14:35 +0100)]
ramips: select kmod-mt76x0e for TP-Link ArcherC20i and wr902ac-v3
Both devices come with a MediaTek MT7610E 5GHz 802.11ac 1T1R radio
which wasn't supported at the time the devices were added to OpenWrt.
Now that we got it, include kmod-mt76x0e in images for those devices.
Reported-by: Arian Sanusi <openwrt@semioptimal.net> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle [Thu, 15 Nov 2018 16:12:54 +0000 (11:12 -0500)]
kernel: enable CONFIG_BRIDGE_VLAN_FILTERING
This allows us to use the bridge as a managed switch and gracefully
handle mixed tagged and untagged frames. Prior to this, the only
alternative was creating one bridge per vlan which quickly becomes a
nightmare and still won't let you mix both tagged and untagged frames on
the physical port without some complex ebtables magic.
This is in line with the notion that OpenWRT is the network go-to swiss
army knife when you need a nice set-and-forget, low maintenance box to
handle a specific task.
Current builds of the ip-bridge package already fully support this
feature so the only requirement is enabling the kernel config.
This is disabled by default so existing bridge configurations will not
be affected. This patch only gives the ability to turn it on with an
'ip link' command. If there is interest, I could look into making the
feature accessible via uci configuration.
It causes about 3.1% hit on raw bridging speed, which is relatively
trivial considering that I had to use 300 byte packets to strain the CPU
enough to notice a slowdown at all. The ER8 would chug along at wire
speed otherwise, and that's using only one core. Since the typical
bridge use case on OpenWRT is wireless, I doubt it would be noticeable
at all.
With BRIDGE_VLAN_FILTERING
iperf -u -c 192.168.1.105 -b 1G -l 300
------------------------------------------------------------
Client connecting to 192.168.1.105, UDP port 5001
Sending 300 byte datagrams, IPG target: 2.24 us (kalman adjust)
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.12 port 58045 connected with 192.168.1.105 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 977 MBytes 820 Mbits/sec
[ 3] Sent 3414986 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 811 MBytes 680 Mbits/sec 0.000 ms
581210/3414986 (0%)
Without BRIDGE_VLAN_FILTERING
iperf -u -c 192.168.1.105 -b 1G -l 300
------------------------------------------------------------
Client connecting to 192.168.1.105, UDP port 5001
Sending 300 byte datagrams, IPG target: 2.24 us (kalman adjust)
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.12 port 36645 connected with 192.168.1.105 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 977 MBytes 820 Mbits/sec
[ 3] Sent 3414990 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 836 MBytes 701 Mbits/sec 0.000 ms
493950/3414990 (0%)
In terms of kernel size, it uses 16KB (6753K vs 6737K on ER8) so a
0.002% hit. The exact 16KB is probably just due to how the kernel is
compressed.
Suggested-by: Jonathan Thibault <jonathan@navigue.com> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Hannu Nyman [Sat, 24 Nov 2018 11:58:37 +0000 (13:58 +0200)]
ath79: specify "firmware" partition format for WNDR3700 and v2
Specify the new "firmware" partition format for Netgear WNDR3700
and WNDR3700v2 similarly as ffd082aa did for WNDR3800, the third
device in the family.
Rafał Miłecki [Thu, 22 Nov 2018 11:55:14 +0000 (12:55 +0100)]
kernel: don't auto-split "firmware" if it has "compatible" DT property
If "compatible" is being used that should trigger a proper parser
directly. It's more reliable thanks to not trying parsers one by one. In
such case partition shouldn't be split automatically to avoid parsing it
twice.
David Bauer [Mon, 22 Oct 2018 00:35:36 +0000 (02:35 +0200)]
kernel: b53: register switch on probe
Currently, the b53 MDIO switch driver registers the switch on
config-init and not on device probe. Because of this, the switch
gets added every time the associated interface comes up.
This commit fixes this behavior by registering the switch on device
probe.
Linus Kardell [Thu, 22 Nov 2018 10:35:08 +0000 (11:35 +0100)]
base-files: fix unkillable processes after restart
When restart is run on an init script, the script traps SIGTERM. This is
done as a workaround for scripts named the same name as the program they
start. In that case, the init script process will have the same name as
the program process, and so when the init script runs killall, it will
kill itself. So SIGTERM is trapped to make the init script unkillable.
However, the trap is retained when the init script runs start, and thus
processes started by restart will not respond to SIGTERM, and will thus
be unkillable unless you use SIGKILL. This fixes that by removing the
trap before running start.
Rafał Miłecki [Thu, 22 Nov 2018 09:12:19 +0000 (10:12 +0100)]
bcm53xx: request Seama parser on DIR-885L directly
It's more reliable as mtd subsystem doesn't have to blindly try that
parser. It allows disabling MTD_SPLIT_FIRMWARE completely (TRX is
handled in a similar way).
Hans Dedecker [Wed, 21 Nov 2018 10:11:26 +0000 (11:11 +0100)]
glibc: update to latest 2.27 commit
1517dfb8aa Add an additional test to resolv/tst-resolv-network.c 1050634904 libanl: properly cleanup if first helper thread creation failed (bug 22927)
Felix Fietkau [Wed, 21 Nov 2018 14:14:36 +0000 (15:14 +0100)]
mt76: update to the latest version
4734108 mt7603: use mt7603_wtbl_clear on station removal 9428e34 mt7603: fix watchdog reset sequence b3f82a3 mt7603: report PSE reset failures via debugfs a301dec mt7603: add back PSE client reset code 94cebfc mt7603: fix handling lost interrupt events during watchdog reset b38fe7d mt7603: only issue PSE reset on PSE stuck da666a7 mt7603: issue PSE reset if firmware debug register indicates stuck queues
* chacha20,poly1305: fix up for win64
* poly1305: only export neon symbols when in use
* poly1305: cleanup leftover debugging changes
* crypto: resolve target prefix on buggy kernels
* chacha20,poly1305: don't do compiler testing in generator and remove xor helper
* crypto: better path resolution and more specific generated .S
* poly1305: make frame pointers for auxiliary calls
* chacha20,poly1305: do not use xlate
This should fix up the various build errors, warnings, and insertion errors
introduced by the previous snapshot, where we added some significant
refactoring. In short, we're trying to port to using Andy Polyakov's original
perlasm files, and this means quite a lot of work to re-do that had stableized
in our old .S.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Hans Dedecker [Mon, 19 Nov 2018 09:12:28 +0000 (10:12 +0100)]
netifd: update to latest git HEAD
4b83102 treewide: switch to C-code style comments 70506bf treewide: make some functions static d9872db interface: fix removal of dynamic interfaces 2f7ef7d interface: rework code to get rid of interface_set_dynamic
Felix Fietkau [Fri, 16 Nov 2018 11:43:45 +0000 (12:43 +0100)]
mt76: update to the latest version
009ab91 mt76: clean up more unused EXPORT_SYMBOLs 963768d mt76x02: fix regression in tx station race condition fix d7788cc mt76: mt76x02: make group_wcid the first member in struct mt76x02_vif e65ad4c mt7603: make group_wcid the first member in struct mt7603_vif 7b1373e mt76: mt76x02: remove mt76x02_txq_init a97127b mt76: replace sta_add/remove ops with common sta_state function 13f1e82 mt7603: clear wtbl entry for removed stations 90e2c1b mt7603: add mt7603_wtbl_set_skip_tx, change mt7603_wtbl_set_ps users 41931e4 mt7603: toggle skip_tx on station add/remove d0fdf01 mt7603: avoid unnecessary wtbl writes for ps-filter
* Zinc no longer ships generated assembly code. Rather, we now
bundle in the original perlasm generator for it. The primary purpose
of this snapshot is to get testing of this.
* Clarify the peer removal logic and make lifetimes more precise.
* Use READ_ONCE for is_valid and is_dead.
* No need to use atomic when the recounter is mutex protected.
* Fix up macros and annotations in allowedips.
* Increment drop counter when staged packets are dropped.
* Use static constants instead of enums for 64-bit values in selftest.
* Mark large constants as ULL in poly1305-donna64.
* Fix sparse warnings in allowedips debugging code.
* Do not use wg_peer_get_maybe_zero in timer callbacks, since we now can
carefully control the lifetime of these functions and ensure they never
execute after dropping the last reference.
* Cleanup hashing in ratelimiter.
* Do not guard timer removals, since del_timer is always okay.
* We now check for PM_AUTOSLEEP, which makes the clear*on-suspend decision a
bit more general.
* Set csum_level to ~0, since the poly1305 authenticator certainly means
that no data was modified in transit.
* Use CHECKSUM_PARTIAL check for skb_checksum_help instead of
skb_checksum_setup check.
* wg.8: specify that wg(8) shows runtime info too
* wg.8: AllowedIPs isn't actually required
* keygen-html: add missing glue macro
* wg-quick: android: do not choke on empty allowed-ips
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Rafał Miłecki [Thu, 15 Nov 2018 11:28:50 +0000 (12:28 +0100)]
kernel: fix ubifs loosing O_TMPFILE data after power cut
There was a bug in ubifs related to the O_TMPFILE. When reapplying
changes after power cut data could be lost. This problem was exposed by
overlayfs and the upstream commit 3a1e819b4e80 ("ovl: store file handle
of lower inode on copy up").
This fixes a regression introduced when switching from 4.9 to 4.14.
Hans Dedecker [Thu, 15 Nov 2018 10:29:04 +0000 (11:29 +0100)]
bison: update to 3.2.1
Chnages since 3.2:
b590ad02 version 3.2.1 05e70adf build: fix issues in the generated tarball 7efe0b5d build: fix typo 351e3630 NEWS: update 4fd1fc70 examples: ship them e02ce4c7 build: minor fixes in doc/ 7cab285e CI: maximize chances of errors sooner 86efe282 c++: improve the generated documentation cf1446dc tests: don't fail if the C++ compiler does not work e93c40b3 tests: don't disable C++ warnings in C files eff67391 c++: workaround portability issue 5a0d7802 tests: work around getopt portability issues f1e0839c doc: -Wzero-as-null-pointer-constant was added to GCC 4.7 3bf429ae examples: #include <cstring> in calc++ f8cadc73 c: provide a definition of _Noreturn that works for C++ bd7aebb8 c: update the definition of _Noreturn ca8039e6 tests: don't expect the shell to support 'local' 5d07f4f7 bitset: fix warning e605ad96 build: fix use of gnulib Make variables 50fac71d maint: post-release administrivia
Petr Štetiar [Fri, 9 Nov 2018 11:09:29 +0000 (12:09 +0100)]
Revert "iptables: fix dependency for libip6tc on IPV6"
This patch reverts commit 2dc1f54b1205094e7c6036cae6275d2c326bad3e as it
breaks the build for me on x86-64 if I've IPV6 support disabled. Same config
builds fine on `openwrt-18.06` branch at 55d078b2.
$ grep IPV6 .config
# CONFIG_KERNEL_IPV6 is not set
# CONFIG_IPV6 is not set
Build errors out on:
Package libiptc is missing dependencies for the following libraries:
libip6tc.so.0
Looking at iptables-1.6.2/libiptc/Makefile.am:
libiptc_la_LIBADD = libip4tc.la libip6tc.la
and to iptables-1.6.2/libiptc/libiptc.pc.in:
Requires: libip4tc libip6tc
It seems that libiptc needs v4/v6 libs, so v6 isn't optional.
Cc: Rosy Song <rosysong@rosinson.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
Hans Dedecker [Sat, 10 Nov 2018 12:40:45 +0000 (13:40 +0100)]
ethtool: update to 4.19
8a1ad80 Release version 4.19. ecdf295 ethtool: Fix uninitialized variable use at qsfp dump 98c148e ethtool: better syntax for combinations of FEC modes d4b9f3f ethtool: support combinations of FEC modes
Rafał Miłecki [Fri, 9 Nov 2018 13:57:45 +0000 (14:57 +0100)]
kernel: deprecate support for the generic "linux,part-probe" DT binding
It has been rejected upstream and instead a nice/more generic solution
has been implemented. It's possible now to describe partitions format
using "compatible" DT string.
No OpenWrt target uses "linux,part-probe" anymore, leave it only in case
some forks need it. It will be dropped with support for new kernels.
as indicated in commit c5bf408ed6bd "(ramips: fix image generation for mt76x8")
more rework was needed to fix the other issues.
Building on another machine, but using the same arch, showed
the application failing again for different reasons.
Fix this by completely rewriting the application, fixing following found issues:
- buffer overflows, resulting in stack corruption
- flaws in memory requirement calculations (too small, too large)
- memory leaks
- missing bounds checking on string handling
- non-reproducable images, by using unitilized memory in checksum calculation
- missing error handling, resulting in succes on specific image errors
- endianness errors when building on BE machines
- various minor build warnings
- documentation did not match the code actions (header item locations)
- allowing input to be decimal, hex or octal now
Hans Dedecker [Mon, 5 Nov 2018 14:32:48 +0000 (15:32 +0100)]
iproute2: update to 4.19.0
Update to the latest version of iproute2; see https://lwn.net/Articles/769354/
for a full overview of the changes in 4.19.
Remove 190-add-cake-to-tc patch as CAKE qdisc is now supported in 4.19.0
Felix Fietkau [Tue, 6 Nov 2018 21:25:06 +0000 (22:25 +0100)]
mt76: update to the latest version
172f081 mt76x0: do not overwrite other MT_BBP(AGC, 8) fields 2ae2046 mt76x0: phy: use mt76_poll_msec in mt76x0_phy_temp_sensor add66a0 mt76x0: init: use mt76x02_mac_shared_key_setup in mt76x0_init_hardware 1f24db9 mt76x2: move wcid_tx_rate conf at bootstrap 097b2bd mt76x0: init: use mt76x02_mac_wcid_setup for wcid configuration d0eb03e mt76x2u: init: remove not useful configuration c7aa8f4 mt76x2u: init: use common routines for wcid/key initialization bd568d9 mt76: move mt76x02_eeprom_copy in mt76x02-lib module 57b441d mt76x0: phy: introduce tssi calibration support a78802c mt76x0: phy: use tssi reported value to configure tx power if available 94ad030 mt76: remove mcu_msg_alloc 15cb426 mt76: remove wait argument from mt76x02_mcu_function_select cd76a83 mt76: remove wait argument from mt76x02_mcu_set_radio_state 9b97e0f mt76x02: run calibration after scanning 663b197 mt76x02: assure we update gain after scan eb53745 mt76x0: dfs: fix IBI_R11 configuration on non-radar channels ef06c30 mt76: avoid queue/status spinlocks while passing tx status to mac80211 5195257 mt7603: fix maximum rx frame size 01815e9 mt7603: use mutex from struct mt76_dev 3c8e8a7 mt7603: use irq_lock/irqmask from struct mt76_dev 8b7f50d mt76: add size check for additional rx fragments 87bad3a mt7603: stop MAC on watchdog reset c34baab mt7603: add missing unlock in case changing the channel fails ac6fc78 mt7603: add debugfs file to trigger watchdog resets d9b5324 mt7603: add SPDX license identifiers 498d716 mt7603: fix checkpatch issues a1afefd mt7603: fix handling of fixed rate packets 5ee0523 mt7603: fix tx status rate reporting for fixed-rate packets
Debugging using valgrind shows stack corruption due to a buffer overflow.
The author of the generator assumes the filename ends with "root",
while it should be "rootfs".
Fix this by accounting for the 2 missing characters which solves the build issues.
More work is required to cleanup this source, which will be done later on.
Reported-by: Hannu Nyman <hannu.nyman@iki.fi> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
As indicated on mailinglist discussion, the cause seems to be
the usage of very old SDMA firmware which is present in the soc:
[ 0.624302] imx-sdma 20ec000.sdma: Direct firmware load for imx/sdma/sdma-imx6q.bin failed with error -2
[ 0.624318] imx-sdma 20ec000.sdma: Falling back to user helper
[ 64.531607] imx-sdma 20ec000.sdma: external firmware not found, using ROM firmware
This patch adds the new firmware binary. (2196 bytes)
It is required to embed the binary into the kernel image, as it
gets loaded very early in the boot process where the rootfs is not
available yet:
Koen Vandeputte [Mon, 5 Nov 2018 10:31:12 +0000 (11:31 +0100)]
ath9k: fix dynack in IBSS mode
Currently, dynack was only tested upstream using AP/STA mode.
Testing it on IBSS, showed that late-ack detection was broken.
This is caused due to dynack using Association Request/Response
frames for late-ack detection, which IBSS does not use.
Also allowing Authentication frames here solves this.
A second issue also got fixed, which was also seen AP/STA mode:
When a station was added, the estimated value would be exponentially averaged
using 0 as a starting point.
This means that on larger distances, the ack timeout was still not high
enough before synchronizing would run out of late-ack's for estimation.
Fix this by using the initial estimated value as a baseline
and only start averaging in the following estimation rounds.
Test setup:
- 2x identical devices: RB912UAG-5HPnD + 19dB sector
- IBSS
- 2x2 802.11an (ar9340), HT20, long GI
- RSSI's -70 / -71
- Real distance: 23910 meter
Results (60s iperf runs):
Fixed coverage class 54 (up to 24300m):
* 21.5 Mbits/sec
Koen Vandeputte [Mon, 5 Nov 2018 11:53:55 +0000 (12:53 +0100)]
ar71xx: disable some tiny targets with kernel 4.14
The bump to kernel 4.14 caused a massive increase in kernel size.
For most targets, switching them to dynamic partitioning allowed
to cope with this.
On some targets, the kernel partition is located behind the rootfs,
which disallows switching to dynamic partitioning as the boot location
would be altered, requiring a u-boot change.
Also within the tiny section, which disables kernel symbols etc
to decrease the image size, the partition size is still too small.
Disable these targets for now, fixing image generation: