aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
Commit message (Collapse)AuthorAgeFilesLines
...
* ath79: fix link mode support list on UniFi ACDavid Bauer2021-04-152-0/+72
| | | | | | | | | | | | | | | | | | | | This fixes incorrect supported link modes indicated when using ethtool on the Ubiquiti UniFi AC lite / LR / Mesh. eroot@OpenWrt:~# ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 100baseT/Half 100baseT/Full 1000baseT/Full 1000baseX/Full The reason for this is, that since kernel 5.4 the PHY capabilities are read dynamically from the PHY. As Ubiquiti leaves the PHY in a wrong state, the capabilities of the SGMII side of the PHY are read. As a side effect, 10 Mbit/s link modes did not work on these boards. Signed-off-by: David Bauer <mail@david-bauer.net>
* ramips/mediatek: import a patch fixing bug in flow-offloadingDaniel Golle2021-04-151-0/+24
| | | | | | | | | | | From Frank Wunderlich <frank-w@public-files.de>: Issue were traffic problems after a while with increased ping times if flow offload is active. It turns out that key_offset with cookie is needed in rhashtable_params and head_offset was defined twice. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ramips: gpio-ralink: use ngpios, not ralink,num-gpiosIlya Lipnitskiy2021-04-1513-29/+51
| | | | | | | | | | | | | | | | DTS properties that match *-gpios are treated specially. Use ngpios instead, as most GPIO drivers upstream do. Fixes 5.10 DTS errors such as: OF: /palmbus@300000/gpio@600: could not find phandle Fixes DTC warnings such as: Warning (gpios_property): /palmbus@300000/gpio@600:ralink,num-gpios: Could not get phandle node for (cell 0) Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> Cc: Daniel Golle <daniel@makrotopia.org>
* ramips: rt288x: replace hack with a kconfig changeIlya Lipnitskiy2021-04-152-45/+32
| | | | | | | | | Use an existing kernel config symbol to fix devices whose ramstart is not zero. See upstream patch message for more details. Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> Cc: Tobias Wolf <dev-NTEO@vplace.de> Cc: Daniel Golle <daniel@makrotopia.org>
* ramips: mt7530 swconfig: fix race condition in register accessDENG Qingfang2021-04-151-6/+10
| | | | | | | | | | | | | | | | The mt7530_{r,w}32 operation over MDIO uses 3 mdiobus operations and does not hold a lock, which causes a race condition when multiple threads try to access a register, they may get unexpected results. To avoid this, handle the MDIO lock manually, and use the unlocked __mdiobus_{read,write} in the critical section. This fixes the "Ghost VLAN" artifact[1] in MT7530/7621 when the VLAN operation and the swconfig LED link status poll race between each other. [1] https://forum.openwrt.org/t/mysterious-vlan-ids-on-mt7621-device/64495 Signed-off-by: DENG Qingfang <dqfext@gmail.com>
* ramips: drop obsolete arcs_cmdline override patchIlya Lipnitskiy2021-04-151-21/+0
| | | | | | | | CONFIG_MIPS_CMDLINE_FROM_DTB is set to 'y' for all ramips targets already, which will ensure that the value of 'bootargs' will take precedence over whatever is in arcs_cmdline. Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
* bcm53xx: add pending TRX patch for "firmware" partitionRafał Miłecki2021-04-141-0/+43
| | | | | | | This fixes partitioning on Linksys EA9500. With this change only the currently used firmware MTD partition gets parsed. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* ath79: add missing patch for kernel 5.10David Bauer2021-04-131-0/+9
| | | | | | | | | When adding the patch for the missing register, the patch file for the testing kernel 5.10 was not included. Fixes commit fbbad9a9a629 ("ath79: force SGMII SerDes mode to MAC operation") Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: force SGMII SerDes mode to MAC operationDavid Bauer2021-04-132-0/+14
| | | | | | | | | | | | | | | | | The mode on the SGMII SerDes on the QCA9563 is 1000 Base-X by default. This only allows for 1000 Mbit/s links, however when used with an SGMII PHY in 100 Mbit/s link mode, the link remains dead. This strictly has nothing to do with the SerDes calibration, however it is done at the same point in the QCA reference U-Boot which is the blueprint for everything happening here. As the current state is more or less a hack, this should be fine. This fixes the issues outlined above on a TP-Link EAP-225 Outdoor. Reported-by: Tom Herbers <freifunk@tomherbers.de> Tested-by: Tom Herbers <freifunk@tomherbers.de> Signed-off-by: David Bauer <mail@david-bauer.net>
* lantiq: add Linux 5.10 support as testing kernelMathias Kresin2021-04-1224-91/+338
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following changes are made to the Lantiq kernel patches: 0001-MIPS-lantiq-add-pcie-driver.patch The pci header isn't included by the of_pci header any longer 0024-MIPS-lantiq-revert-DSA-switch-driver-PMU-clock-chang.patch Due to the merge of grx390 and ar10 clocks, extend support to grx390 0025-NET-MIPS-lantiq-adds-xrx200-legacy.patch The do_carrier arguments was dropped from phy_link_change. The phylib has always sets the third parameter to true so the flag is always changed anyway. of_get_phy_mode() returns an error, or 0 on success, and pass a pointer, of type phy_interface_t, where the phy mode should be stored now. So far an error wasn't considered. Print at least an error message if something unexpected happens. The stuck queue is now passed to xrx200_tx_timeout (the timeout handler) but not used so far. 0028-NET-lantiq-various-etop-fixes.patch ioremap has provided non-cached semantics by default since the Linux 2.6 days and was removed with kernel version 5.6. of_get_phy_mode() returns an error, or 0 on success, and pass a pointer, of type phy_interface_t, where the phy mode should be stored now. So far an error wasn't considered. Print at least an error message if something unexpected happens. 0042-arch-mips-increase-io_space_limit.patch Move IO space extension to laniq specific file Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: copy target to kernel 5.10Mathias Kresin2021-04-1226-0/+15000
| | | | | | | | | Duplicate kernel 5.4 config and patches for kernel 5.10. Duplicate the devicetree source files as well, they need kernel 5.10 specific adjustments. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: dts: mark PCI bridges as suchMathias Kresin2021-04-123-0/+6
| | | | | | | | Use the device_type property to mark PCI host bridges as such. With linux 5.10 it is mandatory, otherwise the PCI IO space is flages as PCI memory and the PCI init fails. Signed-off-by: Mathias Kresin <dev@kresin.me>
* kernel: fix deferred mtdblock registrationDaniel Golle2021-04-121-12/+7
| | | | | | | | | | Check if gendisk is already up instead of trying to figure out parent mtd device (which didn't work well). Reported-by: DENG Qingfang <dqfext@gmail.com> Reported-by: Koen Vandeputte <koen.vandeputte@citymesh.com> Fixes: 2809d0000744 ("kernel: support FIT partition parser on mtdblock devices") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* sunxi: add support for Banana Pi M2 BerryZoltan HERPAI2021-04-121-0/+10
| | | | | | | | | | | | | | | | | | CPU: Allwinner V40 quad-core Cortex A7 @ 1.2GHz Memory: 1GB DDR3 Storage: SDcard, native SATA Network: 10/100/1000M ethernet, Ampak AP6212 wifi + BT USB: 4x USB 2.0 Installation: Use the standard sunxi installation to an SD-card. While the board is very similar to the M2 Ultra board (the V40 is the automotive version of the R40), as both the u-boot and kernel supports them separately, and some pins are different, let's add a separate device spec. Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
* ath79: mikrotik: enable 2nd USB on RouterBOARD 922UAGS-5HPacDKoen Vandeputte2021-04-121-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RB922 boards have 2 separate USB controllers: - 1 is connected to Slot Type A - 1 is connected to the mini PCIe port Enable the 2nd one too. Before: [ 5.339304] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 5.355053] SCSI subsystem initialized [ 5.364184] ehci-fsl: Freescale EHCI Host controller driver [ 5.372377] ehci-platform: EHCI generic platform driver [ 5.378053] ehci-platform 1b000000.usb: EHCI Host Controller [ 5.383861] ehci-platform 1b000000.usb: new USB bus registered, assigned bus number 1 [ 5.391932] ehci-platform 1b000000.usb: irq 14, io mem 0x1b000000 [ 5.410730] ehci-platform 1b000000.usb: USB 2.0 started, EHCI 1.00 [ 5.417739] hub 1-0:1.0: USB hub found [ 5.422280] hub 1-0:1.0: 1 port detected [ 5.434007] usbcore: registered new interface driver usb-storage After: [ 5.342988] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 5.358687] SCSI subsystem initialized [ 5.367813] ehci-fsl: Freescale EHCI Host controller driver [ 5.375998] ehci-platform: EHCI generic platform driver [ 5.381695] ehci-platform 1b000000.usb: EHCI Host Controller [ 5.387507] ehci-platform 1b000000.usb: new USB bus registered, assigned bus number 1 [ 5.395571] ehci-platform 1b000000.usb: irq 14, io mem 0x1b000000 [ 5.416050] ehci-platform 1b000000.usb: USB 2.0 started, EHCI 1.00 [ 5.423089] hub 1-0:1.0: USB hub found [ 5.427578] hub 1-0:1.0: 1 port detected [ 5.432432] ehci-platform 1b400000.usb: EHCI Host Controller [ 5.438254] ehci-platform 1b400000.usb: new USB bus registered, assigned bus number 2 [ 5.446325] ehci-platform 1b400000.usb: irq 15, io mem 0x1b400000 [ 5.468049] ehci-platform 1b400000.usb: USB 2.0 started, EHCI 1.00 [ 5.475082] hub 2-0:1.0: USB hub found [ 5.479574] hub 2-0:1.0: 1 port detected [ 5.491305] usbcore: registered new interface driver usb-storage Fixes: 8f93c05a59 ("ath79: add support for MikroTik RouterBOARD 922UAGS-5HPacD") Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
* sunxi: add support for H6 boards and OrangePiOnePlusZoltan HERPAI2021-04-115-2/+508
| | | | | | | | | | | | | | | | | | | | Specifications: SoC Allwinner H6 @ 1.8 Ghz DRAM 1Gb LPDDR3 Power DC 5V @ 3A Video HDMI (Type 2.0A - full) Audio HDMI, on-board microphone Network 10/100/1000Mbps Ethernet (Realtek RTL8211) Storage microSD USB 1 USB2.0 Host, 1 USB2.0 OTG Debug Serial UART Flashing instructions: Standard sunxi SD card installation procedure - copy image to SD card, insert into SD card slot on the device and boot. Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
* mediatek: mt7622: add spi-nand support for bananapi bpi-r64Oskari Lemmela2021-04-114-12/+142
| | | | | | | | | | Some of bpi-r64 boards have serial NAND attached to SPI bus. Add SD card image support for installing openwrt to it. Default to nand upgrade if root device is not mmc block device. Separate preloader and uboot images for snand are generated. Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
* mxs: add support for 5.10 as testing kernelZoltan HERPAI2021-04-112-0/+251
| | | | | | | | | | | | | | The 100-ARM-dts-imx23-introduce-mmc0_sck_cfg.patch does not need to be copied over as it's already merged upstream. Other notable change is the USB_CHIPIDEA_OF change to USB_CHIPIDEA_IMX [1]. [1] https://www.spinics.net/lists/linux-usb/msg193347.html Compile/runtime-tested on Olinuxino Micro (imx23). Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
* mediatek: bpi-r64: use separate partition for emmc bootloaderOskari Lemmela2021-04-111-6/+7
| | | | | | | eMMC booloader is stored to separate partition. FIP size is increased to 2MB. Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
* kernel: bump 5.10 to 5.10.28Rui Salvaterra2021-04-113-4/+4
| | | | | | | | | | | | Automatically refreshed: 601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch 640-02-net-resolve-forwarding-path-from-virtual-netdevice-a.patch 680-NET-skip-GRO-for-foreign-MAC-addresses.patch Run tested: ramips/mt7621 (Redmi AC2100) Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* sunxi: disable LPAE on cortexa8Zoltan HERPAI2021-04-101-0/+2
| | | | | | | LPAE should be disabled as the Cortex-A8 cores don't support it, and the kernel will crash on boot if it's enabled. Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
* ath79: increase max SPI clock for DIR-859 A1Jan Forman2021-04-101-1/+1
| | | | | | | | Increase the spi-max frequency to 50 MHz, similar to the DIR-842. Signed-off-by: Jan Forman <forman.jan96@gmail.com> [improve commit title, fix commit message alignment] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ramips: improve pinctrl for Youku YK-L1Shiji Yang2021-04-102-16/+4
| | | | | | | 1. rename led pin "air" to a more common name "wlan" and use "phy0tpt" to trigger it. 2. led "wan" can be triggered by ethernet pinctrl by default so just drop it. Signed-off-by: Shiji Yang <yangshiji66@qq.com>
* kernel: bump 5.4 to 5.4.110John Audia2021-04-1010-27/+27
| | | | | | | | | | | | | | | | | | | | Ran update_kernel.sh in a fresh clone without any existing toolchains. Manually rebased due to movement of rx-offload.c in 5.4.110: layerscape/patches-5.4/802-can-0002-can-rx-offload-fix-long-lines.patch layerscape/patches-5.4/802-can-0003-can-rx-offload-can_rx_offload_compare-fix-typo.patch layerscape/patches-5.4/802-can-0004-can-rx-offload-can_rx_offload_irq_offload_timestamp-.patch layerscape/patches-5.4/802-can-0005-can-rx-offload-can_rx_offload_reset-remove-no-op-fun.patch layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch layerscape/patches-5.4/802-can-0018-can-flexcan-use-struct-canfd_frame-for-CAN-classic-f.patch Build system: x86_64 Build-tested: ipq806x/R7800 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us>
* mediatek: remove duplicate dts-v1 statement for UniFi 6 LRAdrian Schmutzler2021-04-102-2/+0
| | | | | | | | | /dts-v1/; must only be specified once. Fixes: e887049fbb74 ("mediatek: add alternative bootchain variant for UniFi 6 LR") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: consolidate testing kernelAdrian Schmutzler2021-04-105-8/+1
| | | | | | | All subtargets have the same testing kernel set, so move it to the target definition. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: fix mtd squashfs root regression on targets with CONFIG_FIT_PARTITIONFelix Fietkau2021-04-103-5/+9
| | | | | | | | | Move 480-mtd-set-rootfs-to-be-root-dev.patch to hack-5.10 and fix assumption about the block device index. Fixes: 2809d0000744 ("kernel: support FIT partition parser on mtdblock devices") Acked-by: Daniel Golle <daniel@makrotopia.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: update flow offload patches to upstream versionFelix Fietkau2021-04-1051-525/+1845
| | | | | | Move patches to backport-5.10, since the series was accepted upstream Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek: add alternative bootchain variant for UniFi 6 LRDaniel Golle2021-04-095-289/+386
| | | | | | | | Builds images for the Ubiquiti Network UniFi 6 LR device running the U-Boot build added by the previous commits. Everything but MTD partitions is moved to dtsi. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* kernel: support FIT partition parser on mtdblock devicesDaniel Golle2021-04-094-12/+241
| | | | | | | | | | | | | | | Allow using the FIT block-device partition partition parser to work on top of mtdblock devices. This is more tricky than it sounds as it requires to reorganize the procedure of registering mtdblock devices in order to avoid locking troubles caused by the block partition parsers then trying to open the mtdblock device for reading while locks are still being held. Fix that by moving the adding of the disks after the entire device has been probed when locks no longer need to be held. Also address issue with mtdsuper surfaced when using sub-partitions which prevented mounting JFFS2 using the /dev/mtdblock* device. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* kernel: mtdsplit_fit: support FIT with external dataDaniel Golle2021-04-091-39/+243
| | | | | | | | | | | | | | | | | | U-Boot has recently added support for having data blobs in uImage.FIT images stored at offsets after the FDT structure rather than embedding the data into the FDT structure itself. This is useful as it allows parts of the image to be mapped by the FIT partition parser, and it allows the FIT structure itself to be parsed more easily as it usually fits into single page. mtdsplit_fit assumed that the total length of an image is identical to the length of the FDT structure. For uImage.FIT with external data this assumption no longer holds true. Add support for uImage.FIT with external data to mtdsplit_fit and in in that case only split-off rootfs_data -- selecting and mapping rootfs partition is left to the block partition parser just like on UBI and block/GPT based platforms. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ath79: mikrotik: define the testing kernel versionKoen Vandeputte2021-04-091-0/+2
| | | | | | | | | | commit d6b785d477 ("ath79: add kernel 5.10 support") moved KERNEL_TESTING_PATCHVER to a subtarget level, but is looks like Mikrotik subtarget was forgotten. Also add it for Mikrotik. Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
* bcm4908: enable Netgear R8000P bootloader imageRafał Miłecki2021-04-081-2/+2
| | | | | | | | | | | | | | | | | | This enables building BCM4908 "raw" image that can be flashed using bootloader web UI. It requires serial console access & stopping booting by the "Press any key to stop auto run". It's easy to build vendor like CHK image but it can't be safely flashed using vendor UI at this point. Netgear implements method called "NAND incremental flashing" that doesn't seem to flash bootfs partition as provided. Above method seems to update vmlinux.lz without updating 94908.dtb. It prevents OpenWrt kernel from booting due to incomplete DTB file. Full Netgear R8000P support can be enabled after finding a way to make vendor firmware flash OpenWrt firmware including the 94908.dtb update. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* bcm4908: enable target & Asus GT-AC5300 imageRafał Miłecki2021-04-082-1/+3
| | | | | | | | | OpenWrt was succesfully tested on the GT-AC5300 model. It's possible to: 1. Install OpenWrt using vendor UI 2. Perform UBI aware sysupgrade 3. Install vendor firmware using OpenWrt sysupgrade Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* firmware-utils: bcm4908img: convert into a packageRafał Miłecki2021-04-081-1/+3
| | | | | | | | | | bcm4908img is a tool managing BCM4908 platform images. It's used for creating them as well as checking, modifying and extracting data from. It's required by both: host (for building firmware images) and target (for sysupgrade purposes). Make it a host/target package. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* ramips: rt305x: use lzma-loader for ZyXEL Keenetic Lite rev.BSzabolcs Hubai2021-04-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes boot loader LZMA decompression issue, reported by GitHub user KOLANICH at [0]. The reported LZMA ERROR has date of 2020-07-20, soon after the device support landed: Ralink UBoot Version: 3.5.2.4_ZyXEL .... 3: System Boot system code via Flash. Image Name: MIPS OpenWrt Linux-4.14.187 Created: 2020-07-20 3:39:11 UTC Image Type: MIPS Linux Kernel Image (lzma compressed) Data Size: 1472250 Bytes = 1.4 MB Load Address: 80000000 Entry Point: 80000000 Verifying Checksum ... OK Uncompressing Kernel Image ... LZMA ERROR 1 - must RESET board to recover [0] https://github.com/openwrt/openwrt/commit/fea232ae8feb6af780fd4fa78ebe9231778bf75a#commitcomment-45016560 Fixes: 4dc9ad4af8c921494d20b303b6772fc6b5af3a69 ("ramips: add support for ZyXEL Keenetic Lite Rev.B") Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
* ath79: move pcie node to DTSI for qca955x Senao APsMichael Pratt2021-04-084-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>
* ath79: cleanup DTS for ALLNET ALL-WAP02860ACMichael Pratt2021-04-081-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>
* ath79: add factory.bin for ALLNET ALL-WAP02860ACMichael Pratt2021-04-083-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>
* ath79: add Senao 'failsafe' sysupgrade procedureMichael Pratt2021-04-089-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>
* ath79: adjust ath79/tiny Senao APs to 4k blocksizeMichael Pratt2021-04-086-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>
* ath79: remove 'fakeroot' for Senao devicesMichael Pratt2021-04-086-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>
* ath79: lzma-loader: allow setting custom kernel magicMichael Pratt2021-04-084-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>
* realtek: allow writing to "u-boot-env2"Bjørn Mork2021-04-085-5/+0
| | | | | | | | U-Boot uses the "bootpartition" variable stored in "u-boot-env2" to select the active system partition. Allow updates to enable system switching from OpenWrt. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* bcm4908: fix Netgear R8000P imageRafał Miłecki2021-04-071-2/+5
| | | | | | Use vendor format to allow flashing using Negear UI. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* bcm4908: add sysupgrade supportRafał Miłecki2021-04-071-0/+213
| | | | | | | | | | It supports flashing OpenWrt images (bootfs & UBI upgrade) as well as vendor images (whole MTD partition write). Upgrading cferom is unsupported. It requires copying device specific data (like MAC) to target image before flashing. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* bcm4908: pad firmware image bootfs JFFS2 partition to 8 MiBRafał Miłecki2021-04-071-1/+1
| | | | | | | | | This way MTD "bootfs" partition will be always 8+ MiB. This should be enough for any custom / future firmware to fit its bootfs (e.g. big kernel) without having to repertition whole flash. That way we can preserve UBI and its erase counters during sysupgrade. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* ath79: ar934x-nand: fix broken nand on kernel 5.10Koen Vandeputte2021-04-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Booting current 5.10.x testing kernel shows this: [ 0.335781] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xf1 [ 0.342280] nand: Samsung NAND 128MiB 3,3V 8-bit [ 0.346982] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 [ 0.354703] ar934x-nand 1b800200.nand: unknown ECC mode 2 [ 0.360193] ar934x-nand 1b800200.nand: nand_scan failed, err:-22 [ 0.366341] ar934x-nand: probe of 1b800200.nand failed with error -22 ... [ 1.089264] /dev/root: Can't open blockdev [ 1.093482] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6 [ 1.101077] Please append a correct "root=" boot option; here are the available partitions: [ 1.109555] 1f00 64 mtdblock0 [ 1.109559] (driver?) [ 1.116199] 1f01 48 mtdblock1 [ 1.116202] (driver?) [ 1.122841] 1f02 4 mtdblock2 [ 1.122844] (driver?) [ 1.129493] 1f03 4 mtdblock3 [ 1.129497] (driver?) [ 1.136138] 1f04 4 mtdblock4 [ 1.136142] (driver?) [ 1.142787] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) [ 1.151168] Rebooting in 1 seconds.. The issue is caused by a wrong check for ECC engine type on newer kernels. Fix this. Bootlog after: [ 0.335689] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xf1 [ 0.342192] nand: Samsung NAND 128MiB 3,3V 8-bit [ 0.346884] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 [ 0.354611] Scanning device for bad blocks [ 0.364924] random: fast init done [ 0.496641] 3 fixed-partitions partitions found on MTD device ar934x-nand [ 0.503545] Creating 3 MTD partitions on "ar934x-nand": [ 0.508865] 0x000000000000-0x000000040000 : "booter" [ 0.515133] 0x000000040000-0x000000400000 : "kernel" [ 0.523265] 0x000000400000-0x000008000000 : "ubi" Fixes: fb64e2c30f ("ath79: ar934x-nand: add kernel 5.10 compatibility") Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
* bcm4908: rename bootfs dummy file to the 1-openwrtRafał Miłecki2021-04-061-1/+1
| | | | | | | | | | | | The purpose of that dummy file is to make CFE work properly with OpenWrt bootfs. CFE for some reason ignores JFFS2 files with ino 0. Rename it to 1-openwrt so: 1. It's consistent with bcm63xx 2. It's OpenWrt specific so sysupgrade can distinguish it from vendor images Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* bcm4908: enable JFFS2 supportRafał Miłecki2021-04-051-1/+0
| | | | | | It's needed for accessing JFFS2 bootfs partition. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>