Rationale:
1/ This tool is no longer necessary following the implementation of a
sysfs driver
2/ The upstream author, Robert Marko, stated[1] that this tool had been
taken from his tree in an unfinished state not suitable for merging
As evidenced here[1] the device MAC address can be stored at a random
offset in the hard_config partition. Rely on sysfs to update the MAC
address correctly.
To match sticker and vendor OS behavior, WAN MAC is set to the device
base MAC and LAN MAC is incremented from that.
Note: this will trigger a harmless kernel message during boot:
ag71xx 19000000.eth: invalid MAC address, using random address
There is no clean workaround to prevent this message from being emitted.
Thibaut VARÈNE [Fri, 27 Mar 2020 13:33:48 +0000 (14:33 +0100)]
generic: platform/mikrotik: support LZOR encoding
Some newer MikroTik RouterBOARD devices use a new encoding scheme
for their WLAN calibration data. This patch provides support for
decoding this new scheme.
Thibaut VARÈNE [Sun, 22 Mar 2020 20:46:42 +0000 (21:46 +0100)]
generic: routerboot sysfs platform driver
This driver exposes the data encoded in the "hard_config" flash segment
of MikroTik RouterBOARDs devices. It presents the data in a sysfs folder
named "hard_config". The WLAN calibration data is available on demand via
the 'wlan_data' sysfs file in that folder.
This driver permanently allocates a chunk of RAM as large as the
"hard_config" MTD partition (typically 4KB), although it is technically
possible to operate entirely from the MTD device without using a local
buffer (except when requesting WLAN calibration data), at the cost of a
performance penalty.
This driver does not reuse any of the existing code previously found in
routerboot.c.
This driver has been successfully tested on BE (ath79) and LE (ipq40xx
and ramips) hardware.
Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net> Tested-by: Baptiste Jonglez <git@bitsofnetworks.org> Tested-by: Tobias Schramm <t.schramm@manjaro.org> Tested-by: Christopher Hill <ch6574@gmail.com> Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 20 Mar 2020 21:38:51 +0000 (22:38 +0100)]
generic: routerbootpart MTD parser for RouterBoot
This driver provides an OF MTD parser to properly assign the RouterBoot
partitions on the flash. This parser builds from the "fixed-partitions"
one (see ofpart.c), but it can handle dynamic partitions as found on
routerboot devices.
The parent node must contain the following:
compatible = "mikrotik,routerboot-partitions";
#address-cells = <1>;
#size-cells = <1>;
Children routerbootpart DTS nodes are defined as follows:
For fixed partitions
node-name@unit-address {
reg = <prop-encoded-array>;
label = <string>;
read-only;
lock;
};
size property is mandatory unless the next partition is a fixed one or
a "well-known" one (matched from the strings defined below) in which case
it can be omitted or set to 0; other properties are optional.
By default dynamic partitions are appended after the preceding one, except
for "well-known" ones which are automatically located on flash.
Well-known partitions (matched via label or node-name):
- "hard_config"
- "soft_config"
- "dtb_config"
This parser requires the DTS to list partitions in ascending order as
expected on the MTD device.
This parser has been successfully tested on BE (ath79) and LE (ipq40xx
and ramips) hardware.
Tested-by: Baptiste Jonglez <git@bitsofnetworks.org> Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net> Tested-by: Tobias Schramm <t.schramm@manjaro.org> Tested-by: Christopher Hill <ch6574@gmail.com> Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
I have reproduced on ramips as well as mvebu in the past.
Samba 4 is an alternative available in the packages repo.
cifsd is a lightweight alternative available in the packages repo. It is
also a faster alternative to both Samba versions (lower CPU usage). It
was renamed to ksmbd.
To summarize, here are the alternatives:
- ksmbd + luci-app-cifsd
- samba4 + luci-app-samba4
Yangbo Lu [Sat, 14 Mar 2020 06:32:39 +0000 (14:32 +0800)]
layerscape: define only one package for ls-dpl
We do not have to define package for each board, and
consider variant's installing.
It is easier to maintain ls-dpl with only one package
installing all 4 files as intermediate files.
Yangbo Lu [Sat, 14 Mar 2020 06:25:33 +0000 (14:25 +0800)]
layerscape: define only one package for ls-mc
We do not have to define package for each board, and
consider variant's installing.
It is easier to maintain ls-mc with only one package
installing all two images as intermediate files.
Yangbo Lu [Sat, 14 Mar 2020 06:11:12 +0000 (14:11 +0800)]
layerscape: define only one package for fman-ucode
We do not have to define package for each board, and
consider variant's installing.
It is easier to maintain fman-ucode with only one package
installing all two binaries as intermediate files.
Yangbo Lu [Wed, 1 Apr 2020 08:47:41 +0000 (16:47 +0800)]
layerscape: define only one package for ls-rcw
We do not have to define package for each board, and
consider variant's building/installing.
It is easier to maintain ls-rcw with only one package
installing all boards RCW binaries as intermediate
files, each of which is just about hundreds of bytes.
Yangbo Lu [Fri, 10 Apr 2020 02:47:05 +0000 (10:47 +0800)]
layerscape: add patches-5.4
Add patches for linux-5.4. The patches are from NXP LSDK-20.04 release
which was tagged LSDK-20.04-V5.4.
https://source.codeaurora.org/external/qoriq/qoriq-components/linux/
For boards LS1021A-IOT, and Traverse-LS1043 which are not involved in
LSDK, port the dts patches from 4.14.
The patches are sorted into the following categories:
301-arch-xxxx
302-dts-xxxx
303-core-xxxx
701-net-xxxx
801-audio-xxxx
802-can-xxxx
803-clock-xxxx
804-crypto-xxxx
805-display-xxxx
806-dma-xxxx
807-gpio-xxxx
808-i2c-xxxx
809-jailhouse-xxxx
810-keys-xxxx
811-kvm-xxxx
812-pcie-xxxx
813-pm-xxxx
814-qe-xxxx
815-sata-xxxx
816-sdhc-xxxx
817-spi-xxxx
818-thermal-xxxx
819-uart-xxxx
820-usb-xxxx
821-vfio-xxxx
Before we were trying to check for timeconst.h by looking in the kernel
source directory. This isn't quite correct on configurations in which
the object directory is separate from the kernel source directory, for
example when using O="elsewhere" as a make option when building the
kernel. The correct fix is to use $(CURDIR), which should point to
where we want.
* compat: use bash instead of bc for HZ-->USEC calculation
This should make packaging somewhat easier, as bash is generally already
available (at least for dkms), whereas bc isn't provided by distros by
default in their build meta packages.
* socket: remove errant restriction on looping to self
It's already possible to create two different interfaces and loop
packets between them. This has always been possible with tunnels in the
kernel, and isn't specific to wireguard. Therefore, the networking stack
already needs to deal with that. At the very least, the packet winds up
exceeding the MTU and is discarded at that point. So, since this is
already something that happens, there's no need to forbid the not very
exceptional case of routing a packet back to the same interface; this
loop is no different than others, and we shouldn't special case it, but
rather rely on generic handling of loops in general. This also makes it
easier to do interesting things with wireguard such as onion routing.
At the same time, we add a selftest for this, ensuring that both onion
routing works and infinite routing loops do not crash the kernel. We
also add a test case for wireguard interfaces nesting packets and
sending traffic between each other, as well as the loop in this case
too. We make sure to send some throughput-heavy traffic for this use
case, to stress out any possible recursion issues with the locks around
workqueues.
* send: cond_resched() when processing tx ringbuffers
Users with pathological hardware reported CPU stalls on CONFIG_
PREEMPT_VOLUNTARY=y, because the ringbuffers would stay full, meaning
these workers would never terminate. That turned out not to be okay on
systems without forced preemption. This commit adds a cond_resched() to
the bottom of each loop iteration, so that these workers don't hog the
core. We don't do this on encryption/decryption because the compat
module here uses simd_relax, which already includes a call to schedule
in preempt_enable.
* selftests: initalize ipv6 members to NULL to squelch clang warning
This fixes a worthless warning from clang.
* send/receive: use explicit unlikely branch instead of implicit coalescing
Some code readibility cleanups.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Rafał Miłecki [Wed, 6 May 2020 15:49:59 +0000 (17:49 +0200)]
fstools: update to the latest version
eec16e2 blockd: add optional "device" parameter to "info" ubus method 9ab936d block(d): always call hotplug.d "mount" scripts from blockd 4963db4 blockd: use uloop_process for calling /sbin/hotplug-call mount cddd902 Truncate FAT filesystem label until 1st occurance of a blank (0x20)
Chuanhong Guo [Tue, 5 May 2020 09:37:02 +0000 (17:37 +0800)]
generic: ar8216: fix unknown packet flooding for ar8229/ar8236
ar8229 and ar8236 don't allow unknown unicast/multicast frames and
broadcast frames to be flooded to cpu port. This isn't desired behavior
for swconfig as we treat it as a standalone switch.
Current code doesn't enable unicast frame flooding for ar8229 and uses
wrong setup for ar8236. This commit fixes both of them by enabling port
0 flooding for all unknown frames.
Florian Eckert [Sun, 16 Dec 2018 20:30:20 +0000 (21:30 +0100)]
buildsystem: add CPE information to ipkg packages and manifest files
Common Platform Enumeration (CPE) is a structured naming scheme for
information technology systems, software, and packages.
This information already exists in some makefiles. In order for the
information to be processed further, it should also be added to the
manifest file and the control file of ipkg packages.
Rafał Miłecki [Tue, 5 May 2020 07:14:40 +0000 (09:14 +0200)]
fstools: update to the latest version
8b9e601 block: always use st_dev (device ID) of / when looking for root 37c9148 block: simplify check_extroot() a bit d70774d block: add some basic extroot documentation 32db27d Revert "block: support hierarchical mount/umount" 0b93429 Revert "block: mount_action: handle mount/umount deps"
John Crispin [Tue, 28 Apr 2020 14:10:26 +0000 (16:10 +0200)]
mac80211: more wifi reconf related fixes
* uci state was not getting reset properly during teardown
* AP+STA co-exist state was not flushed properly upon channel switch
* remove a debug logger call
* properly teardown supplicant instances when they get disabled
* add md5 config support for supplicant
* don't call wpa_supplicant_prepare_interface twice
bcm27xx: backup /boot/cmdline.txt and restore early
If you want to use the Raspberry Pi UART, "console=serial0,115200" needs
to be removed from the kernel cmdline. This is done by editing
/boot/cmdline.txt. However, this file is not currently backed up during
sysupgrade, so this effectively breaks HATs that require the use of the
UART every sysupgrade.
Backup this file during sysupgrade, and restore it before rebooting.
* compat: support latest suse 15.1 and 15.2
* compat: support RHEL 7.8's faulty siphash backport
* compat: error out if bc is missing
* compat: backport hsiphash_1u32 for tests
We now have improved support for RHEL 7.8, SUSE 15.[12], and Ubuntu 16.04.
* compat: include sch_generic.h header for skb_reset_tc
A fix for a compiler error on kernels with weird configs.
* compat: import latest fixes for ptr_ring
* compat: don't assume READ_ONCE barriers on old kernels
* compat: kvmalloc_array is not required anyway
ptr_ring.h from upstream was imported, with compat modifications, to our
compat layer, to receive the latest fixes.
* compat: prefix icmp[v6]_ndo_send with __compat
Some distros that backported icmp[v6]_ndo_send still try to build the compat
module in some corner case circumstances, resulting in errors. Work around
this with the usual __compat games.
* compat: ip6_dst_lookup_flow was backported to 3.16.83
* compat: ip6_dst_lookup_flow was backported to 4.19.119
Greg and Ben backported the ip6_dst_lookup_flow patches to stable kernels,
causing breaking in our compat module, which these changes fix.
* git: add gitattributes so tarball doesn't have gitignore files
Distros won't need to clean this up manually now.
* crypto: do not export symbols
These don't do anything and only increased file size.
* queueing: cleanup ptr_ring in error path of packet_queue_init
Sultan Alsawaf reported a memory leak on an error path.
* main: mark as in-tree
Now that we're upstream, there's no need to set the taint flag.
* receive: use tunnel helpers for decapsulating ECN markings
ECN markings are now decapsulated using RFC6040 instead of the old RFC3168.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Added generic config symbol `ARM64_ERRATUM_1542419` due to Fixes: f2791551cedb ("arm64: errata: Hide CTR_EL0.DIC on systems affected by
Neoverse-N1 #1542419").
Petr Štetiar [Wed, 29 Apr 2020 15:13:29 +0000 (17:13 +0200)]
ath10k-ct: update to version 2020-04-29
Pulls in workaround for TX rate code firmware bug which might as well
help track it down via different printk()s and thus possibly provide
more clue for proper fix.
Firmware currently sends wrong (0xff) TX rate code which causes
WARN_ONCE, so the workaround just changes this bogus value (0xff) into 0.
For 5.4 it also pulls in tx-queue-wake throttling patch "ath10k: Restart
xmit queues below low-water mark", which should improve performance with
high number of concurrent TCP streams.
Ref: https://github.com/greearb/ath10k-ct/pull/129 Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Tue, 28 Apr 2020 15:00:58 +0000 (17:00 +0200)]
dnsmasq: always inform about disabled dhcp service
Init script checks for an already active DHCP server on the interface
and if such DHCP server is found, then it logs "refusing to start DHCP"
message, starts dnsmasq without DHCP service unless `option force 1` is
set and caches the DHCP server check result.
Each consecutive service start then uses this cached DHCP server check
result, but doesn't provide log feedback about disabled DHCP service
anymore.
So this patch ensures, that the log message about disabled DHCP service
on particular interface is always provided.
Acked-by: Hans Dedecker <dedeckeh@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
Daniel Golle [Wed, 29 Apr 2020 19:59:04 +0000 (20:59 +0100)]
ath79: add support for Teltonika RUT955 H7V3C0
This board was previously supported in ar71xx as 'RUT9XX'. The
difference between that and the other RUT955 board already supported in
ath79 is that instead of the SPI shift registers driving the LEDs and
digital outputs that model got an I2C GPIO expander instead.
To support LEDs during early boot and interrupt-driven digital inputs,
I2C support as well as support for PCA953x has to be built-in and
cannot be kernel modules, hence select those symbols for ath79/generic.
Specification:
- 550/400/200 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- 4x 10/100 Mbps Ethernet, with passive PoE support on LAN1
- 2T2R 2,4 GHz (AR9344)
- built-in 4G/3G module (example: Quectel EC-25EU)
- internal microSD slot (spi-mmc, buggy and disabled for now)
- RS232 on D-Sub9 port (Cypress ACM via USB, /dev/ttyACM0)
- RS422/RS485 (AR934x high speed UART, /dev/ttyATH1)
- analog 0-24V input (MCP3221)
- various digital inputs and outputs incl. a relay
- 11x LED (4 are driven by AR9344, 7 by PCA9539)
- 2x miniSIM slot (can be swapped via GPIO)
- 2x RP-SMA/F (Wi-Fi), 3x SMA/F (2x WWAN, GPS)
- 1x button (reset)
- DC jack for main power input (9-30 V)
- debugging UART available on PCB edge connector
Serial console (/dev/ttyS0) pinout:
- RX: pin1 (square) on top side of the main PCB (AR9344 is on top)
- TX: pin1 (square) on bottom side
Flash instruction:
Vendor firmware is based on OpenWrt CC release. Use the "factory" image
directly in GUI (make sure to uncheck "keep settings") or in U-Boot web
based recovery. To avoid any problems, make sure to first update vendor
firmware to latest version - "factory" image was successfully tested on
device running "RUT9XX_R_00.06.051" firmware and U-Boot "3.0.1".
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle [Tue, 28 Apr 2020 17:19:48 +0000 (18:19 +0100)]
ath79: split Teltonika RUT955 to support other RUT9xx models
Split device-tree of Teltonika RUT955 into a generic RUT9xx part and
a part specific to that version of RUT955 already supported.
Also harmonize GPIO and LED names with what is used by the vendor
firmware and assign RS485 DTR signal.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
kirkwood has moved to DSA on 5.4, which will make kernel 4.14 and 4.19
support broken on the affected devices.
Support on kernel 5.4 seems to have been running fine for almost 2 months
on multiple devices, while support for 4.19 has never left testing state.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Acked-by: Pawel Dembicki <paweldembicki@gmail.com>
kirkwood has moved to DSA on 5.4, which will make kernel 4.14 and 4.19
support broken on the affected devices.
Support on kernel 5.4 seems to have been running fine for almost 2 months
on multiple devices.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Acked-by: Pawel Dembicki <paweldembicki@gmail.com>
This patch removes support for swconfig and switches to dsa driver.
swconfig and switch drivers are removed. DSA driver is enabled and
configuration is adjusted.
In kirkwood only two devices have switches: Linksys EA3500 and EA4500.
WAN MAC configuration in 02_network is required because otherwise WAN
would have the same MAC address as lan interfaces. In swconfig solution
the WAN address was assigned in u-Boot to eth1. Now, as eth1 is disabled
and wan is part of the switch, we have to set it manually.
Compile tested: EA3500, EA4500
Run tested: EA4500
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
[minor commit title/message adjustments, remove swconfig package
for devices] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
DENG Qingfang [Tue, 28 Apr 2020 03:38:51 +0000 (11:38 +0800)]
ramips: fix MikroTik 750Gr3 ports MAC addresses
According to a user in OpenWrt forum, on RouterOS the MAC addresses are
ether1(WAN) = MAC
ether2(LAN2) = MAC+1
ether3(LAN3) = MAC+2
etc.
Fix the MAC addresses in OpenWrt.
Ref: https://forum.openwrt.org/t/few-dumb-question-about-mt7530-rb750gr3-dsa/61608 Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
[remove label_mac in 02_network] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
For wave-2, there is now a new variant: htt-mgt-community (vs the old
full-htt-mgt-community).
The non-full one (hence forth 'diet') compiles out a lot of firmware features
that ath10k does not use. This saves a lot of resources and lets one
configure more stations/vdevs/etc using fwcfg.
ath79: indicate boot/failsafe/upgrade for NanoBeam/Nanostation AC
Like for Ubiquiti PowerBeam 5AC Gen2, the highest RSSI LED can
be exploited to indicate boot/failsafe/upgrade for the NanoBeam AC
and Nanostation AC as well.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
ath79: add support for Ubiquiti PowerBeam 5AC Gen2
The Ubiquiti PowerBeam 5AC Gen 2 (PBE-5AC-Gen2) is an outdoor 802.11ac
5 GHz bridge with a radio feed and a dish antenna. The device is
hardware-compatible with the LiteBeam AC Gen2, plus the 4 extra LEDs.
Installation from stock airOS firmware:
- Follow instructions for WA-type Ubiquiti devices on OpenWrt wiki
Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
[changed device name in commit title] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
ramips: remove (kmod-)swconfig DEVICE_PACKAGES for Sitecom WL-351
These definitions are not required since swconfig is selected for
the target anyway and kmod-swconfig is pulled as dependency by
kmod-switch-rtl8366rb.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Felix Fietkau [Mon, 27 Apr 2020 18:06:40 +0000 (20:06 +0200)]
mt76: update to the latest version
bef8f8a5966d mt76: mt7615: remove a stray if statement 89bd7199487f mt76: remove variable 'val' set but not used ee8ac234b84e mt76: mt7615: introduce mt7615_mcu_fill_msg 4999db4668f0 mt76: mt7615: introduce mt7615_mcu_wait_response 8ce6e40eba03 mt76: mt7615: cleanup fw queue just for mmio devices 9d1d2ee9add3 mt76: mt7615: introduce mt7615_init_device routine 7fbd2a57cea4 mt76: always init to 0 mcu messages 3b277cf18d95 mt76: mt7615: introduce mt7615_mcu_send_message routine 2a4132a55a4f mt76: mt7615: add mt7615_mcu_ops data structure 9ba71749a122 mt76: mt7615: move mt7615_mcu_set_bmc to mt7615_mcu_ops 2e991f3e8cdd mt76: mt7615: move mt7615_mcu_set_sta in mt7615_mcu_ops 56852057cb90 mt76: mt7615: rely on skb API for mt7615_mcu_set_eeprom 642ecd978887 mt76: mt7615: rework mt7615_mcu_set_bss_info using skb APIs 2b0810af4a52 mt76: mt7615: move more mcu commands in mt7615_mcu_ops data structure 7a6285e63d88 mt76: mt7615: introduce MCU_FW_PREFIX for fw mcu commands e536b42ebc7d mt76: mt7615: introduce mt7615_register_map fccbdb628ffd mt76: mt7615: add mt7663e support to mt7615_reg_map d42244e9255c mt76: mt7615: add mt7663e support to mt7615_{driver,firmware}_own aebbe088127f mt76: mt7615: add mt7663e support to mt7615_mcu_set_eeprom 28e22d07f892 mt76: mt7615: introduce mt7615_eeprom_parse_hw_band_cap routine 167428592647 mt76: mt7615: introduce mt7615_init_mac_chain routine 23ca7acfc856 mt76: mt7615: introduce uni cmd command types c4171728cf70 mt76: mt7615: introduce set_bmc and st_sta for uni commands 9e5c76d2310a mt76: mt7615: add more uni mcu commands 779b2cebc147 mt76: mt7615: introduce set_ba uni command 21ee7da00f0a mt76: mt7615: get rid of sta_rec_wtbl data structure 2097f74f664c mt76: mt7615: introduce mt7663e support 8e9cd01228d0 mt7615: sync Kconfig with upstream 3b4f93840950 mt76: add memory barrier to DMA queue kick 8d301ace8ed7 mt76: mt7615: fix mt7663e firmware struct endianness 9bc1850ce711 mt76: mt7615: fix endianness in unified command a1b9b7d94aa0 mt76: mt7615: add missing declaration in mt7615.h 6e4b2a709fe7 mt76: sync Makefile with upstream 258dfb6afb30 mt76: mt76x02u: Add support for newer versions of the XBox One wifi adapter 9c3d84b62cc0 mt76: mt76x2u: introduce Mercury UD13 support ea8ea71933ca mt76: mt76x0: pci: add mt7610 PCI ID 9d555f82d329 mt76: mt7615: modify mt7615_ampdu_stat_read for each phy 8bd26d6c3172 mt76: mt7615: enable aggr_stats for both phy 1315afa511e0 mt76: mt7615: cleanup mib related defines and structs 072b50c61e0e mt76: mt7615: add more useful Tx mib counters b23ff3e9343a mt76: mt7663: fix mt7615_mac_cca_stats_reset routine 294abe47c9b2 mt76: mt7663: enable nf estimation d2d7bf2243f6 mt76: mt7615: make scs configurable per phy 908a2cfab88f mt76: mt7663: disable RDD commands eaef0a268b95 mt76: mt7615: add ethool support to mt7663 driver 96e07ef1113d mt76: mt7615: introduce mt7615_mcu_set_channel_domain mcu command 67182f36e3be mt76: mt7663: keep Rx filters as the default e6a3f3ffe53a mt76: mt7615: introduce hw scan support 12ecd5ba2146 mt76: mt7615: introduce scheduled scan support f6ab0bee3172 mt76: mt7615: introduce BSS absence event f208a9430044 mt76: mt7615: introduce rlm tlv in bss_info mcu command ea4f4d216dbe mt76: mt7615: remove unnecessary register operations 72c9380e70f9 mt76: add headroom and tailroom to mt76_mcu_ops data structure 63e14669e09d mt76: mt7615: introduce mt7663u support to mt7615_write_txwi 29d359ac7626 mt76: mt7615: introduce mt7615_mac_update_rate_desc routine 1f1dd2cb5b49 mt76: mt7615: introduce __mt7663_load_firmware routine cb6dcfd3cf13 mt76: mt7615: move mt7615_mac_wtbl_addr in mac.h d28e8e7ef912 mt76: mt76u: rely on mt7622 queue scheme for mt7663u f78cf8957aba mt76: mt7615: rework wtbl key configuration 2829497aaaf5 mt76: mt7615: introduce mt7615_wtbl_desc data structure 02c9ec4a15e7 mt76: mt7615: add address parameter to mt7615_eeprom_init e9c640c0a79e mt76: mt7663: correct the name of the rom patch 1e8b2fe5ab03 mt76: mt7615: do not always reset the dfs state setting the channel ec0ea46dacf9 mt76: mt7615: Delete an error message in mt7622_wmac_probe() d16a4698f1ac mt76: mt7615: disable merge of OTP ROM data by default 2b58998bb594 mt76: mt7615: add support for applying DC offset calibration from EEPROM 55198aafb756 mt76: mt7615: add support for applying tx DPD calibration from EEPROM 5a1eaa38d380 mt76: mt7603: disable merge of OTP ROM data by default bf60f43b12fb mt76: mt76x2: disable merge of OTP ROM data by default 9406eb1d110f mt76: mt7615: fix endian issues in applying flash calibration data 66d00b8c9dac mt76: mt7615: fix possible division by 0 in mt7615_mac_update_mib_stats 25d812dddcf8 mt76: mt7663: fix aggr range entry in debugfs 08b8bd2bc915 mt76: mt7615: disable hw/sched scan ops for non-offload firmware 8fb1cd20a776 mt76: mt7615: set hw scan limits only for firmware with offload support 05b23d7478fe mt76: mt7615: rework IRQ handling to prepare for MSI support b92c0d576769 mt76: mt7622: fix DMA unmap length 03daa60ca69c mt76: mt7663: fix DMA unmap length 5f2f676b1f01 mt76: mt7615: enable MSI by default 5822911f8026 mt76: remove unnecessary annotations a7035bce8517 mt76: mt7615: fix possible deadlock in mt7615_stop d4e6e225bc06 mt76: mt7615: move core shared code in mt7615-common module 94827d2033c7 mt76: mt7615: introduce mt7663u support 36591dd35f91 mt76: mt7615: enable scs for mt7663 driver bd80144cb5be mt76: mt7615: disable aspm by default 9dcb60b78ede mt76: mt7615: provide aid info to the mcu 6e443e89cce2 mt76: remove PS_NULLFUNC_STACK capability ea133325faa6 mt76: mt7663: introduce 802.11 PS support in sta mode ff3869b38cf2 mt76: mt7615: make Kconfig entry obvious for MT7663E 01fd34f3a6c5 mt76: mt7615: fix sta ampdu factor for VHT e5adbb2077e2 mt76: fix A-MPDU density handling d73e3a23a54e mt76: mt7615: use larger rx buffers if VHT is supported 257319e9b07d mt76: mt7615: never use an 802.11b CF-End rate on 5GHz 29a92c5606d6 mt76: mt7603: never use an 802.11b CF-End rate on 5GHz c0b19ac97c07 mt76: mt7615: adjust timing in mt7615_mac_set_timing to match fw/hw values 1656882f2723 mt76: mt7615: do not adjust MAC timings if the device is not running 4e7ce907faf3 mt76: mt7615: fix tx status rate index calculation 8304b3866100 mt76: mt7603: fix tx status rate index calculation 722d1f47d8ba mt76: add rx queues info to mt76 debugfs da329ef776b0 mt76: mt7615: parse mcu return code for unified commands facf74fd506f mt76: mt7615: fix mt7615_firmware_own for mt7663e e910787a9888 mt76: mt7615: fix max wtbl size for 7663 c9821f7d6a8c mt76: mt7615: fix mt7615_driver_own routine e35cc532c3d2 mt76: mt7615: fix aid configuration in mt7615_mcu_wtbl_generic_tlv b6cb91a71fe1 mt76: mt7615: rework mt7615_mac_sta_poll for usb code b193dd8100f8 mt76: mt7663u: enable AirTimeFairness 31cffa98920f mt76: mt7615: move mcu bss upload before creating the sta cde3716aa47e mt76: enable TDLS support 1846da5dd417 mt76: mt7615: set spatial extension index 6aaf0299730f mt76: mt7615: fix endian issues in dcoc/txdpd calibration 5de75b745cf9 mt76: mt7663: fix up BMC entry indicated to unicmd firmware a5f394c5ca48 mt76: mt7615: add sta pointer to mt7615_mcu_add_bss_info signature 1f2f3dda76b9 mt76: mt7615: fix event report in mt7615_mcu_bss_event c2a3cced36de mt76: mt76x0: enable MCS 8 and MCS9 1afabe78cfc5 mt76: mt7663: add the possibility to load firmware v2 5f3ccc722627 mt76: mt7663: remove check in mt7663_load_n9
ramips: use lzma-loader for I-O DATA mt7621 devices
The official sysupgrade images for I-O DATA devices manufactured by
MSTC (MitraStar Technology Corp.) cannot be booted normally and the
kernel panics after switching to kernel 5.4.
This commit fixes the issue by using lzma-loader.
Note:
These devices use Z-LOADER to read the kernel from NAND flash and boot
it. Z-LOADER cannot load and start plain lzma-loader, so additional
lzma-compression is needed.
ramips: mt7621: use lzma-loader for D-Link DIR-860L B1
This device has trouble extracting big kernel from flash,
and supports LZMA compressed kernels only.
Using OpenWrt kernel loader saves us 64 KB compared to the dictionary
size limiting workaround.
Factory image sizes (commit: 5f126c541a74) with "CONFIG_ALL_KMODS=y":
- original ("-d23", default): 4784188 bytes, LZMA ERROR 1
- with "-d19": 4915260, LZMA ERROR 1
- with "-d18": 4915260, diff to original: +128 KB
- with "-d17": 4980796, diff to original: +192 KB
- with this patch: 4849724, diff to original: +64 KB
To save some CPU cycle, use minimal compression ("-a0") for the LZMA
compressed uImage.
The most robust solution would use a different loader,
which reads the compressed kernel directly from the flash.
See the thread at [0] for more details!