aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/drivers
Commit message (Collapse)AuthorAgeFilesLines
* kernel: mtd: bcm-wfi: add cferam name supportÁlvaro Fernández Rojas2023-06-151-2/+14
| | | | | | | | | Some devices rename cferam bootloader using specific patterns and don't follow broadcom standards for renaming cferam files. This requires supporting different cferam file names. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> (cherry picked from commit 8813edd8d9695d4e3939fdaa3c530c682f91de11)
* kernel: mtk-bmt: fix usage of _oob_readChuanhong Guo2023-01-251-2/+8
| | | | | | | | | _oob_read returns number of bitflips on success while bbt_nand_read should return 0. Fixes: 2d49e49b18 ("mediatek: bmt: use generic mtd api") Signed-off-by: Chuanhong Guo <gch981213@gmail.com> (cherry picked from commit f183ce35b8ea2fd991ac489fb223b09a1ecb4db0)
* kernel: mtdsplit: support UBI after FIT imagesFelix Fietkau2022-10-101-2/+7
| | | | | | | Change the partition name accordingly. Same behavior as mtdsplit_uimage Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit 62fd9f97090d05637a283d594f2d02958fd36a80)
* kernel: mtk_bmt: skip bitflip check if threshold isn't setChuanhong Guo2022-10-101-1/+1
| | | | | | | kernel spi-nand driver leaves this field empty and let mtd set it later. Signed-off-by: Chuanhong Guo <gch981213@gmail.com> (cherry-picked from commit 6fa50e26e7c1221085d8e71cde7e9148c540c752)
* kernel: mtk_bmt: add debugfs file to attempt repair of remapped sectorsFelix Fietkau2022-10-101-1/+26
| | | | | | | This can be used for sectors that are not physically damaged Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit 2a8a333ee96fb0c8d9875abf9fcd5c412f4b19ae)
* kernel: add support for mediatek NMBM flash mapping supportFelix Fietkau2022-10-103-3/+2360
| | | | | | | | This NAND flash remapping method is used on newer MediaTek devices with NAND flash. Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit 06382d1af7b2c5afcde605db436522326fbf5467)
* kernel: mtk_bmt: on error, do not attempt to remap out-of-range blocksFelix Fietkau2022-10-102-15/+24
| | | | | | | Pass errors to caller instead Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit be1f2b4d9d01594c2fd20f37b8e63e7cb7a81572)
* kernel: mtk_bmt: fix block copying on remap with bmt v2Felix Fietkau2022-10-101-6/+6
| | | | | | | Copy from the previously mapped block (in case it was remapped already) Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit 7d1e2be1605eda85e1a607a3d3ddefed1b961d3d)
* kernel: mtk_bmt: allow get_mapping_block to return an errorFelix Fietkau2022-10-104-8/+25
| | | | | | | | Used by the mapping implementation to indicate that no backing block is available Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit b4c7f8c5f7a2dab76fe90849e112c6bd8f80ab19)
* kernel: split up mtk_bmt driver codeFelix Fietkau2022-10-104-805/+856
| | | | | | | Keep a separate source file per variant Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit 601c7b4adb0f91005a8755bf9575c68ac623cc33)
* generic: move ledbar driver from mediatek targetSven Wegener2022-09-181-0/+255
| | | | | | | This moves the ledbar driver to generic, to be also used by the ramips target. Signed-off-by: Sven Wegener <sven.wegener@stealer.net> (cherry picked from commit 53fc987b25524c28525313347f0e2e5653dce43c)
* kernel: mtk_bmt: add support for the bbt format used on mt7621Felix Fietkau2022-01-131-6/+202
| | | | | | | | | This does not have spare blocks for remapping, and it is also not suitable for random write access. It only skips over bad blocks on linear writes of an image to a partition. As such, it is really only suitable for the kernel partition, or other partitions with mostly static data Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: mtk_bmt: add abstraction for supporting other formatsFelix Fietkau2022-01-131-90/+122
| | | | | | Preparation for supporting remapping on MT7621 Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: mtk_bmt: remap blocks after reaching bitflip thresholdFelix Fietkau2022-01-131-0/+4
| | | | | | This ensures that blocks are remapped before data becomes corrupt Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: mtk_bmt: pass number of bitflips on read to the callerFelix Fietkau2022-01-131-2/+9
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: mtk_bmt: add support for limiting range of remappingFelix Fietkau2022-01-131-7/+29
| | | | | | | | This can be used to support ubi on top of mtk_bmt without reflashing the boot loader. The boot loader + factory + kernel area is covered, while the rest is passed through as-is Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: mtk_bmt: extend debug interfaceFelix Fietkau2022-01-131-0/+96
| | | | | | | Add support for showing remapped blocks and garbage collecting old remapped blocks triggered by using the mark_good/mark_bad files Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: mtk_bmt: fix remapping after read/write failureFelix Fietkau2022-01-131-11/+67
| | | | | | Copy from the previous block in order to preserve existing data Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: move mediatek BMT support patch to generic patchesFelix Fietkau2022-01-131-0/+788
| | | | | | | Preparation for supporting BMT on MT7621. Move source files to the files/ subdirectory in order to simplify maintenance Signed-off-by: Felix Fietkau <nbd@nbd.name>
* generic: platform/mikrotik: use MTD notifierDenis Kalashnikov2022-01-134-28/+61
| | | | | | | | | | | | | | | | | | | | If the SPI probe is sufficiently delayed, the routerboot driver may fail to init as the routerboot partitions are not yet available. Register an MTD user notifier instead of doing straight init so that the init subroutines are only executed when the target MTD partitions are present. Because the init/exit routines can now be called outside of the kernel normal init/exit calls, they cannot be jettisoned and must always be available: the __init and __exit qualifiers are thus removed. Reported-by: Denis Kalashnikov <denis281089@gmail.com> Signed-off-by: Denis Kalashnikov <denis281089@gmail.com> Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org> Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> [bump hardconfig/softconfig versions] Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* generic: platform/mikrotik: make soft_config writable without 4K sectorsOskari Lemmela2022-01-131-15/+4
| | | | | | | | | Make soft_config writable in all cases. Performing soft_config commit will fail if mtd partition is not writable. Signed-off-by: Oskari Lemmela <oskari@lemmela.net> [bump rb_softconfig version number] Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* Move mvswitch 88E6060 driver to the ath25Sergey Ryazanov2021-12-272-591/+0
| | | | | | | | | | | | | | | | | | | | | | ath25 requires a 88E6060 driver to support boards such as Fonera 2.0g (FON2202). The swconfig based mvswitch driver has not yet been ported to the 5.10 kernel as the only user is the ath25 target while all other targets have been switched to the upstream DSA implementation. Switching ath25 to the DSA implementation is a complex task, since we need either per-board platform data or DTS support. ath25 lacks both of them and builds only a single generic image. So we need to keep the swconfig driver implementation to easly and quickly port ath25 to the 5.10 kernel. Since porting the mvswitch driver to 5.10 as a generic driver is not an option, and since the ath25 is its only user, make mvswitch a target specific driver to be able to port it to the 5.10 kernel as part of the kernel version update of the target. This will allow us quickly migrate to the next kernel version and not delay the next firmware release. Suggested-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
* kernel: export switch_generic_set_link() symbolRafał Miłecki2021-10-071-0/+1
| | | | | | | | | | | | This fixes: ERROR: "switch_generic_set_link" [drivers/net/phy/b53/b53_common.ko] undefined! At some point all packages for swconfig drivers were dropped and targets were meant to have them built into kernels. It seems b53 (re-)gained its kmod-switch-bcm53xx however and b53 needs to be built as module. Fixes: b2cfed48f626 ("Revert "swconfig: fix Broadcom b53 support"") Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* Revert "swconfig: fix Broadcom b53 support"Rafał Miłecki2021-10-072-33/+0
| | | | | | | | | | | | | | | | | | | | This reverts commit 8f9cd1af0f9c325a902dbd0e79e12015372e6bb0. That commit was meant to add a single EXPORT_SYMBOL_GPL() but it actually also added few .of_match_table-s. One commit should handle one thing and should not introduce unrelated changes. Regarding actual changes: 1. EXPORT_SYMBOL_GPL is not required as we don't build swconfig drivers as modules. 2. PHY drivers must not have .of_match_table. That is allowed for MDIO drivers. This could work for some time (although is didn't for me on bcm53xx) but does not with kernel 5.10. It causes a soft lockup and upstream developers confirmed it's an unsupported design. Link: https://lore.kernel.org/netdev/2b1dc053-8c9a-e3e4-b450-eecdfca3fe16@gmail.com/t/#mf80e472f35ee23f7a75cbf5b1e101a17ab3a64a3 Cc: Tobias Schramm <tobleminer@gmail.com> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* kernel: ar8216: remove soft_resetDavid Bauer2021-06-031-8/+0
| | | | | | | | | | ar8xxx_soft_reset is effectively a NOP function. In the PHY state machine, the availability and result of a soft_reset function makes no difference for the code flow. Thus, we can safely remove this method. Signed-off-by: David Bauer <mail@david-bauer.net>
* kernel: ar8216: add get_features methodDavid Bauer2021-06-031-23/+20
| | | | | | | | | | | | | | Modifying PHY capabilities in the probe function broke with upstream commit 92ed2eb7f4b7 ("net: phy: probe the PHY before determining the supported features"). AR8316 switches only support 10/100 Mbit/s link modes because of this change. Provide a get_features method for the PHY driver, so Gigabit link mode will be advertised to link partners again. Signed-off-by: David Bauer <mail@david-bauer.net>
* generic: platform/mikrotik: release mtd device after useThibaut VARÈNE2021-05-122-2/+10
| | | | | | | | | | | | The code uses get_mtd_device_nm() which must be followed by a call to put_mtd_device() once the handle is no longer used. This fixes spurious shutdown console messages such as: [ 2256.334562] Removing MTD device #7 (soft_config) with use count 1 Reported-by: Koen Vandeputte <koen.vandeputte@ncentric.com> Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com> Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
* lantiq: add Linux 5.10 support as testing kernelMathias Kresin2021-04-121-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* 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>
* kernel: create bootfs partition when parsing on BCM4908Rafał Miłecki2021-03-241-5/+9
| | | | | | | | It's helpful for accessing booting data (DTS, kernel, etc.). It has to be used carefully as CFE's JFFS2 support is quite dumb. It doesn't recognize deleted files and has problems handling 0 inode. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* kernel: b53: update the BCM5365 UID in the fixupDaniel González Cabanelas2021-03-051-2/+2
| | | | | | | | | | The BCM5365 UID was updated in the driver, but we should also update it in the fixup. Fixes: cbcac4fde8ba ("kernel: b53: update the BCM5365 UID") Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com> (Ammend commit description, add Fixes tag) Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* kernel: add support for enabling fit firmware partition parser via cmdlineFelix Fietkau2021-02-281-0/+6
| | | | | | | | | This is useful for dual-boot setups where the loader sets variables depending on the flash boot partition. For example the Linksys E8450 sets mtdparts=master for the first partition and mtdparts=slave for the second one. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: b53: update the BCM5365 UIDDaniel González Cabanelas2021-02-261-2/+2
| | | | | | | | | | | | | | BCM63XX internal PHYs and BCM5365 SoC internal switch are both using the same phy_driver->phy_id, causing conflicts and unnecessary probes. E.g the BCM63XX phy internal IRQ is lost on the first probe. The full BCM5365 UID is 0x00406370. Use an additional byte to mask the BCM5365 UID to avoid duplicate driver phy_id's. This will fix the IRQ issue in internal BCM63XX PHYs and avoid more conflicts in the future. Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
* kernel: mtdsplit: add support for BCM63XX CFE firmwareÁlvaro Fernández Rojas2021-02-223-0/+192
| | | | | | | | Broadcom CFE bootloader relies on a tag for identifying the current firmware, such as version, image start address, kernel address and size, rootfs size, board id, signatures, etc. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* generic: ar8216: update version switch for of_get_phy_mode fixAdrian Schmutzler2021-02-161-2/+2
| | | | | | | | | | | | | Kernel has changed the of_get_phy_mode API in commit 0c65b2b90d13 ("net: of_get_phy_mode: Change API to solve int/unit warnings"). This is already included in kernel 5.5, so fix the version switch (though this will not actually matter for the versions we support). Similar driver adjustments to account for the API change will probably be necessary to various other local drivers. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* generic: ar8216: fix kernel 5.10 compile errorDavid Bauer2021-02-161-0/+8
| | | | Signed-off-by: David Bauer <mail@david-bauer.net>
* kernel: add linux 5.10 supportFelix Fietkau2021-02-161-0/+8
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: mtdsplit_uimage: replace "edimax, uimage" parserBjørn Mork2021-01-221-99/+30
| | | | | | | | The "edimax,uimage"" parser can be replaced by the generic parser using device specific openwrt,partition-magic and openwrt,offset properties. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: add "openwrt, offset" and "openwrt, partition-magic"Bjørn Mork2021-01-221-12/+28
| | | | | | | | Some devices prepend a standard U-Boot Image with a vendor specific header, having its own magic. Adding two new properties will support validation of such images, including the additional magic. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: replace "netgear, uimage" parserBjørn Mork2021-01-221-67/+0
| | | | | | | | | | | | | | | | | | | The "netgear,uimage" parser can be replaced by the generic parser using device specific openwrt,ih-magic and openwrt,ih-type properties. Device tree properties for the following devices have not been set, as they have been dropped from OpenWrt with the removal of the ar71xx target: FW_MAGIC_WNR2000V1 0x32303031 FW_MAGIC_WNR2000V4 0x32303034 FW_MAGIC_WNR1000V2_VC 0x31303030 FW_MAGIC_WPN824N 0x31313030 Tested-by: Sander Vanheule <sander@svanheule.net> # WNDR3700v2 Tested-by: Stijn Segers <foss@volatilesystems.org> # WNDR3700v1 Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: add "openwrt, ih-type" device-tree propertyBjørn Mork2021-01-221-10/+14
| | | | | | | Some devices use uimage headers with a non-default ih_type. Add support for overriding this in device tree. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: replace "allnet, uimage" parserBjørn Mork2021-01-221-49/+0
| | | | | | | Convert users to the generic "openwrt,uimage" using device specific "openwrt,ih-magic" properties, and remove "allnet,uimage". Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: replace "openwrt, okli" parserBjørn Mork2021-01-221-53/+0
| | | | | | | | | The only difference between the "openwrt,okli" and the generic parser is the magic. Set this in device tree for all affected devices and remove the "openwrt,okli" parser. Tested-by: Michael Pratt <mcpratt@protonmail.com> # EAP300 v2, ENS202EXT and ENH202 Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: add "openwrt, ih-magic" device-tree propertyBjørn Mork2021-01-221-18/+23
| | | | | | | Many devices use uimages with non-standard magic values. Let device tree override the default magic. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: replace "fonfxc" and "sge" parsersBjørn Mork2021-01-221-85/+8
| | | | | | | | Convert users of the "fonfxc" and "sge" parsers to the generic "openwrt,uimage", using device specific "openwrt,padding" properties. Tested-by: Stijn Segers <foss@volatilesystems.org> [DIR-878 A1] Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: read extralen from device treeBjørn Mork2021-01-221-10/+14
| | | | | | | An "openwrt,padding" property in device tree can replace two device specific parsers. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: add parser finding rootfs after CFE bootfsRafał Miłecki2021-01-223-0/+99
| | | | | | | | | | | | | | It's required for BCM4908. It cannot use "bcm-wfi-fw" parser because that one requires *two* JFFS2 partitions which is untested / unsupported on the BCM4908 architecture. With a single JFFS2 partition "bcm-wfi-fw" parser will: 1. Fail to find "vmlinux.lz" as it doesn't follow "1-openwrt" file 2. Create partitions that don't precisely match bootfs layout The new parser is described in details in the MTD_SPLIT_CFE_BOOTFS symbol help message. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* kernel: remove an unused callback from the ip17xx switch driverFelix Fietkau2020-12-051-7/+0
| | | | | | Also remove the leftover kernel hack that adds support for it Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: add GS110TPPV1 support to mtdsplit_uimageJohn Crispin2020-11-261-3/+5
| | | | | | The ID is used be a Realtek based switch made by Netgear. Signed-off-by: John Crispin <john@phrozen.org>
* kernel: remove mvsw61xx swconfig driverDENG Qingfang2020-11-162-1402/+0
| | | | | | | All targets that used mvsw61xx have switched to upstream mv88e6xxx DSA driver, so it can be removed. Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>