Commit Graph

79 Commits

Author SHA1 Message Date
Felix Fietkau
0c80d4dae2 kernel: remove an unused callback from the ip17xx switch driver
Also remove the leftover kernel hack that adds support for it

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-12-08 11:29:58 +08:00
John Crispin
0dc2529614
kernel: add GS110TPPV1 support to mtdsplit_uimage
The ID is used be a Realtek based switch made by Netgear.

Signed-off-by: John Crispin <john@phrozen.org>
2020-11-28 19:05:00 +08:00
DENG Qingfang
293e6aa6b2
kernel: remove mvsw61xx swconfig driver
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>
2020-11-21 17:47:55 +08:00
CN_SZTL
604ea1e87f
Merge Mainline 2020-11-14 13:55:18 +08:00
Felix Fietkau
44779f88db
kernel: rename mtdpart_get_master to mtd_get_master
Preparation for supporting newer kernels

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-11-14 13:51:31 +08:00
Felix Fietkau
77f61e1212
kernel: ip17xx: use pr_warn instead of pr_warning
Fixes build with newer kernels

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-11-14 13:48:49 +08:00
Thibaut VARÈNE
341983f234
generic: platform/mikrotik: implement multi caldata
MikroTik recently changed again the way they store wlan calibration data
on devices. Prior to this change, ERD calibration data for all available
radios was stored within a single identifier node ("tag" in RouterBoot
parlance).

Recent devices have been seen with calibration (and BDF) data stored in
separate identifiers within LZOR packing for each radio: this patch
addresses this by:
1) ensuring that both variants are properly supported,
2) preserving backward compatibility with existing data consumers,
3) allowing for more than 2 calibration blobs to be exposed via sysfs.

Specifically, before this patch, the driver would provide a single sysfs
file named /sys/firmware/mikrotik/hard_config/wlan_data that contained
whatever calibration data found on the device's flash. After this patch,
when executed on a device that uses the old style storage, this behavior
is unchanged, but when executed on a device that uses new style storage
(for either traditional "ERD" packing or "LZOR" packing), the driver
replaces that single file with a folder containing one or more files
each containing the data encoded within individual identifiers.

As far as OpenWRT is concerned, this means that for devices which are
known to exist with both styles of data storage, a suitable hotplug stub
could look like this for e.g. the second radio:

wdata="/sys/firmware/mikrotik/hard_config/wlan_data"
( [ -f "$wdata" ] && caldata_sysfsload_from_file "$wdata" 0x8000 0x2f20 ) || \
( [ -d "$wdata" ] && caldata_sysfsload_from_file "$wdata/data_2" 0x0 0x2f20 )

This patch has been tested with LZOR old and new style packing on ipq4019,
and with old style on ath79.

Tested-by: John Thomson <git@johnthomson.fastmail.com.au>
Tested-by: Шебанов Алексей <admin@ublaze.ru>
Tested-by: Alen Opačić <subixonfire@gmail.com>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Tested-by: Robert Marko <robimarko@gmail.com>
2020-11-14 13:47:42 +08:00
AmadeusGhost
59e875b6cd generic/mtd: sync upstream source code 2020-10-31 12:38:04 +08:00
Adrian Schmutzler
60f0708280 target: remove obsolete kernel version switches for 4.19
This removes unneeded kernel version switches from the targets after
kernel 4.19 has been dropped.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-31 12:34:06 +08:00
Adrian Schmutzler
6dbec39338 generic: drop outdated kernel version switches in local drivers
This drops the obsolete version switches for non-supported kernels
from local drivers in generic target.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-31 12:33:36 +08:00
Sungbo Eo
810886711d treewide: rename POWER_ON_STRIP register
AR8327 datasheet[1] calls the register at address 0x0010
"Power-on Strapping Register". As it has nothing to do with "strip",
let's rename it to "POWER_ON_STRAP" to make it easier to grasp.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>

Fixes: a484539 "ath79: sync with upstream source".
2020-10-31 12:30:58 +08:00
Birger Koblitz
9e2bdac0d8 kernel: add support for ALLNET devices in mtdsplit
Add support for uimage headers from ALLNET and provide support for the
SG8208M and SG8310PM devices' magic bytes.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2020-09-15 11:38:32 +08:00
Sander Vanheule
00ee1498ac kernel: mtdsplit: support ELF loader splitting
To parse the ELF kernel loader, a small ELF parser is used that can
handle both ELF32 or ELF64 class loaders. The splitter assumes that the
kernel is always located before the rootfs, whether it is embedded in
the loader or not. If the kernel is located after the rootfs on the
firmware partition, then the rootfs splitter will include it in the
dynamically created rootfs_data partition and the kernel will be
corrupted.

The kernel image is preferably embedded inside the ELF loader, so the
end of the loader equals the end of the kernel partition. This is due to
the way mtd_find_rootfs_from searches for the the rootfs:
- if the kernel image is embedded in the loader, the appended rootfs may
  follow the loader immediately, within the same erase block.
- if the kernel image is not embedded in the loader, but placed at some
  offset behind the loader (OKLI-style loader), the rootfs must be
  aligned to an erase-block after the loader and kernel image.

In case section header table is empty, determine the elf loader size by
finding the end of the last segment, as defined by the program header
table.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-09-10 17:27:30 +08:00
CN_SZTL
848f964c9f
Merge Mainline 2020-08-19 01:07:23 +08:00
Thibaut VARÈNE
7fd272698f
generic: platform/mikrotik: fix incorrect test
The test is meant to check the result of the preceding kmalloc()

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-08-19 01:06:07 +08:00
CN_SZTL
76c217e8df
Merge Mainline 2020-08-12 14:49:43 +08:00
AmadeusGhost
0ca6b90875 ramips/dir878: remove the original factory partition definition 2020-08-12 11:01:24 +08:00
AmadeusGhost
c3991c204a Merge Mainline 2020-07-12 18:15:13 +08:00
Thibaut VARÈNE
96f44a4f9a generic: platform/mikrotik: add partial AR71xx cpufreq support
This patch adds cpu frequency setting for AR724x and AR7161.
It is unknown if all the AR71xx devices support the same value range,
so support is only enabled for AR7161 at this stage.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-07-09 12:01:05 +08:00
Thibaut VARÈNE
1affa1b432 generic: platform/mikrotik: add board_revision tag
Tag was discovered exploring the hard_config of a "r2" board.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-07-09 12:00:27 +08:00
Thibaut VARÈNE
332cdea2de generic: platform/mikrotik: graceful fallback for cpufreq_index
The current code would return an error on ath79 when the SoC isn't known
to the driver. Return the raw hex value instead, as happens with non
supported targets.
Also return the correctly incremented value from
sc_tag_cpufreq_ath79_arraysize()

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-07-09 11:59:47 +08:00
Thibaut VARÈNE
e61ff86eeb generic: platform/mikrotik: match RouterBOOT nomenclature
RouterBOOT cpu frequency settings are letter-indexed. Follow the
same logic for the sysfs interface.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-07-09 11:59:15 +08:00
Thibaut VARÈNE
ed8476472b generic: platform/mikrotik: fix routerboot_tag_show_u32s()
The routine would only accurately print out the first word.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Fixes: 5ecf7d96 ("generic: routerboot sysfs platform driver")
2020-07-09 11:58:17 +08:00
AmadeusGhost
ea0f145c3e Merge Mainline 2020-06-28 18:16:21 +08:00
AmadeusGhost
9bfbdcb765 Merge Lean's source 2020-06-28 17:50:37 +08:00
coolsnowwolf
378ca0f03e x64: add EFI Image boot from emmc SSD support 2020-06-23 23:44:27 +08:00
INAGAKI Hiroshi
116404b685 kernel: rtl8367b: fix external interface modes
The interface mode number of RGMII_33V is 7 on RTL8367, but it's 9 on
RTL8367B.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2020-06-12 12:11:09 +08:00
Rafał Miłecki
25cce9fab9 kernel: b53: fix compilation with kernels 5.5+
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2020-06-06 12:15:52 +08:00
Álvaro Fernández Rojas
30a6d42aa4 kernel: mtdsplit: bcm_wfi: always add img partitions
This is useful when booting OpenWrt from ramdisks in order to have both
images partitions defined.
Furthermore, instead of always using img2 for the inactive image, let's use
img1 or img2 accordingly.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-04 17:44:02 +08:00
Álvaro Fernández Rojas
594161b6ca kernel: mtdsplit: support Broadcom WFI bootflags
When firmware is flashed, cferam.000 extension is renamed to the next number.
When booting, CFE scans the NAND and picks the partition with the highest
cferam extension and ignores the other one.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-03 11:48:06 +08:00
Álvaro Fernández Rojas
bf774a6c64 kernel: mtdsplit: improve JFFS2 scan
Allow retrieving full file name and length by parameters.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-03 11:47:26 +08:00
Álvaro Fernández Rojas
0b83f789ab kernel: mtdsplit: bcm_wfi: refactor code
Create new parse_bcm_wfi function with common code from current parsers.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-03 11:45:23 +08:00
Álvaro Fernández Rojas
dfc1114b24 kernel: mtdsplit: bcm_wfi: remove brcm,wfi-sercomm compatibility
The only Sercomm WFI user has been migrated to a dedicated firmware parser.
Keep support for no cferam partition based on a boolean DT property.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-02 18:10:54 +08:00
Álvaro Fernández Rojas
9189a47db5 kernel: mtdsplit: bcm_wfi: support Sercomm bootflags
Sercomm uses 2 bootflag partitions and boots the firmware with the highest
bootflag. Support splitting the firmware partition while keeping support for
unsplitted layout.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-02 18:10:01 +08:00
Álvaro Fernández Rojas
4b4bf048e9 kernel: mtdsplit: bcm_wfi: code refactoring
- Rename master to mtd.
- Pass mtd size as an argument.
- Rename of_match_table.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-02 18:09:33 +08:00
AmadeusGhost
a273d13857 Merge Lean's source 2020-05-30 12:25:05 +08:00
Thibaut VARÈNE
8cbe619b25 generic: routerboot sysfs: soft_config support for ath79 cpufreq
This commit introduces support for R/W access to the CPU frequency
setting of routerboot on ath79 hardware.

On unsupported hardware, the sysfs attribute will expose the raw tag
value (read-only) to help with reverse engineering its meaning.

Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-29 12:10:52 +08:00
Thibaut VARÈNE
12436e3f45 generic: routerboot sysfs: move tag_show_u32()
This routine will be shared between hard and soft config drivers.

Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-29 12:10:25 +08:00
Thibaut VARÈNE
d5dcdccf33 generic: routerboot sysfs: add support for soft_config
This driver exposes the data encoded in the "soft_config" flash segment
of MikroTik RouterBOARDs devices. It presents the data in a sysfs folder
named "soft_config" through a set of human-and-machine-parseable
attributes. Changes can be discarded by writing 0 to the 'commit'
attribute, or they can be committed to flash storage by writing 1.

This driver does not reuse any of the existing code previously found in
the "rbcfg" utility and makes this utility obsolete by providing a clean
sysfs interface.

Like "rbcfg", this driver requires 4K_SECTORS support since the flash
partition in which these parameters are stored is typically 4KB in size.

Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-29 12:04:32 +08:00
Thibaut VARÈNE
3d4c3d7b11 generic: routerboot sysfs: move tag_show_string()
This routine will be shared between hard and soft config drivers.
Also use scnprintf() instead of snprintf().

Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-29 12:03:54 +08:00
Thibaut VARÈNE
142a6a141f generic: platform/mikrotik: rb_hardconfig.c minor fixes
For the sake of strictly typed code, add a missing const qualifier.
Add a missing return value in error path.
Check the return value of mtd_read(), for good measure.
Also demote the error printks of failed sysfs file creation to warn
level since they are not fatal in the init() sequence.
Finally, add a note regarding PAGE_SIZE and clarify a comment.

Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-29 12:03:10 +08:00
Thibaut VARÈNE
5b0bc61de4 generic: platform/mikrotik: reorder Kconfig
The depends and select should apply to the sysfs driver, not the meta
config.

Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-29 12:02:40 +08:00
AmadeusGhost
6105915786
Wireless: rollback with mac80211 (#4683)
mt76: fix build
ath10k-ct: rollback to 4.19
Revert "iw/iwinfo/mwlwifi: bump version"
Revert "mac80211/5.4: fix build on kernel 4.9"
Revert "mac80211: switch to upstream owl-loader driver"
2020-05-27 11:45:56 +08:00
CN_SZTL
917cc30ade
Merge Mainline 2020-05-24 22:41:44 +08:00
Adrian Schmutzler
fbc87b6755 generic: drop outdated kernel version switches in local drivers
This drops the obsolete version switches for non-supported kernels
from local drivers in generic target.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-24 11:33:39 +08:00
Álvaro Fernández Rojas
595a7127e0 kernel: mtdsplit: bcm_wfi: add sercomm support
SERCOMM creates separates partitions for cferam.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-20 11:49:08 +08:00
Álvaro Fernández Rojas
81066f19d7 kernel: mtdsplit: add BCM WFI support
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-19 11:53:47 +08:00
Thibaut VARÈNE
c3f78b2d00 generic: platform/mikrotik: fix LZOR support
31e99fe3da which introduced this code was unfortunately untested.
This commit fixes a number of issues and works around the fact that in
this particular scheme, the LZO payload may be padded at the end which
will trigger a harmless lzo decompression error.
This commit also disambiguates the debug printks.

Tested-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Fixes: 31e99fe3da ("generic: platform/mikrotik: support LZOR encoding")
2020-05-17 11:00:38 +08:00
Koen Vandeputte
57d4161c74 generic: add MikroTik hw bit description
An e-mail response from MikroTik contained a minimal overview
on hardware option bits which mentioned a currently unknown bit.

While not being too detailed what it does, add it for documentation purposes.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2020-05-12 12:18:03 +08:00
AmadeusGhost
c5ac0034f8 Merge Mainline 2020-05-10 11:39:25 +08:00