aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
Commit message (Collapse)AuthorAgeFilesLines
* ath79: add support for onion omegaJan-Niklas Burfeind2021-09-013-0/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Onion Omega is a hardware development platform with built-in WiFi. https://onioniot.github.io/wiki/ Specifications: - QCA9331 @ 400 MHz (MIPS 24Kc Big-Endian Processor) - 64MB of DDR2 RAM running at 400 MHz - 16MB of on-board flash storage - Support for USB 2.0 - Support for Ethernet at 100 Mbps - 802.11b/g/n WiFi at 150 Mbps - 18 digital GPIOs - A single Serial UART - Support for SPI - Support for I2S Flash instructions: The device is running OpenWrt upon release using the ar71xx target. Both a sysupgrade and uploading the factory image using u-boots web-UI do work fine. Depending on the ssh client, it might be necessary to enable outdated KeyExchange methods e.g. in the clients ssh-config: Host 192.168.1.1 KexAlgorithms +diffie-hellman-group1-sha1 The stock credentials are: root onioneer For u-boots web-UI manually configure `192.168.1.2/24` on your computer, connect to `192.168.1.1`. MAC addresses as verified by OEM firmware: 2G phy0 label LAN eth0 label - 1 LAN is only available in combination with an optional expansion dock. Based on vendor acked commit: commit 5cd49bb067ca ("ar71xx: add support for Onion Omega") Partly reverts: commit fc553c7e4c8e ("ath79: drop unused/incomplete dts") Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me> (cherry picked from commit d98738b5c118fc45068b45f07b8b6938e91f35d2)
* kernel: bump 5.4 to 5.4.143Hauke Mehrtens2021-08-2916-62/+23
| | | | | | | | | | | | | | | Manually rebased: bcm27xx/patches-5.4/950-1031-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch Removed upstreamed: mvebu/patches-5.4/100-cpufreq-armada-37xx-forbid-cpufreq-for-1.2-GHz-variant.patch All others updated automatically. Compile-tested on: lantiq/xrx200, armvirt/64 Runtime-tested on: lantiq/xrx200, armvirt/64 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: bump 5.4 to 5.4.142David Bauer2021-08-2427-213/+75
| | | | | | | Compile-tested: ath79-generic ipq40xx-generic Run-tested: ipq40xx-generic Signed-off-by: David Bauer <mail@david-bauer.net>
* ipq40xx: fix Edgecore ECW5211 bootStijn Tintel2021-08-241-0/+1
| | | | | | | | The bootloader will look for a configuration section named ap.dk01.1-c2 in the FIT image. If this doesn't exist, the device won't boot. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> (cherry picked from commit a43da1be43ae251f0edaa6419612e600fc6ec972)
* ath79: kernel: Add missing quote to drivers/mfd/KconfigPaul Blazejowski2021-08-221-1/+1
| | | | | | | | | | | | | | | A missing quote in target/linux/ath79/patches-5.x/920-mikrotik-rb4xx.patch produces: ... scripts/kconfig/conf --syncconfig Kconfig drivers/mfd/Kconfig:2016:warning: multi-line strings not supported ... This patch adds missing closing quote, fixing the above warning. Signed-off-by: Paul Blazejowski <paulb@blazebox.homeip.net> (cherry picked from commit f7374bce00a97fda78ace3acaef48369e8246814)
* x86: kernel: set NR_CPUS to 512Edgar Su2021-08-111-2/+2
| | | | | | | | | | | NR_CPUS limits the number of CPUs supported to 8. This makes total sense on hardware-restircted platforms, but not on x86_64, where CPUs with more than 8 cores can be easily acquired and with less physical limitaions. see also: https://forum.openwrt.org/t/x86-64-8-cpu-limitation-on-vanilla-release/100946 Signed-off-by: Edgar Su <sjs333@outlook.com> (cherry picked from commit df554e6fcab171ec499d8fb2ed10a0da328323f3)
* mvebu: armada-37xx: add patch to forbid cpufreq for 1.2 GHzJosef Schlehofer2021-08-081-0/+39
| | | | | | | | | | | This patch is backported from linux-arm-kernel [1] to improve situation, when it was reported that 1.2 GHz variant is unstable with DFS. It waits to be accepted upstream, however, it waits for Marvell people to respond. [1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20210630225601.6372-1-kabel@kernel.org/ Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com> (cherry picked from commit d3794768177293f584cc74f90c921276793da1e7)
* Revert "mvebu: 5.4 fix DVFS caused random boot crashes"Josef Schlehofer2021-08-081-107/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Based on the discussion on the mailing list [1], the patch which was reverted, it reverts only one patch without the subsequent ones. This leads to the SoC scaling issue not using a CPU parent clock, but it uses DDR clock. This is done for all variants, and it's wrong because commits (hacks) that were using the DDR clock are no longer in the mainline kernel. If someone has stability issues on 1.2 GHz, it should not affect all routers (1 GHz, 800 MHz) and it should be rather consulted with guys, who are trying to improve the situation in the kernel and not making the situation worse. There are two solutions in cases of instability: a) disable cpufreq b) underclock it up to 1 GHz This reverts commit 080a0b74e39d159eecf69c468debec42f28bf4d8. [1] https://lists.openwrt.org/pipermail/openwrt-devel/2021-June/035702.html CC: Pali Rohár <pali@kernel.org> Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com> (cherry picked from commit 7b868fe04a8961048feec1143e72fe47bde52a12)
* kernel: bump 5.4 to 5.4.137Hauke Mehrtens2021-07-3165-148/+149
| | | | | | | | | | | | Manually rebased generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch All others updated automatically. Compile-tested on: ramips/mt7621, armvirt/32 Runtime-tested on: ramips/mt7621, armvirt/32 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ramips: mt76x8: add missing config symbolDavid Bauer2021-07-301-0/+1
| | | | | | PWM_MEDIATEK was not defined, breaking builds for the mt76x8 subtarget. Signed-off-by: David Bauer <mail@david-bauer.net>
* x86: move Kconfig symbol to common configDavid Bauer2021-07-304-3/+1
| | | | | | | This is required for all x86 targets. x86-legacy missed this config symbol, breaking the build. Signed-off-by: David Bauer <mail@david-bauer.net>
* generic: add missing Kconfig symbolDavid Bauer2021-07-301-0/+2
| | | | | | Fixes build errors for sunxi as well as rockchip targets. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: fix JT-OR750i switch LED assignmentDavid Bauer2021-07-291-2/+2
| | | | | | | | The LEDs for LAN1 and LAN3 were swapped. Link on port 1 would illuminate the LED on port 3 and vice versa. Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit f0a885ed8636b9762d12f2eb2755f63297ff0cb5)
* ath79: enable missing pinmux for JT-OR750iDavid Bauer2021-07-291-0/+3
| | | | | | | | Without explicit configuration of these pins the ethernet as well as status LED of the device do not work correctly. Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit 4feb9a4211d4c8e118e6b8f01fa0bbd4eab5d35c)
* ath79: add support for Joy-IT JT-OR750iVincent Wiemann2021-07-295-0/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifications: * QCA9531, 16 MiB flash (Winbond W25Q128JVSQ), 128 MiB RAM * 802.11n 2T2R (external antennas) * QCA9887, 802.11ac 1T1R (connected with diplexer to one of the antennas) * 3x 10/100 LAN, 1x 10/100 WAN * UART header with pinout printed on PCB Installation: * The device comes with a bootloader installed only * The bootloader offers DHCP and is reachable at http://10.123.123.1 * Accept the agreement and flash sysupgrade.bin * Use Firefox if flashing does not work TFTP recovery with static IP: * Rename sysupgrade.bin to jt-or750i_firmware.bin * Offer it via TFTP server at 192.168.0.66 * Keep the reset button pressed for 4 seconds after connecting power TFTP recovery with dynamic IP: * Rename sysupgrade.bin to jt-or750i_firmware.bin * Offer it via TFTP server with a DHCP server running at the same address * Keep the reset button pressed for 6 seconds after connecting power Co-authored-by: Sebastian Schaper <openwrt@sebastianschaper.net> Signed-off-by: Vincent Wiemann <vincent.wiemann@ironai.com> (cherry picked from commit 55b4b3655263984b92e4b9fc515a5e6b8003c655)
* kernel: bump 5.4 to 5.4.132Hauke Mehrtens2021-07-1941-129/+129
| | | | | | | | | | | | Manually rebased layerscape/patches-5.4/805-display-0002-drm-rockchip-prepare-common-code-for-cdns-and-rk-dpi.patch All others updated automatically. Compile-tested on: ramips/mt7621 Runtime-tested on: ramips/mt7621 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ipq40xx: fix FRITZRepeater 1200 RGMII delayDavid Bauer2021-07-171-1/+1
| | | | | | | | | | | | | | | When the AVM FRITZ!Repeater 1200 was introduced on Kernel 4.19, the at803x PHY driver incorrectly set up the delays, not disabling delays set by the bootloader. The PHY was always operating with RX as well as TX delays enabled, but with kernel 5.4 and later, the required TX delay is disabled, breaking ethernet operation. Correct the PHY mode, so the driver enables both delays. Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit f9d18281051c894eacd40f10c10b430c6c9082ad)
* mpc85xx: add missing Kconfig symbolsDavid Bauer2021-07-132-0/+2
| | | | Signed-off-by: David Bauer <mail@david-bauer.net>
* mediatek: add missing config symbolsDavid Bauer2021-07-131-0/+3
| | | | Signed-off-by: David Bauer <mail@david-bauer.net>
* generic: add missing config symbolsDavid Bauer2021-07-131-0/+11
| | | | Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add missing MTD_NAND_RB91X symbolKoen Vandeputte2021-07-091-0/+1
| | | | | | | | Looks like the symbol was forgotten for 5.4 Fixes: 820e660cd7 ("ath79: add NAND driver for MikroTik RB91xG series") Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> (cherry picked from commit 52c27dab1973d523453fc1e319d8636e1cb10927)
* ath79: add missing GPIO_LATCH symbolDavid Bauer2021-07-091-0/+1
| | | | | | | Fixes commit 7b8931678c36 ("ath79: add gpio-latch driver for MikroTik RouterBOARDs") Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit f2f137593eb6c0e849352e85c003c91f8be81dd1)
* ath79: mikrotik: fix beeper phantom noise on RB912Koen Vandeputte2021-07-091-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Analysis done by Denis Kalashnikov: It seems that some ROS versions on some routerboard models have this bug: after silence boot (no output to uart, no beeps) beeper clicks when wireless traffic is. https://forum.mikrotik.com/viewtopic.php?f=3&t=92269 https://forum.mikrotik.com/viewtopic.php?t=63399 From these links: 1) Hello, I have RB951G-2HnD and I noticed strange thing when I loaded the device with some wireless traffic it produced strange sound - like hissing, fizzing etc. 2) Same problem still on 6.33, with silent boot enabled I hear buzzing noise on wireless load. 3) The sound is fixed in v5.19, it was a bug that caused beeper to make clicks. It also got fixed in RouterOS: * What's new in 5.19 (2012-Jul-16 10:51): fix ticking sound on RB411UAHL; * What's new in 6.38.3 (2017-Feb-07 09:52): rb3011 - fixed noise from buzzer after silent boot; I've checked with an oscilloscope that: * When on the ssr beeper pin is 0, on the beeper itself is 1 (~5V), and when on the ssr beeper pin is 1, on the beeper is 0 The beeper doesn't consume power, so 1 should be a default/idle value for the ssr beeper pin). * When there is wireless traffic (ping packets) in the background and the beeper clicks, I see pulses on the beeper itself, but no pulses on the ssr beeper pin (Q5 pin of 74hc595). When I manually toggle the ssr beeper pin I see pulses on both. So, it is likely that the phantom beeper clicks are caused by the EMI. Suggested-by: Denis Kalashnikov <denis281089@gmail.com> Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> (cherry picked from commit a58bcc9e673db3c6aa39f2089d216d51c8356418)
* ath79: ar934x: fix mounting issues if subpage is not supportedKoen Vandeputte2021-07-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the option to disable subpage writing is only set when a HW ECC engine is used. Some boards lack a HW ECC engine and use software for that. In this case, this NAND option does not get set when the NAND chip does not support it, resulting in mounting errors. Move the setting of this option to a generic init location so it gets set for all types where required. While at it, also OR the option instead of just setting it so we don't overwrite potential flags being set somewhere else. Before: [ 1.681273] UBI: auto-attach mtd2 [ 1.684669] ubi0: attaching mtd2 [ 1.688877] ubi0 error: validate_ec_hdr: bad VID header offset 2048, expected 512 [ 1.696469] ubi0 error: validate_ec_hdr: bad EC header [ 1.701712] Erase counter header dump: [ 1.705512] magic 0x55424923 [ 1.709322] version 1 [ 1.712330] ec 1 [ 1.715331] vid_hdr_offset 2048 [ 1.718610] data_offset 4096 [ 1.721880] image_seq 1462320675 [ 1.725680] hdr_crc 0x12255a15 After: 1.680917] UBI: auto-attach mtd2 [ 1.684308] ubi0: attaching mtd2 [ 2.954504] random: crng init done [ 3.142813] ubi0: scanning is finished [ 3.163455] ubi0: attached mtd2 (name "ubi", size 124 MiB) [ 3.169069] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes [ 3.176037] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048 [ 3.182942] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096 [ 3.190013] ubi0: good PEBs: 992, bad PEBs: 0, corrupted PEBs: 0 [ 3.196102] ubi0: user volume: 3, internal volumes: 1, max. volumes count: 128 [ 3.203434] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 1462320675 [ 3.212700] ubi0: available PEBs: 0, total reserved PEBs: 992, PEBs reserved for bad PEB handling: 20 [ 3.222124] ubi0: background thread "ubi_bgt0d" started, PID 317 [ 3.230246] block ubiblock0_1: created from ubi0:1(rootfs) [ 3.235819] ubiblock: device ubiblock0_1 (rootfs) set to be root filesystem [ 3.256830] VFS: Mounted root (squashfs filesystem) readonly on device 254:0. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> (cherry-picked from commit 6561ca1fa510003a19ea7f8800535f12e5098ce2)
* ath79: add support for MikroTik RouterBOARD 912UAG-2HPnDDenis Kalashnikov2021-07-095-0/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This board has been supported in the ar71xx. Links: * https://mikrotik.com/product/RB912UAG-2HPnD * https://openwrt.org/toh/hwdata/mikrotik/mikrotik_rb912uag-2hpnd This also supports the 5GHz flavour of the board. Hardware: * SoC: Atheros AR9342, * RAM: DDR 64MB, * SPI NOR: 64KB, * NAND: 128MB, * Ethernet: x1 10/100/1000 port with passive POE in, * Wi-Fi: 802.11 b/g/n, * PCIe, * USB: 2.0 EHCI controller, connected to mPCIe slot and a Type-A port -- both can be used for LTE modem, but only one can be used at any time. * LEDs: 5 general purpose LEDs (led1..led5), power LED, user LED, Ethernet phy LED, * Button, * Beeper. Not working: * Button: it shares gpio line 15 with NAND ALE and NAND IO7, and current drivers doesn't easily support this configuration, * Beeper: it is connected to bit 5 of a serial shift register (tested with sysfs led trigger timer). But kmod-gpio-beeper doesn't work -- we left this as is for now. Flashing: * Use the RouterBOARD Reset button to enable TFTP netboot, boot kernel and initramfs and then perform sysupgrade. * From ar71xx OpenWrt firmware run: $ sysupgrade -F /tmp/<sysupgrade.bin> For more info see: https://openwrt.org/toh/mikrotik/common. Co-Developed-by: Koen Vandeputte <koen.vandeputte@citymesh.com> Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> Signed-off-by: Denis Kalashnikov <denis281089@gmail.com> (cherry-picked from commit 695a1cd53ca52c678b3f837deb1bf30204285360)
* ath79: add NAND driver for MikroTik RB91xG seriesDenis Kalashnikov2021-07-093-0/+397
| | | | | | | | | | | | | | Main part is copied from ar71xx original driver rb91x_nand written by Gabor Juhos <juhosg@openwrt.org>. What is done: * Support of kernel 5.4 and 5.10, * DTS support, * New gpio API (gpiod_*) support. Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> Signed-off-by: Denis Kalashnikov <denis281089@gmail.com> (cherry-picked from commit 820e660cd7463aa6d5ed9d31baf0f3c35596ce57)
* ath79: add gpio-latch driver for MikroTik RouterBOARDsDenis Kalashnikov2021-07-092-0/+226
| | | | | | | | | | | | | This is a slighty modified version of ar71xx gpio-latch driver written by Gabor Juhos <juhosg@openwrt.org>. Changes: * DTS support, * New gpio API (gpiod_*). Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> Signed-off-by: Denis Kalashnikov <denis281089@gmail.com> (cherry-picked from commit 7b8931678c36c8d8c333b446258a653b1358bf70)
* ltq-deu: Mark lantiq DEU brokenHauke Mehrtens2021-07-023-11/+6
| | | | | | | | | | | | | | | | | | | | | When the ltq_deu_vr9 kernel module is loaded, hostapd does not start any more. It fails with this error message: daemon.err hostapd: nl80211: kernel reports: key addition failed daemon.err hostapd: Interface initialization failed OpenWrt uses the standard Linux crypto API in the wifi drivers now and this probably makes the system offload more crypto operations to special hardware like the Lantiq DEU. There is probably a bug in the DEU and these operations fail and then hostapd does not start the interface. Do not include the Lantiq DEU by default any more. Fixes: FS#3901 Fixes: 53b6783907f3 ("mac80211: remove patches stripping down crypto support") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Tested-by: Notupus <notpp46@gmail.com> (cherry-picked from commit 964863bb23999a1fae99b883053cc4f3c5c42b40)
* kernel: bump 5.4 to 5.4.128Hauke Mehrtens2021-06-2732-115/+77
| | | | | | | | | | | | | | | Manually rebased bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch Replaced with patch from Raspberry Pi kernel 5.10 patches mvebu/patches-5.4/002-PCI-aardvark-Don-t-rely-on-jiffies-while-holding-spi.patch Applied upstream All others updated automatically. Compile-tested on: ath79/generic, lantiq/xrx200, brcm27xx Runtime-tested on: ath79/generic, lantiq/xrx200 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* realtek: Fix failsafe modeHauke Mehrtens2021-06-222-0/+19
| | | | | | | | | | | | | | | | The RTL8380-RTL9300 switches only forward packets when VLAN ID 1 is configured. Do not use the standard failsafe configuration for DSA accessing the default port directly, but configure a switch on the lan1 interface instead. This will add the VLAN ID 1 configuration to the switch: $ bridge vlan show port vlan-id lan1 1 PVID Egress Untagged switch 1 PVID Egress Untagged Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit b7ee0786b56d1088c195fe7c1cdb1ad7d20c9245)
* kernel: Backport patch to automatically bring up DSA master when opening ↵Hauke Mehrtens2021-06-2210-18/+103
| | | | | | | | | | | | | user port Without this patch we have to manually bring up the CPU interface in failsafe mode. This was backported from kernel 5.12. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Tested-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 2e17c710954bd3506467d700dee23757b138fedd)
* kernel-5.4: backport latest patches for wireguardJason A. Donenfeld2021-06-2212-0/+1514
| | | | | | | | | | | These are the latest patches that just landed upstream for 5.13, will be backported by Greg into 5.10 (because of stable@), and are now in the 5.4 backport branch of wireguard: https://git.zx2c4.com/wireguard-linux/log/?h=backport-5.4.y Cc: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Tested-by: Stijn Segers <foss@volatilesystems.org> (cherry picked from commit 2a3b2f59fec10d7c08f90f019b310db418e775bf)
* bcm4908: fix Ethernet broken state after interface restartRafał Miłecki2021-06-221-0/+43
| | | | | | | This fixes traffic stalls after ifdown & ifup. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit f8d5bd20b31842ef7fdb740d27c70294f21c6124)
* bcm4908: add kmod-gpio-button-hotplugRafał Miłecki2021-06-221-0/+1
| | | | | | | | | All bcm4908 devices are expected to have GPIO buttons to make relevant package selected by default. This "fixes" triggering failsafe mode. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit fcfa60408c37a129b143e4928b6d86e383c2c8f6)
* ath79: don't autodetect AR8033 PHY capabilitiesDavid Bauer2021-06-211-0/+25
| | | | | | | | | | | | | | | | | | PHY capabilities are currently read from the fiber status page, thus Linux won't advertise 10 / 100 Base-T operation modes, effectively limiting operation to 1000 Base-T. Statically set the PHYs capabilities, avoiding autodetection. The issue itself is properly fixed kernel upstream, however backporting efforts to OpenWrt master resulted in breaking the fiber operation for another target. This is currently only known to be necessary for the Ubiquiti UniFi AC series, so enabling it in the ath79 target should not break somewhere else. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: use dynamic partitioning for TP-Link CPE seriesMichael Pratt2021-06-181-14/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | CPExxx and WBSxxx boards with AR9344 SOC use the OKLI lzma kernel loader with the offset of 3 blocks of length 4k (0x3000) in order to have a fake "kernel" that cannot grow larger than how it is defined in the now static OEM partition table. Before recent changes to the mtdsplit driver, the uImage parser for OKLI only supported images that started exactly on an eraseblock boundary. The mtdsplit parser for uImage now supports identifying images with any magic number value and at any offset from the eraseblock boundary using DTS properties to define those values. So, it is no longer necessary to use fixed sizes for kernel and rootfs Tested-by: Andrew Cameron <apcameron@softhome.net> [CPE510 v2] Tested-by: Bernhard Geier <freifunk@geierb.de> [WBS210 v2] Tested-by: Petrov <d7c48mWsPKx67w2@gmail.com> [CPE210 v1] Signed-off-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit 7b9a0c264cb9dc2c5a946a0aa9a290427a5e559c)
* ramips: mt7620: add kernel size for Jboot devicesPawel Dembicki2021-06-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since few months multiple users reported problems with various JBoot devices. [0][1][2][3] All of them was bricked. On my Lava LR-25G001 it freezes with current snapshot: CDW57CAM_003 Jboot B695 Giga Switch AR8327 init AR8327/AR8337 id ==> 0x1302 JRecovery Version R1.2 2014/04/01 18:25 SPI FLASH: MX25l12805d 16M . . (freeze) The kernel size is >2048k. I built current master with minimal config and it boots well: CDW57CAM_003 Jboot B695 Giga Switch AR8327 init AR8327/AR8337 id ==> 0x1302 JRecovery Version R1.2 2014/04/01 18:25 SPI FLASH: MX25l12805d 16M . ........................... Starting kernel @80000000... [ 0.000000] Linux version 5.4.124 Kernel size is <2048k. Jboot bootloader isn't open source, so it's impossible to find solution in code. It looks, that some buffer for kernel have 2MB size. To avoid bricked devices, this commit introduces 2048k limit kernel size for all jboot routers. [0] https://bugs.openwrt.org/index.php?do=details&task_id=3539 [1] https://eko.one.pl/forum/viewtopic.php?pid=254344 [2] https://eko.one.pl/forum/viewtopic.php?id=20930 [3] https://eko.one.pl/forum/viewtopic.php?pid=241376#p241376 Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> [remove Fixes:] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit e1d8a14cd0a9f8844f9ebb8ca220780b0ce5d6db)
* ramips: fix LAN LED trigger assignment for Xiaomi Router 3 ProAdam Elyas2021-06-121-2/+2
| | | | | | | | | | | | | The default trigger for the amber lights on lan1 and lan3 were mistakenly swapped after the device's migration to DSA. This caused activity on one port to trigger the amber light on the other port. Swapping their default trigger in the DTS file fixes that. Signed-off-by: Adam Elyas <adamelyas@outlook.com> [minor commit title adjustment, wrap commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit edaf432bf411767f3e8a9e5effc3a416bcac46c7)
* ramips: fix Ethernet random MAC address for HILINK HLK-7628NLiu Yu2021-06-122-4/+5
| | | | | | | | | | | | | | | | | | | Set the ethernet address from flash. MAC addresses as verified by OEM firmware: use interface source 2g wlan0 factory 0x04 (label) LAN eth0.1 factory 0x28 (label+1) WAN eth0.2 factory 0x2e (label+2) Fixes: 671c9d16e382 ("ramips: add support for HILINK HLK-7628N") Signed-off-by: Liu Yu <f78fk@live.com> [drop old MAC address setup from 02_network, cut out state_default changes, face-lift commit message, add Fixes:] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit ae9c5cd37bf5c08452f314b54afa963a00bdde30)
* ath79: fix eth0 PLL registers on WD My Net Wi-Fi Range ExtenderJonathan A. Kollasch2021-06-121-2/+2
| | | | | | | | | | | | This replaces the register bits for RGMII delay on the MAC side in favor of having the RGMII delay on the PHY side by setting the phy-mode property to rgmii-id (RGMII internal delay), which is supported by the at803x driver. Speed 1000 is fixed as a result, so now all ethernet speeds function. Signed-off-by: Jonathan A. Kollasch <jakllsch@kollasch.net> Reviewed-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit f36990eae77c3a22842a2c418378c5dd40dec366)
* ath79: set lzma-loader variables to null by defaultMichael Pratt2021-06-111-0/+4
| | | | | | | | | | | | | | This fixes a small regression where the lzma-loader variable values are being shared between boards that require different configurations. If not set to "" globally, a device without these settings will just take the last values another device has set before in the queue. Fixes: 1b8bd17c2d07 ("ath79: lzma-loader: allow setting custom kernel magic") Signed-off-by: Michael Pratt <mcpratt@pm.me> [add detailed explanation to the commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit bf8c16dfa2cddd529f889510ca5fa5160606c325)
* ath79: move pcie node to DTSI for qca955x Senao APsMichael Pratt2021-06-114-29/+9
| | | | | | | | | | | pcie0 is the same for this generation of Senao APs while eth0, eth1, and wmac can differ the qca,no-eeprom property has no effect for the ath10k drivers Signed-off-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit 15c599c9dfa9cf5459bcc15b773e39891ca14340)
* ath79: cleanup DTS for ALLNET ALL-WAP02860ACMichael Pratt2021-06-111-92/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | use qca955x_senao_loader.dtsi because it is the same hardware / partitioning and some cleanup Effects: nodes to match similar boards - keys - eth0 - pcie0 bumps SPI frequency to 40 MHz removes &pll node: the property is defined in qca955x.dtsi removes qca,no-eeprom: has no effect with mtd-cal-data property (also spelling) Tested-by: Tomasz Maciej Nowak <tmn505@gmail.com> Signed-off-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit e800da9d5c87d276806284cf2183994ea7fe083e)
* ath79: add factory.bin for ALLNET ALL-WAP02860ACMichael Pratt2021-06-113-4/+37
| | | | | | | | | | | | | | | | This device is a Senao-based product using hardware and software from Senao with the tar-gz platform for factory.bin and checksum verification at boot time using variables stored in uboot environment and a 'failsafe' image when it fails. Extremely similar hardware/software to Engenius EAP1200H and other Engenius APs with qca955x Tested-by: Tomasz Maciej Nowak <tmn505@gmail.com> Signed-off-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit 37ea5d9a658a15783b0ac68583db9e67a43e960d)
* ath79: add Senao 'failsafe' sysupgrade procedureMichael Pratt2021-06-119-4/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a similar upgrade method for sysupgrade.bin, like factory.bin, for Senao boards with the tar.gz OEM upgrade platform, and 'failsafe' image which is loaded on checksum failure. This is inspired by the OEM upgrade script /etc/fwupgrade.sh and the existing platforms for dual-boot Senao boards. Previously, if the real kernel was damaged or missing the only way to recover was with UART serial console, because the OKLI lzma-loader is programmed to halt. uboot did not detect cases where kernel or rootfs is damaged and boots OKLI instead of the failsafe image, because the checksums stored in uboot environment did not include the real kernel and rootfs space. Now, the stored checksums include the space for both the lzma-loader, kernel, and rootfs. Therefore, these boards are now practically unbrickable. Also, the factory.bin and sysupgrade.bin are now the same, except for image metadata. This allows for flashing OEM image directly from openwrt as well as flashing openwrt image directly from OEM. Make 'loader' partition writable so that it can be updated during a sysupgrade. tested with ENS202EXT v1 EAP1200H EAP350 v1 EAP600 ECB350 v1 ECB600 ENH202 v1 Signed-off-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit d5035f0d2694cb9c5a93ed72e3b6d2dd1770741e)
* ath79: adjust ath79/tiny Senao APs to 4k blocksizeMichael Pratt2021-06-116-3/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ath79/tiny kernel config has CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y from commit 05d35403b211ccb9bf20e2b3c0b7a30c82c6d6a2 Because of this, these changes are required for 2 reasons: 1. Senao devices in ath79/tiny with a 'failsafe' partition and the tar.gz sysupgrade platform and a flash chip that supports 4k sectors will fail to reboot to openwrt after a sysupgrade. the stored checksum is made with the 64k blocksize length of the image to be flashed, and the actual checksum changes after flashing due to JFFS2 space being formatted within the length of the rootfs from the image example: 0x440000 length of kernel + rootfs (from sysupgrade.bin) 0x439000 offset of rootfs_data (from kernel log) 2. for boards with flash chips that support 4k sectors: saving configuration over sysupgrade is not possible because sysupgrade.tgz is appended at a 64k boundary and the mtd parser starts JFFS2 at a 4k boundary. for boards with flash chips that do not support 4k sectors: partitioning with 4k boundaries causes a boot loop from the mtd parser not finding kernel and rootfs. Also: Some of the Senao boards that belong in ath79/tiny, for example ENH202, have a flash chip that does not support 4k sectors (no SECT_4K symbol in upstream source). Because of this, partitioning must be different for these devices depending on the flash chip model detected by the kernel. Therefore: this creates 2 DTSI files to replace the single one with 64k partitioning for 4k and 64k partitioning respectively. Signed-off-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit a58cb22bbe4bac17e7421a0ad6bf7929fcd56599)
* ath79: remove 'fakeroot' for Senao devicesMichael Pratt2021-06-116-49/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By using the same custom kernel header magic in both OKLI lzma-loader, DTS, and makefile this hack is not necessary anymore However, "rootfs" size and checksum must now be supplied by the factory.bin image through a script that is accepted by the OEM upgrade script. This is because Senao OEM scripts assume a squashfs header exists at the offset for the original "rootfs" partition which is actually the kernel + rootfs in this implementation, and takes size value from the header that would be there with hexdump, but this offset is now the uImage header instead. This frees up 1 eraseblock previously used by the "fakeroot" partition for bypassing the OEM image verification. Also, these Senao devices with a 'failsafe' partition and the tar-gz factory.bin platform would otherwise require flashing the new tar-gz sysupgrade.bin afterward. So this also prevents having to flash both images when starting from OEM or 'failsafe' the OEM upgrade script verifies the header magic numbers, but only the first two bytes. Example: [ "${magic_word_kernel}" = "2705" ] && [ "${magic_word_rootfs}" = "7371" -o "${magic_word_rootfs}" = "6873" ] && errcode="0" therefore picked the magic number 0x73714f4b which is 'sqOK' Signed-off-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit 4a0cc5d4ef29a11914850c72158aca1e2a170fb0)
* ath79: lzma-loader: allow setting custom kernel magicMichael Pratt2021-06-114-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...and max flash offset The mtdsplit parser was recently refactored to allow the kernel to have custom image header magic. Let's also do this for the lzma-loader For example: When implemented together, this allows the kernel to "appear" to be a rootfs by OEM software in order to write an image that is actually kernel + rootfs. At the same time, it would boot to openwrt normally by setting the same magic in DTS. Both of the variables have a default value that is unchanged when not defined in the makefiles This has no effect on the size of the loader when lzma compressed. Signed-off-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit 1b8bd17c2d07c7397015a86941db9e114e1d349a)
* ath79: create common DTSI for Senao qca955x APsAdrian Schmutzler2021-06-113-170/+101
| | | | | | | | | | | | | | | This creates a shared DTSI for qca955x Senao/Engenius APs with concatenated firmware partition/okli loader: - EAP1200H - EnstationAC v1 To make this usable for future boards with 32 MB flash as well, split the partitions node already. Suggested-by: Michael Pratt <mcpratt@pm.me> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit 9b37db5caacdb46710ce6bfc8d37ae2ad02b843b)
* ath79: create common DTSI for Senao ar934x APsAdrian Schmutzler2021-06-114-273/+98
| | | | | | | | | | | | | | | | This creates a shared DTSI for ar934x Senao/Engenius APs: - EAP300 v2 - ENS202EXT v1 - EAP600 - ECB600 Since ar9341/ar9344 have different configuration, this new file mostly contains the partitioning. Suggested-by: Michael Pratt <mcpratt@pm.me> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit ce8b535ed3aea743f58d8445dfaa1c2ced375f94)