4146 Commits

Author SHA1 Message Date
Tianling Shen
8b50c1df21 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-03-09 08:52:47 +08:00
Tianling Shen
5a5357e915 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-12-24 10:48:48 +08:00
Tianling Shen
cfa5234f62 dnsmasq: Update to version 2.86
To avoid breaking more unknown stuffs, keep it as-is.

Closes: #807

This reverts commit c4c94449cf.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-11-02 16:25:04 +08:00
Tianling Shen
c4c94449cf Revert "dnsmasq: Update to version 2.86"
This reverts commit 5d1c2547ef.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-11-01 18:37:05 +08:00
Stijn Tintel
413c2b4f5f firewall/firewall4: provide uci-firewall
Provide uci-firewall via PROVIDES in both firewall and firewall4. This
will allow us to change the dependency of luci-app-firewall to
uci-firewall, making it possible to use it with either implementation.

Move CONFLICTS from firewall4 to firewall, to solve this recursive
dependency problem:

tmp/.config-package.in:307:error: recursive dependency detected!
tmp/.config-package.in:307:     symbol PACKAGE_firewall is selected by PACKAGE_firewall4
tmp/.config-package.in:328:     symbol PACKAGE_firewall4 depends on PACKAGE_firewall

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Reviewed-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 53b87a7a28)
2022-10-26 00:24:57 +08:00
Stijn Tintel
aec31b662c firewall4: drop kmod-ipt-nat from CONFLICTS
The limitation of not being able to use iptables and nft nat at the same
time exists only in kernels before 4.18.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Reviewed-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 3d4acc34bb)
2022-10-26 00:23:14 +08:00
Florian Eckert
e3d8cb5c43 target/x86: add grub2-bios-setup to DEFAULT_PACKAGES
With the commit 5876d6a62f the command under
`/usr/sbin/grub-bios-setup` has been moved to its own package named
`grub-bios-setup`.

The script `81_upgrade_bootloader` under `/lib/preinit` is used by all
x86 targets to update the bootloader. The script is using the command
`grub-bios-setup` for this.

I get the following output at the first boot after the upgrade.
`/etc/preinit: line 9: /usr/sbin/grub-bios-setup: not found`.

To fix this, the DEFAULT_PACKAGES dependency is extended by the entry
`grub2-bios-setup` so that the missing command is installed again.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 027845b4ce)
2022-09-20 15:38:40 +08:00
Tianling Shen
03ba649d2f automount: replace ntfs-3g with ntfs3
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit ae33780967)
2022-09-11 22:59:42 +08:00
lean
0d98b3df39 kernel: backport ntfs3 driver from 5.19
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 2d32c19d1b)
2022-09-11 22:58:19 +08:00
Tianling Shen
506ff0a681 rockchip: fix assign mac address to nanopi r4s
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 35e62c98a3)
2022-09-11 11:37:29 +08:00
David Bauer
0f9df5d7ea rockchip: ensure NanoPi R4S has unique MAC address
Ensure the MAC address for all NanoPi R4S boards is assigned unique for
each board.

FriendlyElec ship two versions of the R4S: The standard as well as the
enterprise edition with only the enterprise edition including the EEPROM
chip that stores the unique MAC address.

In order to assign both board types unique MAC addresses, fall back on
the same method used for the NanoPi R2S in case the EEPROM chip is not
present by generating the board MAC from the SD card CID.

[0] https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R4S#Differences_Between_R4S_Standard_Version_.26_R4S_Enterprise_Version

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit b5675f500d)
2022-09-10 10:09:03 +08:00
Tianling Shen
70f071a61a x86: include Intel I225 driver by default
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 44d62ca127)
2022-08-24 01:42:12 +08:00
Tianling Shen
21031ca7c7 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-08-17 20:45:17 +08:00
Ilya Lipnitskiy
d740b795ef toolchain/gcc: replace revert with upstream fix
This will make upgrade to v11.3.0 easier and follows upstream more
closely.

Fixes: #757

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
(cherry picked from commit 0dca1060fd)
[Add fixes]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-08-15 20:14:42 +08:00
Tianling Shen
7ee4a57b00 default-settings: update mirror
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-08-14 01:53:03 +08:00
Tianling Shen
4639ea3799 image-config: switch to immortalwrt's release repo
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-08-10 18:21:28 +08:00
Christian Lamparter
469e051da6 uboot-layerscape: update PKG_HASH
The change of the PKG_VERSION caused the hash of the package to
change. This is because the PKG_VERSION is present in the
internal directory structure of the uboot-layerscape-21.08.tar.xz
archive.

i.e:
 # tar tf uboot-layerscape-21.08.tar.xz:

uboot-layerscape-21.08/
uboot-layerscape-21.08/.azure-pipelines.yml
uboot-layerscape-21.08/.checkpatch.conf
uboot-layerscape-21.08/.gitattributes
uboot-layerscape-21.08/.github/
[...]

vs.

 # tar tf uboot-layerscape-LSDK-21.08.tar.xz
uboot-layerscape-LSDK-21.08/
uboot-layerscape-LSDK-21.08/.azure-pipelines.yml
uboot-layerscape-LSDK-21.08/.checkpatch.conf
uboot-layerscape-LSDK-21.08/.gitattributes
uboot-layerscape-LSDK-21.08/.github/
[...]

the (file) content of both archives are otherwise the same.

The PKG_HASH was taken from the builder log:
| Hash of the local file uboot-layerscape-21.08.tar.xz does not match
|(file: 54909a98bdcc26c7f9b35b35fcae09b977ecbf044be7bffa6dad9306c47cccf6,
|requested: 874e871755ef84ebbf3[...]) - deleting download.

without this update, the uboot-layerscape-21.08 package would
always try to download (from git), repacked the archive and
reupload to sources.openwrt.org (~14 MiB saved).

Fixes: 038d5bdab1 ("layerscape: use semantic versions for LSDK")
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit e879cccaa2)
2022-08-10 17:08:30 +08:00
Tianling Shen
a8a2eee558 hostapd: fix dependencies
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-08-04 17:29:35 +08:00
Nick Hainke
b2370aa432 libcap: update to 2.65
Changes:
a47d86d Up the release version to 2.65
fc99e56 Include more signatures in pgp.keys.asc.
52288cc Close out this comment in the go/Makefile
eb0f1df Prevent 'capsh --user=xxx --' from generating a bash error.
9a95791 Improve documentation for cap_get_pid and cap_reset_ambient.
21d08b0 Fix syntax error in DEBUG protected setcap.c code.
9425048 More useful captree usage string and man page.

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 7455457893)
2022-08-01 21:42:43 +08:00
Nick Hainke
1867dbfa4f libcap: update to 2.64
Changes:
38cfa2e Up the release version to 2.64
7617af6 Avoid a deadlock in forked psx thread exit.
fc029cb Include LIBCAP_{MAJOR,MINOR} #define's in sys/capability.h
ceaa591 Clarify how the cap_get_pid() argument is interpreted.
15cacf2 Fix prctl return code/errno handling in libcap.
aae9374 Be explicit about CGO_ENABLED=1 for compare-cap build.
66a8a14 psx: free allocated memory at exit.

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 97daddffd0)
2022-08-01 21:42:36 +08:00
Nick Hainke
60cec6ea66 mtools: update to 4.0.40
Changes:
- Remove libbsd dependency
- Better compatibility with legacy platforms such as AT&T UnixPC
- Upgraded to autoconf 2.71

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 4538638022)
2022-08-01 21:42:28 +08:00
John Audia
3041aeae06 kernel: bump 5.10 to 5.10.134
All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 7be62b1187)
2022-08-01 21:41:50 +08:00
John Audia
f1b26af76d x86: update defconfig for 5.10.133
Add some new/missing symbols relating to speculative execution mitigations[1].

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/x86/Kconfig?id=v5.10.133&id2=v5.10.132

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 56760c0b13)
2022-08-01 21:41:24 +08:00
John Audia
e10ef6654d kernel: bump 5.10 to 5.10.133
All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 913f160ac6)
2022-08-01 21:41:17 +08:00
John Audia
b0b41d911a kernel: bump 5.10 to 5.10.132
All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 7d3c0928de)
2022-08-01 21:39:09 +08:00
John Audia
014ed26513 kernel: bump 5.10 to 5.10.131
All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit c50d462e34)
2022-08-01 21:38:52 +08:00
John Audia
f37fa6b5a9 kernel: bump 5.10 to 5.10.130
All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit c600d1cb00)
2022-08-01 21:38:15 +08:00
John Audia
baafaf46fc kernel: bump 5.10 to 5.10.129
All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 06c9e8bfdf)
2022-08-01 21:37:53 +08:00
John Audia
ba7591bbe2 kernel: bump 5.10 to 5.10.128
No patches needed to be rebased, just updated checksums

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 6dc3efe14b)
2022-08-01 21:37:38 +08:00
Sebastian Kemper
f42aadda39 nls.mk: clean up INTL flags
gettext (libintl-stub) was removed in commit [1], so the libintl-stub
lib and include directories aren't existing anymore. This commit cleans
up the INTL flags for the BUILD_NLS=n case.

[1] e6f569406f

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Reviewed-by: Rosen Penev <rosenp@gmail.com>
(cherry picked from commit 92f0b7d4d2)
2022-08-01 21:34:34 +08:00
Christian Lamparter
6394500ef0 firmware: intel-microcode: update to 20220510
Debians' changelog by Henrique de Moraes Holschuh <hmh@debian.org>:

 * New upstream microcode datafile 20220419
  * Fixes errata APLI-11 in Atom E3900 series processors
  * Updated Microcodes:
    sig 0x000506ca, pf_mask 0x03, 2021-11-16, rev 0x0028, size 16384

 * New upstream microcode datafile 20220510
  * Fixes INTEL-SA-000617, CVE-2022-21151:
    Processor optimization removal or modification of security-critical
    code may allow an authenticated user to potentially enable information
    disclosure via local access (closes: #1010947)
  * Fixes several errata (functional issues) on Xeon Scalable, Atom C3000,
    Atom E3900
  * New Microcodes:
    sig 0x00090672, pf_mask 0x03, 2022-03-03, rev 0x001f, size 212992
    sig 0x00090675, pf_mask 0x03, 2022-03-03, rev 0x001f, size 212992
    sig 0x000906a3, pf_mask 0x80, 2022-03-24, rev 0x041c, size 212992
    sig 0x000906a4, pf_mask 0x80, 2022-03-24, rev 0x041c, size 212992
    sig 0x000b06f2, pf_mask 0x03, 2022-03-03, rev 0x001f, size 212992
    sig 0x000b06f5, pf_mask 0x03, 2022-03-03, rev 0x001f, size 212992
  * Updated Microcodes:
    sig 0x00030679, pf_mask 0x0f, 2019-07-10, rev 0x090d, size 52224
    sig 0x000406e3, pf_mask 0xc0, 2021-11-12, rev 0x00f0, size 106496
    sig 0x00050653, pf_mask 0x97, 2021-11-13, rev 0x100015d, size 34816
    sig 0x00050654, pf_mask 0xb7, 2021-11-13, rev 0x2006d05, size 43008
    sig 0x00050656, pf_mask 0xbf, 2021-12-10, rev 0x4003302, size 37888
    sig 0x00050657, pf_mask 0xbf, 2021-12-10, rev 0x5003302, size 37888
    sig 0x0005065b, pf_mask 0xbf, 2021-11-19, rev 0x7002501, size 29696
    sig 0x000506c9, pf_mask 0x03, 2021-11-16, rev 0x0048, size 17408
    sig 0x000506e3, pf_mask 0x36, 2021-11-12, rev 0x00f0, size 109568
    sig 0x000506f1, pf_mask 0x01, 2021-12-02, rev 0x0038, size 11264
    sig 0x000606a6, pf_mask 0x87, 2022-03-30, rev 0xd000363, size 294912
    sig 0x000706a1, pf_mask 0x01, 2021-11-22, rev 0x003a, size 75776
    sig 0x000706a8, pf_mask 0x01, 2021-11-22, rev 0x001e, size 75776
    sig 0x000706e5, pf_mask 0x80, 2022-03-09, rev 0x00b0, size 112640
    sig 0x000806a1, pf_mask 0x10, 2022-03-26, rev 0x0031, size 34816
    sig 0x000806c1, pf_mask 0x80, 2022-02-01, rev 0x00a4, size 109568
    sig 0x000806c2, pf_mask 0xc2, 2021-12-07, rev 0x0026, size 97280
    sig 0x000806d1, pf_mask 0xc2, 2021-12-07, rev 0x003e, size 102400
    sig 0x000806e9, pf_mask 0x10, 2021-11-12, rev 0x00f0, size 105472
    sig 0x000806e9, pf_mask 0xc0, 2021-11-12, rev 0x00f0, size 105472
    sig 0x000806ea, pf_mask 0xc0, 2021-11-12, rev 0x00f0, size 105472
    sig 0x000806eb, pf_mask 0xd0, 2021-11-15, rev 0x00f0, size 105472
    sig 0x000806ec, pf_mask 0x94, 2021-11-17, rev 0x00f0, size 105472
    sig 0x00090661, pf_mask 0x01, 2022-02-03, rev 0x0016, size 20480
    sig 0x000906c0, pf_mask 0x01, 2022-02-19, rev 0x24000023, size 20480
    sig 0x000906e9, pf_mask 0x2a, 2021-11-12, rev 0x00f0, size 108544
    sig 0x000906ea, pf_mask 0x22, 2021-11-15, rev 0x00f0, size 104448
    sig 0x000906eb, pf_mask 0x02, 2021-11-12, rev 0x00f0, size 105472
    sig 0x000906ec, pf_mask 0x22, 2021-11-15, rev 0x00f0, size 104448
    sig 0x000906ed, pf_mask 0x22, 2021-11-16, rev 0x00f0, size 104448
    sig 0x000a0652, pf_mask 0x20, 2021-11-16, rev 0x00f0, size 96256
    sig 0x000a0653, pf_mask 0x22, 2021-11-15, rev 0x00f0, size 97280
    sig 0x000a0655, pf_mask 0x22, 2021-11-16, rev 0x00f0, size 96256
    sig 0x000a0660, pf_mask 0x80, 2021-11-15, rev 0x00f0, size 96256
    sig 0x000a0661, pf_mask 0x80, 2021-11-16, rev 0x00f0, size 96256
    sig 0x000a0671, pf_mask 0x02, 2022-03-09, rev 0x0053, size 103424

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 2747a94f09)
2022-08-01 21:34:01 +08:00
Rosen Penev
e83f041742 strace: add nls.mk
Needed when building with libdw and CONFIG_BUILD_NLS, mostly for the
rpath-link.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
(cherry picked from commit 4dc198a74e)
2022-08-01 21:33:21 +08:00
Nick Hainke
d91056f786 libusb: update to 1.0.26
Add libatomic as dependency.

Changelog:
2022-04-10: v1.0.26
* Fix regression with transfer free's after closing device
* Fix regression with destroyed context if API is misused
* Workaround for applications using missing default context
* Fix hotplog enumeration regression
* Fix Windows isochronous transfer regression since 1.0.24
* Fix macOS exit crash in some multi-context cases
* Build fixes for various platforms and configurations
* Fix Windows HID multi-interface product string retrieval
* Update isochronous OUT packet actual lengths on Windows
* Add interface bound checking for broken devices
* Add umockdev tests on Linux

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit ccfb736c23)
2022-08-01 21:29:54 +08:00
Nick Hainke
9ec844de39 libusb: update to 1.0.25
Remove upstreamed patche:
- 001-Correct-a-typo-in-the-Changelog-and-clean-up-a-stray.patch
- 002-linux_usbfs-Fix-parsing-of-descriptors-for-multi-con.patch

Changelog:
2022-01-31: v1.0.25
* Linux: Fix regression with some particular devices
* Linux: Fix regression with libusb_handle_events_timeout_completed()
* Linux: Fix regression with cpu usage in libusb_bulk_transfer
* Darwin (macOS): Add support for detaching kernel drivers with authorization.
* Darwin (macOS): Do not drop partial data on timeout.
* Darwin (macOS): Silence pipe error in set_interface_alt_setting().
* Windows: Fix HID backend missing byte
* Windows: Fix segfault with libusbk driver
* Windows: Fix regression when using libusb0 driver
* Windows: Support LIBUSB_TRANSFER_ADD_ZERO_PACKET on winusb
* New NO_DEVICE_DISCOVERY option replaces WEAK_AUTHORITY option
* Various other bug fixes and improvements

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit d858511723)
2022-08-01 21:29:45 +08:00
Leo Soares
2f5e714505 libusb: fix missing link
adds `libusb-1.0.so` link on the target root again.

Fixes: 43539a6aab ("libusb: make InstallDev explicit")
Signed-off-by: Leo Soares <leo@hyper.ag>
(added fixed tag, reworded commit)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit dc59a22f1d)
2022-08-01 21:29:30 +08:00
Nick Hainke
b9e8d7f0b2 strace: update to 5.18
Improvements
- Added an interface of raising des Strausses awareness.
- Added --tips option to print strace tips, tricks, and tweaks at the end of the tracing session.
- Enhanced decoding of bpf and io_uring_register syscalls.
- Implemented decoding of COUNTER_*, RTC_PARAM_GET, and RTC_PARAM_SET ioctl commands.
- Updated lists of BPF_*, BR_*, BTRFS_*, IFA_*, IFLA_*, IORING_*, KEY_*, KVM_*, MADV_*, and UFFD_* constants.
- Updated lists of ioctl commands from Linux 5.18.

Bug fixes
- Fixed printing of the updated value of union bpf_attr.next_id on the exiting of bpf(BPF_*_GET_NEXT_ID) calls.

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 6d423ffbd1)
2022-08-01 21:28:05 +08:00
Nick Hainke
95207eed16 strace: update to 5.17
Improvements
- Added 64-bit LoongArch architecture support.
- Extended personality designation syntax of syscall specification expressions to support all@pers and %class@pers.
- Enhanced rejection of invalid syscall numbers in syscall specification expressions.
- Implemented decoding of set_mempolicy_home_node syscall, introduced in Linux 5.17.
- Implemented decoding of IFLA_GRO_MAX_SIZE and TCA_ACT_IN_HW_COUNT netlink attributes.
- Implemented decoding of PR_SET_VMA operation of prctl syscall.
- Implemented decoding of siginfo_t.si_pkey field.
- Implemented decoding of LIRC ioctl commands.
- Updated lists of FAN_*, IORING_*, IOSQE_*, KEY_*, KVM_*, MODULE_INIT_*, TCA_ACT_*, and *_MAGIC constants.
- Updated lists of ioctl commands from Linux 5.17.

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 36f3238dcb)
2022-08-01 21:27:57 +08:00
Nick Hainke
5f608ef1ef nettle: update to 3.8
Refresh:
- 100-portability.patch

Changelog:

ea4ea5e6 Document MacOS test workaround.
b14fc902 Add missing file fat-arm64.c to tar file.
6720f433 Update config.guess and config.sub to latest versions.
a2be57f0 NEWS entries for Nettle-3.8.
bff9a605 Update version numbers, for nettle-3.8.
36386678 Fix comment typo
e05fd5a9 Add ChangeLog entry for SM3 contribution.
8739faa8 Document cbc_aes128_encrypt, cbc_aes192_encrypt and cbc_aes256_encrypt.
efb2ec7f Deleted the manual's incomplete and out of date list of authors.
af38c91f New more accurate AUTHORS file.
ba084efa Fix ChangeLog typo.
0fff3097 ChangeLog entries for s390x ghash update.
75b687a8 Fix comment typo.
5d0089ed Refactor s390x-specific code for new ghash organization
2aabd5e2 ppc: Update fat setup for new ghash organization.
8f5fddfb ppc: Update vpmsumd ghash to new organization.
1227381e Comment fix.
9939f866 arm64: Update fat setup for new ghash organization.
ab62f731 Fix comment error
b1645555 arm64: Update pclmul ghash to new organization.
6b80b889 Update fat setup for new ghash organization.
d382fcc0 Delete _ghash_digest.
d11c4cd9 x86_64: Update pclmul ghash to new organization.
f79cc0c1 x86_64: Update table-based ghash to new organization.
bdc2fc31 Move _ghash_digest.
1d438ad4 Refactor GCM C implementation.
bdf820df New function block16_zero.
d966ea0d Delete code for GCM_TABLE_BITS != 8.
60edc290 x86_64: Fat setup for GCM.
be245313 Fix comment typo.
f8fa4f1f x86_64: Initial implementation of gcm using the pclmulqdq instructions.
23f75f58 Rearrange gcm configuration defines, and add tests for internal functions.
483ccbc9 Add tests for edge cases in poly1305 digest folding.
f3656a44 x86_64: Rewrite of poly1305 assembly.
b7268727 ChangeLog entry for arm64 implementation of chacha.
1d4a985c ChangeLog entries for new ppc64 ecc files.
99be366f ecc: Add powerpc64 assembly for ecc_448_modp
53f7ae66 Move a comment.
e643dcf1 ecc: Add powerpc64 assembly for ecc_25519_modp
741191d1 ecc: Add powerpc64 assembly for ecc_224_modp
4adcb4af Simplify poly1305-test, more use of tstring length.
b48217c8 Add randomized tests of poly1305.
dbf178c0 Arrange so that GMP or mini-gmp is always available for tests.
7d83510e ChangeLog entries for new ppc64 ecc files.
02bbf7d1 ecc: Add powerpc64 assembly for ecc_521_modp
2bc7dfad ecc: Add powerpc64 assembly for ecc_384_modp
9b6c0639 ecc: Add powerpc64 assembly for ecc_192_modp
39af7b2e [Arm64] Optimize Chacha20
c82876a5 [S390x] Alerting assembler of machine type
044d24b0 [S390x] Optimize Chacha20
94228f87 tests: Use inline function for dummy definition of test_randomize.
7926debe Share ecc point validation function in testutils.c.
25f73004 Whitespace cleanup
0ec184d8 ppc: Reduce number of registers used for ecc_secp256r1_redc.
c7cf1939 ppc: New configure test for ELFV2_ABI
f57640ea x86_64: Improved ecc_secp256r1_redc
dd65a63e ChangeLog for previous change.
ecd4eacf ppc: Add powerpc64 assembly for ecc_256_redc
b2758f7c doc: documentation for SM3 hash
0ea74c02 Comment improvements for x86_64 ecc_secp256r1_redc
78aabc69 nettle-benchmark: bench SM3 hashes
7f77ccb4 hmac: add support for SM3 hash function
e2edd9be testsuite: add test for SM3 hash function
b72886e5 Add OSCCA SM3 hash algorithm
d2e4e531 Delete function mpz_limbs_read_n.
dd566239 Delete function mpz_limbs_cmp.
07d5e755 gitlab-ci: Enable randomized tests
64ce8c77 Randomize more tests
a6f9bdeb Reduce allocation in modinv test
957482d9 Fix sqrt_ratio test for v = 0 case.
7f730943 Reduce allocation in sqrt tests
2c9a600d Move NETTLE_TEST_SEED logic to testutils.c.
48d61c28 Delete obsolete comment.
ac95be13 Fix and test for sqrt(0) special case.
ffe0f587 eccdata: Output ecc_sqrt_z and ECC_SQRT_E only when computed.
65c95c79 Fix comment typo.
8db66280 Let secp384r1 inverse and sqrt share most of the powering.
5b2758a3 eccdata: Delete generation of unused values ecc_sqrt_t and ECC_SQRT_T_BITS.
b3abfac5 eccdata: Generate both redc and non-redc versions of ecc_sqrt_z.
2dbe065d Implement secp224r1 square root, based on patch by Wim Lewis.
c8daa71c New function ecc_mod_equal_p, based on patch by Wim Lewis.
4be1725f New function ecc_mod_pow_127m1, used for ecc_secp224r1_inv.
4e987de3 Implement secp521r1 square root, based on patch by Wim Lewis.
2adc4268 Implement secp384r1 square root, based on patch by Wim Lewis.
bc07754f Implement secp256r1 square root, based on patch by Wim Lewis.
35f12552 Implement secp192r1 square root, based on patch by Wim Lewis.
c2726388 Renamed sqrt_itch --> sqrt_ratio_itch, and curve25519 and curve448 sqrt functions.
03421be1 Rename ecc sqrt --> sqrt_ratio.
652bdc79 New function ecc_mod_zero_p.
571d2cc2 [S390x] Improvements on documentation and instruction set usage for SHA3 permute
26b0f47b New function sec_zero_p.
259ec19a [S390x] Remove lgr instructions by using xgrk instead of xgr instruction
73722fb0 Rewrite of secp256r1 mod functions.
45028ff2 Extend ecc-mod-test, with improved coverage of corner cases.
806d6f6a [S390x] Optimize SHA3 permute using vector facility
78f44318 Change "signature on digest" --> "of digest".
0f90c076 Doc fixes.
52c86f94 Delete a few old FIXME comments
2b68ee47 Use @url and https consistently for references. Fix overlong lines.
ea4b2e86 Use texi2pdf to generate the pdf manual
54bbc09b ChangeLog entries for doc structure improvements.
cc92638c Divide Cipher section into menu and nodes, and some other minor fixes.
5e6af10b Delete explicit node pointers in nettle.texinfo
55584f4e Change CBC-AES interface
7a966ac3 Test AEAD encrypt/decrypt with message split into pieces.
686fd559 More checks for null pointers in test_aead, to silent static analyzer.
41a72c24 Fix checks of HAVE_NATIVE_cbc_aes*_encrypt
d5b0b9cb Fix fat builds for x86_64 windows
419d7af5 x86_64: Fat setup for assembly CBC AES.
121290e0 x86_64: Assembly CBC AES aesni functions.
1f58b09c Add specialized functions for cbc-aes.
99dffa9c ChangeLog entries for recent contributions.
38092fde gitlab-ci: Use mini-gmp for big-endian powerpc64 cross build
4147279b gitlab-ci: Explicitly install cross libgmp-dev packages
8c2321d2 gitlab-ci: No-assembly cross-build for s390x, to test big-endian
d4cd2965 gitlab-ci: Delete mips build
9765f8b9 [S390x] Optimize SHA256 and SHA512 compress functions
463553ae x86_64: New 2-way aesni loop also for aes256
c7391e5c x86_64: Refactor aesni assembly, with specific functions for each key size.
4ea2a1f8 [S390x] Optimize SHA1 compress
a47813c2 [AArch64] Utilize AES 1-block macros in 4-block macros
5f7740a3 [AArch64] Load AES keys at function prologue
76c7418c ChangeLog entries for previous change.
f7bc3e1b [AArch64] Move AES round macros to machine.m4
39d1e2a3 [AArch64] Optimize AES with fat build support
b8054a1d [S390x] Optimize memxor3 using vector facility with fat support
422219fe [S390x] Optimize memxor
3900fe65 Add fat-s390x.c to OPT_SOURCES.
c2f16582 Fix name of s390x/fat directory in make dist target.
4fc00c4d [S390x] add FAT_TEST_LIST variable to enable fat build testing
856c62ef [S390x] Replace inline assembly and fix fat filenames
3be3ff3e [S390x] Fat build support for AES and GHASH
9f9d4c4b arm64: Add sha2 to aarch64 fat tests.
774917ec ChangeLog entry for arm64 sha256..
7b446327 [AArch64] Fat build support for SHA-256 compress
6c84092d [S390x] wipe parameter block content and leftover bytes of data from stack
7d301d93 [S390x] wipe hash subkey from stack once GHASH operation completed
d1c8417f [AArch64] Optimize SHA-256 compress
33bfc509 [S390x] Use uppercase for macro names in machine.m4 and enhance the documentation for GHASH implementation
94be863c Add sha1 to aarch64 fat tests.
6c89ed3c ChangeLog entry for previous change.
e5a9dbf4 arm64: Fat build support for SHA1 compress
530e4c8d [S390x] Update configure.ac and Makefile.in
b0525367 [S390x] Implement alloc_stack and free_stack macros in machine.m4
72448928 [S390x] Optimize GHASH
20fedc01 Update Nettle-3.7.3 NEWS.
c80961c6 Add input check to rsa_decrypt family of functions.
cd6059ae Change _rsa_sec_compute_root_tr to take a fix input size.
401e0bdd Fix comment typos.
fd6d9ba7 Add check that message length to _pkcs1_sec_decrypt is valid.
e60d8367 ChangeLog entry for arm64 sha1.
47cafcf2 aarch64: Optimize SHA1 Compress
a46a17e9 Fix C++-style comments
022e51a2 ChangeLog entries for aes keywrap.
0145efbc Implement aes key wrap and key unwrap (RFC 3394)
61bcbbf8 gitlab-ci: Explicitly pass --enable-s390x-msa to s390x build.
3b1bb7cb Fix comment typo.
c23701f3 Reorder and indent asm_replace_list.
c2a14fa3 ChangeLog entry for new s390x AES implementation.
1f38723e Append s390x-specific asm file names to asm_replace_list in configure.ac
71dafe91 [S390x] Basic AES-192 and AES-256 optimizations
8247fa21 ppc: Fix macro name SWAP_MASK to use all uppercase.
b9f0ede2 Update config.guess and config.sub.
46515038 [S390x] Basic AES-128 optimization
f4dc5f20 Split aes-encrypt.c and aes-decrypt.c into one file per key size.
0bff7a2b Initial config for s390x, contributed by Mamone Tarsha.
06d6ef33 nettle-benchmark: avoid -Wmaybe-uninitialized warnings
dda3f4fd gitlab-ci: Fix only: variables: check, and quote variables.
c2b56cd7 gitlab-ci: Use pipeline variable S390X_ACCOUNT
c25774e2 gitlab-ci: Add remote tests for s390x.
d5972ced Add forward declaration of struct aes_table.
085317d6 ChangeLog entries for arm64 fat build.
944881d7 ChangeLog entry for nettle-3.7.2 release
f9e0e1f4 NEWS entries for 3.7.2.
1585f6ac [AArch64] Support fat build for GCM optimization
03b8ba39 [AArch64] Use m4 macros in gcm-hash.asm and add documentation comments
3f43c143 [AArch64] Update README to be on par with other architectures
b30e0ca6 Fix canonical reduction in gostdsa_vko.
d9b564e4 Similar fix for eddsa.
fbaefb64 Analogous fix to ecc_gostdsa_verify.
c24b3616 Ensure ecdsa_sign output is canonically reduced.
2397757b Fix bug in ecc_ecdsa_verify.
5b7608fd Use ecc_mod_mul_canonical for point comparison.
2bf497ba New functions ecc_mod_mul_canonical and ecc_mod_sqr_canonical.
a471ae85 aarch64: Rename arm64/v8/ --> arm64/crypto/
0489825e aarch64: Use .arch armv8-a+crypto directive.
d32152f4 aarch64: Move m4 definitions after .file directive
f3dda9f4 ChangeLog entries for arm64 gcm_hash.
b098f19b arch64: Fix clang build
fd9dd9d7 arch64: Fix copyright line and typos
a3f91c0e aarch64: Adjust gcm-hash assembly for big-endian systems
09d77a10 aarch64: Implement GHASH using the crypto extension pmul instructions.
0c5429d3 aarch64: Add README
dbd16501 Add an empty machine.m64 to make configure happy
ebf9ae83 Recognize arm64 in configure

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit b32f165048)
2022-08-01 21:27:24 +08:00
Joel Low
edca62df04 wolfssl: add config flag for Curve448
This enables building WolfSSL with Curve448, which can be used by
Strongswan. This has been tested on a Linksys E8450, running OpenWrt
22.03-rc4.

This allows parity with OpenSSL, which already supports Curve448 in
OpenWrt 21.02.

Fixes openwrt/packages#18812.

Signed-off-by: Joel Low <joel@joelsplace.sg>
(cherry picked from commit 925c73aab3)
2022-08-01 21:26:58 +08:00
Nick Hainke
0236cc350d libnl: cleanup makefile
- Add PKG_LICENSE_FILES.
- Use SPDX.

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 77d71163b2)
2022-08-01 21:24:06 +08:00
Tianling Shen
2b45a43d67 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-08-01 21:20:27 +08:00
Tianling Shen
662ae0dc95 u-boot.mk: update distname
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 86714c7684)
2022-07-12 18:40:55 +08:00
Tianling Shen
bbee58428c mediatek: mt7629: add missing Kconfig
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-07-12 09:50:46 +08:00
Hauke Mehrtens
4d472d3ac2 realtek: Remove dnsmasq and odhcpd-ipv6only from default
Do not include the dnsmasq and odhcpd-ipv6only package by default any
more. These services are not needed on a switch. If someone needs this
it is still possible to use opkg or image builder to add them.

This decreases the compressed image size by about 165KBytes.

Tested-by: Stijn Segers <foss@volatilesystems.org>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 2acebbdcaa)
2022-07-12 09:44:23 +08:00
Tianling Shen
5c0c83bbb3 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-07-11 13:09:52 +08:00
Paul Spooren
4d64f6e0c1 build: remove GCC7 support
The development branch is now on version 10, we shouldn't drag to many
old versions and therefore drop at least 7.x.

Signed-off-by: Paul Spooren <mail@aparcar.org>
Acked-by: Rosen Penev <rosenp@gmail.com>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
(cherry picked from commit 62ed1af15d)
2022-07-08 13:03:39 +08:00
Ronny Kotzschmar
81fda2545a rockchip: reliably distribute net interrupts
On the NanoPI R4S it takes an average of 3..5 seconds for the network devices
to appear in '/proc/interrupts'.
Wait up to 10 seconds to ensure that the distribution of the interrupts
really happens.

Signed-off-by: Ronny Kotzschmar <ro.ok@me.com>
(cherry picked from commit 9b00e97956)
2022-07-08 12:48:32 +08:00
Daniel Golle
ce054717cc mvebu: cortexa72: fix ImageBuilder for IEI Puzzle devices
The line trying to generate the standard sdcard.img.gz fails due to
boot.scr not being generated.
Remove the line in order to use the default sdcard.img.gz which is
exactly the same but includes generating the boot.scr file.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 1d3b57dbee)
2022-07-06 13:40:19 +08:00
Hauke Mehrtens
acc8144e8b kernel: Refresh patches for all targets
This refreshes the patches on top of kernel 5.4.127.

Deleted (upstreamed):
bcm27xx/patches-5.10/950-0005-Revert-mailbox-avoid-timer-start-from-callback.patch [0]
bcm27xx/patches-5.10/950-0678-bcm2711_thermal-Don-t-clamp-temperature-at-zero.patch [1]

Needed manual modifications:
bcm27xx/patches-5.10/950-0410-drm-atomic-Pass-the-full-state-to-CRTC-atomic-begin-.patch

[0]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.127&id=bb2220e0672b7433a9a42618599cd261b2629240
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.127&id=83603802954068ccd1b8a3f2ccbbaf5e0862acb0

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit ee67afeda9eb2f4b0b779e2969421ce96c27e720)
2022-07-06 13:38:47 +08:00
John Audia
1a3ecc8dfa kernel: bump 5.10 to 5.10.127
All patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 433dc5892a)
2022-07-06 13:37:44 +08:00
John Audia
24216dd092 kernel: bump 5.10 to 5.10.126
No patches rebased, just checksum update for this refresh.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit c5882c33a7)
2022-07-06 13:35:31 +08:00
Hauke Mehrtens
4ee3423bfb kernel: Remove kmod-crypto-lib-blake2s
Delete the crypto-lib-blake2s kmod package, as BLAKE2s is now built-in.

Fixes: be0639063a ("kernel: bump 5.4 to 5.4.203")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 3439c2ff70)
2022-07-06 13:34:20 +08:00
Hauke Mehrtens
28db45771d kernel: backport wireguard blake2s patch
This patch was backported to kernel 5.4.200, but without the wireguard
change, because wireguard is not available in upstream kernel 5.4.
This adds the missing changes for wireguard too.

Fixes: be0639063a ("kernel: bump 5.4 to 5.4.203")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 8001e19955)
2022-07-06 13:33:36 +08:00
Daniel Golle
19a9aa53ab mvebu: add id for AQR112 Ethernet phy variants
Add ids for AQR112R and AQR112C 2.5G Ethernet PHYs.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 164ed6069c)
2022-07-06 13:33:16 +08:00
Daniel Golle
df3bfa9f01 mvebu: import patch enabling AQR113 PHY
Add PHY ID for the Aquantia AQR113 PHY.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit daf4301071)
2022-07-06 13:32:35 +08:00
Daniel Golle
bcef0bebed mvebu: import patch enabling AQR112 and AQR412 PHY
Copy and refresh patch enabling AQR112 and AQR412 Ethernet PHY from
layerscape (5.4) target to mvebu (5.4) as AQR112 can also be found
in IEI Puzzle devices.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit ee5750043c)
2022-07-06 13:31:51 +08:00
Hauke Mehrtens
094f736c8a kernel: bump 5.4 to 5.4.203
Merged upstream:
 bcm27xx/patches-5.4/950-1014-Revert-mailbox-avoid-timer-start-from-callback.patch
 generic/backport-5.4/080-wireguard-0021-crypto-blake2s-generic-C-library-implementation-and-.patch

Manually adapted:
 layerscape/patches-5.4/801-audio-0005-Revert-ASoC-fsl_sai-Add-support-for-SAI-new-version.patch
 oxnas/patches-5.4/100-oxnas-clk-plla-pllb.patch

Compile-tested: lantiq/xrx200
Run-tested: lantiq/xrx200

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit be0639063a)
2022-07-06 13:30:58 +08:00
Tianling Shen
fe57bfc559 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-07-02 19:08:20 +08:00
Stijn Tintel
95686a0ca3 kernel: add missing symbol to 5.10 config
Kernel 5.10.124 introduced a new symbol 'LIB_MEMNEQ'. Add it to the
generic 5.10 config.

Fixes: 9e5d743422 ("kernel: bump 5.10 to 5.10.124")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
(cherry picked from commit f3caba679b)
2022-06-29 19:26:39 +08:00
Tianling Shen
106f626be5 layerscape: add missing Kconfig
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-06-27 17:48:05 +08:00
Rosen Penev
ce819e8c22 tools/meson: update to 0.61.5
Mostly backports by a Red Hat employee as 0.62 and newer demands Python
3.7+. Same reason 0.61 is kept here.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
(cherry picked from commit d60cfa5a9e)
2022-06-27 14:36:40 +08:00
Eneas U de Queiroz
a972ca784f wolfssl: disable AES-NI by default for x86_64
WolfSSL is crashing with an illegal opcode in some x86_64 CPUs that have
AES instructions but lack other extensions that are used by WolfSSL
when AES-NI is enabled.

Disable the option by default for now until the issue is properly fixed.
People can enable them in a custom build if they are sure it will work
for them.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
(cherry picked from commit 0bd5367233)
2022-06-27 14:36:30 +08:00
John Audia
bd38a61013 kernel: bump 5.10 to 5.10.125
All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 53d99fedc7)
2022-06-27 14:34:20 +08:00
John Audia
5ba0545b05 kernel: bump 5.10 to 5.10.124
All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 9e5d743422)
2022-06-27 14:33:59 +08:00
John Audia
a8a68a7d5c kernel: bump 5.10 to 5.10.123
No patches required a rebase, just updated checksum.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 5202a511cc)
2022-06-27 14:32:22 +08:00
John Audia
c14e5607de kernel: bump 5.10 to 5.10.122
All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 9edc514e3d)
2022-06-27 14:32:06 +08:00
John Audia
2baaa0996a kernel: bump 5.10 to 5.10.121
Manually rebased:
    oxnas/patches-5.10/100-oxnas-clk-plla-pllb.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 706a4ec40c)
2022-06-27 14:31:17 +08:00
Tomasz Maciej Nowak
01dc641c62 generic: enable CRYPTO_LIB_BLAKE2S[_X86|_ARM]
This is now built-in, enable so it won't propagate on target configs.

Link: https://lkml.org/lkml/2022/1/3/168
Fixes: dc06c032ce ("kernel: bump 5.10 to 5.10.119")
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
(Link to Kernel's commit taht made it built-in,
CRYPTO_LIB_BLAKE2S[_ARM|_X86] as it's selectable, 5.10 backport)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 539e60539a)
[rebased patches]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-06-27 14:27:22 +08:00
Tianling Shen
4ffea26cf1 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-06-27 13:30:21 +08:00
Tianling Shen
32f6cc0413 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-06-23 01:06:31 +08:00
Josef Schlehofer
3d5e3279af uboot-rockchip: drop CONFIG_IDENT_STRING
This row is no longer necessary as it was replaced by LOCALVERSION in
uboot.mk, which explicitly sets OpenWrt version to all U-boot packages accross
OpenWrt. [1]

[1] d6aa9d9e07

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
(cherry picked from commit 2e0afef246)
2022-06-21 09:15:10 +08:00
Josef Schlehofer
fbf0e558c3 u-boot.mk: add LOCALVERSION (explicitly specify OpenWrt build)
For debugging purposes, we need to know if users are using modified
U-boot versions or not. Currently, the U-boot version is somehow
stripped. This is a little bit problematic when there are
backported/wip/to-upstream patches.

To make it more confusing, there was (before this commit) two U-boot
versioning. U-boot compiled by OpenWrt build bots are missing ``Build:``
This is also the case when the U-boot is compiled locally.

Example:
```
U-Boot SPL 2022.01 (Jan 27 2022 - 00:24:34 +0000)
U-Boot 2022.01 (Jan 27 2022 - 00:24:34 +0000)
```

On the other hand, if you run full build, you can at least see, where it
was compiled. Notice added ``Build:``.

Example:
```
U-Boot 2022.01 (Jan 27 2022 - 00:24:34 +0000), Build: jenkins-turris-os-packages-burstlab-omnia-216
```

In both cases, it is not clear to U-boot developers if it is an unmodified
build. This is also caused that there is a missing ``.git`` file from
U-boot folder, and so there is no history. It leads to that it can not
contain suffix ``-dirty`` (uncommitted modifications) or even something
else like number of commits, etc. [1]

When U-boot is compiled as it should be, the version should look like
this: ``U-Boot 2022.04-rc1-01173-g278195ea1f (Feb 11 2022 - 14:46:50 +0100)``
The date is not changed daily when there are new OpenWrt builds.

This commit adds OpenWrt specific version, which could be verified by
using strings.

```
$ strings bin/targets/mvebu/cortexa9/u-boot-omnia/u-boot-spl.kwb | grep -E "OpenWrt*"
U-Boot SPL 2022.01-OpenWrt-r18942+54-cbfce92367 (Feb 21 2022 - 13:17:34 +0000)
arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 11.2.0 r18942+54-cbfce92367) 11.2.0
2022.01-OpenWrt-r18942+54-cbfce92367
U-Boot 2022.01-OpenWrt-r18942+54-cbfce92367 (Feb 21 2022 - 13:17:34 +0000)
```

[1] https://u-boot.readthedocs.io/en/latest/develop/version.html

Reported-by: Pali Rohár <pali@kernel.org>
Suggested-by: Karel Kočí <karel.koci@nic.cz>
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
(cherry picked from commit d6aa9d9e07)
2022-06-21 09:14:53 +08:00
Josef Schlehofer
357466b0d0 mpc85xx: p2020: add RTC ds1307 to kernel
If the RTC module is compiled as a module, the hctosys fails to
initialize because ds1307 is loaded later.

Fixes:
[    2.004145] hctosys: unable to open rtc device (rtc0)
[   11.957997] rtc-ds1307 0-006f: registered as rtc0

This is similar to commit 5481ce9a11,
which was done for imx6 target.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
(cherry picked from commit dc7f78da97)
2022-06-21 09:14:43 +08:00
Christian Lamparter
0244966066 apm821xx: MBL: make mtd chip work
The MBL has a 512KiB Microchip SST39VF040 chip for uboot and
not much else.

Thanks to Ewald who figured out that the "jedec-probe" vs.
"jedec-flash" was the wrong binding. With this information
and the jedec-probe support enabled => the chip works.

| physmap-flash 4fff80000.nor_flash: physmap platform flash device: [mem 0x4fff80000-0x4ffffffff]
| Found: SST 39LF040
| 4fff80000.nor_flash: Found 1 x8 devices at 0x0 in 8-bit bank

Suggested-by: Ewald Comhaire <e.comhaire@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 5f7828fcc2)
2022-06-21 09:14:20 +08:00
Christian Lamparter
19e9aadb89 apm821xx: align gpio-keys node names with dt-schema
As per the series:
<https://www.spinics.net/lists/devicetree/msg508906.html>

"Enforce specific naming pattern for children (keys) to narrow the
pattern thus do not match other properties.  This will require all
children to be properly prefixed or suffixed (button, event, switch
or key)."

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit cd1b4ea5aa)
2022-06-21 09:12:16 +08:00
Logan Blyth
0de4afafb6 mvebu: add SolidRun ClearFog GT 8K
ClearFog GT 8K is device sold by SolidRun. It is marketed as a
development board, not a consumer product. The device tree file for this board
is upstream in kernel.org.

Signed-off-by: Logan Blyth <mrbojangles3@gmail.com>
(cherry picked from commit 36e46c3c13)
2022-06-21 09:11:31 +08:00
Piotr Dymacz
ba1f06c9ac ramips: fix booting on ZyXEL NBG-419N v2
This fixes a well known "LZMA ERROR 1" error, reported previously on
numerous of other devices from 'ramips' target.

Fixes: #9842
Fixes: #8964

Reported-by: Juergen Hench <jurgen.hench@gmail.com>
Tested-by: Juergen Hench <jurgen.hench@gmail.com>
Signed-off-by: Demetris Ierokipides <ierokipides.dem@gmail.com>
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
(cherry picked from commit fd72e595c2)
2022-06-21 09:08:25 +08:00
Florian Fainelli
3d4f15a4cf broadcom-wl: Fix compilation with kernel 5.10
This adds a few fixes for compiling against Linux 5.10:

1. segment_eq() has been removed with upstream commit
   428e2976a5bf7e7f5554286d7a5a33b8147b106a ("uaccess: remove
   segment_eq") and can use uaccess_kernel() instead
2. ioremap_nocache() is removed and is now an alias for ioremap() with
   upstream commit 4bdc0d676a643140bdf17dbf7eafedee3d496a3c ("remove
   ioremap_nocache and devm_ioremap_nocache")

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
(cherry picked from commit cd3de51bb4)
2022-06-21 09:07:50 +08:00
Adrian Schmutzler
19ac41f7c6 broadcom-wl: fix compilation with kernel 5.4
This adds two fixes for compilation with kernel 5.4:

1. dev_open from include/linux/netdevice.h needs a second parameter
   since kernel 5.0:
   00f54e68924e ("net: core: dev: Add extack argument to dev_open()")
2. get_ds() macro definition has been dropped since kernel 5.1:
   736706bee329 ("get rid of legacy 'get_ds()' function")
   Since get_ds() has been just a macro before, replace it in
   the driver instead of creating a version switch.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 23d3fafd87)
2022-06-21 09:06:34 +08:00
Tianling Shen
918a4d128d kernel/modules: fix typo error
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-06-15 19:03:40 +08:00
Daniel Golle
1a1ab1d935 tools/mkimage: increase tmpfile name length limit
mkimage limits the length of the file paths in can deal with to 256
characters. Turns out that in automated builds by asu we break this
limit, so increase it to 1024 characters.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 3fbf9689b6)
2022-06-14 02:52:04 +08:00
Huangbin Zhan
d15406a1aa tools/mkimage: update to 2022.01
- enable dot config
- enable openwrt verbose
- add bison as dependency to avoid failure
```
  bison -oscripts/kconfig/zconf.tab.c -t -l scripts/kconfig/zconf.y
bison: /builder/shared-workdir/build/staging_dir/host/share/bison/m4sugar/m4sugar.m4: cannot open: No such file or directory
```

Signed-off-by: Huangbin Zhan <zhanhb88@gmail.com>
(cherry picked from commit 4a19cf3bc7)
2022-06-14 02:51:48 +08:00
Huangbin Zhan
efad5226e2 tools/mkimage: update to 2021.10
Changelog:

 - upstream now needs OpenSSL in order to be able to sign FITs. See:
commit cb9faa6f98ae ("tools: Use a single target-independent config to enable OpenSSL")

 - removes upstream patches.

Link: cb9faa6f98
Tested-by: Sergey V. Lobanov <sergey@lobanov.in>
Signed-off-by: Huangbin Zhan <zhanhb88@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit b6385a3668)
2022-06-14 02:51:28 +08:00
Sergey V. Lobanov
0fc11ce654 tools/mkimage: fix build on MacOS arm64
Fixed -no-pie compilation warning on MacOS
Fixed errors related to using absolute addressing on MacOS arm64

Based on upstream patch from Jessica Clarke and suggestions from Ronny Kotzschmar

Link to original patch and discussion:
3b142045e8

Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
(cherry picked from commit 8261b85844)
2022-06-14 02:51:04 +08:00
Andre Heider
fe38cccee0 tools/mkimage: pass --static via PKG_CONFIG_EXTRAARGS
Remove the then unnecessary patch doing exactly that individually.

See also 09465d80 "u-boot.mk: always link host libraries static".

Signed-off-by: Andre Heider <a.heider@gmail.com>
(cherry picked from commit e37dffbf35)
2022-06-14 02:50:58 +08:00
INAGAKI Hiroshi
12327b9fc3 build: move elecom-wrc-gs-factory to image-commands.mk
ELECOM WRC-X3200GST3 uses the same header/footer as WRC-GS/GST devices
in ramips/mt7621 subtarget, so move "Build/elecom-wrc-gs-factory" to
image-commands.mk to use from mediatek/mt7622 subtarget.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
(cherry picked from commit 1b814974e1)
2022-06-14 02:32:48 +08:00
John Audia
681bc93a25 kernel: bump 5.10 to 5.10.120
All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit f800f8d6fc)
2022-06-14 02:31:46 +08:00
John Audia
dc06c032ce kernel: bump 5.10 to 5.10.119
Delete the crypto-lib-blake2s kmod package, as BLAKE2s is now built-in.
Patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800, x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit cd634afe6c)
2022-06-14 02:29:56 +08:00
John Audia
7e41d2e38b kernel: bump 5.10 to 5.10.118
Removed upstreamed:
    generic-backport/774-v5.15-1-igc-remove-_I_PHY_ID-checking.patch
    generic-backport/774-v5.15-2-igc-remove-phy-type-checking.patch

All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit b789a588b1)
2022-06-14 02:25:25 +08:00
John Audia
5741ffaa9f kernel: bump 5.10 to 5.10.117
Removed upstreamed:
    backport-5.10/890-v5.19-net-sfp-Add-tx-fault-workaround-for-Huawei-MA5671A-SFP-ON.patch

All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 01a6a5c731)
2022-06-14 02:24:55 +08:00
Hauke Mehrtens
27b7b481c9 kernel: bump 5.10 to 5.10.116
Removed upstreamed:
  generic/backport-5.10/900-regulator-consumer-Add-missing-stubs-to-regulator-co.patch

All other patches automatically rebased.

Compile-tested: lantiq/xrx200, armvirt/64
Run-tested: lantiq/xrx200, armvirt/64

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit c9929fabcb)
2022-06-14 02:23:58 +08:00
Mikhail Zhilkin
9e6d7afff7 ramips: add support for MTS WG430223
MTS WG430223 is a wireless AC1300 (WiFi 5) router manufactured by
Arcadyan company. It's very similar to Beeline Smartbox Flash (Arcadyan
WG443223).

Device specification
--------------------
SoC Type: MediaTek MT7621AT
RAM: 128 MiB
Flash: 128 MiB (Winbond W29N01HV)
Wireless 2.4 GHz (MT7615DN): b/g/n, 2x2
Wireless 5 GHz (MT7615DN): a/n/ac, 2x2
Ethernet: 3xGbE (WAN, LAN1, LAN2)
USB ports: No
Button: 1 (Reset/WPS)
LEDs: 2 (Red, Green)
Power: 12 VDC, 1 A
Connector type: Barrel
Bootloader: U-Boot (Ralink UBoot Version: 5.0.0.2)
OEM: Arcadyan WG430223

Installation
------------
1. Login to the router web interface (superadmin:serial number)
2. Navigate to Administration -> Miscellaneous -> Access control lists &
   enable telnet & enable "Remote control from any IP address"
3. Connect to the router using telnet (default admin:admin)
4. Place *factory.trx on any web server (192.168.1.2 in this example)
5. Connect to the router using telnet shell (no password required)
6. Save MAC adresses to U-Boot environment:
   uboot_env --set --name eth2macaddr --value $(ifconfig | grep eth2 | \
    awk '{print $5}')
   uboot_env --set --name eth3macaddr --value $(ifconfig | grep eth3 | \
    awk '{print $5}')
   uboot_env --set --name ra0macaddr --value $(ifconfig | grep ra0 | \
    awk '{print $5}')
   uboot_env --set --name rax0macaddr --value $(ifconfig | grep rax0 | \
    awk '{print $5}')
7. Ensure that MACs were saved correctly:
   uboot_env --get --name eth2macaddr
   uboot_env --get --name eth3macaddr
   uboot_env --get --name ra0macaddr
   uboot_env --get --name rax0macaddr
8. Download and write the OpenWrt images:
   cd /tmp
   wget http://192.168.1.2/factory.trx
   mtd_write erase /dev/mtd4
   mtd_write write factory.trx /dev/mtd4
9. Set 1st boot partition and reboot:
   uboot_env --set --name bootpartition --value 0

Back to Stock
-------------
1. Run in the OpenWrt shell:
   fw_setenv bootpartition 1
   reboot
2. Optional step. Upgrade the stock firmware with any version to
   overwrite the OpenWrt in Slot 1.

MAC addresses
-------------
+-----------+-------------------+----------------+
| Interface | MAC               | Source         |
+-----------+-------------------+----------------+
| label     | A4:xx:xx:51:xx:F4 | No MACs was    |
| LAN       | A4:xx:xx:51:xx:F6 | found on Flash |
| WAN       | A4:xx:xx:51:xx:F4 | [1]            |
| WLAN_2g   | A4:xx:xx:51:xx:F5 |                |
| WLAN_5g   | A6:xx:xx:21:xx:F5 |                |
+-----------+-------------------+----------------+
[1]:
a. Label wasb't found neither in factory nor in other places.
b. MAC addresses are stored in encrypted partition "glbcfg". Encryption
   key hasn't known yet. To ensure the correct MACs in OpenWrt, a hack
   with saving of the MACs to u-boot-env during the installation was
   applied.
c. Default Ralink ethernet MAC address (00:0C:43:28:80:A0) was found in
   "Factory" 0xfff0. It's the same for all MTS WG430223 devices. OEM
   firmware also uses this MAC when initialazes ethernet driver. In
   OpenWrt we use it only as internal GMAC (eth0), all other MACs are
   unique. Therefore, there is no any barriers to the operation of several
   MTS WG430223 devices even within the same broadcast domain.

Stock firmware image format
---------------------------
The same as Beeline Smartbox Flash but with another trx magic
+--------------+---------------+----------------------------------------+
| Offset       |               | Description                            |
+==============+===============+========================================+
| 0x0          | 31 52 48 53   | TRX magic "1RHS"                       |
+--------------+---------------+----------------------------------------+

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
(cherry picked from commit 498c15376b)
2022-06-14 02:14:48 +08:00
Mikhail Zhilkin
98ffa6499b ramips: create new dtsi for Arcadyan routers
This commit moves common properties for the boards below to a new dtsi:
Beeline Smartbox Flash (Arcadyan WG443223)
MTS WG430223 (Arcadyan WG430223)

The boards are almost the same. Here is the differences:
+------+----------+----------+
|      | WG430223 | WG443223 |
+------+----------+----------+
| RAM  | 128      | 256      |
+------+----------+----------+
| USB  | -        | 1x3.0    |
+------+----------+----------+
| LEDS | RG       | RGB      |
+------+----------+----------+

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
(cherry picked from commit 5b59137a16)
2022-06-14 02:13:49 +08:00
Mikhail Zhilkin
963bb77f0a ramips: allow custom trx magic for Arcadyan
This commit:
1. Renames beeline-trx recipe in mt7621.mk to arcadyan-trx. The recipe
   is necessary for:
   - MTS WG430223 (Arcadyan WG430223)
   - Beeline Smartbox Flash (Arcadyan WG443223)
2. Allows specify custom trx magic which is different for the routers
   mentined above.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
(cherry picked from commit 109c503bee)
2022-06-14 02:13:36 +08:00
Aviana Cruz
1108c985d1 ramips: decrease SPI frequency for Phicomm K2P
Some K2P comes with the worse boards with GD25Q128 (may be A2), which
only works with 50MHz frequency and less. Reduce spi frequency so that
these routers can boot.
remove m25p,fast-read because it isn't needed for 50MHz SPI.

Signed-off-by: Aviana Cruz <gwencroft@proton.me>
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
(cherry picked from commit 857ea3f690)
2022-06-14 02:06:37 +08:00
Tianling Shen
5ac1fffcf6 mediatek: ELECOM WRC-X3200GST3: fix usage of old snand driver
Fixes: #714

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-06-14 01:52:46 +08:00
Peter Adkins
73fcf3c23d ipq40xx: add support for Linksys WHW01 v1
This patch adds support for Linksys WHW01 v1 ("Velop") [FCC ID Q87-03331].

Specification
-------------

SOC:             Qualcomm IPQ4018
WiFi 1:          Qualcomm QCA4019 IEEE 802.11b/g/n
WiFi 2:          Qualcomm QCA4019 IEEE 802.11a/n/ac
Bluetooth:       Qualcomm CSR8811 (A12U)
Ethernet:        Qualcomm QCA8072 (2-port)
SPI Flash 1:     Mactronix MX25L1605D (2MB)
SPI Flash 2:     Winbond W25M02GV (256MB)
DRAM:            Nanya NT5CC128M16IP-DI (256MB)
LED Controller:  NXP PCA963x (I2C)
Buttons:         Single reset button (GPIO).

Notes
-----

There does not appear to be a way to trigger TFTP recovery without entering
U-Boot. The device must be opened to access the serial console in order to
first flash OpenWrt onto a device from factory.

The device has automatic recovery backed by a second set of partitions on
the larger of the two SPI flash ICs. Both the primary and secondary must
be flashed to prevent accidental rollback to "factory" after 3 failed boot
attempts.

Serial console
--------------

A serial console is available on the following pins of the populated J2
connector on the device mainboard (115200 8n1).

(<-- Top of PCB / Device)

  J2
  [o o o o o o]
       |   | |
       |   |  `-- GND
       |    `---- TX
       `--------- RX

Installation instructions
-------------------------

1. Setup TFTP server with server IP set to 192.168.1.236.
2. Copy compiled `...squashfs-factory.bin` to `nodes-jr.img` in tftp root.
3. Connect to console using pinout detailed in the serial console section.
4. Power on device and press enter when prompted to drop into U-Boot.
5. Flash first partition device via `run flashimg`.
6. Once complete, reset device and allow to power up completely.
7. Once comfortable with device upgrade reboot and drop back into U-Boot.
8. Flash the second partition (recovery) via `run flashimg2`.

Revert to "factory"
-------------------

1. Download latest firmware update from vendor support site.
2. Copy extracted `.img` file to `nodes-jr.img` in tftp root.
3. Connect to console using pinout detailed in the serial console section.
4. Power on device and press enter when prompted to drop into U-Boot.
5. Flash first partition device via `run flashimg`.
6. Once complete, reset device and allow to power up completely.
7. Once comfortable with device upgrade reboot and drop back into U-Boot.
8. Flash the second partition (recovery) via `run flashimg2`.

Link: https://github.com/openwrt/openwrt/pull/3682
Signed-off-by: Peter Adkins <peter@sunkenlab.com>
(calibration from nvmem, updated to 5.10+5.15)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit b4184c666c)
2022-06-06 18:21:08 +08:00
Lech Perczak
3f474aa5d2 ath79: ZTE MF286[,A,R]: use GPIO19 as ath9k LED
With the pinctrl configuration set properly by the previous commit, the
LED stays lit regardless of status of 2.4GHz radio, even if 5GHz radio
is disabled. Map GPIO19 as LED for ath9k, this way the LED will show
activity for both bands, as it is bound by logical AND with output of
ath10k-phy0 LED. This works well because during management traffic,
phy*tpt triggers typically cause LEDs to blink in unison.

Link: <https://github.com/openwrt/openwrt/pull/9941>
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
(cherry picked from commit 5ca45e0a21)
2022-06-06 18:14:07 +08:00
Lech Perczak
e472a4b0cb ath79: ZTE MF286[,A,R]: fix WLAN LED mapping
The default configuration of pinctrl for GPIO19 set by U-boot was not a
GPIO, but an alternate function, which prevented the GPIO hog from
working. Set GPIO19 into GPIO mode to allow the hog to work, then the
ath10k LED output can control the state of actual LED properly.

Link: <https://github.com/openwrt/openwrt/pull/9941>
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
(cherry picked from commit 82b5984636)
2022-06-06 18:13:42 +08:00
Lech Perczak
061907b0cb ath79: support ZTE MF286A/R
ZTE MF286A and MF286R are indoor LTE category 6/7 CPE router with simultaneous
dual-band 802.11ac plus 802.11n Wi-Fi radios and quad-port gigabit
Ethernet switch, FXS and external USB 2.0 port.

Hardware highlights:
- CPU: QCA9563 SoC at 775MHz,
- RAM: 128MB DDR2,
- NOR Flash: MX25L1606E 2MB SPI Flash, for U-boot only,
- NAND Flash: W25N01GV 128MB SPI NAND-Flash, for all other data,
- Wi-Fi 5GHz: QCA9886 2x2 MIMO 802.11ac Wave2 radio,
- WI-Fi 2.4GHz: QCA9563 3x3 MIMO 802.11n radio,
- Switch: QCA8337v2 4-port gigabit Ethernet, with single SGMII CPU port,
- WWAN:
  [MF286A] MDM9230-based category 6 internal LTE modem
  [MF286R] PXA1826-based category 7 internal LTE modem
  in extended  mini-PCIE form factor, with 3 internal antennas and
  2 external antenna connections, single mini-SIM slot.
- FXS: one external ATA port (handled entirely by modem part) with two
  physical connections in parallel,
- USB: Single external USB 2.0 port,
- Switches: power switch, WPS, Wi-Fi and reset buttons,
- LEDs: Wi-Fi, Test (internal). Rest of LEDs (Phone, WWAN, Battery,
  Signal state) handled entirely by modem. 4 link status LEDs handled by
  the switch on the backside.
- Battery: 3Ah 1-cell Li-Ion replaceable battery, with charging and
  monitoring handled by modem.
- Label MAC device: eth0

The device shares many components with previous model, MF286, differing
mostly by a Wave2 5GHz radio, flash layout and internal LED color.
In case of MF286A, the modem is the same as in MF286. MF286R uses a
different modem based on Marvell PXA1826 chip.

Internal modem of MF286A is supported via uqmi, MF286R modem isn't fully
supported, but it is expected to use comgt-ncm for connection, as it
uses standard 3GPP AT commands for connection establishment.

Console connection: connector X2 is the console port, with the following
pinout, starting from pin 1, which is the topmost pin when the board is
upright:
- VCC (3.3V). Do not use unless you need to source power for the
  converer from it.
- TX
- RX
- GND
Default port configuration in U-boot as well as in stock firmware is
115200-8-N-1.

Installation:
Due to different flash layout from stock firmware, sysupgrade from
within stock firmware is impossible, despite it's based on QSDK which
itself is based on OpenWrt.

STEP 0: Stock firmware update:
As installing OpenWrt cuts you off from official firmware updates for
the modem part, it is recommended to update the stock firmware to latest
version before installation, to have built-in modem at the latest firmware
version.

STEP 1: gaining root shell:

Method 1:
This works if busybox has telnetd compiled in the binary.
If this does not work, try method 2.

Using well-known exploit to start telnetd on your router - works
only if Busybox on stock firmware has telnetd included:
- Open stock firmware web interface
- Navigate to "URL filtering" section by going to "Advanced settings",
  then "Firewall" and finally "URL filter".
- Add an entry ending with "&&telnetd&&", for example
  "http://hostname/&&telnetd&&".
- telnetd will immediately listen on port 4719.
- After connecting to telnetd use "admin/admin" as credentials.

Method 2:
This works if busybox does not have telnetd compiled in. Notably, this
is the case in DNA.fi firmware.
If this does not work, try method 3.

- Set IP of your computer to 192.168.0.22. (or appropriate subnet if
  changed)
- Have a TFTP server running at that address
- Download MIPS build of busybox including telnetd, for example from:
  https://busybox.net/downloads/binaries/1.21.1/busybox-mips
  and put it in it's root directory. Rename it as "telnetd".
- As previously, login to router's web UI and navigate to "URL
  filtering"
- Using "Inspect" feature, extend "maxlength" property of the input
  field named "addURLFilter", so it looks like this:
  <input type="text" name="addURLFilter" id="addURLFilter" maxlength="332"
    class="required form-control">
- Stay on the page - do not navigate anywhere
- Enter "http://aa&zte_debug.sh 192.168.0.22 telnetd" as a filter.
- Save the settings. This will download the telnetd binary over tftp and
  execute it. You should be able to log in at port 23, using
  "admin/admin" as credentials.

Method 3:
If the above doesn't work, use the serial console - it exposes root shell
directly without need for login. Some stock firmwares, notably one from
finnish DNA operator lack telnetd in their builds.

STEP 2: Backing up original software:
As the stock firmware may be customized by the carrier and is not
officially available in the Internet, IT IS IMPERATIVE to back up the
stock firmware, if you ever plan to returning to stock firmware.
It is highly recommended to perform backup using both methods, to avoid
hassle of reassembling firmware images in future, if a restore is
needed.

Method 1: after booting OpenWrt initramfs image via TFTP:
PLEASE NOTE: YOU CANNOT DO THIS IF USING INTERMEDIATE FIRMWARE FOR INSTALLATION.
- Dump stock firmware located on stock kernel and ubi partitions:

  ssh root@192.168.1.1: cat /dev/mtd4 > mtd4_kernel.bin
  ssh root@192.168.1.1: cat /dev/mtd9 > mtd9_ubi.bin

And keep them in a safe place, should a restore be needed in future.

Method 2: using stock firmware:
- Connect an external USB drive formatted with FAT or ext4 to the USB
  port.
- The drive will be auto-mounted to /var/usb_disk
- Check the flash layout of the device:

  cat /proc/mtd

  It should show the following:
  mtd0: 000a0000 00010000 "u-boot"
  mtd1: 00020000 00010000 "u-boot-env"
  mtd2: 00140000 00010000 "reserved1"
  mtd3: 000a0000 00020000 "fota-flag"
  mtd4: 00080000 00020000 "art"
  mtd5: 00080000 00020000 "mac"
  mtd6: 000c0000 00020000 "reserved2"
  mtd7: 00400000 00020000 "cfg-param"
  mtd8: 00400000 00020000 "log"
  mtd9: 000a0000 00020000 "oops"
  mtd10: 00500000 00020000 "reserved3"
  mtd11: 00800000 00020000 "web"
  mtd12: 00300000 00020000 "kernel"
  mtd13: 01a00000 00020000 "rootfs"
  mtd14: 01900000 00020000 "data"
  mtd15: 03200000 00020000 "fota"
  mtd16: 01d00000 00020000 "firmware"

  Differences might indicate that this is NOT a MF286A device but
  one of other variants.
- Copy over all MTD partitions, for example by executing the following:

  for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do cat /dev/mtd$i > \
  /var/usb_disk/mtd$i; done

  "Firmware" partition can be skipped, it is a concatenation
  of "kernel" and "rootfs".

- If the count of MTD partitions is different, this might indicate that
  this is not a MF286A device, but one of its other variants.
- (optionally) rename the files according to MTD partition names from
  /proc/mtd
- Unmount the filesystem:

  umount /var/usb_disk; sync

  and then remove the drive.
- Store the files in safe place if you ever plan to return to stock
  firmware. This is especially important, because stock firmware for
  this device is not available officially, and is usually customized by
  the mobile providers.

STEP 3: Booting initramfs image:

Method 1: using serial console (RECOMMENDED):
- Have TFTP server running, exposing the OpenWrt initramfs image, and
  set your computer's IP address as 192.168.0.22. This is the default
  expected by U-boot. You may wish to change that, and alter later
  commands accordingly.
- Connect the serial console if you haven't done so already,
- Interrupt boot sequence by pressing any key in U-boot when prompted
- Use the following commands to boot OpenWrt initramfs through TFTP:

  setenv serverip 192.168.0.22
  setenv ipaddr 192.168.0.1
  tftpboot 0x81000000 openwrt-ath79-nand-zte_mf286a-initramfs-kernel.bin
  bootm 0x81000000

  (Replace server IP and router IP as needed). There is no  emergency
  TFTP boot sequence triggered by buttons, contrary to MF283+.
- When OpenWrt initramfs finishes booting, proceed to actual
  installation.

Method 2: using initramfs image as temporary boot kernel
This exploits the fact, that kernel and rootfs MTD devices are
consecutive on NAND flash, so from within stock image, an initramfs can
be written to this area and booted by U-boot on next reboot, because it
uses "nboot" command which isn't limited by kernel partition size.
- Download the initramfs-kernel.bin image
- After backing up the previous MTD contents, write the images to the
  "firmware" MTD device, which conveniently concatenates "kernel" and
  "rootfs" partitions that can fit the initramfs image:

  nandwrite -p /dev/<firmware-mtd> \
  /var/usb_disk/openwrt-ath79-zte_mf286a-initramfs-kernel.bin

- If write is OK, reboot the device, it will reboot to OpenWrt
  initramfs:

  reboot -f

- After rebooting, SSH into the device and use sysupgrade to perform
  proper installation.

Method 3: using built-in TFTP recovery (LAST RESORT):
- With that method, ensure you have complete backup of system's NAND
  flash first. It involves deliberately erasing the kernel.
- Download "-initramfs-kernel.bin" image for the device.
- Prepare the recovery image by prepending 8MB of zeroes to the image,
  and name it root_uImage:

  dd if=/dev/zero of=padding.bin bs=8M count=1

  cat padding.bin openwrt-ath79-nand-zte_mf286a-initramfs-kernel.bin >
  root_uImage

- Set up a TFTP server at 192.0.0.1/8. Router will use random address
  from that range.
- Put the previously generated "root_uImage" into TFTP server root
  directory.
- Deliberately erase "kernel" partition" using stock firmware after
  taking backup. THIS IS POINT OF NO RETURN.
- Restart the device. U-boot will attempt flashing the recovery
  initramfs image, which will let you perform actual installation using
  sysupgrade. This might take a considerable time, sometimes the router
  doesn't establish Ethernet link properly right after booting. Be
  patient.
- After U-boot finishes flashing, the LEDs of switch ports will all
  light up. At this moment, perform power-on reset, and wait for OpenWrt
  initramfs to finish booting. Then proceed to actual installation.

STEP 4: Actual installation:
- Set your computer IP to 192.168.1.22/24
- scp the sysupgrade image to the device:

  scp openwrt-ath79-nand-zte_mf286a-squashfs-sysupgrade.bin \
  root@192.168.1.1:/tmp/

- ssh into the device and execute sysupgrade:

  sysupgrade -n /tmp/openwrt-ath79-nand-zte_mf286a-squashfs-sysupgrade.bin

- Wait for router to reboot to full OpenWrt.

STEP 5: WAN connection establishment
Since the router is equipped with LTE modem as its main WAN interface, it
might be useful to connect to the Internet right away after
installation. To do so, please put the following entries in
/etc/config/network, replacing the specific configuration entries with
one needed for your ISP:

config interface 'wan'
        option proto 'qmi'
        option device '/dev/cdc-wdm0'
        option auth '<auth>' # As required, usually 'none'
        option pincode '<pin>' # If required by SIM
        option apn '<apn>' # As required by ISP
        option pdptype '<pdp>' # Typically 'ipv4', or 'ipv4v6' or 'ipv6'

For example, the following works for most polish ISPs
config interface 'wan'
        option proto 'qmi'
        option device '/dev/cdc-wdm0'
        option auth 'none'
        option apn 'internet'
        option pdptype 'ipv4'

The required minimum is:
config interface 'wan'
        option proto 'qmi'
        option device '/dev/cdc-wdm0'
In this case, the modem will use last configured APN from stock
firmware - this should work out of the box, unless your SIM requires
PIN which can't be switched off.

If you have build with LuCI, installing luci-proto-qmi helps with this
task.

Restoring the stock firmware:

Preparation:
If you took your backup using stock firmware, you will need to
reassemble the partitions into images to be restored onto the flash. The
layout might differ from ISP to ISP, this example is based on generic stock
firmware
The only partitions you really care about are "web", "kernel", and
"rootfs". These are required to restore the stock firmware through
factory TFTP recovery.

Because kernel partition was enlarged, compared to stock
firmware, the kernel and rootfs MTDs don't align anymore, and you need
to carve out required data if you only have backup from stock FW:
- Prepare kernel image
  cat mtd12_kernel.bin mtd13_rootfs.bin > owrt_kernel.bin
  truncate -s 4M owrt_kernel_restore.bin
- Cut off first 1MB from rootfs
  dd if=mtd13_rootfs.bin of=owrt_rootfs.bin bs=1M skip=1
- Prepare image to write to "ubi" meta-partition:
  cat mtd6_reserved2.bi mtd7_cfg-param.bin mtd8_log.bin mtd9_oops.bin \
  mtd10_reserved3.bin mtd11_web.bin owrt_rootfs.bin > \
  owrt_ubi_ubi_restore.bin

You can skip the "fota" partition altogether,
it is used only for stock firmware update purposes and can be overwritten
safely anyway. The same is true for "data" partition which on my device
was found to be unused at all. Restoring mtd5_cfg-param.bin will restore
the stock firmware configuration you had before.

Method 1: Using initramfs:
This method is recmmended if you took your backup from within OpenWrt
initramfs, as the reassembly is not needed.
- Boot to initramfs as in step 3:
- Completely detach ubi0 partition using ubidetach /dev/ubi0_0
- Look up the kernel and ubi partitions in /proc/mtd
- Copy over the stock kernel image using scp to /tmp
- Erase kernel and restore stock kernel:
  (scp mtd4_kernel.bin root@192.168.1.1:/tmp/)
  mtd write <kernel_mtd> mtd4_kernel.bin
  rm mtd4_kernel.bin
- Copy over the stock partition backups one-by-one using scp to /tmp, and
  restore them individually. Otherwise you might run out of space in
  tmpfs:

  (scp mtd3_ubiconcat0.bin root@192.168.1.1:/tmp/)

  mtd write <ubiconcat0_mtd> mtd3_ubiconcat0.bin
  rm mtd3_ubiconcat0.bin

  (scp mtd5_ubiconcat1.bin root@192.168.1.1:/tmp/)

  mtd write <ubiconcat1_mtd> mtd5_ubiconcat1.bin
  rm mtd5_ubiconcat1.bin

- If the write was correct, force a device reboot with

  reboot -f

Method 2: Using live OpenWrt system (NOT RECOMMENDED):
- Prepare a USB flash drive contatining MTD backup files
- Ensure you have kmod-usb-storage and filesystem driver installed for
  your drive
- Mount your flash drive

  mkdir /tmp/usb

  mount /dev/sda1 /tmp/usb

- Remount your UBI volume at /overlay to R/O

  mount -o remount,ro /overlay

- Write back the kernel and ubi partitions from USB drive

  cd /tmp/usb
  mtd write mtd4_kernel.bin /dev/<kernel_mtd>

  mtd write mtd9_ubi.bin /dev/<kernel_ubi>

- If everything went well, force a device reboot with
  reboot -f

Last image may be truncated a bit due to lack of space in RAM, but this will happen over "fota"
MTD partition which may be safely erased after reboot anyway.

Method 3: using built-in TFTP recovery:
This method is recommended if you took backups using stock firmware.
- Assemble a recovery rootfs image from backup of stock partitions by
  concatenating "web", "kernel", "rootfs" images dumped from the device,
  as "root_uImage"
- Use it in place of "root_uImage" recovery initramfs image as in the
  TFTP pre-installation method.

Quirks and known issuesa
- It was observed, that CH340-based USB-UART converters output garbage
  during U-boot phase of system boot. At least CP2102 is known to work
  properly.
- Kernel partition size is increased to 4MB compared to stock 3MB, to
  accomodate future kernel updates - at this moment OpenWrt 5.10 kernel
  image is at 2.5MB which is dangerously close to the limit. This has no
  effect on booting the system - but keep that in mind when reassembling
  an image to restore stock firmware.
- uqmi seems to be unable to change APN manually, so please use the one
  you used before in stock firmware first. If you need to change it,
  please use protocok '3g' to establish connection once, or use the
  following command to change APN (and optionally IP type) manually:
  echo -ne 'AT+CGDCONT=1,"IP","<apn>' > /dev/ttyUSB0
- The only usable LED as a "system LED" is the blue debug LED hidden
  inside the case. All other LEDs are controlled by modem, on which the
  router part has some influence only on Wi-Fi LED.
- Wi-Fi LED currently doesn't work while under OpenWrt, despite having
  correct GPIO mapping. All other LEDs are controlled by modem,
  including this one in stock firmware. GPIO19, mapped there only acts
  as a gate, while the actual signal source seems to be 5GHz Wi-Fi
  radio, however it seems it is not the LED exposed by ath10k as
  ath10k-phy0.
- GPIO5 used for modem reset is a suicide switch, causing a hardware
  reset of whole board, not only the modem. It is attached to
  gpio-restart driver, to restart the modem on reboot as well, to ensure
  QMI connectivity after reboot, which tends to fail otherwise.
- Modem, as in MF283+, exposes root shell over ADB - while not needed
  for OpenWrt operation at all - have fun lurking around.
  The same modem module is used as in older MF286.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
(cherry picked from commit 7ac8da0060)
2022-06-06 18:13:24 +08:00
Lech Perczak
4593a69848 ath79: uboot-envtools: fix partition for ZTE MF286
By mistake, a wrong partition for U-boot environment was introduced for
ZTE MF286 while adding support, when flash layout wasn't finalized. Fix
that, according to the actual flash layout:
dev:    size   erasesize  name
mtd0: 00140000 00020000 "fota-flag"
mtd1: 00140000 00020000 "caldata"
mtd2: 00140000 00020000 "mac"
mtd3: 00f40000 00020000 "ubiconcat0"
mtd4: 00400000 00020000 "kernel"
mtd5: 06900000 00020000 "ubiconcat1"
mtd6: 00080000 00010000 "u-boot"
mtd7: 00020000 00010000 "u-boot-env"
mtd8: 07840000 00020000 "ubi"

Fixes: 8c78a13bfc ("ath79: support ZTE MF286")
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
(cherry picked from commit 411940ded4)
2022-06-06 18:13:18 +08:00
Lech Perczak
4a4accaa94 ath79: support ZTE MF286
ZTE MF286 is an indoor LTE category 6 CPE router with simultaneous
dual-band 802.11ac plus 802.11n Wi-Fi radios and quad-port gigabit
Ethernet switch, FXS and external USB 2.0 port.

Hardware highlights:
- CPU: QCA9563 SoC at 775MHz,
- RAM: 128MB DDR2,
- NOR Flash: MX25L1606E 2MB SPI Flash, for U-boot only,
- NAND Flash: GD5F1G04UBYIG 128MB SPI NAND-Flash, for all other data,
- Wi-Fi 5GHz: QCA9882 2x2 MIMO 802.11ac radio,
- WI-Fi 2.4GHz: QCA9563 3x3 MIMO 802.11n radio,
- Switch: QCA8337v2 4-port gigabit Ethernet, with single SGMII CPU port,
- WWAN: MDM9230-based category 6 internal LTE modem in extended
  mini-PCIE form factor, with 3 internal antennas and 2 external antenna
  connections, single mini-SIM slot. Modem model identified as MF270,
- FXS: one external ATA port (handled entirely by modem part) with two
  physical connections in parallel,
- USB: Single external USB 2.0 port,
- Switches: power switch, WPS, Wi-Fi and reset buttons,
- LEDs: Wi-Fi, Test (internal). Rest of LEDs (Phone, WWAN, Battery,
  Signal state) handled entirely by modem. 4 link status LEDs handled by
  the switch on the backside.
- Battery: 3Ah 1-cell Li-Ion replaceable battery, with charging and
  monitoring handled by modem.
- Label MAC device: eth0

Console connection: connector X2 is the console port, with the following
pinout, starting from pin 1, which is the topmost pin when the board is
upright:
- VCC (3.3V). Do not use unless you need to source power for the
  converer from it.
- TX
- RX
- GND
Default port configuration in U-boot as well as in stock firmware is
115200-8-N-1.

Installation:
Due to different flash layout from stock firmware, sysupgrade from
within stock firmware is impossible, despite it's based on QSDK which
itself is based on OpenWrt.

STEP 0: Stock firmware update:
As installing OpenWrt cuts you off from official firmware updates for
the modem part, it is recommended to update the stock firmware to latest
version before installation, to have built-in modem at the latest firmware
version.

STEP 1: gaining root shell:

Method 1:
This works if busybox has telnetd compiled in the binary.
If this does not work, try method 2.

Using well-known exploit to start telnetd on your router - works
only if Busybox on stock firmware has telnetd included:
- Open stock firmware web interface
- Navigate to "URL filtering" section by going to "Advanced settings",
  then "Firewall" and finally "URL filter".
- Add an entry ending with "&&telnetd&&", for example
  "http://hostname/&&telnetd&&".
- telnetd will immediately listen on port 4719.
- After connecting to telnetd use "admin/admin" as credentials.

Method 2:
This works if busybox does not have telnetd compiled in. Notably, this
is the case in DNA.fi firmware.
If this does not work, try method 3.

- Set IP of your computer to 192.168.1.22.
- Have a TFTP server running at that address
- Download MIPS build of busybox including telnetd, for example from:
  https://busybox.net/downloads/binaries/1.21.1/busybox-mips
  and put it in it's root directory. Rename it as "telnetd".
- As previously, login to router's web UI and navigate to "URL
  filtering"
- Using "Inspect" feature, extend "maxlength" property of the input
  field named "addURLFilter", so it looks like this:
  <input type="text" name="addURLFilter" id="addURLFilter" maxlength="332"
    class="required form-control">
- Stay on the page - do not navigate anywhere
- Enter "http://aa&zte_debug.sh 192.168.1.22 telnetd" as a filter.
- Save the settings. This will download the telnetd binary over tftp and
  execute it. You should be able to log in at port 23, using
  "admin/admin" as credentials.

Method 3:
If the above doesn't work, use the serial console - it exposes root shell
directly without need for login. Some stock firmwares, notably one from
finnish DNA operator lack telnetd in their builds.

STEP 2: Backing up original software:
As the stock firmware may be customized by the carrier and is not
officially available in the Internet, IT IS IMPERATIVE to back up the
stock firmware, if you ever plan to returning to stock firmware.

Method 1: after booting OpenWrt initramfs image via TFTP:
PLEASE NOTE: YOU CANNOT DO THIS IF USING INTERMEDIATE FIRMWARE FOR INSTALLATION.
- Dump stock firmware located on stock kernel and ubi partitions:

  ssh root@192.168.1.1: cat /dev/mtd4 > mtd4_kernel.bin
  ssh root@192.168.1.1: cat /dev/mtd8 > mtd8_ubi.bin

And keep them in a safe place, should a restore be needed in future.

Method 2: using stock firmware:
- Connect an external USB drive formatted with FAT or ext4 to the USB
  port.
- The drive will be auto-mounted to /var/usb_disk
- Check the flash layout of the device:

  cat /proc/mtd

  It should show the following:
  mtd0: 00080000 00010000 "uboot"
  mtd1: 00020000 00010000 "uboot-env"
  mtd2: 00140000 00020000 "fota-flag"
  mtd3: 00140000 00020000 "caldata"
  mtd4: 00140000 00020000 "mac"
  mtd5: 00600000 00020000 "cfg-param"
  mtd6: 00140000 00020000 "oops"
  mtd7: 00800000 00020000 "web"
  mtd8: 00300000 00020000 "kernel"
  mtd9: 01f00000 00020000 "rootfs"
  mtd10: 01900000 00020000 "data"
  mtd11: 03200000 00020000 "fota"

  Differences might indicate that this is NOT a vanilla MF286 device but
  one of its later derivatives.
- Copy over all MTD partitions, for example by executing the following:

  for i in 0 1 2 3 4 5 6 7 8 9 10 11; do cat /dev/mtd$i > \
  /var/usb_disk/mtd$i; done

- If the count of MTD partitions is different, this might indicate that
  this is not a standard MF286 device, but one of its later derivatives.
- (optionally) rename the files according to MTD partition names from
  /proc/mtd
- Unmount the filesystem:

  umount /var/usb_disk; sync

  and then remove the drive.
- Store the files in safe place if you ever plan to return to stock
  firmware. This is especially important, because stock firmware for
  this device is not available officially, and is usually customized by
  the mobile providers.

STEP 3: Booting initramfs image:

Method 1: using serial console (RECOMMENDED):
- Have TFTP server running, exposing the OpenWrt initramfs image, and
  set your computer's IP address as 192.168.1.22. This is the default
  expected by U-boot. You may wish to change that, and alter later
  commands accordingly.
- Connect the serial console if you haven't done so already,
- Interrupt boot sequence by pressing any key in U-boot when prompted
- Use the following commands to boot OpenWrt initramfs through TFTP:

  setenv serverip 192.168.1.22
  setenv ipaddr 192.168.1.1
  tftpboot 0x81000000 openwrt-ath79-nand-zte_mf286-initramfs-kernel.bin
  bootm 0x81000000

  (Replace server IP and router IP as needed). There is no  emergency
  TFTP boot sequence triggered by buttons, contrary to MF283+.
- When OpenWrt initramfs finishes booting, proceed to actual
  installation.

Method 2: using initramfs image as temporary boot kernel
This exploits the fact, that kernel and rootfs MTD devices are
consecutive on NAND flash, so from within stock image, an initramfs can
be written to this area and booted by U-boot on next reboot, because it
uses "nboot" command which isn't limited by kernel partition size.
- Download the initramfs-kernel.bin image
- Split the image into two parts on 3MB partition size boundary, which
  is the size of kernel partition. Pad the output of second file to
  eraseblock size:

  dd if=openwrt-ath79-nand-zte_mf286-initramfs-kernel.bin \
  bs=128k count=24 \
  of=openwrt-ath79-zte_mf286-intermediate-kernel.bin

  dd if=openwrt-ath79-nand-zte_mf286-initramfs-kernel.bin \
  bs=128k skip=24 conv=sync \
  of=openwrt-ath79-zte_mf286-intermediate-rootfs.bin

- Copy over /usr/bin/flash_eraseall and /usr/bin/nandwrite utilities to
  /tmp. This is CRITICAL for installation, as erasing rootfs will cut
  you off from those tools on flash!

- After backing up the previous MTD contents, write the images to the
  respective MTD devices:

  /tmp/flash_eraseall /dev/<kernel-mtd>

  /tmp/nandwrite /dev/<kernel-mtd> \
  /var/usb_disk/openwrt-ath79-zte_mf286-intermediate-kernel.bin

  /tmp/flash_eraseall /dev/<kernel-mtd>

  /tmp/nandwrite /dev/<rootfs-mtd> \
  /var/usb_disk/openwrt-ath79-zte_mf286-intermediate-rootfs.bin

- Ensure that no bad blocks were present on the devices while writing.
  If they were present, you may need to vary the split  between
  kernel and rootfs parts, so U-boot reads a valid uImage after skipping
  the bad blocks. If it fails, you will be left with method 3 (below).
- If write is OK, reboot the device, it will reboot to OpenWrt
  initramfs:

  reboot -f

- After rebooting, SSH into the device and use sysupgrade to perform
  proper installation.

Method 3: using built-in TFTP recovery (LAST RESORT):
- With that method, ensure you have complete backup of system's NAND
  flash first. It involves deliberately erasing the kernel.
- Download "-initramfs-kernel.bin" image for the device.
- Prepare the recovery image by prepending 8MB of zeroes to the image,
  and name it root_uImage:

  dd if=/dev/zero of=padding.bin bs=8M count=1

  cat padding.bin openwrt-ath79-nand-zte_mf286-initramfs-kernel.bin >
  root_uImage

- Set up a TFTP server at 192.0.0.1/8. Router will use random address
  from that range.
- Put the previously generated "root_uImage" into TFTP server root
  directory.
- Deliberately erase "kernel" partition" using stock firmware after
  taking backup. THIS IS POINT OF NO RETURN.
- Restart the device. U-boot will attempt flashing the recovery
  initramfs image, which will let you perform actual installation using
  sysupgrade. This might take a considerable time, sometimes the router
  doesn't establish Ethernet link properly right after booting. Be
  patient.
- After U-boot finishes flashing, the LEDs of switch ports will all
  light up. At this moment, perform power-on reset, and wait for OpenWrt
  initramfs to finish booting. Then proceed to actual installation.

STEP 4: Actual installation:
- scp the sysupgrade image to the device:

  scp openwrt-ath79-nand-zte_mf286-squashfs-sysupgrade.bin \
  root@192.168.1.1:/tmp/

- ssh into the device and execute sysupgrade:

  sysupgrade -n /tmp/openwrt-ath79-nand-zte_mf286-squashfs-sysupgrade.bin

- Wait for router to reboot to full OpenWrt.

STEP 5: WAN connection establishment
Since the router is equipped with LTE modem as its main WAN interface, it
might be useful to connect to the Internet right away after
installation. To do so, please put the following entries in
/etc/config/network, replacing the specific configuration entries with
one needed for your ISP:

config interface 'wan'
        option proto 'qmi'
        option device '/dev/cdc-wdm0'
        option auth '<auth>' # As required, usually 'none'
        option pincode '<pin>' # If required by SIM
        option apn '<apn>' # As required by ISP
        option pdptype '<pdp>' # Typically 'ipv4', or 'ipv4v6' or 'ipv6'

For example, the following works for most polish ISPs
config interface 'wan'
        option proto 'qmi'
        option device '/dev/cdc-wdm0'
        option auth 'none'
        option apn 'internet'
        option pdptype 'ipv4'

If you have build with LuCI, installing luci-proto-qmi helps with this
task.

Restoring the stock firmware:

Preparation:
If you took your backup using stock firmware, you will need to
reassemble the partitions into images to be restored onto the flash. The
layout might differ from ISP to ISP, this example is based on generic stock
firmware.
The only partitions you really care about are "web", "kernel", and
"rootfs". For easy padding and possibly restoring configuration, you can
concatenate most of them into images written into "ubi" meta-partition
in OpenWrt. To do so, execute something like:

cat mtd5_cfg-param.bin mtd6-oops.bin mtd7-web.bin mtd9-rootfs.bin > \
mtd8-ubi_restore.bin

You can skip the "fota" partition altogether,
it is used only for stock firmware update purposes and can be overwritten
safely anyway. The same is true for "data" partition which on my device
was found to be unused at all. Restoring mtd5_cfg-param.bin will restore
the stock firmware configuration you had before.

Method 1: Using initramfs:
- Boot to initramfs as in step 3:
- Completely detach ubi0 partition using ubidetach /dev/ubi0_0
- Look up the kernel and ubi partitions in /proc/mtd
- Copy over the stock kernel image using scp to /tmp
- Erase kernel and restore stock kernel:
  (scp mtd4_kernel.bin root@192.168.1.1:/tmp/)
  mtd write <kernel_mtd> mtd4_kernel.bin
  rm mtd4_kernel.bin
- Copy over the stock partition backups one-by-one using scp to /tmp, and
  restore them individually. Otherwise you might run out of space in
  tmpfs:

  (scp mtd3_ubiconcat0.bin root@192.168.1.1:/tmp/)

  mtd write <ubiconcat0_mtd> mtd3_ubiconcat0.bin
  rm mtd3_ubiconcat0.bin

  (scp mtd5_ubiconcat1.bin root@192.168.1.1:/tmp/)

  mtd write <ubiconcat1_mtd> mtd5_ubiconcat1.bin
  rm mtd5_ubiconcat1.bin

- If the write was correct, force a device reboot with

  reboot -f

Method 2: Using live OpenWrt system (NOT RECOMMENDED):
- Prepare a USB flash drive contatining MTD backup files
- Ensure you have kmod-usb-storage and filesystem driver installed for
  your drive
- Mount your flash drive

  mkdir /tmp/usb

  mount /dev/sda1 /tmp/usb

- Remount your UBI volume at /overlay to R/O

  mount -o remount,ro /overlay

- Write back the kernel and ubi partitions from USB drive

  cd /tmp/usb
  mtd write mtd4_kernel.bin /dev/<kernel_mtd>

  mtd write mtd8_ubi.bin /dev/<kernel_ubi>

- If everything went well, force a device reboot with
  reboot -f

Last image may be truncated a bit due to lack of space in RAM, but this will happen over "fota"
MTD partition which may be safely erased after reboot anyway.

Method 3: using built-in TFTP recovery (LAST RESORT):
- Assemble a recovery rootfs image from backup of stock partitions by
  concatenating "web", "kernel", "rootfs" images dumped from the device,
  as "root_uImage"
- Use it in place of "root_uImage" recovery initramfs image as in the
  TFTP pre-installation method.

Quirks and known issues
- Kernel partition size is increased to 4MB compared to stock 3MB, to
  accomodate future kernel updates - at this moment OpenWrt 5.10 kernel
  image is at 2.5MB which is dangerously close to the limit. This has no
  effect on booting the system - but keep that in mind when reassembling
  an image to restore stock firmware.
- uqmi seems to be unable to change APN manually, so please use the one
  you used before in stock firmware first. If you need to change it,
  please use protocok '3g' to establish connection once, or use the
  following command to change APN (and optionally IP type) manually:
  echo -ne 'AT+CGDCONT=1,"IP","<apn>' > /dev/ttyUSB0
- The only usable LED as a "system LED" is the green debug LED hidden
  inside the case. All other LEDs are controlled by modem, on which the
  router part has some influence only on Wi-Fi LED.
- Wi-Fi LED currently doesn't work while under OpenWrt, despite having
  correct GPIO mapping. All other LEDs are controlled by modem,
  including this one in stock firmware. GPIO19, mapped there only acts
  as a gate, while the actual signal source seems to be 5GHz Wi-Fi
  radio, however it seems it is not the LED exposed by ath10k as
  ath10k-phy0.
- GPIO5 used for modem reset is a suicide switch, causing a hardware
  reset of whole board, not only the modem. It is attached to
  gpio-restart driver, to restart the modem on reboot as well, to ensure
  QMI connectivity after reboot, which tends to fail otherwise.
- Modem, as in MF283+, exposes root shell over ADB - while not needed
  for OpenWrt operation at all - have fun lurking around.
- MAC address shift for 5GHz Wi-Fi used in stock firmware is
  0x320000000000, which is impossible to encode in the device tree, so I
  took the liberty of using MAC address increment of 1 for it, to ensure
  different BSSID for both Wi-Fi interfaces.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
(cherry picked from commit 8c78a13bfc)
2022-06-06 18:10:25 +08:00
Stijn Tintel
346e3cbd39 ramips: use hotplug script for EAP615-Wall MACs
Using nvmem-cells to set the MAC address for a DBDC device results in
both PHY devices using the same MAC address. This in turn will result in
multiple BSSes using the same BSSID, which can cause various problems.

Use the hotplug script for the EAP615-Wall instead to avoid this.

Fixes: a1b8a4d7b3 ("ramips: support TP-Link EAP615-Wall")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Tested-by: Stijn Segers <foss@volatilesystems.org>
Tested-By: Andrew Powers-Holmes <aholmes@omnom.net>
(cherry picked from commit ce90ba1f31)
2022-06-03 19:56:13 +08:00
Stijn Tintel
72b674eec6 ramips: support TP-Link EAP615-Wall
Add support for the TP-Link EAP615-Wall, an AX1800 Wall Plate WiFi 6 AP.
The device is very similar to the TP-Link EAP235-Wall.

Hardware:
* SoC: MediaTek MT7621AT
* RAM: 128MiB
* Flash: 16MiB SPI-NOR
* Ethernet: 4x GbE
  * Back: ETH0 (PoE-PD)
  * Bottom: ETH1, ETH2, ETH3 (PoE passthrough)
* WiFi: MT7905DAN/MT7975DN 2.4/5 GHz 2T2R
* LEDS: 1x white
* Buttons: 1x LED, 1x reset

Stock firmware uses a random MAC address for ethernet. OpenWrt uses the
MAC address that is on the device label for ethernet and the wireless
interfaces. MAC address must not be incremented, as this will cause MAC
address conflicts in case you have two devices with consecutive MAC
addresses. Instead, different locally administered addresses will be
generated automatically, based on the MAC on the label.

Installation via stock firmware:
* Enable SSH in the TP-Link web interface
* SSH to the device
* Run `cliclientd stopcs`
* Upload the OpenWrt factory image via the TP-Link web interface

Installation via bootloader:
* Solder TTL header. Pinout: 1: TX, 2: RX, 3: GND, 4: VCC, with pin 1
  closest to ETH1. Baud rate 115200
* Interrupt boot process by holding a key during boot
* Boot the OpenWrt initramfs:
  # tftpboot 0x84000000 openwrt-ramips-mt7621-tplink_eap615-wall-v1-initramfs-kernel.bin
  # bootm
* Copy openwrt-ramips-mt7621-tplink_eap615-wall-v1-squashfs-sysupgrade.bin
  to /tmp and use sysupgrade to install it

Thanks to Sander Vanheule for his work on the EAP235-Wall, which made
adding support for the EAP615-Wall very easy.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Reviewed-by: Sander Vanheule <sander@svanheule.net>
Acked-by: Arınç ÜNAL <arinc.unal@arinc9.com>
(cherry picked from commit a1b8a4d7b3)
2022-06-03 19:55:27 +08:00
Xu Wang
61dadce3dc kernel: crypto: add kmod-crypto-chacha20poly1305
Needed by strongSwan IPsec VPN for strongswan-mod-chapoly. Not to be confused with
kmod-crypto-LIB-chacha20poly1305, which is an 8-byte nonce version used
by wireguard.

Signed-off-by: Xu Wang <xwang1498@gmx.com>
(cherry picked from commit 197b672c40)
2022-06-03 19:53:11 +08:00
David Bauer
fa3ddaad08 ipq40xx: add Aruba AP-365 specific BDF
Aruba deploys a BDF in the root filesystem, however this matches the one
used for the DK04 reference board.

The board-specific BDFs are built into the kernel. The AP-365 shows
sinificant degraded performance with increased range when used with the
reference BDF.

Replace the BDF with the one extracted from Arubas kernel.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit b21b98627d)
2022-06-03 19:52:45 +08:00
Álvaro Fernández Rojas
5503ca8b88 bmips: dgnd3700v2: fix network config
ucidef_set_bridge_device is needed for DGND3700v2 network config since VLAN 1
must be used for the switch to be correctly configured.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 90e4c8c6e6)
2022-05-31 01:19:20 +08:00
INAGAKI Hiroshi
9e6cfcafb6 mediatek: mt7622: add support for ELECOM WRC-X3200GST3
ELECOM WRC-X3200GST3 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on
MT7622B.

Specifications:

- SoC		: MediaTek MT7622B
- RAM		: DDR3 512 MiB (Nanya NT5CC256M16ER-EK)
- Flash		: SPI-NAND 128 MiB (Winbond W25N01GVZEIG)
- WLAN		: 2.4/5 GHz 4T4R
  - 2.4 GHz	: MediaTek MT7622B (SoC)
  - 5 GHz	: MediaTek MT7915A
- Ethernet	: 5x 10/100/1000 Mbps
  - Switch	: MediaTek MT7531
- LEDs/Keys	: 6x/4x (2x buttons, 1x slide-switch)
- UART		: through-hole on PCB
  - J19: 3.3V, GND, TX, RX from power jack side
  - 115200n8
- Power		: 12 VDC, 1.5 A

Flash instruction using factory image:

1. Boot WRC-X3200GST3 normally with "Router" mode
2. Access to "http://192.168.2.1/" and open firmware update page
   ("ファームウェア更新")
3. Select the OpenWrt factory image and click apply ("適用") button
4. Wait ~120 seconds to complete flashing

MAC Addresses:

LAN    : 04:AB:18:xx:xx:77 (Factory, 0x7FFF4 (hex))
WAN    : 04:AB:18:xx:xx:78 (Factory, 0x7FFFA (hex))
2.4 GHz: 04:AB:18:xx:xx:79 (Factory, 0x4     (hex))
5 GHz  : 04:AB:18:xx:xx:7A (none)

Note:

- currently, there is no "phy1tpt" trigger for 5 GHz wlan (MT7915) in
  "trigger" file of LEDs, use "phy1radio" trigger instead

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
(cherry picked from commit 58b3b557b6)
2022-05-31 01:17:16 +08:00
Dominick Grift
5781aa5f57 selinux-policy: update to version 1.2.3
86ca9c6 devstatus: prints to terminal
95de949 deal with /rom/dev/console label inconsistencies
ab6b6ee uci: hack to deal with potentially mislabeled char files
acf9172 dnsmasq this can't be right
021db5b luci-app-tinyproxy
cf3a9c4 support/secmark: removes duplicate loopback rules
eeb2610 dhcp servers: recv dhcp client packets
d5a5fc3 more support/secmark "fixes"
35d8604 update support secmark
4c155c0 packets these were caused by labeling issues with loopback
fad35a5 nftables reads routing table
f9c5a04 umurmur: kill an mumur instance that does not run as root
10a10c6 mmc stordev make this consistent
ab3ec5b Makefile: sort with LC_ALL=C
b34eaa5 fwenv rules
8c2960f adds rfkill nodedev and some mmc partitions to stordev
5a9ffe9 rcboot runs fwenv with a transition
9954bf6 dnsmasq in case of tcp
ab66468 dnsmasq try this
5bfcb88 dnsmasq stubby not sure why this is happening
863f549 luci not sure why it recv and send server packets
d5cddb0 uhttpd sends sigkill luci cgi
44cc04d stubby: it does not maintain anything in there
db730b4 Adds stubby
ccbcf0e tor simplify network access
a308065 tor basic
a9c0163 znc loose ends
327a9af acme: allow acme_cleanup.sh to restart znc
4015614 basic znc
7ef14a2 support/secmark: clarify some things
3107afe README: todo qrencode
943035a README and secmark doc
4c90937 ttyd: fix that socket leak again
3239adf dnsmasq icmp packets and fix a tty leak issue
b41d38f Makefile: optimize
95d05b1 sandbox dontaudit ttyd leak
0b7d670 rpcd: reads mtu
e754bf1 opkg-lists try this
35fb530 opkg-lists: custom
4328754 opkg try to address mislabeled /tmp/opkg-lists
3e2385c rcnftqos
95eae2d ucode
c86d366 luci diagnostics
e10b443 rpcd packets and wireguard/luci
a25e020 igmpproxt packets
0106f00 luci
dcef79c nftqos related
3c9bc90 related to nft-qos and luci
f8502d4 dnsmasq more related to /usr/lib/dnsmasq/dhcp-script.sh
29a4271 dnsmasq: related to /usr/lib/dnsmasq/dhcp-script.sh
0c5805a some nft-qos
1100b41 adds a label for /tmp/.ujailnoafile
e141a83 initscript: i labeled ujail procd.execfile
a3b0302 Makefile: adds a default target + packets target
6a3f8ef label usign as opkg and label fwtool and sysupgrade
04d1cc7 sysupgrade: i meant don't do the fc spec
763bec0 sysupgrade: dont do /tmp/sysupgrade.img
af2306f adds a failsafe.tmpfile and labels validate_firmware_image
5b15760 fwenv: comment doesnt make sense
370ac3b fwenv: executes shell
67e3fcb fwenv: adds fw_setsys
544d211 adds procd execfile module to label procd related exec files
99d5f13 rclocalconffile: treat /etc/rc.button like /etc/rc.local
4dfd662 label uclient-fetch the same as wget
75d8212 osreleasemiscfile: adds /etc/device_info
0c1f116 adds a rcbuttonconffile for /etc/rc.button (base-files)
ccd23f8 adds a syslog.conffile for /etc/syslog.conf (busybox)
f790600 adds a libattr.conffile for /etc/xattr.conf
fcc028e fwenv: adds fwsys
1255470 xtables: various iptables alternatives
a7c4035 Revert "sqm: runs xtables, so also allow nftables"
0d331c3 sqm: runs xtables, so also allow nftables
f34076b acme: will run nftables in the near future
6217046 allow ssl.read types to read /tmp/etc/ssl/engines.cnf
d0deea3 fixes dns packets
8399efc Revert "sandbox: see if dontauditing this affects things"
73d716a sandbox: see if dontauditing this affects things
b5ee097 sandbox: also allow readinherited dropbear pipes
12ee46b iwinfo traverses /tmp/run/wpa_supplicant
4a4d724 agent.cil: also reads inherited dropbear pipes
d48013f support/secmark: i tightened my dns packet policy
645ad9e dns packets redone
4790b25 dnsnetpacket: fix obj macro template
d9fafff redo dns packets
0a68498 ttyd: leaks a netlink route socket
1d2e6be .gitattributes: remove todo
e1bb954 usbutil: reads bus sysfile symlinks
d275a32 support/secmark: clean it up a little
af5ce12 Makefile: exclude packet types in default make target
3caacdf support/secmark: document tunable/boolean
e3dd3e6 invalidpacketselinuxbool: make it build-time again
54f0ccf odhcpd packet fix
4a864ba contrib/secmark: add a big FAT warning
bead937 contrib/secmark: adds note about secmark support
146ae16 netpacket remove test
2ce9899 dns packets, odhcp6c raw packet, 4123 ntpnts for netnod
070a45f chrony and unbound packets
eba894f rawip socket packets cannot be labeled
656ae0b adds isakmp (500), ipsec-nat-t (4500) and rawip packet types
35325db adds igmp packet type
5cf444c adds icmp packet type
2e41304 sandbox some more packet access for sandbox net
12caad6 packet accesses
b8eb9a8 adds a trunkload of packet types
a42a336 move rules related to invalid netpeers and ipsec associations
a9e40e0 xtables/nftables allow relabelto all packet types
aa5a52c README: adds item to wish list
3a96eec experiment: simple label based packet filtering
26d6f95 nftables reads/writes fw pipes

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
(cherry picked from commit e01b1c22df)
2022-05-31 01:16:54 +08:00
Jan-Niklas Burfeind
03edfe37a0 ath79: NanoBeam M5 fix target_devices
Update the name of for the Ubiquiti NanoBeam M5 to match the
auto-generated one at runtime. Otherwise sysupgrade complains about
mismatching device names.

This also required renaming the DTS.

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
(cherry picked from commit 21a3ce97d5)
2022-05-31 01:16:44 +08:00
Jan-Niklas Burfeind
17fc3ac67d ath79: add support for Ubiquiti NanoBeam M5
Ubiquiti NanoBeam M5 devices are CPE equipment for customer locations
with one Ethernet port and a 5 GHz 300Mbps wireless interface.

Specificatons:

- Atheros AR9342
- 535 MHz CPU
- 64 MB RAM
- 8 MB Flash
- 1x 10/100 Mbps Ethernet with passive PoE input (24 V)
- 6 LEDs of which four are rssi
- 1 reset button
- UART (4-pin) header on PCB

Notes:

The device was supported by OpenWrt in ar71xx.

Flash instructions (web/ssh/tftp):

Loading the image via ssh vias a stock firmware prior "AirOS 5.6".
Downgrading stock is possible.

* Flashing is possible via AirOS software update page:
The "factory" ROM image is recognized as non-native and then installed correctly.
AirOS warns to better be familiar with the recovery procedure.

* Flashing can be done via ssh, which is becoming difficult due to legacy
keyexchange methods.

This is an exempary ssh-config:
KexAlgorithms +diffie-hellman-group1-sha1
HostKeyAlgorithms ssh-rsa
PubkeyAcceptedKeyTypes ssh-rsa
User ubnt

The password is ubnt.

Connecting via IPv6 link local worked best for me.

1. scp the factory image to /tmp
2. fwupdate.real -m /tmp/firmware_image_file.bin -d

* Alternatively tftp is possible:

1. Configure PC with static IP 192.168.1.2/24.
2. Enter the rescue mode. Power off the device, push the reset button on
   the device (or the PoE) and keep it pressed.
   Power on the device, while still pushing the reset button.
3. When all the leds blink at the same time, release the reset button.
4. Upload the firmware image file via TFTP:

tftp 192.168.1.20
tftp> bin
tftp> trace
Packet tracing on.
tftp> put firmware_image.bin

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
(cherry picked from commit 4cd3ff8a79)
2022-05-31 01:16:34 +08:00
Martin Weinelt
51b24e9605 ath79: ubnt: drop swconfig on ac-{lite,lr,mesh}
These don't have switches that could be configured using swconfig.

Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
(cherry picked from commit 089eb02abc)
2022-05-31 01:16:17 +08:00
Daniel González Cabanelas
01af696014 ath79: Add support for Ubiquiti NanoBeam AC Gen1 XC
The Ubiquiti NanoBeam AC Gen1 XC (NBE-5AC-19) is an outdoor 802.11ac CPE
with a waterproof casing (ultrasonically welded) and bulb shaped.

Hardware:
 - SoC: Qualcomm Atheros QCA9558
 - RAM: 128 MB DDR2
 - Flash: 16 MB SPI NOR
 - Ethernet: 1x GbE, AR8033 phy connected via SGMII
 - PSU: 24 Vdc passive PoE
 - WiFi 5 GHz: Qualcomm Atheros QCA988X
 - Buttons: 1x reset
 - LEDs: 1x power, 1x Ethernet, 4x RSSI, all blue
 - Internal antenna: 19 dBi planar

Installation from stock airOS firmware:
 - Follow instructions for XC-type Ubiquiti devices on OpenWrt wiki at
   https://openwrt.org/toh/ubiquiti/common

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
(cherry picked from commit 73ea763c0d)
2022-05-31 01:15:55 +08:00
Maciej Krüger
34a3e58d61 ath79: add support for MikroTik hAP (RB951Ui-2nD)
The MikroTik hAP (product code RB951Ui-2nD) is
an indoor 2.4Ghz AP with a 2 dBi integrated antenna built around the
Atheros QCA9531 SoC.

Specifications:
 - SoC: Atheros QCA9531
 - RAM: 64 MB
 - Storage: 16 MB NOR - Winbond 25Q128FVSG
 - Wireless: Atheros QCA9530 (SoC) 802.11b/g/n 2x2
 - Ethernet: Atheros AR934X switch, 5x 10/100 ports,
   10-28 V passive PoE in port 1, 500 mA PoE out on port 5
 - 8 user-controllable LEDs:
   · 1x power (green)
   · 1x user (green)
   · 4x LAN status (green)
   · 1x WAN status (green)
   · 1x PoE power status (red)

See https://mikrotik.com/product/RB951Ui-2nD for more details.

Notes:
 The device was already supported in the ar71xx target.

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. Follow common
 MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Maciej Krüger <mkg20001@gmail.com>
(cherry picked from commit 5ce64e0646)
2022-05-31 01:15:20 +08:00
Thibaut VARÈNE
1c32be45f9 ath79: add support for MikroTik RouterBOARD hAP ac lite
The MikroTik RB952Ui-5ac2nD (sold as hAP ac lite) is an indoor 2.4Ghz
and 5GHz AP/router with a 2 dBi integrated antenna.

See https://mikrotik.com/product/RB952Ui-5ac2nD for more details.

Specifications:
 - SoC: QCA9533
 - RAM: 64MB
 - Storage: 16MB NOR
 - Wireless: QCA9533 802.11b/g/n 2x2 / QCA9887 802.11a/n/ac 2x2
 - Ethernet: AR934X switch, 5x 10/100 ports,
    10-28 V passive PoE in port 1, 500 mA PoE out on port 5
 - 6 user-controllable LEDs:
   - 1x user (green)
   - 5x port status (green)

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. The "Internet"
 port (port number 1) must be used to upload the TFTP image, then
 connect to any other port to access the OpenWRT system.
 Follow common MikroTik procedure as in
 https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
(cherry picked from commit 2bd33e8626)
2022-05-31 01:15:05 +08:00
David Musil
361bd0ba22 ath79: add support for MikroTik RouterBOARD wAP-2nD (wAP)
The MikroTik RouterBOARD wAP-2nd (sold as wAP) is a small
2.4 GHz 802.11b/g/n PoE-capable AP.

Specifications:
 - SoC: Qualcomm Atheros QCA9533
 - Flash: 16 MB (SPI)
 - RAM: 64 MB
 - Ethernet: 1x 10/100 Mbps (PoE in)
 - WiFi: AR9531 2T2R 2.4 GHz (SoC)
 - 3x green LEDs (1x lan, 1x wlan, 1x user)

 See https://mikrotik.com/product/RBwAP2nD for more info.

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. Follow common
 MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.

Note: following 781d4bfb39
 The network setup avoids using the integrated switch and connects the
 single Ethernet port directly. This way, link speed (10/100 Mbps) is
 properly reported by eth0.

Signed-off-by: David Musil <0x444d@protonmail.com>
(cherry picked from commit e20de22442)
2022-05-31 01:14:36 +08:00
Ryan Mounce
865d8cd1cb ath79: add support for MikroTik RouterBOARD 962UiGS-5HacT2HnT (hAP ac)
This patch adds support for the MikroTik RouterBOARD 962UiGS-5HacT2HnT (hAP ac)

Specifications:
- SoC: QCA9558
- RAM: 128 MB
- Flash: 16 MB SPI
- 2.4GHz WLAN: 3x3:3 802.11n on SoC
- 5GHz WLAN: 3x3:3 802.11ac on QCA9880 connected via PCIe
- Switch: 5x 1000/100/10 on QCA8337 connected via RGMII
- SFP cage: connected via SGMII (tested with genuine & generic GLC-T)
- USB: 1x type A, GPIO power switch
- PoE: Passive input on Ether1, GPIO switched passthrough to Ether5
- Reset button
- "SFP" LED connected to SoC
- Ethernet LEDs connected to QCA8337 switch
- Green WLAN LED connected to QCA9880

Not working:
- Red WLAN LED

Installation:
TFTP boot initramfs image and then perform sysupgrade. Follow common
MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Ryan Mounce <ryan@mounce.com.au>
(cherry picked from commit c2140e32ce)
2022-05-31 01:14:20 +08:00
Thibaut VARÈNE
ed5afe63a0 ath79: add support for MikroTik RouterBOARD mAP lite
The MikroTik RouterBOARD mAPL-2nd (sold as mAP Lite) is a small
2.4 GHz 802.11b/g/n PoE-capable AP.

See https://mikrotik.com/product/RBmAPL-2nD for more info.

Specifications:
 - SoC: Qualcomm Atheros QCA9533
 - RAM: 64 MB
 - Storage: 16 MB NOR
 - Wireless: Atheros AR9531 (SoC) 802.11b/g/n 2x2:2, 1.5 dBi antenna
 - Ethernet: Atheros AR8229 (SoC), 1x 10/100 port, 802.3af/at PoE in
 - 4 user-controllable LEDs:
   · 1x power (green)
   · 1x user (green)
   · 1x lan (green)
   · 1x wlan (green)

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. Follow common
 MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.

Note: following 781d4bfb39
 The network setup avoids using the integrated switch and connects the
 single Ethernet port directly. This way, link speed (10/100 Mbps) is
 properly reported by eth0.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
(cherry picked from commit eb38af7881)
2022-05-31 01:14:07 +08:00
Jakob Riepler
85e58f7237 ath79: add support for Mikrotik LHG 5
The MikroTik LHG 5 series (product codes RBLHG-5nD, RBLHG-5HPnD and
RBLHG-5HPnD-XL) devices are an outdoor 5GHz CPE with a 24.5dBi or 27dBi
integrated antenna built around the Atheros AR9344 SoC.
It is very similar to the SXT Lite5 series which this patch is based
upon.

Specifications:
 - SoC: Atheros AR9344
 - RAM: 64 MB
 - Storage: 16 MB SPI NOR
 - Wireless: Atheros AR9340 (SoC) 802.11a/n 2x2:2
 - Ethernet: Atheros AR8229 switch (SoC), 1x 10/100 port,
    8-32 Vdc PoE in
 - 8 user-controllable LEDs:
  - 1x power (blue)
  - 1x user (white)
  - 1x ethernet (green)
  - 5x rssi (green)

 See https://mikrotik.com/product/RBLHG-5nD for more details.

Notes:
 The device was already supported in the ar71xx target.

Flashing:
 TFTP boot initramfs image and then perform a sysupgrade. Follow common
 MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Jakob Riepler <jakob+openwrt@chaosfield.at>
(cherry picked from commit e0683839b8)
2022-05-31 01:13:58 +08:00
Roger Pueyo Centelles
acb7d38758 ath79: mikrotik: enable USB module on RouterBoard wAPR-2nD
The MikroTik RouterBOARD wAPR-2nD (wAP R) router features a miniPCI-e
slot with USB lines connected, which are used by some USB cards with
miniPCI-e form factor, like the R11e-LR8. Enabling USB support is
required for such cards to work.

Tested on a MikroTik wAP LR8 kit (RB wAPR-2nD + R11e-LR8).

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
(cherry picked from commit c29f71ece7)
2022-05-31 01:13:24 +08:00
Hauke Mehrtens
dcfcf6f2ae malta: use default OpenWrt network configuration
Currently malta configures the first Ethernet device as WAN interface.
If it finds a second one it will configure it as LAN.

This commit reverses it to match armvirt and x86. If there is only one
network device it will be configured as LAN device now. If we find two
network devices the 2. one will be WAN.

If no board.d network configuration is given it will be configured in
package/base-files/files/etc/board.d/99-default_network

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
[minor typos]
Signed-off-by: Paul Spooren <mail@aparcar.org>
(cherry picked from commit fb1ba92202)
2022-05-31 00:29:50 +08:00
Ritaro Takenaka
405cf108a3 kernel: check dst of flow offloading table
Flow offload dst can become invalid after the route cache is created.
dst_check() in packet path is necessary to prevent packet drop.

Signed-off-by: Ritaro Takenaka <ritarot634@gmail.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-05-31 00:22:22 +08:00
Ritaro Takenaka
7a887d9ba4 kernel: backport flow offload fixes
Some dst in IPv6 flow offload table become invalid after the table is created.
So check_dst is needed in packet path.

Signed-off-by: Ritaro Takenaka <ritarot634@gmail.com>
[Add patch for kernel 5.15 too and rename file]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit efff48529b)
[removed patch for kernel 5.15 which is not available]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-05-31 00:20:44 +08:00
Hauke Mehrtens
5d0864d042 kernel: Add missing devm_regulator_get_exclusive()
This backports a patch from Linux 5.10.116 to fix a compile problem
introduced in 5.10.114.

drivers/usb/phy/phy-generic.c could not find
devm_regulator_get_exclusive().

Fixes: 8592df67f4 ("kernel: bump 5.10 to 5.10.114")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 7400adae8d)
2022-05-30 21:36:17 +08:00
Tianling Shen
6fb8b4d35b kernel: refresh 5.10 patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-05-30 00:20:54 +08:00
Tianling Shen
e92de7a7fe kernel: refresh 5.4 patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-05-29 22:57:30 +08:00
Hauke Mehrtens
b3041a1411 kernel: bump 5.4 to 5.4.194
Compile-tested: lantiq/xrx200, armvirt/64
Run-tested: lantiq/xrx200, armvirt/64

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit ce92de8c8c)
2022-05-29 19:41:02 +08:00
Hauke Mehrtens
017003a20e kernel: bump 5.4 to 5.4.192
Compile-tested: armvirt/64
Run-tested: armvirt/64

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 7ae0f74bcd)
2022-05-29 19:40:29 +08:00
Hauke Mehrtens
c586c8198e kernel: bump 5.4 to 5.4.191
Merged upstream:
 apm821xx/patches-5.4/150-ata-sata_dwc_460ex-Fix-crash-due-to-OOB-write.patch

Similar patch merged upstream:
 bcm27xx/patches-5.4/950-0210-usb-xhci-Disable-the-XHCI-5-second-timeout.patch

Manually adapted:
 layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch

Compile-tested: armvirt/64
Run-tested: armvirt/64

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit e0bdf83972)
2022-05-29 19:39:20 +08:00
Hauke Mehrtens
4457c0ab82 kernel: bump 5.4 to 5.4.188
Added the new configuration options:
CONFIG_HARDEN_BRANCH_HISTORY=y
CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y

Manually adapted:
target/linux/generic/hack-5.4/220-gc_sections.patch

Compile-tested: lantiq/xrx200, armvirt/64
Run-tested: lantiq/xrx200, armvirt/64

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 39bf2aee0e)
2022-05-29 19:37:51 +08:00
Hauke Mehrtens
e070e4e8d2 kernel: bump 5.4 to 5.4.182
The following patch was integrated upstream:
  target/linux/bcm4908/patches-5.4/180-i2c-brcmstb-fix-support-for-DSL-and-CM-variants.patch

All other updated automatically.

The new config option CONFIG_BPF_UNPRIV_DEFAULT_OFF is now handled too.

Compile-tested on: lantiq/xrx200, armvirt/64
Runtime-tested on: lantiq/xrx200, armvirt/64

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 2d69d098e0)
2022-05-29 19:34:00 +08:00
Hauke Mehrtens
6893fcfb73 kernel: bump 5.4 to 5.4.179
Many changes were done in drivers/pinctrl/bcm/pinctrl-bcm2835.c between
5.4.171 and 5.4.179.
The following 3 patches do not apply any more:
* target/linux/bcm27xx/patches-5.4/950-0316-pinctrl-bcm2835-Add-support-for-BCM2711-pull-up-func.patch
  This was already integrated in kernel v5.4-rc1, it was never needed.

* target/linux/bcm27xx/patches-5.4/950-0328-Revert-pinctrl-bcm2835-Pass-irqchip-when-adding-gpio.patch
* target/linux/bcm27xx/patches-5.4/950-0362-pinctrl-bcm2835-Change-init-order-for-gpio-hogs.patch
I think these were done to fix the problem which was really fixed in
commit 75278f1aff5e ("pinctrl: bcm2835: Change init order for gpio
hogs") from v5.4.175

target/linux/generic/backport-5.4/716-v5.5-net-sfp-move-fwnode-parsing-into-sfp-bus-layer.patch
Move fwnode_device_is_available to the same position as in kernel 5.10.

target/linux/layerscape/patches-5.4/302-dts-0083-arm64-ls1028a-qds-correct-bus-of-rtc.patch
Applied in commit 65816c1034769e714edb70f59a33bc5472d9e55f ("arm64: dts:
ls1028a-qds: move rtc node to the correct i2c bus")

Compile-tested: lantiq/xrx200, bcm27xx/bcm2710
Run-tested: lantiq/xrx200

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit c6ddf8d502)
2022-05-29 19:32:44 +08:00
Tianling Shen
40bb40142e util-linux: fix build on arc
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-05-29 18:48:02 +08:00
John Audia
f30ea89a2c kernel: bump 5.10 to 5.10.115
Removed upstreamed:
  backport-5.10/850-v5.17-0004-PCI-aardvark-Clear-all-MSIs-at-setup.patch
  pending-5.10/850-0002-PCI-aardvark-Fix-reading-MSI-interrupt-number.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit b754b0c721)
2022-05-29 18:34:08 +08:00
John Audia
b9064e30c5 kernel: bump 5.10 to 5.10.114
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 8592df67f4)
2022-05-29 18:33:53 +08:00
John Audia
6cb6a7e0dc kernel: bump 5.10 to 5.10.113
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit e08942e76a)
2022-05-29 18:33:24 +08:00
John Audia
cb1df603b8 kernel: bump 5.10 to 5.10.112
Manually rebased:
  ath79/patches-5.10/901-phy-mdio-bitbang-prevent-rescheduling-during-command.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit cab20be008)
2022-05-29 18:32:44 +08:00
John Audia
80c8f3c10c kernel: bump 5.10 to 5.10.111
Removed upstreamed:
  pending-5.10/850-0003-PCI-aardvark-Fix-support-for-MSI-interrupts.patch
  apm821xx/patches-5.10/150-ata-sata_dwc_460ex-Fix-crash-due-to-OOB-write.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 0085dd6cb5)
2022-05-29 18:32:17 +08:00
John Audia
2186414a3d kernel: bump 5.10 to 5.10.110
Removed upstreamed:
  generic/backport-5.10/350-v5.18-MIPS-pgalloc-fix-memory-leak-caused-by-pgd_free.patch
  generic/pending-5.10/850-0014-PCI-aardvark-Fix-reading-PCI_EXP_RTSTA_PME-bit-on-em.patch
  ipq40xx/patches-5.10/105-ipq40xx-fix-sleep-clock.patch

All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200
Compile-/run-tested: ath79/generic (Archer C7 v2).

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit b92ec82235)
2022-05-29 18:31:49 +08:00
John Audia
748b93ef02 kernel: bump 5.10 to 5.10.109
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit c41da167d2)
2022-05-29 18:31:29 +08:00
Rui Salvaterra
755f7b19ce kernel: bump 5.10 to 5.10.108
Patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200
Tested-by: John Audia <graysky@archlinux.us>

Build-tested: ath79/generic, ramips/mt76{20,21,x8}, ipq40xx, mvebu, realtek/rtl{838,930}x, x86/64
Run-tested: ramips/mt7621, mvebu
Tested-by: Stijn Segers <foss@volatilesystems.org>

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit 2c26eb4e48)
2022-05-29 18:30:53 +08:00
John Audia
26c32cfd77 kernel: bump 5.10 to 5.10.107
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 1eb5d50fd3)
2022-05-29 18:30:45 +08:00
John Audia
425d9ffd0d kernel: bump 5.10 to 5.10.106
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit b04d38a2ea)
2022-05-29 18:28:24 +08:00
John Audia
fddeb6e011 kernel: bump 5.10 to 5.10.105
Updated default config with new sym (CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y).

Manually rebased:
    generic/hack-5.10/220-arm-gc_sections.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 048f0b1702)
2022-05-29 18:28:13 +08:00
John Audia
73c82b0d1a kernel: bump 5.10 to 5.10.104
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 3f5b2d25ee)
2022-05-29 18:28:08 +08:00
Rui Salvaterra
9ce9687342 kernel: bump 5.10 to 5.10.103
Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit 05ed7dc50d)
2022-05-29 18:27:57 +08:00
John Audia
8b21850e9a kernel: bump 5.10 to 5.10.102
Removed upstreamed:
	bcm4908/patches-5.10/180-i2c-brcmstb-fix-support-for-DSL-and-CM-variants.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.102&id=f333c1916fd6b55900029bf8f918cc00009e2111

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 0989b7ad3a)
2022-05-29 18:27:40 +08:00
John Audia
5ecccd41b0 kernel: bump 5.10 to 5.10.101
Removed upstreamed:
  pending-5.10/841-USB-serial-option-add-ZTE-MF286D-modem.patch[1]
  bcm27xx/950-0592-drm-vc4-Allow-DBLCLK-modes-even-if-horz-timing-is-od.patch[2]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.101&id=7113440a36c741efd7c76e3d70b3634100120cdb
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.101&id=21c890ca8eaecea06cabb92be2a53a6f26f56383

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit a2d4b5711a)
2022-05-29 18:27:28 +08:00
John Audia
8be47f1fd2 kernel: bump 5.10 to 5.10.100
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit c391dcdf86)
2022-05-29 18:26:21 +08:00
John Audia
725b5ba0e0 kernel: bump 5.10 to 5.10.99
Had to update generic defconfig (make kernel_menuconfig CONFIG_TARGET=generic)
for this bump, but since that only modifies the target defined in .config,
and since that target also needed to be updated for unrelated reasons, manually
propagated the newly added symbol to the generic config.

Removed upstreamed:
    pending-5.10/860-Revert-ASoC-mediatek-Check-for-error-clk-pointer.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.99&id=080f371d984e8039c66db87f3c54804b0d172329

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 5e43dd1fa7)
2022-05-29 18:25:40 +08:00
John Audia
c3dbfd44d8 kernel: bump 5.10 to 5.10.98
Manually rebased:
	bcm27xx/patches-5.10/950-0675-drm-vc4-hdmi-Drop-devm-interrupt-handler-for-CEC-int.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit e9c1c83679)
2022-05-29 18:25:30 +08:00
Rui Salvaterra
e5f3565184 kernel: bump 5.10 to 5.10.96
Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit ff97fb98e3)
2022-05-29 18:25:13 +08:00
Rui Salvaterra
74d868c816 kernel: bump 5.10 to 5.10.95
Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit b9736cb78c)
2022-05-29 18:25:02 +08:00
Rui Salvaterra
914d71085a kernel: bump 5.10 to 5.10.94
Deleted (upstreamed):
bcm27xx/patches-5.10/950-0669-drm-vc4-hdmi-Make-sure-the-device-is-powered-with-CE.patch [1]
bcm27xx/patches-5.10/950-0672-drm-vc4-hdmi-Move-initial-register-read-after-pm_run.patch [1]
gemini/patches-5.10/0003-ARM-dts-gemini-NAS4220-B-fis-index-block-with-128-Ki.patch [2]

Manually rebased:
bcm27xx/patches-5.10/950-0675-drm-vc4-hdmi-Drop-devm-interrupt-handler-for-CEC-int.patch

Manually reverted:
generic/pending-5.10/860-Revert-ASoC-mediatek-Check-for-error-clk-pointer.patch [3]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.94&id=55b10b88ac8654fc2f31518aa349a2e643b37f18
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.94&id=958a8819d41420d7a74ed922a09cacc0ba3a4218
[3] https://lore.kernel.org/all/trinity-2a727d96-0335-4d03-8f30-e22a0e10112d-1643363480085@3c-app-gmx-bap33/

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 1343acc8cd)
2022-05-29 18:24:31 +08:00
Rui Salvaterra
0123e2f2b7 kernel: bump 5.10 to 5.10.93
No patches required rebasing.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit f2232544b8)
2022-05-29 18:24:06 +08:00
Rui Salvaterra
ead82882af kernel: bump 5.10 to 5.10.92
Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit 61e58f7cec)
2022-05-29 18:23:49 +08:00
Rui Salvaterra
ed0c9368e3 kernel: bump 5.10 to 5.10.91
Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit 7229981994)
2022-05-29 18:22:02 +08:00
John Audia
8689116c0d kernel: bump 5.4 to 5.4.175
All patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit aa8299ee4f)
2022-05-29 18:21:33 +08:00
John Audia
86cdc6535f kernel: bump 5.4 to 5.4.174
Removed upstreamed patches:
  layerscape/patches-5.4/302-dts-0083-arm64-ls1028a-qds-correct-bus-of-rtc.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.4.174&id=65816c1034769e714edb70f59a33bc5472d9e55f

Build system: x86_64
Build-tested: ramips/mt7621

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 30cff7c3b0)
2022-05-29 18:21:26 +08:00
John Audia
7caba0690d kernel: bump 5.4 to 5.4.173
All patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 76725938f1)
2022-05-29 18:21:19 +08:00
John Audia
f63afcdb8c kernel: bump 5.4 to 5.4.172
All patches automatically rebased.

Build system: x86_64
Build-tested: ramips/mt7621

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit a28afb9214)
2022-05-29 18:21:14 +08:00
John Audia
1d45057c19 kernel: bump 5.4 to 5.4.171
All patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 53252c4ce9)
2022-05-29 18:21:01 +08:00
Ansuel Smith
b36830697d kernel: split kernel version to dedicated files
Move the kernel versions and hash to dedicated files.
This makes kernel bump quicker and fix some annoying
problem with rebasing when multiple kernel bump are proposed.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[Rebased on top of current master]
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit 0765466a42)
2022-05-29 18:20:54 +08:00
Rui Salvaterra
6f63874b6c kernel: bump 5.10 to 5.10.90
Add and enable a new kconfig knob to disable unprivileged eBPF by default.

Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit 536f051b97)
2022-05-29 18:19:26 +08:00
John Audia
6fca33b281 kernel: bump 5.4 to 5.4.170
All patches automatically rebased.

Build system: x86_64
Build-tested: ramips/mt7621

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 9f08557649)
2022-05-29 18:18:48 +08:00
Rui Salvaterra
496f723f05 kernel: bump 5.10 to 5.10.89
Deleted (upstreamed):
bcm27xx/patches-5.10/950-0186-pinctrl-bcm2835-Change-init-order-for-gpio-hogs.patch [1]
sunxi/patches-5.10/103-arm64-dts-allwinner-orangepi-zero-plus-fix-PHY-mo.patch [2]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.89&id=ba696b470839d70c6b8290c1f798bac7fb2a584c
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.89&id=93a957bbf46ceb224b959de61fe85cfc6f71b6c7

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit 2bb02ccae3)
2022-05-29 18:18:23 +08:00
John Audia
c2f29c5e4f kernel: bump 5.4 to 5.4.169
All patches automatically rebased.

Build system: x86_64
Build-tested: ramips/mt7621*

*Had to revert 7f1edbd in order to build due to FS#4149

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 7bf62e2451)
2022-05-29 18:18:15 +08:00
Rui Salvaterra
bf17985e66 kernel: bump 5.10 to 5.10.88
Deleted (upstreamed):
mpc85xx/patches-5.10/002-powerpc-85xx-fix-oops-when-CONFIG_FSL_PMC-n.patch [1]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.88&id=151ffac3ac277ad7c2a5f201b566b56d97ed3a99

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit a3774d72c8)
2022-05-29 18:18:09 +08:00
John Audia
311c9a7ae3 kernel: bump 5.10 to 5.10.87
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, ipq806x/R7800*
Run-tested: bcm2711/RPi4B, ipq806x/R7800*

*Had to revert 7f1edbd412 in order to build
(binutils 2.37, https://bugs.openwrt.org/index.php?do=details&task_id=4149)

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit eabb4a5c5d)
2022-05-29 18:18:01 +08:00
John Audia
195cf9ed77 kernel: bump 5.10 to 5.10.86
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, ipq806x/R7800*
Run-tested: bcm2711/RPi4B, ipq806x/R7800*

*Had to revert 7f1edbd412 in order to build
(binutils 2.37, https://bugs.openwrt.org/index.php?do=details&task_id=4149)

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 002424e5ae)
2022-05-29 18:17:53 +08:00
John Audia
381b443172 kernel: bump 5.10 to 5.10.85
Removed target for patch which does not exist:
    bcm27xx/patches-5.10/950-0249-kbuild-Disable-gcc-plugins.patch

All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, ipq806x/R7800*
Run-tested: bcm2711/RPi4B, ipq806x/R7800*

* Had to revert 7f1edbd412 in order to build
  (binutils 2.37, https://bugs.openwrt.org/index.php?do=details&task_id=4149)

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 43c0a12665)
2022-05-29 18:17:46 +08:00
John Audia
dae70b26f3 kernel: bump 5.10 to 5.10.84
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 187c8f9153)
2022-05-29 18:17:29 +08:00
John Audia
248b87f617 kernel: bump 5.4 to 5.4.167
All patches automatically rebased.

Build system: x86_64
Build-tested: ramips/mt7621*

*FS#4149 affects me so I had to revert 7f1edbd412
in order to downgrade to 2.35.1

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit d4b25007ea)
2022-05-29 18:16:37 +08:00
John Audia
5a014392da kernel: bump 5.4 to 5.4.166
All patches automatically rebased.

Build system: x86_64
Build-tested: ramips/mt7621*

*FS#4149 affects me so I had to revert 7f1edbd412
in order to downgrade to 2.35.1

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 61c76f836f)
2022-05-29 18:16:18 +08:00
John Audia
ea617eaed9 kernel: bump 5.4 to 5.4.165
All patches automatically rebased.

Build system: x86_64
Build-tested: ramips/mt7621*

*FS#4149 affects me so I had to revert 7f1edbd412
in order to downgrade to 2.35.1

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit a696e325f7)
2022-05-29 18:15:06 +08:00
John Audia
5e839f0b8f kernel: bump 5.10 to 5.10.83
Removed upstreamed:
    bcm53xx/patches-5.10/033-v5.16-0024-ARM-dts-BCM5301X-Fix-I2C-controller-interrupt.patch[1]
    bcm53xx/patches-5.10/033-v5.16-0025-ARM-dts-BCM5301X-Add-interrupt-properties-to-GPIO-no.patch[2]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.83&id=b2cd6fdcbe0a5cb44e4610a08cc58261d494a885
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.83&id=9db1d4a3c2700e1cc84c3d61199411d75c2a3ec6

Build system: x86_64*
Build-tested: bcm2711/RPi4B, ipq806x/R7800†
Run-tested: bcm2711/RPi4B, ipq806x/R7800†

* Had to revert 7c99085bd6 in order to build
  (latest bump of ca-certificates)

† Had to revert 7f1edbd412 in order to build
  (binutils 2.37, https://bugs.openwrt.org/index.php?do=details&task_id=4149)

Signed-off-by: John Audia <graysky@archlinux.us>
(cherry picked from commit 6c945fa379)
2022-05-29 18:14:31 +08:00
Tianling Shen
985cb6840e Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-05-29 17:53:15 +08:00
Tianling Shen
a8fcafa4a3 feeds: use 22.03 branch for routing and telephony repo
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-05-26 23:42:37 +08:00
Tianling Shen
d243c7b53c r8168: refresh patches
Fixes: 991fab8bd1 ("Merge Mainline")

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-05-20 11:43:50 +08:00
AmadeusGhost
b55a3c14e7 rockchip: fixes pcie eth compatible for r4s
Use the standard pci device binding to fixes this.

Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2022-05-18 21:00:33 +08:00
Ptilopsis Leucotis
d0cbcb5782 ath79: fix I2C on GL-AR300M devices
On GL-AR300M Series GPIO17 described as I2C SDA in Device Tree.
Because of GPIO_OUT_FUNCTION4 register was not initialized on start,
GPIO17 was uncontrollable, it always in high state. According to QCA9531
documentation, default setting of GPIO17 is SYS_RST_L. In order to make
GPIO17 controllable, it should write value 0x00 on bits [15:8] of
GPIO_OUT_FUNCTION4 register, located at 0x1804003C address.

Signed-off-by: Ptilopsis Leucotis <PtilopsisLeucotis@yandex.com>
2022-05-18 20:44:14 +08:00
Tamas Balogh
d06de144c5 ramips: add led_source for Asus RT-AC1200 devices
this adds the mediatek,led_source dts binding for
Asus RT-AC1200 devices' dtsi, for correct switch LED
behavior.

The dts-binding is introduced in commit:
65dc9e0980

Without this, we only have constantly very fast
blinking LEDs, which don't react on any traffic or
LAN events at all.

Signed-off-by: Tamas Balogh <tamasbalogh@hotmail.com>
2022-05-18 20:44:11 +08:00
Andreas Böhler
3e2f1c49c4 ramips: Add support for SERCOMM NA502S
The SERCOMM NA502s is a smart home gateway manufactured by SERCOMM and sold
under different brands (among others, A1 Telekom Austria SmartHome Premium
Gateway). It has multi-protocol radio support in addition to LAN and WiFi.

Note: BLE and audio are currently unsupported.

Specifications
--------------

  - MT7621ST 880MHz, Single-Core, Dual-Thread
  - MT7603EN 2.4GHz WiFi
  - MT7662EN 5GHz WiFi + BLE
  - 128MiB NAND
  - 256MiB DDR3 RAM
  - SD3503 ZWave Controller
  - EM357 Zigbee Coordinator
  - Telit UMTS module
  - Rechargeable battery
  - speaker and microphone

MAC address assignment
----------------------

LAN MAC is read from the config partition, WiFi 2.4GHz is LAN+2 and matches
the OEM firmware. WiFi 5GHz with LAN+1 is an educated guess since the
OEM firmware does not enable 5GHz WiFi.

Installation
------------
Attach serial console, then boot the initramfs image via TFTP.
Once inside OpenWrt, run sysupgrade -n with the sysupgrade file.

Attention: The device has a dual-firmware design. We overwrite kernel2,
since kernel1 contains an automatic recovery image.

If you get NAND ECC errors and are stuck with bad eraseblocks, try to
erase the mtd partition first with

mtd unlock ubi
mtd erase ubi

This should only be needed once.

Signed-off-by: Andreas Böhler <dev@aboehler.at>
2022-05-18 20:42:19 +08:00
Alessio Prescenzo
2e9e7727ad ramips: add support for Cudy X6
Specifications:

SoC: MediaTek MT7621
RAM: 256 MB
Flash: 32 MB
WiFi: MediaTek MT7915E
Switch: 1 WAN, 4 LAN (Gigabit)
Ports: 1 USB 3.0
Buttons: Reset, WPS
LEDs: Power, System, Wan, Lan 1-4, WiFi 2.4G, WiFi 5G, WPS, USB
Power: DC 12V 1A tip positive
Installation:

Download and flash the manufacturer's built OpenWRT image available at
http://www.cudytech.com/openwrt_software_download
Install the new OpenWRT image via luci (System -> Backup/Flash firmware)
Be sure to NOT keep settings. The force upgrade may need to be checked
due to differences in router naming conventions.

Recovery:

Loads only signed manufacture firmware due to bootloader RSA verification
serve tftp-recovery image as /recovery.bin on 192.168.1.88/24
connect to any lan ethernet port
power on the device while holding the reset button
wait at least 8 seconds before releasing reset button for image to
download

Signed-off-by: Alessio Prescenzo <alessioprescenzo@gmail.com>
[ensure unique wireless MAC, fix GPIO pingroup]
Signed-off-by: David Bauer <mail@david-bauer.net>
2022-05-18 20:41:11 +08:00
Tianling Shen
624764267d rockchip: drm-rockchip: fix Kconfig
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 6957f13eea)
2022-05-17 17:19:12 +08:00
Tianling Shen
991fab8bd1 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-05-17 17:06:47 +08:00
Christian Lamparter
565597f48f linux-firmware: take linux-firmware.git's qca99x0 boardfile
Kalle Valo managed to add the qca9980's boardfile in the
upstream repository. Sourcing the file from his repository
is no longer needed.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-05-17 00:17:22 +08:00
Christian Lamparter
d95ca0e51b linux-firmware: Update to version 20220509
git log --pretty=oneline --abbrev-commit 20220411..20220509 (sorted)

amdgpu:
480d6c2 amdgpu: update dcn_3_1_6_dmcub firmware
b4994be amdgpu: update gc_10_3_7_rlc firmware
61eb408 amdgpu: update psp_13_0_8 firmware
fcf9d8c amdgpu: update yellow carp DMCUB firmware

ath10k:
73743b8 ath10k: QCA4019 hw1.0: update board-2.bin
6ad0930 ath10k: QCA6174 hw3.0: update board-2.bin
729bd7f ath10k: QCA6174 hw3.0: update firmware-6.bin to WLAN.RM.4.4.1-00288-QCARMSWPZ-1
9fce09f ath10k: QCA9888 hw2.0: update board-2.bin
b155d85 ath10k: QCA9888 hw2.0: update firmware-5.bin to 10.4-3.9.0.2-00156
44b8aee ath10k: QCA9984 hw1.0: update board-2.bin
4ad3bd3 ath10k: QCA9984 hw1.0: update firmware-5.bin to 10.4-3.9.0.2-00156
1962cba ath10k: QCA99X0 hw2.0: add board-2.bin

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-05-17 00:17:09 +08:00
Piotr Dymacz
af0a1035c7 ramips: fix booting on Samknows SK-WB8
This fixes a well known "LZMA ERROR 1" error, reported previously on
numerous of similar devices.

Fixes: #9824
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2022-05-17 00:14:38 +08:00
Doug Kerr
b57fb59041 scripts: format to black
clean up formatting with black using 80 character line limit

Signed-off-by: Doug Kerr <dek3rr@gmail.com>
2022-05-10 14:36:09 +08:00
Doug Kerr
b698aa5baa scripts: use std library for jam crc32 calculation
CRC32 is available in a standard library. It seems reasonable
to defer to that rather than run a custom implementation.

Signed-off-by: Doug Kerr <dek3rr@gmail.com>
2022-05-10 14:35:59 +08:00
Daniel Golle
43a3b38bd2 scripts/gen_image_generic.sh: fix order of files in EFI bootfs
mtools recursive copy (mcopy -s ...) is using READDIR(3) to iterate
over the directory entries, hence they end up in the FAT filesystem in
traversal order which breaks reproducibility (rather than being added
to the FAT filesystem in a reproducible order). Implement recursive
copy in gen_image_generic.sh in Shell code instead, as in that way we
can force files to be copied in reproducible order.

Fixes: aece8f5ae8 ("scripts/gen_image_generic.sh: generate reproducible EFI filesystem")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-05-10 14:31:03 +08:00
Daniel Golle
0ba45dc4c1 arm-trusted-firmware-mediatek: remove no longer needed Configure step
As anyway only the default is called now we can as well also just remove
the override for Build/Configure.

Fixes: e2cffbb805 ("arm-trusted-firmware-mediatek: update to 2021-03-10")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-05-10 14:29:29 +08:00
Daniel Golle
d39b9d9700 trusted-firmware-a.mk: make sure include directory exists
ARM Trusted Firmware builds do not depend on any target libraries as
they are bare-metal builds. However, the compiler aborts due to
-Werror=missing-include-dirs if the include dir doesn't exists and this
can happen when building with parallelisation as that makes it likely
for arm-trusted-firmware-* to be build very early before any of the
libraries which would implicitely create the directory.
Fix this by making sure the include dir exists before building.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-05-10 14:29:17 +08:00
Enrico Mioso
f90c15e3a0 ipq40xx: fix BDF file for pcie wifi chip on the GL.Inet GL-B2200
After the switch to pre-calibration, ath10k would fail to initialize
the PCIE Wi-Fi on the GL-B200 as follows:

ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)
ath10k_pci 0000:01:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
[...]
ath10k_pci 0000:01:00.0: failed to fetch board data for bus=pci,bmi-chip-id=0,bmi-board-id=16,variant=GL-B2200 from ath10k/QCA9888/hw2.0/board-2.bin
ath10k_pci 0000:01:00.0: failed to fetch board-2.bin or board.bin from ath10k/QCA9888/hw2.0
ath10k_pci 0000:01:00.0: failed to fetch board file: -12
ath10k_pci 0000:01:00.0: could not probe fw (-12)

Repackage the BDF file after renaming relevant fields and files to
allow for the Wi-Fi interface to start again.

Fixes: 80d34d9d59 ("ipq40xx: document pcie wifi chip on the GL.Inet GL-B2200")
CC: Christian Lamparter <chunkeey@gmail.com>
CC: Robert Marko <robimarko@gmail.com>
Reviewed-by: Robert Marko <robert.marko@sartura.hr>
Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
2022-05-09 17:16:22 +08:00
Tamas Balogh
1a59a425f7 ramips: ethernet: ralink: add led_source dts-binding
this adds the new dts-binding "mediatek,led_source"
currently for MT7628AN and MT7688 built-in switches,
which is documented as a 3-bit field configuring the
switch LEDs for various control schemes from 0 to 3.

Normally this is not needed, but e.g. for Asus RT-AC1200-V2
it is a must to set it to the anyway undocumented value
of 4, to have the switch LEDs react correctly on link/act
events. This is an MT7628DAN device, but I doubt this is
a speciality of this particular SoC.

Also added the RT305X_ESW_LED_OFF value to LED states.
Did also rename the register RT5350_EWS_REG_LED_POLARITY
to RT5350_EWS_REG_LED_CONTROL, which is the correct name.
Also making use of defines for some hardcoded values.

Signed-off-by: Tamas Balogh <tamasbalogh@hotmail.com>
2022-05-09 17:15:44 +08:00
Ptilopsis Leucotis
fe22b54a6f ramips: add i2c in dts for GL-MT300N-V2
According wiki https://docs.gl-inet.com/en/2/hardware/mt300n-v2/
GL-MT300N-V2 have I2C interface on GPIO4, GPIO5.
Adding I2C in device tree make possible using I2C on this device.

Signed-off-by: Ptilopsis Leucotis <PtilopsisLeucotis@yandex.com>
2022-05-09 17:15:34 +08:00
Alban Bedel
b35bed5efa ramips: zbt-wg2626: Fix the LAN ports names
The current names don't match with the labels on the case, reverse
the LAN ports order so they match.

Signed-off-by: Alban Bedel <albeu@free.fr>
2022-05-09 17:13:39 +08:00
Alban Bedel
0becf0779e ramips: zbt-wg2626: Add the reset gpio for PCIe port 1
The 2.4GHz interface doesn't come up properly with the log showing:

    mt7621-pci 1e140000.pcie: pcie1 no card, disable it (RST & CLK)

As seen on other MT7621 boards this is caused by a missing reset GPIO.
The MT7621 dtsi set GPIO 19 as PCIe reset GPIO, which on this board
reset the 5GHz interface on port 0. Add GPIO 8 to the PCIe reset GPIO
list to also reset the 2.4GHz interface on port 1.

Signed-off-by: Alban Bedel <albeu@free.fr>
2022-05-09 17:13:16 +08:00
PtilopsisLeucotis
e03edf24cd ath79: add USB power control for GL-AR300M series
Add USB power control in DTS for GL.iNet models:
- AR300M;
- AR300M-Ext;
- AR300M16;
- AR300M16-Ext.

Signed-off-by: PtilopsisLeucotis <PtilopsisLeucotis@yandex.com>
2022-05-09 17:12:17 +08:00
Foica David
0e7907dc5c ath79: add support for TP-Link Deco M4R v1 and v2
This commit adds support for the TP-Link Deco M4R (it can also be M4,
TP-Link uses both names) v1 and v2. It is similar hardware-wise to the
Archer C6 v2. Software-wise it is very different. V2 has a bit different
layout from V1 but the chips are the same and the OEM firmware is the same
for both versions.

Specifications:
SoC: QCA9563-AL3A
RAM: Zentel A3R1GE40JBF
Wireless 2.4GHz: QCA9563-AL3A (main SoC)
Wireless 5GHz: QCA9886
Ethernet Switch: QCA8337N-AL3C
Flash: 16 MB SPI NOR

Flashing:

The device's bootloader only accepts images that are signed using
TP-Link's RSA key, therefore this way of flashing is not possible. The
device has a web GUI that should be accessible after setting up the device
using the app (it requires the app to set it up first because the web GUI
asks for the TP-Link account password) but for unknown reasons, the web
GUI also refuses custom images.

There is a debug firmware image that has been shared on the device's
OpenWrt forum thread that has telnet unlocked, which the bootloader will
accept because it is signed. It can be used to transfer an OpenWrt image
file over to the device and then be used with mtd to flash the device.

Pre-requisites:

- Debug firmware.
- A way of transferring the file to the router, you can use an FTP server
  as an example.
- Set a static IP of 192.168.0.2/255.255.255.0 on your computer.
- OpenWrt image.

Installation:

- Unplug your router and turn it upside down. Using a long and thin object
  like a SIM unlock tool, press and hold the reset button on the router and
  replug it. Keep holding it until the LED flashes yellow.
- Open 192.168.0.1. You should see the bootloader recovery's webpage.
  Choose the debug firmware that you downloaded and flash it. Wait until the
  router reboots (at this stage you can remove the static IP).

- Open a terminal window and connect to the router via telnet (the primary
  router should have a 192.168.0.1 IP address, secondary routers are
  different).
- Transfer the file over to the router, you can use curl to download it
  from the internet (use the insecure flag and make sure your source accepts
  insecure downloads) or from an FTP server.
- The router's default mtd partition scheme has kernel and rootfs
  separated. We can use dd to split the OpenWrt image file and flash it with
  mtd:

   dd if=openwrt.bin of=kernel.bin skip=0 count=8192 bs=256
   dd if=openwrt.bin of=rootfs.bin skip=8192 bs=256

- Once the images are ready, you have to flash the device using mtd
  (make sure to flash the correct partitions or you may be left with a
  hard bricked router):

   mtd write kernel.bin kernel
   mtd write rootfs.bin rootfs

- Flashing is done, reboot the device now.

Signed-off-by: Foica David <superh552@gmail.com>
2022-05-09 17:11:54 +08:00
Davide Fioravanti
a1bc5ab0b1 ramips: add support for Wavlink WL-WN533A8
The Wavlink WL-WN533A8 is an AC3000 router with 5 gigabit ethernet ports
and one USB 3.0 port.
It's also known as Wavlink QUANTUM T8.

Hardware
--------
SoC:   Mediatek MT7621A
RAM:   128MB (Nanya NT5CB64M16GP-EK)
FLASH: 16MB NOR (GigaDevice GD25Q127CSIG3)
ETH:
  - 5x 10/100/1000 Mbps Ethernet (4x LAN + 1x WAN)
WIFI:
  - 1x MT7615DN (2x 2x2:2) 2.4GHz and 5GHz DBDC
  - 1x MT7615NE (4x4:4) 5GHz
  - 8 external antennas
BTN:
  - 1x Reset button
  - 1x WPS button
  - 1x Turbo button
  - 1x Touchlink button
  - 1x ON/OFF switch
LEDS:
  - 1x Red led (system status)
  - 1x Blue led (system status)
  - 7x Blue leds (wifi led + 5 ethernet ports + power)
USB:
  - 1x USB 3.0 port
UART:
  - 57600-8-N-1
    J4

Everything works correctly.

Installation
------------
Flash the initramfs image in the OEM firmware interface
(http://192.168.10.1/update.shtml).
When Openwrt boots, flash the sysupgrade image otherwise you won't be
able to keep configuration between reboots.
(Procedure tested on fw M33A8.V5030.190716 and M33A8.V5030.201204)

Restore OEM Firmware
--------------------
Flash the firmware update available online directly from LUCI.
You can download it from:
https://www.wavlink.com/en_us/firmware/details/f2d247ecba.html
Warning: Remember to not keep settings!
Warning2: Remember to force the flash.

Notes
-----
1) Router mac addresses:
   LAN		XX:XX:XX:XX:XX:63 (factory @ 0xe006)
   WAN		XX:XX:XX:XX:XX:64 (factory @ 0xe000)
   WIFI 2G/5G	XX:XX:XX:XX:XX:65 (factory @ 0x04)
   WIFI 5G	XX:XX:XX:XX:XX:66 (factory @ 0x8004)

   LABEL	XX:XX:XX:XX:XX:65

   In OEM firmware the DBDC wifi interfaces have these mac addresses:
     2G) 82:XX:XX:XX:XX:65
     5G) 80:XX:XX:XX:XX:65

   While in OpenWrt the addresses are:
     2G) 80:XX:XX:XX:XX:65
     5G) 02:XX:XX:XX:XX:65

2) radio0 will show as 2G/5G interface but only 2G is really usable.

3) There is just one wifi led for all wifi interfaces.
   It currently shows only the radio0 GHz wifi activity.

4) My unit was shipped with M33A8.V5030.190716 firmware which contains
   the http://192.168.10.1/webcmd.shtml page. Entering "telnetd" in
   the input box it will start the telnet daemon. Now you can access
   the telnet console on port 2323 with these credentials:
     username: admin2860
     password: admin

5) The M33A8.V5030.201204 firmware version, doesn't contain anymore the
   webcmd.shtml page. If your router is shipped with a previous firmware
   version and you want to back it up, you can follow the back up
   procedure of the WS-WN583A6.

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
2022-05-09 17:09:46 +08:00
Davide Fioravanti
98c36e8a8c ramips: create shared DTSI for Wavlink WN53XAX devices
Most of the definitions for WN531A6 will be shared with WN533A8 in a
future commit, so put them in a shared DTSI.

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
2022-05-09 17:08:15 +08:00
Paul Spooren
e4e7cac7f1 layerscape: use semantic versions for LSDK
PKG_VERSION should not contain the package name but the version only.

Signed-off-by: Paul Spooren <mail@aparcar.org>
(cherry picked from commit 038d5bdab1)
2022-05-07 12:23:26 +08:00
Hauke Mehrtens
3870d07c64 layerscape: restool: Remove build of manpages
The build of the manpages needs the pandoc tool, this is not in the
minimal requirements of OpenWrt, just remove the build of the restool
manpage. This fixes the build on systems without pandoc like the OpenWrt build bots.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 137a7607ec)
2022-05-07 12:22:26 +08:00
Tianling Shen
6bc7e9db52 ath79: drop orphan csac detection
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 0e2fa122b9)
2022-05-04 14:58:32 +08:00
AmadeusGhost
7fc2fd7641 mtk-eip93: bump to latest git HEAD 2022-05-01 12:18:13 +08:00
AmadeusGhost
c46b59b2ed ipq806x: m520: simplified image generation 2022-05-01 12:15:55 +08:00
Jax Jiang
02d896101d x86: grub2: search for the "kernel" filesystem on all disks
Previously, grub2 was hardcoded to always look on "hd0" for the
kernel.

This works well when the system only had a single disk.
But if there was a second disk/stick present, it may have look
on the wrong drive because of enumeration races.

This patch utilizes grub2 search function to look for a filesystem
with the label "kernel". This works thanks to existing setup in
scripts/gen_image_generic.sh. Which sets the "kernel" label on
both the fat and ext4 filesystem variants.

Signed-off-by: Jax Jiang <jax.jiang.007@gmail.com>
Suggested-by: Alberto Bursi <bobafetthotmail@gmail.com> (MX100 WA)
(word wrapped, slightly rewritten commit message, removed MX100 WA)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 1050e66c8f)
2022-04-29 10:15:04 +08:00
Martin Schiller
b14737143f layerscape: armv7: refresh config-5.10
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:59:48 +08:00
Martin Schiller
5086ebd50c layerscape: armv7: copy config-5.4 to config-5.10
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:59:37 +08:00
Martin Schiller
9f4b4fd246 layerscape: armv8_64b: refresh config-5.10
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:59:21 +08:00
Martin Schiller
d1088ecbb5 layerscape: armv8_64b: copy config-5.4 to config-5.10
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:59:07 +08:00
Martin Schiller
c9af2491c9 layerscape: armv8_64b: use non-SDK dts files for linux-5.10 or newer
Since we decided to drop the LSDK patches with linux-5.10, we now have
to switch to the corresponding upstream dts files as well.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:56:26 +08:00
Martin Schiller
5903043f88 layerscape: armv8_64b: fix KERNEL_LOADADDR for linux >= 5.8
In kernel versions newer than 5.8 the arm64 TEXT_OFFSET (0x80000) has
been set to 0x0 (and later removed). This will break Uimages with kernel
load addresses that aren't 2MiB aligned any longer. Resulting in the
kernel silently fail to boot. For layerscape armv8_64b targets this
needs to be changed to 0x80000000 (start of RAM).

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:56:15 +08:00
Martin Schiller
f4eaa4b1c5 layerscape: add patches for kernel 5.10
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:55:59 +08:00
Martin Schiller
32a9b5e07c layerscape: add kernel 5.10 as testing version
This patch adds "KERNEL_TESTING_PATCHVER:=5.10" to the Makefile in
layerscape target to allow using Kernel 5.10 for testing.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:55:46 +08:00
Martin Schiller
474cab3411 layerscape: remove unneeded KERNEL_ENTRY_POINT definition
As KERNEL_ENTRY_POINT is identical to KERNEL_LOADADDR, drop it.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:50:23 +08:00
Martin Schiller
4168d1be43 ls-ddr-phy: bump to LSDK-21.08
Update ls-ddr-phy to latest LSDK-21.08.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:49:57 +08:00
Martin Schiller
5ae6470a6a restool: bump to LSDK-21.08
Update restool to latest LSDK-21.08.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:49:25 +08:00
Martin Schiller
60366e7e75 ls-dpl: bump to LSDK-21.08
Update ls-dpl to latest LSDK-21.08.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:49:02 +08:00
Martin Schiller
8c157a4aac ls-mc: bump to LSDK-21.08
Update ls-mc to latest LSDK-21.08.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:48:19 +08:00
Martin Schiller
775fad9cb0 ppfe-firmware: bump to LSDK-21.08
Update ppfe-firmware to latest LSDK-21.08.

Switched to AUTORELEASE for simplicity.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:47:14 +08:00
Martin Schiller
bf7306c1e1 fman-ucode: bump to LSDK-21.08
Just update PKG_VERSION/PKG_MIRROR_HASH since fman-ucode
of LSDK-21.08 had no changes.

Switched to AUTORELEASE for simplicity.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:46:59 +08:00
Martin Schiller
76275eb1a1 tfa-layerscape: bump to LSDK-21.08
Update tfa package to latest LSDK-21.08.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:46:33 +08:00
Martin Schiller
0dcb508e23 uboot-layerscape: bump to LSDK-21.08
Update layerscape u-boot package to LSDK-21.08 and drop patches which
are no longer needed.

The new env variable 'fsl_bootcmd_mcinitcmd_set' is needed to protect
the configured bootcmd and mc_init values. See [1] for more
informations.

[1] b62c174e86

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:46:05 +08:00
Martin Schiller
4f18319d4d ls-rcw: bump to LSDK-21.08
Update ls-rcw to latest LSDK-21.08.
Drop patch 0001 since it had been integrated.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2022-04-28 14:44:22 +08:00
Arınç ÜNAL
6934c7dff7 ramips: mt7621-dts: add pinctrl properties for ethernet
Add the missing pinctrl properties on the ethernet node.
GMAC1 will start working with this change.

Link: https://lore.kernel.org/netdev/83a35aa3-6cb8-2bc4-2ff4-64278bbcd8c8@arinc9.com/

Overwrite pinctrl-0 property without rgmii2_pins on devicetrees which use
the rgmii2 pins as GPIO (22 - 33).

Give gpio function to rgmii2 pin group on mt7621_tplink_archer-x6-v3.dtsi
which uses GPIO 28.

Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
2022-04-26 14:28:43 +08:00
Arınç ÜNAL
94bfa451d7 ramips: mt7621-dts: enable flow control on port@6
Flow control needs to be enabled on both sides to work.
It is already enabled on gmac0, enable it on port@6 too.

Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
Tested-by: Sungbo Eo <mans0n@gorani.run>
2022-04-26 14:27:50 +08:00
Arınç ÜNAL
66854abbd9 ramips: mt7621-dts: fix switch@1f warnings
Remove reg property from ports node to fix this warning:

Warning (unit_address_vs_reg): /ethernet@1e100000/mdio-bus/switch@1f/ports: node has a reg or ranges property, but no unit name

Another warning surfaces afterwards. Remove #address-cells and #size-cells
from switch@1f node to fix this warning:

Warning (avoid_unnecessary_addr_size): /ethernet@1e100000/mdio-bus/switch@1f: unnecessary #address-cells/#size-cells without "ranges" or child "reg" property

Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
2022-04-26 14:27:24 +08:00
Sergio Paracuellos
735ea62ae8 ramips: mt7621-dts: properly organize pcie node
Device tree pcie node for this SoC is using different
styles in its different properties. Hence properly
unify them to be able to write a a proper yaml schema
documentation.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20210505121736.6459-11-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-26 14:25:31 +08:00
Sergio Paracuellos
f5a463c669 ramips: mt7621-dts: add missing device_type in pcie root ports
According to the YAML schema 'pci-bus.yaml' the 'device_type'
property is mandatory for all pcie root ports. Hence add it.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20210506170742.28196-3-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-26 14:25:02 +08:00
Sergio Paracuellos
da5f0d5ac0 ramips: mt7621-dts: remove 'bug-range' property
Property 'bus-range' when values are the default are
not necessary to be defined. Hence, remove all of them.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20210506170742.28196-2-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-26 14:24:44 +08:00
Sergio Paracuellos
3ff1113aab ramips: mt7621-dts: use standard 'syscon' string
Both 'memc' and 'sysc' nodes are not using 'syscon'
as a node string which is the standard one to be used.
Update both of them.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20210505132154.8263-3-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-26 14:24:22 +08:00
Sergio Paracuellos
4d879874b3 ramips: mt7621-dts: remove ethsys node
DT 'ethsys' node is being configured as a syscon
to get access to reset and other registers in the
'mediateķ,mt7621-eth' driver. Since the 'sysc' is also
a syscon, provides the clock and also is virtually
mapped from the same physical address 0x1e000000 we
can just use 'sysc' as the phandle for the syscon in
the ethernet node. Compatible string 'mediatek,mt7621-ethsys'
of the node is not being used anywhere inside the kernel
so, this node can be safely removed.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20210505132154.8263-2-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-26 14:23:52 +08:00
Sergio Paracuellos
dea062e2fe ramips: mt7621-dts: properly define 'cpc' and 'mc' nodes
'cpc' and 'mc' nodes correspond with the MIPS 'Cluster Power Controller'
and 'MIPS Common Device Memory Map' which are present in some MIPS related
boards. There is already bindings documentation for these two located in:
- Documentation/devicetree/bindings/power/mti,mips-cpc.yaml
- Documentation/devicetree/bindings/bus/mti,mips-cdmm.yaml

Hence, properly update compatible strings and align nodes with already
mainlined bindings documentation. Also, move their definition to a proper
place since both of them are not related with the palmbus at all.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20211002060706.30511-1-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-26 14:21:57 +08:00
Sergio Paracuellos
d1decde607 ramips: mt7621-dts: change some node hex addresses to lower case
Hexadecimal addresses in device tree must be defined using lower case.
There are some of them that are still in upper case. Change them all.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20211017070656.12654-2-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-26 14:21:36 +08:00
Sergio Paracuellos
d6244852a8 ramips: mt7621-dts: make use of 'IRQ_TYPE_LEVEL_HIGH' instead of magic numbers
Nodes 'gdma' and 'hsdma' are using magic number '4' in interrupts property.
Use 'IRQ_TYPE_LEVEL_HIGH' instead to align with the rest of the nodes in
the file.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20211019102915.15409-2-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-26 14:21:05 +08:00
Tianling Shen
44e169804e Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-25 08:01:43 +08:00
padavanonly
21885bb431 mt7622: fix pppoe flow offload (#678)
Co-authored-by: thl <meisreallyba@gmail.com>
2022-04-24 16:05:35 +08:00
Russell Morris
78e0638ebe ramips: mt7621: make u_env partition r/w for Linksys EA7xxx devices
Make u_env partition read/write - currently cannot write to it, which
blocks fw_setenv. This in turn breaks features like Advanced Reboot,
which rely on setting the environment variable boot_part (1 or 2).

Signed-off-by: Russell Morris <rmorris@rkmorris.us>
2022-04-22 11:06:32 +08:00
Ray Wang
6c58532733 ramips: add support for OrayBox X3A
OrayBox X3A is a 2.4/5GHz dual band AC router, based on MediaTek MT7621.

Specification:
* SoC: MT7621
* RAM: DDR3 128 MiB
* Flash: 16 MiB NOR (XM25Q128)
* Wi-Fi: (single chip hosting both 2.4G and 5G)
  * 2.4GHz: MT7615
  * 5GHz: MT7615
* Ethernet: 3x 1000Mbps
  * Switch: MT7530
* LED:
  * Ethernet LEDs: On the back of the router, hardware-controlled.
  * Status LEDs: One "pixel-like" RGB LED in the front of the router,
                 which is actually made up of 3 individual LEDs (with
                 dedicated GPIO pins) with the color of Red, Green,
                 and Blue.
                 The OEM firmware only lights up one color at a time to
                 indicate status, but that's very boring, and the colors
                 actually look great when combined, so I've improvised a
                 little and made them indicate netdev activities.
                 My test results:
                 GPIO 13/14/15
                 000 white (actually more like bright green or cyan
                            because the brightness of the green LED is
                            higher than red and blue)
                 001 bright purple
                 010 bright green
                 011 red
                 100 bright cyan
                 101 blue
                 110 green
                 111 off

Flash Layout:
 0x0000000-0x0030000 : "u-boot"
 0x0030000-0x0040000 : "u-boot-env"
 0x0040000-0x0050000 : "factory"
 0x0050000-0x0f50000 : "firmware"
 /*0x0f50000 to 0x0fe0000 is undefined, same as OEM firmware*/
 0x0fe0000-0x0ff0000 : "bdinfo"
 0x0ff0000-0x1000000 : "reserve"

MAC address:
 MAC               Source                          Description    Fix
 A0:CX:XX:BX:XX:0D BDINFO_9                        LAN(LABEL)     DTS
 A0:CX:XX:BX:XX:0E BDINFO_9 + 1                    WAN            DTS
 A2:CX:XX:BX:XX:0F FACTORY_4                       WIFI2G         DTS
 A2:CX:XX:CX:XX:0F SETBIT 7 (FACTORY_4 + 0x100000) WIFI5G         HOTPLUG
 A6:CX:XX:BX:XX:0F N/A                             WIFI2G_CLIENT  N/A
 A6:DX:XX:BX:XX:0F N/A                             WIFI5G_CLIENT  N/A

Stock dmesg:
https://pastebin.com/2t2jwLdf

Stock Dumps:
https://pastebin.com/LDLxSWX3

Installation via SSH (does not void your warranty):
1.  -----UNLOCK SSH-----
1.1 Set computer IP to DHCP mode, load 'http://10.168.1.1/cgi-bin/luci' in
    your browser. Password is 'admin'.
1.2 Click the "备份且导出" (backup and export) button, and download the
    config file.
1.3 Open the downloaded file with 7zip, navigate to '/etc/config/'.
1.4 Edit the file './system'. Change the '0' into '1' under
    "config sys 'ssh'".
1.5 Save the file.
1.6 Upload the file by clicking the "导入且恢复" (import and recover)
    button. The router will automatically reboot.
2.  -----FLASH THE OPENWRT FIRMWARE-----
2.1 Use any scp tool to upload the 'sysupgrade' firmware to the '/tmp/'
    folder to your router. It should be root@10.168.1.1 and the password
    is 'admin'.
2.2 SSH into the router, also root@10.168.1.1 and the password is 'admin'.
2.3 **IMPORTANT** Type command 'dd if=/dev/mtd3 of=/tmp/firmware.bin', to
    backup the stock firmware. Since the OEM does not provide firmware
    download on their website, this is the only way to get it.
2.3 **ALSO IMPORTANT** Use any scp tool to download your backed-up stock
    firmware from '/tmp/' to your local drive. Then you'd better use a hex
    reading tool to have a rough look at it to make sure nothing is
    corrupt. Or u can just back up again and cross check the MD5.
2.4 Type command 'mtd write /tmp/XXX.bin firmware', and it should flash
    the firmware.
2.5 Verify that nothing went wrong. If you're confident, type 'reboot' and
    reboot the router.

Revert to stock firmware:
1.  load stock firmware using mtd (make sure u have a backup).

Signed-off-by: Ray Wang <raywang777@foxmail.com>
2022-04-22 11:05:00 +08:00
Abdul Aziz Amar
2d05be2008 ramips: add support for BOLT! Arion
This device is from now-defunct BOLT! ISP in Indonesia.
The original firmware is based on mediatek SDK running linux 2.6 or 3.x in later revision.

Specifications:

- SoC:      MediaTek MT7621
- Flash:    32 MiB NOR SPI
- RAM:      128 MiB DDR3
- Ethernet: 2x 10/100/1000 Mbps (switched, LAN + WAN)
- WIFI0:    MT7603E 2.4GHz 802.11b/g/n
- WIFI1:    MT7612E 5GHz 802.11ac
- Antennas: 2x internal, non-detachable
- LEDs:     Programmable LEDs: 5 blue LEDs (wlan, tel, sig1-3) and 2 red LEDs (wlan and sig1)
            Non-programmable "Power"  LED
- Buttons:  Reset and WPS

Instalation:
Install from TFTP

Set your PC IP to 10.10.10.3 and gateway to 10.10.10.123
Press "1" when turning on the router, and type the initramfs file name

You also need to solder pin header or cable to J4 or neighboring test points (T19-T21)
Pinouts from top to bottom: GND, TX, RX, VCC (3.3v)
Baudrate: 57600n8

There's also an additional gigabit transformer and RTL8211FD managed by the LTE module on the backside of the PCB.

Signed-off-by: Abdul Aziz Amar <abdulaziz.amar@gmail.com>
2022-04-22 11:01:09 +08:00
Tamas Balogh
717397a9ec ramips: add support for ASUS RT-AC1200-V2
Hardware specifications:
SoC: MT7628DAN MIPS_24KEc@580MHz 2.4G-n 2x2
WiFi: MT7613BEN 5G-ac 160MHz 2x2
Switch: 4x100M built-in SoC
Flash: 16MB W25Q128JVSQ SPI-NOR
DRAM: 64MB built-in SoC

MAC addresses as verified by OEM firmware:
use address source
Lan/Wan/2G *:60 factory 0x4 (label)
5G *:64 factory 0x8000

Serial console: 57600,8n1

Installation:

Asus windows recovery tool:

install the Asus firmware restoration utility
unplug the router, hold the reset button while powering it on
release when the power LED flashes slowly
specify a static IP on your computer:
IP address: 192.168.1.75
Subnet mask 255.255.255.0
start the Asus firmware restoration utility, specify the factory image
and press upload
do NOT power off the device after OpenWrt has booted until the LED flashing
after flashing OpenWrt, there will be first no 5GHz Wifi available probably,
wait until blinking finishes and do a reboot
TFTP Recovery method:

set computer to a static ip, 192.168.1.75
connect computer to the LAN 1 port of the router
hold the reset button while powering on the router for a few seconds
send firmware image using a tftp client; i.e from linux:
$ tftp
tftp> binary
tftp> connect 192.168.1.1
tftp> put factory.bin
tftp> quit
do NOT power off the device after OpenWrt has booted until the LED flashing
after flashing OpenWrt, there will be first no 5GHz Wifi available probably,
wait until blinking finishes and do a reboot

Signed-off-by: Tamas Balogh <tamasbalogh@hotmail.com>
2022-04-22 10:58:10 +08:00
Davide Fioravanti
2d057df5ce ramips: add support for Wavlink WL-WN531A3
The Wavlink WL-WN531A3 is an AC1200 router with 5 fast ethernet ports
and one USB 2.0 port.
It's also known as Wavlink QUANTUM D4.

Hardware
--------
SoC:   Mediatek MT7628AN
RAM:   64MB
FLASH: 8MB NOR (GigaDevice GD25Q64CSIG3)
ETH:
  - 5x 10/100 Mbps Ethernet (4x LAN + 1x WAN)
WIFI:
  - 2.4GHz: 1x (integrated in SOC) (2x2:2)
  - 5GHz:   1x MT7612E (2x2:2)
  - 4 external antennas
BTN:
  - 1x Reset button
  - 1x WPS button
  - 1x Turbo button
  - 1x Touchlink button
  - 1x ON/OFF switch
LEDS:
  - 1x Red led (system status)
  - 1x Blue led (system status)
  - 7x Blue leds (wifi led + 5 ethernet ports + power)
USB:
  - 1x USB 2.0 port
UART:
  - 57600-8-N-1
    J1
      O VCC +3,3V (near lan ports)
      o RX
      o TX
      o GND

Everything works correctly.

Currently there is no firmware update available. Because of this, in
order to restore the OEM firmware, you must firstly dump the OEM
firmware from your router before you flash the OpenWrt image.

Backup the OEM Firmware
-----------------------
The following steps are to be intended for users having little to none
experience in linux. Obviously there are many ways to backup the OEM
firmware, but probably this is the easiest way for this router.
Procedure tested on M31A3.V4300.200420 firmware version.

1) Go to http://192.168.10.1/webcmd.shtml

2) Type the following line in the "Command" input box and then press enter:
	mkdir /etc_ro/lighttpd/www/dev; cp /dev/mtd0ro /etc_ro/lighttpd/www/dev/mtd0ro; ls -la /etc_ro/lighttpd/www/dev/mtd0ro

3) After few seconds in the textarea should appear this output:
	-rw-r--r--    1 0        0         8388608 /etc_ro/lighttpd/www/dev/mtd0ro

   If your output doesn't match mine, stop reading and ask for
   help in the forum.

4) Open in another tab http://192.168.10.1/dev/mtd0ro to download the
   content of the whole NOR. If the file size is 0 byte, stop reading
   and ask for help in the forum.

5) Come back to the http://192.168.10.1/webcmd.shtml webpage and type:
	rm /etc_ro/lighttpd/www/dev/mtd0ro; for i in 1 2 3 4 ; do cp /dev/mtd${i}ro /etc_ro/lighttpd/www/dev/mtd${i}ro; done; ls -la /etc_ro/lighttpd/www/dev/

6) After few seconds, in the textarea should appear this output:
	-rw-r--r--    1 0        0          196608 mtd1ro
	-rw-r--r--    1 0        0           65536 mtd2ro
	-rw-r--r--    1 0        0           65536 mtd3ro
	-rw-r--r--    1 0        0         8060928 mtd4ro
	drwxr-xr-x    7 0        0               0 ..
	drwxr-xr-x    2 0        0               0 .

   If your output doesn't match mine, stop reading and ask for
   help in the forum.

7) Open the following links to download the partitions of the OEM FW:
	http://192.168.10.1/dev/mtd1ro
	http://192.168.10.1/dev/mtd2ro
	http://192.168.10.1/dev/mtd3ro
	http://192.168.10.1/dev/mtd4ro

   If one (or more) of these files are 0 byte, stop reading and ask
   for help in the forum.

8) Store these downloaded files in a safe place.

9) Reboot your router to remove any temporary file in ram.

Installation
------------
Flash the initramfs image in the OEM firmware interface
(http://192.168.10.1/update.shtml).
When Openwrt boots, flash the sysupgrade image otherwise you won't be
able to keep configuration between reboots.

Restore OEM Firmware
--------------------
Flash the "mtd4ro" file you previously backed-up directly from LUCI.
Warning: Remember to not keep settings!
Warning2: Remember to force the flash.

Notes
-----
1) Router mac addresses:
   LAN		XX:XX:XX:XX:XX:9B (factory @ 0x28)
   WAN		XX:XX:XX:XX:XX:9C (factory @ 0x2e)
   WIFI 2G	XX:XX:XX:XX:XX:9D (factory @ 0x04)
   WIFI 5G	XX:XX:XX:XX:XX:9E (factory @ 0x8004)

   LABEL	XX:XX:XX:XX:XX:9D

2) There is just one wifi led for both wifi interfaces.
   It currently shows only the 2.4 GHz wifi activity.

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
2022-04-22 10:57:52 +08:00
Ansuel Smith
2e3b2704b7 ipq806x: fix wrong CPU OPP for ipq8062
Fix wrong CPU OPP for ipq8062. Revision of the SoC added an
extra 25mV for every pvs. Also fix the voltage min/max value
that were wrong.

Reviewed-by: Robert Marko robimarko@gmail.com
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2022-04-22 10:56:49 +08:00
Rodrigo Balerdi
3a342eb3e0 ipq806x: fix USB bug in 5.10 dtsi additions
The existing device tree has incorrect definitions for usb3_0 and usb3_1
and the blocks they depend upon: their addresses and interrupts are
swapped. However, their clocks and resets are not. The result is that
the USB blocks are non-functional if only one of them is enabled.

This fix backports the definitions from mainline Linux 5.15 to
OpenWrt's 5.10 dtsi additions. See the relevant mainline code here:
https://github.com/torvalds/linux/blob/v5.17/arch/arm/boot/dts/qcom-ipq8064.dtsi#L1062-L1148

This fix does not break existing ports. But some ports may have enabled
both USB blocks even thought their board only implements one, because
enabling a single USB block would not have worked before this fix.
This means that revisiting all ports of ipq806x devices that implement
a single USB port is advised. This work must be done by maintainers that
can determine which USB block corresponds to the implemented port on
their hardware.

Note that this fix swaps the names of the hardware ports. This is
unfortunate, but will happen anyway when switching to kernel 5.15. Thus,
it is best to do this ASAP, before users get to depend on port names.

It is strongly recommended that this fix is backported to 22.03 before
its release. This will minimize the number of users affected by the port
name swap.

Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
2022-04-22 10:56:37 +08:00
Rodrigo Balerdi
c98692e804 ipq806x: remove non-working fixes for USB bug in 5.10 dtsi additions
These workarrounds are incomplete and non-functional, and thus not needed.

Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
2022-04-22 10:56:25 +08:00
Hauke Mehrtens
4c40c33e89 linux-firmware: Update to version 20220209
This switches the iwlwifi-firmware-ax200 file to API version 66, this is
the most recent version supported by our driver.

The following files used in OpenWrt changed:
 amdgpu-firmware/lib/firmware/amdgpu/yellow_carp_dmcub.bin
 ar3k-firmware/lib/firmware/qca/nvm_usb_00130201.bin
 ar3k-firmware/lib/firmware/qca/nvm_usb_00130201_010a.bin
 ar3k-firmware/lib/firmware/qca/nvm_usb_00130201_010b.bin
 ar3k-firmware/lib/firmware/qca/nvm_usb_00130201_0303.bin
 ar3k-firmware/lib/firmware/qca/nvm_usb_00130201_gf.bin
 ar3k-firmware/lib/firmware/qca/nvm_usb_00130201_gf_010a.bin
 ar3k-firmware/lib/firmware/qca/nvm_usb_00130201_gf_010b.bin
 ar3k-firmware/lib/firmware/qca/nvm_usb_00130201_gf_0303.bin
 ar3k-firmware/lib/firmware/qca/rampatch_usb_00130200.bin
 ar3k-firmware/lib/firmware/qca/rampatch_usb_00130201.bin
 iwlwifi-firmware-ax200/lib/firmware/iwlwifi-cc-a0-66.ucode
 iwlwifi-firmware-ax210/lib/firmware/iwlwifi-ty-a0-gf-a0-66.ucode
 iwlwifi-firmware-ax210/lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm
 iwlwifi-firmware-iwl9000/lib/firmware/iwlwifi-9000-pu-b0-jf-b0-46.ucode
 iwlwifi-firmware-iwl9260/lib/firmware/iwlwifi-9260-th-b0-jf-b0-46.ucode
 rtl8822ce-firmware/lib/firmware/rtw88/rtw8822c_fw.bin

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-04-18 17:25:52 +08:00
Christian Lamparter
bc26cd2fdf linux-firmware: qca99x0 update package
Kalle Valo ath10k-firmware repository no longer provides the
legacy board.bin files for the qca99x0 chips. Instead he
copied over the codeaurora version and add more board files.

In the future, this board-2.bin should find its way to
linux-firmware.git, which would allow us to remove the
extra download code completely.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-18 17:25:15 +08:00
Sungbo Eo
375d2b7d1a linux-firmware: intel: add firmware for AX210
Add the most recent supported firmware file for Intel Wi-Fi 6E AX210
wireless chip. The API version 67 is not yet supported by the driver.
Additional PNVM file is required since API version 62.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2022-04-18 17:24:14 +08:00
Nian Bohung
66d7628826 linux-firmware: add firmware for intel ax200
Signed-off-by: Nian Bohung <n0404.n0404@gmail.com>
2022-04-18 17:24:04 +08:00
Tianling Shen
be24475d5c Revert "ath79: append/prepad okli kernel support"
This patch is for CSAC support. As it was dropped, this can go too.

This reverts commit ce6fd478a3.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 6cffc4a15e)
2022-04-18 03:45:49 +08:00
Moritz Warning
59fbceb2d0 treewide: use uniform vendor value for british telecom
British Telecom is mostly known as BT.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2022-04-16 23:38:32 +08:00
Sungbo Eo
3c2a0a499e ramips: add support for ipTIME T5004
ipTIME T5004 is a 5-port Gigabit Ethernet router, based on MediaTek MT7621A.

Specifications:
* SoC: MT7621AT
* RAM: 128 MiB
* Flash: NAND 128 MiB
* Ethernet: 5x 1GbE
  * Switch: SoC built-in
* UART: J4 (57600 baud)
  * Pinout: [3V3] (TXD) (RXD) (GND)

Installation via web interface:
1.  Flash **initramfs** image through the stock web interface.
2.  Boot into OpenWrt and perform sysupgrade with sysupgrade image.

Revert to stock firmware via recovery mode:
1.  Press reset button, power up the device, wait >15s for CPU LED
    to stop blinking.
2.  Upload stock image to TFTP server at 192.168.0.1.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2022-04-16 23:29:49 +08:00
WonJung Kim
ddf3eb8beb ramips: add support for ipTIME A3004T
ipTIME A3004T is a 2.4/5GHz band router, based on Mediatek MT7621.

Specifications:
 - SoC: MT7621 (880MHz)
 - RAM: DDR3 256M
 - Flash: NAND 128MB  (Macronix NAND 128MiB 3,3V 8-bit)
 - WiFi:
   - 2.4GHz: MT7615E
   - 5GHz : MT7615E
 - Ethernet:
   - 4x LAN
   - 1x WAN
 - USB: 1 * USB3.0 port
 - UART:
   - 3.3V, TX, RX, GND / 57600 8N1

Installation via web interface:
 1. Flash initramfs image using OEM's Recovery mode
 2. Boot into OpenWrt and perform sysupgrade with sysupgrade image.

Revert to stock firmware:
 - Flash stock firmware via OEM's Recovery mode

How to use OEM's Recovery mode:
 1. Power up with holding down the reset key until CPU LED stop blinking.
 2. Set fixed ip with `192.168.0.2` with subnet mask `255.255.255.0`
 3. Flash image via tftp to `192.168.0.1`

Additional Notes:
 This router shares one MT7915E chip for both 2.4Ghz/5Ghz.
 radio0 will not working on 5Ghz as it's not connected to the antenna.

Signed-off-by: WonJung Kim <git@won-jung.kim>
(added led dt-bindings)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-16 23:26:56 +08:00
Sungbo Eo
477afbaf53 ramips: add support for WeVO AIR DUO
WeVO AIR DUO is a 1-bay NAS & 802.11ac (Wi-Fi 5) router, based on
MediaTek MT7620A.

Specifications:
* SoC: MT7620A
* RAM: 64 MiB
* Flash: SPI NOR 16 MiB
* USB & SATA bridge controller: JMicron JMS567
  * SATA 6Gb/s: 2.5" drive slot
  * USB 3.0: Micro-B
  * USB 2.0: connected to SoC
* Wi-Fi:
  * 2.4 GHz: SoC built-in
  * 5 GHz: MT7612EN
* Ethernet: 5x 1GbE
  * Switch: MT7530WU
* UART: 4-pin 1.27 mm pitch through-hole (57600 baud)
  * Pinout: (3V3)|(RXD) (TXD) (GND)

Notes:
* The drive is accessible through the external USB port only when the
  router is turned off.

Installation via web interface:
1.  Flash **initramfs** image through the stock web interface.
    The image filename should have ".upload" extension.
2.  Boot into OpenWrt and perform sysupgrade with sysupgrade image.

Revert to stock firmware:
1.  Perform sysupgrade with stock image.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2022-04-16 23:23:13 +08:00
Robert Marko
7b117880ef base-files: dont always create kernel UBI volume
Currently nand_upgrade_tar() will pass the kernel length
to nand_upgrade_prepare_ubi() in all cases except for when
the kernel is to be installed in a separate partition as a
binary with the MTD tool.

While this is fine for almost all cases newer MikroTik NAND
devices like hAP ac3 require the kernel to be installed as a
UBIFS packed UBI volume in its own partition.

So, since we have a custom recipe to use ubiformat to flash
the kernel in its partition it makes no sense for sysupgrade
to also install the kernel as a UBI volume in the "ubi"
partition as it only wastes space and will never be used.

So, simply check whether CI_KERNPART is set to "none" and
if so unset the "has_kernel" variable which will in turn
prevent the kernel length from being passed on and then
the kernel UBI volume wont be created for no usefull purpose.

The ath79 MikroTik NAND target has been setting CI_KERNPART
to "none" for a while now altough that was not preventing
the kernel to be installed as UBI volume as well.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2022-04-16 23:15:33 +08:00
Tianling Shen
8733f18948 x86/zen: drop broken target
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-14 10:36:35 +08:00
Tianling Shen
3ab4809413 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-14 10:34:23 +08:00
Hauke Mehrtens
2dcee33de9 toolchain: musl: Update to version 1.2.3
Changes:
new features:
- qsort_r function (POSIX-future)
- pthread_getname_np extension function
- hard float on SPE FPU for powerpc-sf
- SEEK_DATA and SEEK_HOLE exposed in unistd.h (Linux extensions)

compatibility:
- free now preserves errno (POSIX-future requirement)
- setjmp is declared explicitly with returns_twice for non-GCC compilers
- macro version of isascii is no longer defined for C++
- dynamic linker now tolerates zero-length LOAD segments
- epoll_[p]wait is now a cancellation point
- pwd/grp functions no longer fail on systems without AF_UNIX support
- POSIX TZ parsing is stricter to allow more names to fallback to files
- NULL is now defined as nullptr when used in C++11 or later
- gettext now accepts null pointer as argument

bugs fixed:
- old regression in wcwidth of Hangul combining (vowel/final) letters
- duplocale used wrong malloc when malloc was replaced (1.2.2 regression)
- fmaf rounded wrong on archs without FE_TOWARDZERO (all softfloat archs)
- popen didn't honor requirement not to leak other popen pipe fds to child
- aligned_alloc and variants crashed on allocation failure
- dl_iterate_phdr reported incorrect module TLS pointers
- mishandling of some inputs in acoshf and expm1f and functions using them
- potentially wrong-sign zero in cproj functions at infinity
- multiple bugs in legacy function cuserid
- minor posix_spawn file actions API conformance issues
- pthread_setname_np fd leak
- out-of-bound read in zoneinfo handling with distant-past times
- out-of-tree builds lacked generated debug cfi for x86 asm

arch-specific bugs fixed:
- powerpc (32-bit) struct shmid_ds layout was wrong for some fields
- time64 struct layout was wrong in sound ioctl fallback (32-bit archs)

In addition it contains the following improvements:
* protect stack canary from leak via read-as-string by zeroing second byte
* fix excessively slow TLS performance on some mips models

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
Tested-by: Rui Salvaterra <rsalvaterra@gmail.com>
Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
(cherry picked from commit 685ae2687b)
2022-04-14 10:30:51 +08:00
Robert Marko
dc9747c292 scripts: ubinize-image: make rootfs optional
Currently ubinize-image script always expects the
rootfs image to be passed and a volume for it created.

So, to allow only ubinizing a kernel for example which
the MikroTik hAP ac3 and other new NAND devices from
MikroTik require make rootfs an optional parameter like
kernel.

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 5a305e429f)
2022-04-10 21:07:40 +08:00
Tianling Shen
ac62a91a0c gdb: drop redudant patche
The patch 010 is for kernel 4.x only.

Fixes: 233d89378a ("Merge Mainline")

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-09 06:25:05 +08:00
AmadeusGhost
233d89378a Merge Mainline 2022-04-08 11:35:35 +08:00
AmadeusGhost
694ba4ef78 sunxi: fix mac address for h6 devices 2022-04-08 11:28:31 +08:00
AmadeusGhost
726cbc3b62 sunxi: OrangePi One Plus: enable cpufreq support
Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2022-04-08 11:25:28 +08:00
Christian Lamparter
70b774100f kernel: 5.10: silence bogus "Missing #address-cells in interrupt provider" warnings
Rosen reported strange dtc warnings that had their origin in
an upstream patch to 5.8-rc1. Upon further digging this
revealed an ongoing thread [0] discussing the topic:

> [...]I don't think we need a bunch of warning fix patches to add
> these everywhere. Also, the need for #address-cells pretty much makes
> no sense on any modern system. It is a relic from days when the bus
> (address) topology and interrupt topology were related.

and later on:
> So really, we only need to be checking for #address-cells in nodes
> with interrupt-map.

This patch backports just the patch which removed the warning message
(this is from the upstream dtc project [1] - but not the kernel).
the patch does not add the checking of the #address-cells in nodes
with interrupt-map.

[0] <https://lore.kernel.org/linux-devicetree/91e3405245c89f134676449cf3822285798d2ed2.1612189652.git.michal.simek@xilinx.com/>
[1] <https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=d8d1a9a77863a8c7031ae82a1d461aa78eb72a7b>
Link: <https://github.com/openwrt/openwrt/pull/4685>
Reported-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-07 11:36:50 +08:00
Christian Lamparter
e13ac7766e image: define DEVICE_DTS_DELIMITER as per-device variable
DEVICE_DTS_DELIMITER needs to be in the DEFAULT_DEVICE_VARS
list to work as expected. This was missing from the original
version and got overlooked.

Fixes: fd67908647 ("scripts: mkits.sh: Allow legacy @ mode for dts creation")
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-07 11:36:32 +08:00
Christian Lamparter
0b68390514 apm821xx: WNDAP6X0: add missed uci-default for compat
This should have been included in the previous patch that
resized the kernel partition to fit bigger kernels.

Fixes: 7a6a349445 ("apm821xx: WNDAP620 + WNDAP660: reorganize partitions for 5.10")
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-07 11:33:15 +08:00
Christian Lamparter
cd8c167643 apm821xx: implement new LED label naming scheme
This patch updates all current APM82181 devices over to that
"new LED naming scheme". This includes many updates to the
device-tree:
	- dropped the deprecated, but beloved "label" property.
	- rename all DT leds node names to led-#.
	- add function and color properties.
	- utilized panic-indicator property.
	- dropped led- aliases (see below).

migration scripts for all devices are included.

For more information. See:
<https://www.kernel.org/doc/html/latest/leds/leds-class.html>

For the future: It looks like the color+function properties
won over the dt-alias / label. This will need to be wired up
into openwrt eventually. For APM821xx the situation is that
all devices have a dedicated power and fault indicator.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-07 11:32:48 +08:00
Christian Lamparter
ab1aa8a02b ath79: lzma-loader: fix & re-enable per-board CONFIG_BOARD_DEV
Back in the AR71XX days, the lzma-loader code could be customized
based on the $BOARD variable. These would be passed as a
compile-time -DCONFIG_BOARD_$DEVICE_MODEL flag to the compiler.
Hence, the lzma-loader would be able to include device-specific
fixups.

Note: There's still a fixup for the TpLink TL-WR1043ND V1 found
in the lzma-loader's board.c code. But since the days of AR71XX
I couldn't find a forum post or bug reported. So, I left it
as is to not break anything by enabling it.

=> If you have a TL-WR1043ND V1 and you have problem with
the ethernet: let me know. Because otherwise, the fixup
might simply no longer needed with ath79 and it can be removed.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-07 11:29:47 +08:00
Christian Lamparter
7c109af148 apm821xx: MX60(W): re-enable + allow bigger future kernels
The MX60's kernel is limited to 0x3EFC00 by the values in
mkmerakifw.c. Since the initramfs method of loading the
kernel seems to be working, this patch does away with the
use of the mkmerakifw tool for the MX60(W).

But this will go along with a change in u-boot as well.
So before you upgrade, please attach the serial cable and
perform:

| setenv owrt510_boot run meraki_ubi owrt_bootargs\; run owrt_load1 owrt_bootkernel\; run owrt_load2 owrt_bootkernel
| setenv bootcmd run owrt510_boot
| saveenv

Note: You won't be able to use older OpenWrt releases without
switching the bootcmd back to owrt_boot!

Note2: We are no longer compatible with older OpenWrt MX60 installs.
the legacy BOARD_NAME and SUPPORTED_DEVICES can be dropped. This is
because upgrades from older images are not possible without uboot env
changes anymore. Also the bogus BLOCKSIZE value
(which was set to 63k back then, in order to get the kernel properly
aligned after the fdt + meraki header) can be set to the NANDs real
value. The FDT size (which was needed for alignment) can now be
slimmed down as well.

Co-developed-by: Martin Kennedy <hurricos@gmail.com>
Signed-off-by: Martin Kennedy <hurricos@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-07 11:29:18 +08:00
Christian Lamparter
9eba1c2bbf apm821xx: MBL: HDD regulators overhaul for MBL DUO
Takimata reported on the OpenWrt forum in thread [0], that his
MyBook Live Duo wasn't booting OpenWrt 21.02 after upgrading
from the previous OpenWrt 19.07.

The last logged entries on his console

|[    0.531599] sata1-regulator GPIO handle specifies active low - ignored
|[    0.538391] sata0-regulator GPIO handle specifies active low - ignored
|[    0.759791] ata2: SATA link down (SStatus 0 SControl 300)
|[    0.765251] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
|[    5.909555] ata1.00: qc timeout (cmd 0xec)
|[    5.913656] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)
|[    6.231757] ata1: SATA link down (SStatus 0 SControl 300)

This extract clearly showed that the HDD on which OpenWrt is installed,
simply disappeared after the SATA power regulators had been initialized.

The reason why this worked with OpenWrt 19.07 was because the kernel
config symbol CONFIG_REGULATOR=y was not set in the target's config-4.14.

(This shows that the MBL Single does differ from the DUO in that
it does not have programmable power regulators for the HDDs.)

[0] <https://forum.openwrt.org/t/21-02-0-and-snapshot-fail-to-boot-on-my-book-live-duo/106585>

Reported-by: Takimata (forum)
Tested-by: Takimata (forum)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-07 11:29:04 +08:00
Roger Pueyo Centelles
18b9a20ec8 ath79: mikrotik: use 64 KiB SPI NOR erase sectors
This patch removes CONFIG_MTD_SPI_NOR_USE_4K_SECTORS from the default
symbols for the ath79/mikrotik target.

MikroTik devices hold some of their user-configurable settings in the
soft_config partition, which is typically sized 4 KiB, of the SPI NOR
flash memory. Previously, in the ar71xx target, it was possible to use
64 KiB erase sectors but also smaller 4 KiB ones when needed. This is
no longer the case in ath79 with newer kernels so, to be able to write
to these 4 KiB small partitions without erasing 60 KiB around, the
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS symbol was added to the defaults.
However, this ended up making sysupgrade images which were built with
64 KiB size blocks not to keep settings (e.g., the files under
/etc/config/) over the flashing process.

Using 4 KiB erase sector size on the sysupgrade images (by setting
BLOCKSIZE = 4k) allows keeping settings over a flashing process, but
renders the process terribly slow, possibly causing a user to
mistakenly force a manual device reboot while the process is still on-
going. Instead, ditching the 4 KiB erase sectors for the default
64 KiB erase size provides normal SPI write speed and sysupgrade times,
at the expense of not being able to modify the soft_config partition
(which is rarely a required thing).

An OpenWrt patch for MTD_SPI_NOR_USE_4K_SECTORS_LIMIT may once have
allowed to use different per-partition erase sector sizes. Due to
changes on recent kernels it now only works on a per-device basis.
Also, partial eraseblock write can be performed in ath79 with kernels
5.4 and lower, by copying the blocks from the 64 KiB, erasing the whole
sector and restoring those blocks not meant to be modified. A kernel
bump had that patch broken for a long time, but got fixed in bf2870c.

Note: the settings in the soft_config partition can be reset to their
defaults by holding the reset button for 5 seconds (and less than 10
seconds) at device boot.

Fixes: FS#3492 (sysupgrade […] loses settings...)
Fixes: a66eee6336 (ath79: add mikrotik subtarget)

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2022-04-07 11:28:41 +08:00
AmadeusGhost
398ea52770 [HOT FIX] Merge Mainline 2022-04-03 00:50:22 +08:00
AmadeusGhost
38bb0870ed sunxi: 5.10: add orangepi 3 support 2022-04-02 23:59:52 +08:00
AmadeusGhost
ce1978d646 sunxi: 5.4: reorder all patches 2022-04-02 23:58:23 +08:00
AmadeusGhost
dd5c4f4d6d sunxi: remove h6 pcie support
This will cause orangepi 3 to fail to boot on 5.10, so remove it.
2022-04-02 23:54:26 +08:00
AmadeusGhost
7a6d119cc1 Please use the original author's commit instead of your own copy 2022-04-01 11:25:48 +08:00
Andre Heider
cffa32b107 ipq40xx: add support for FRITZ!Box 7520
This model, also know as "1&1 HomeServer", shares the same features as 7530.

The vendor firmware has artificial software limitations: only 2 of the 4
LAN-Ports are GBit, and the USB-Host is only v2.0.

With OpenWrt, USB is already working at v3.0.

Signed-off-by: Andre Heider <a.heider@gmail.com>
(updated commit message to reflect current state)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-01 11:09:27 +08:00
Robert Marko
545aa5ce7b ipq40xx: mikrotik: fix LED script
Fix the missing ;; after the cAP ac case in /e/b/01_leds.

Fixes: 93d9119 ("ipq40xx: add MikroTik cAP ac support")
Signed-off-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> (minor touch-up)
2022-04-01 11:09:09 +08:00
Pawel Dembicki
7ee6cf5317 ipq40xx: add support for ZTE MF286D
ZTE MF286D is a LTE router with four gigabit ethernet ports
and integrated QMI mPCIE modem.

Hardware specification:

  - CPU: IPQ4019
  - RAM: 256MB
  - Flash: NAND 128MB + NOR 2MB
  - WLAN1:  Qualcomm Atheros QCA4019 2.4GHz 802.11bgn 2x2:2
  - WLAN2:  Qualcomm Atheros QCA4019 5GHz 802.11anac 2x2:2
  - LTE: mPCIe cat 12 card (Modem chipset MDM9250)
  - LAN: 4 Gigabit Ports
  - USB: 1x USB2.0 (regular port). 1x USB3.0 (mpcie - used by the modem)
  - Serial console: X8 connector 115200 8n1

Known issues:

  - Many LEDs are driven by the modem. Only internal LEDs and wifi LEDs
    are driven by cpu.
  - Wifi LED is triggered by phy0tpt only
  - No VoIP support
  - LAN1/WAN port is configured as WAN
  - ZTE gives only one MAC per device. Use +1/+2/+3 increment for WAN
    and WLAN0/1

Opening the case:

1. Take of battery lid (no battery support for this model, battery cage
   is dummy).
2. Unscrew screw placed behind battery lid.
3. Take off back cover. It attached with multiple plastic clamps.
4. Unscrew four more screws hidden behind back case.
5. Remove front panel from blue chassis. There are more plastic
   clamps.
6. Unscrew two boards, which secures the PCB in the chassis.
7. Extract board from blue chassis.

Console connection (X8 connector):

1. Parameters: 115200 8N1
2. Pin description: (from closest pin to X8 descriptor to farthest)
    - VCC (3.3V)
    - TX
    - RX
    - GND

Install Instructions:

Serial + initramfs:
1. Place OpenWrt initramfs image for the device on a TFTP in
   the server's root. This example uses Server IP: 192.168.1.3
2. Connect serial console (115200,8n1) to X8 connector.
3. Connect TFTP server to RJ-45 port.
4. Stop in u-Boot and run u-Boot commands:
	setenv serverip 192.168.1.3
	setenv ipaddr 192.168.1.72
	set fdt_high 0x85000000
	tftp openwrt-ipq40xx-generic-zte_mf286d-initramfs-fit-zImage.itb
	bootm $loadaddr
5. Please make backup of original partitions, if you think about revert
   to stock.
6. Login via ssh or serial and remove stock partitions:
	ubiattach -m 9
	ubirmvol /dev/ubi0 -N ubi_rootfs
	ubirmvol /dev/ubi0 -N ubi_rootfs_data
7. Install image via "sysupgrade -n".

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
(cosmetic changes to the commit message)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-04-01 11:07:47 +08:00
Alar Aun
b2f9ec813a ipq40xx: add MikroTik cAP ac support
This adds support for the MikroTik RouterBOARD RBcAPGi-5acD2nD
(cAP ac), a  indoor dual band, dual-radio 802.11ac wireless AP, two
10/100/1000 Mbps Ethernet ports.

See https://mikrotik.com/product/cap_ac for more info.

Specifications:
 - SoC: Qualcomm Atheros IPQ4018
 - RAM: 128 MB
 - Storage: 16 MB NOR
 - Wireless:
   · Built-in IPQ4018 (SoC) 802.11b/g/n 2x2:2, 2.5 dBi antennae
   · Built-in IPQ4018 (SoC) 802.11a/n/ac 2x2:2, 2.5 dBi antennae
 - Ethernet: Built-in IPQ4018 (SoC, QCA8075) , 2x 1000/100/10 port,
   PoE in and passive PoE out

Unsupported:
 - PoE out

Installation:
Boot the initramfs image via TFTP and then flash the sysupgrade
image using "sysupgrade -n"

Signed-off-by: Alar Aun <alar.aun@gmail.com>
2022-04-01 11:03:26 +08:00
Sungbo Eo
7b1e4c49f6 ipq40xx: image: remove unused DTB_SIZE variable
It is not included in DEVICE_VARS anyways.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2022-04-01 10:59:27 +08:00
Robert Marko
94055951fc build: image: add command to ubinize the kernel image
Newer NAND devices from MikroTik like the hAP ac3
require the kernel to be packed into UBIFS and then
ubinized.

So, since the ubinize-image.sh script can now ubinize
kernel only as well lets add a command for it.

This now allows calling ubinize-kernel in the kernel
packaging at then end.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2022-04-01 10:57:50 +08:00
Robert Marko
ddba25b57c build: image: explicitly pass --rootfs to append-ubi
Rootfs is now optional in ubinize-image.sh and
requires --rootfs flag instead of just passing the
rootfs image as the argument before ubinize opts.

So, simply add --rootfs flag before the $(IMAGE_ROOTFS).

Signed-off-by: Robert Marko <robimarko@gmail.com>
2022-04-01 10:56:17 +08:00
Robert Marko
2a77d3c640 build: image: add UBIFS kernel packer
This allows packing the kernel into UBIFS like newer
MikroTik NAND devices require.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2022-04-01 10:55:23 +08:00
Tianling Shen
770db0dab6 include/image-commands.mk: add package-kernel-ubifs
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-01 02:09:42 +08:00
Bjørn Mork
13dba15ccb ipq40xx: sysupgrade: drop disabled UBI to UBI logic
The commented out code is not required, as the comment
indicates.

The purpose of this code seems to be to avoid issues caused
by partially overwriting an existing UBI partition, where some
of the erase counters would be reset but not the unmodified
ones.  This problem has been solved in a more generic way by
the UBI EOF marker. This ensures that any old PEBs after the
marker are properly initialized.  It is therefore unnecessary
to erase the whole partition before flashing a new OpenWrt
factory image.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2022-03-29 16:29:52 +08:00
Enrico Mioso
a6c71e17dc ipq40xx: limit available radio channels for GL.iNet GL-B2200
The PCIe and built-in 5GHZ radios are meant to operate on different
frequency bands. The hardware enforces this via RF filters.
Add this information to allow software enforcing it as well.
Credits to Piotr Dymacz for the invaluable help.

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
2022-03-29 16:28:59 +08:00
Enrico Mioso
7484b2d150 ipq40xx: fix reset button GPIO for GL.iNet GL-B2200
GL.iNet's U-Boot checks for GPIO 40, not 43.
Changing this allows the RESET button to work as expected.

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
CC: Daniel Golle <daniel@makrotopia.org>
CC: Li Zhang <li.zhang@gl-inet.com>
2022-03-29 16:25:43 +08:00
TruongSinh Tran-Nguyen
d0a8040a3c ipq40xx: add support for GL.iNet GL-B2200
This patch adds supports for the GL-B2200 router.

Specifications:
  - SOC: Qualcomm IPQ4019 ARM Quad-Core
  - RAM: 512 MiB
  - Flash: 16 MiB NOR - SPI0
  - EMMC: 8GB EMMC
  - ETH: Qualcomm QCA8075
  - WLAN1: Qualcomm Atheros QCA4019 2.4GHz 802.11b/g/n 2x2
  - WLAN2: Qualcomm Atheros QCA4019 5GHz 802.11n/ac W2 2x2
  - WLAN3: Qualcomm Atheros QCA9886 5GHz 802.11n/ac W2 2x2
  - INPUT: Reset, WPS
  - LED: Power, Internet
  - UART1: On board pin header near to LED (3.3V, TX, RX, GND), 3.3V without pin - 115200 8N1
  - UART2: On board with BLE module
  - SPI1: On board socket for Zigbee module

Update firmware instructions:
Please update the firmware via U-Boot web UI (by default at 192.168.1.1, following instructions found at
https://docs.gl-inet.com/en/3/troubleshooting/debrick/).
Normal sysupgrade, either via CLI or LuCI, is not possible from stock firmware.
Please do use the *gl-b2200-squashfs-emmc.img file, gunzipping the produced *gl-b2200-squashfs-emmc.img.gz one first.

What's working:
- WiFi 2G, 5G
- WPA2/WPA3

Not tested:
- Bluetooth LE/Zigbee

Credits goes to the original authors of this patch.

V1->V2:
- updates *arm-boot-add-dts-files.patch correctly (sorry, my mistake)
- add uboot-envtools support
V2->V3:
- Li Zhang updated official patch to fix wrong MAC address on wlan0 (PCI) interface
V3->V4:
- wire up sysupgrade

Signed-off-by: Li Zhang <li.zhang@gl-inet.com>
[fix tab and trailing space, document what's working and what's not]
Signed-off-by: TruongSinh Tran-Nguyen <i@truongsinh.pro>
[rebase on top of master, address remaining comments]
Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
[remove redundant check in platform.sh]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-03-29 16:24:49 +08:00
Christian Lamparter
fce3599a44 ipq40xx: unbreak EZVIZ CS-W3-WD1200G EUP on 5.10 2022-03-29 16:20:43 +08:00
Alexander Couzens
839f70cfd9 ipq40xx: add MikroTik LHGG-60ad outdoor 802.11ad (60GHz) dish
LHGG-60ad is IPQ4019 + wil6210 based.

Specification:

- Qualcomm IPQ4019 (717 MHz)
- 256 MB of RAM (DDR3L)
- 16 MB (SPI NOR) of flash
- 1x Gbit ethernet, 802.3af/at POE IN connected through AR8035.
- WLAN: wil6210 802.11ad PCI card
- No USB or SD card ports
- UART disabled
- 8x LEDs

Biggest news is the wil6210 PCI card.
Integration for its configuration and detection has already been taken
care of when adding support for TP-Link Talon AD7200.
However, signal quality is much lower than with stock firmware, so
probably additional board-specific data has to be provided to the
driver and is still missing at the moment.

Signed-off-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
[Fix Ethernet Interface]
Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-03-29 15:35:21 +08:00
Felix Matouschek
392629f4db ipq40xx: Add support for Teltonika RUTX10
This patch adds support for the Teltonika RUTX10.
This device is an industrial DIN-rail router with 4 ethernet ports,
2.4G/5G dualband WiFi, Bluetooth, a USB 2.0 port and two GPIOs.

The RUTX series devices are very similiar so common parts of the DTS
are kept in a DTSI file. They are based on the QCA AP-DK01.1-C1 dev
board.

See https://teltonika-networks.com/product/rutx10 for more info.

Hardware:
  SoC:                 Qualcomm IPQ4018
  RAM:                 256MB DDR3
  SPI Flash 1:         XTX XT25F128B (16MB, NOR)
  SPI Flash 2:         XTX XT26G02AWS (256MB, NAND)
  Ethernet:            Built-in IPQ4018 (SoC, QCA8075), 4x 10/100/1000 ports
  WiFi 1:              Qualcomm QCA4019 IEEE 802.11b/g/n
  Wifi 2:              Qualcomm QCA4019 IEEE 802.11a/n/ac
  USB Hub:             Genesys Logic GL852GT
  Bluetooth:           Qualcomm CSR8510 (A10U)
  LED/GPIO controller: STM32F030 with custom firmware
  Buttons:             Reset button
  Leds:                Power (green, cannot be controlled)
                       WiFi 2.4G activity (green)
                       WiFi 5G activity (green)

MACs Details verified with the stock firmware:
   eth0:             Partition 0:CONFIG Offset: 0x0
   eth1:             = eth0 + 1
   radio0 (2.4 GHz): = eth0 + 2
   radio1 (5.0 GHz): = eth0 + 3
Label MAC address is from eth0.

The LED/GPIO controller needs a separate kernel driver to function.
The driver was extracted from the Teltonika GPL sources and can be
found at following feed: https://github.com/0xFelix/teltonika-rutx-openwrt

USB detection of the bluetooth interface is sometimes a bit flaky. When
not detected power cycle the device. When the bluetooth interface was
detected properly it can be used with bluez / bluetoothctl.

Flash instructions via stock web interface (sysupgrade based):
  1. Set PC to fixed ip address 192.168.1.100
  2. Push reset button and power on the device
  3. Open u-boot HTTP recovery at http://192.168.1.1
  4. Upload latest stock firmware and wait until the device is rebooted
  5. Open stock web interface at http://192.168.1.1
  6. Set some password so the web interface is happy
  7. Go to firmware upgrade settings
  8. Choose
     openwrt-ipq40xx-generic-teltonika_rutx10-squashfs-nand-factory.ubi
  9. Set 'Keep settings' to off
  10. Click update, when warned that it is not a signed image proceed

Return to stock firmware:
  1. Set PC to fixed ip address 192.168.1.100
  2. Push reset button and power on the device
  3. Open u-boot HTTP recovery at http://192.168.1.1
  4. Upload latest stock firmware and wait until the device is rebooted

Note: The DTS expects OpenWrt to be running from the second rootfs
partition. u-boot on these devices hot-patches the DTS so running from the
first rootfs partition should also be possible. If you want to be save follow
the instructions above. u-boot HTTP recovery restores the device so that when
flashing OpenWrt from stock firmware it is flashed to the second rootfs
partition and the DTS matches.

Signed-off-by: Felix Matouschek <felix@matouschek.org>
2022-03-29 15:33:41 +08:00
Robert Marko
2ecc6a2a29 ipq40xx: add support for MikroTik hAP ac3
This adds support for the MikroTik RouterBOARD RBD53iG-5HacD2HnD
(hAP ac³), a  indoor dual band, dual-radio 802.11ac
wireless AP with external omnidirectional antennae, USB port, five
10/100/1000 Mbps Ethernet ports and PoE passthrough.

See https://mikrotik.com/product/hap_ac3 for more info.

Specifications:
 - SoC: Qualcomm Atheros IPQ4019
 - RAM: 256 MB
 - Storage: 16 MB NOR + 128 MB NAND
 - Wireless:
   · Built-in IPQ4019 (SoC) 802.11b/g/n 2x2:2, 3 dBi antennae
   · Built-in IPQ4019 (SoC) 802.11a/n/ac 2x2:2, 5.5 dBi antennae
 - Ethernet: Built-in IPQ4019 (SoC, QCA8075) , 5x 1000/100/10 port,
             passive PoE in, PoE passtrough on port 5
- 1x USB Type A port

Installation:
1. Boot the initramfs image via TFTP
2. Run "cat /proc/mtd" and look for "ubi" partition mtd device number, ex. "mtd1"
3. Use ubiformat to remove MikroTik specific UBI volumes
* Detach the UBI partition by running: "ubidetach -d 0"
* Format the partition by running: "ubiformat /dev/mtdN -y"
Replace mtdN with the correct mtd index from step 2.
3. Flash the sysupgrade image using "sysupgrade -n"

Signed-off-by: Robert Marko <robimarko@gmail.com>
Tested-by: Mark Birss <markbirss@gmail.com>
Tested-by: Michael Büchler <michael.buechler@posteo.net>
Tested-by: Alex Tomkins <tomkins@darkzone.net>
2022-03-29 15:28:17 +08:00
Christian Lamparter
86a606ec5e ipq40xx: purge clk_ignore_unused bootarg
these flags have been creeping in from the QSDK.
All needed clocks should be accounted for, and
if a device is broken due to this. It should be
looked into.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-03-29 15:24:40 +08:00
Christian Lamparter
e4db43f493 ipq40xx: update 105-ipq40xx-fix-sleep-clock.patch
Bjorn Anderson has suggestions which would help to upstream the patch.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-03-29 15:24:24 +08:00
Pavel Kubelun
3bdf5e7a2f ipq40xx: fix sleep clock
It seems like sleep_clk was copied from ipq806x.
Fix ipq40xx sleep_clk to the value QSDK defines.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [5.4+5.10]
2022-03-29 15:23:08 +08:00
Shiji Yang
517559af54 ramips: fix wifi mac address of HiWiFi series devices
For HiWiFi series devices, label_mac can be read from bdinfo partition,
and lan_mac, wlan2g_mac are same as the label_mac. Converting label_mac
to wlan5g_mac only needs to unset 6th bit. (It seems that all HiWiFi's
label_mac start with D4:EE)

For example:
label	D4:EE:07:32:84:88
lan	D4:EE:07:32:84:88
wan	D4:EE:07:32:84:89
wlan2g	D4:EE:07:32:84:88
wlan5g	D0:EE:07:32:84:88

Tested on HiWiFi HC5661.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2022-03-28 16:17:03 +08:00
David Bauer
7a3b1745d9 ath79: fix link for long cables with OCEDO Raccoon
The OCEDO Raccoon had significant packet-loss with cables longer than 50
meter. Disabling EEE restores normal operation.

Also change the ethernet config to reduce loss on sub-1G links.

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-03-28 16:15:05 +08:00
Aleksander Jan Bajkowski
c42f863639 kernel: move rtl8152 patches to generic
This commit moves the patches for the r8152.c driver to the generic
directory. Previously they were only available on the bcm27xx target.
With these patches the Realtek RTL8153C, RTL8153D, RTL8156A and RTL8156B
chips are supported on all targets by the kmod-usb-net-rtl8152 module.
The RTL8156A and RTL8156B are the 2.5Gb/s Ethernet adapters.

The patches have been tested on TP-Link UE300 (RTL8153A) and UNITEK
1313B (RTL8156B).

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2022-03-28 16:13:33 +08:00
Pascal Coudurier
cf08650493 kernel: backport two intel igc patches from 5.15
to allow proper initialization of device

- igc: Remove _I_PHY_ID checking
- igc: Remove phy->type checking

Signed-off-by: Pascal Coudurier <coudu@wanadoo.fr>
(refreshed)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-03-28 16:12:44 +08:00
Christian Lamparter
bea572b2cf apm821xx: fix crash/panic related to SATA/SSD choice
Ticerex on the OpenWrt Forum reported a gnarly crash when
he was using Samsung 840 and 850 EVOs with his MyBook Live:

| BUG: Kernel NULL pointer dereference at 0x00000000
| Faulting instruction address: 0xc03ed4b8
| Oops: Kernel access of bad area, sig: 11 [#1]
| BE PAGE_SIZE=4K PowerPC 44x Platform
| CPU: 0 PID: 362 Comm: scsi_eh_1 Not tainted 5.4.163 #0
| NIP:  c03ed4b8 LR: c03d27e8 CTR: c03ed36c
| REGS: cfa59950 TRAP: 0300   Not tainted  (5.4.163)
| MSR:  00021000 <CE,ME>  CR: 42000222  XER: 00000000
| DEAR: 00000000 ESR: 00000000
| GPR00: c03d27e8 cfa59a08 cfa55fe0 00000000 0fa46bc0 [...]
| [..]
| NIP [c03ed4b8] sata_dwc_qc_issue+0x14c/0x254
| LR [c03d27e8] ata_qc_issue+0x1c8/0x2dc
| Call Trace:
| [cfa59a08] [c003f4e0] __cancel_work_timer+0x124/0x194 (unreliable)
| [cfa59a78] [c03d27e8] ata_qc_issue+0x1c8/0x2dc
| [cfa59a98] [c03d2b3c] ata_exec_internal_sg+0x240/0x524
| [cfa59b08] [c03d2e98] ata_exec_internal+0x78/0xe0
| [cfa59b58] [c03d30fc] ata_read_log_page.part.38+0x1dc/0x204
| [cfa59bc8] [c03d324c] ata_identify_page_supported+0x68/0x130
| [...]

This turned out this is an issue with upstream changing
ATA_TAG_INTERNAL's value from 31 to 32 during 4.18 release.
Update "SATA_DWC_QCMD_MAX" to account for that.

Link: https://forum.openwrt.org/t/my-book-live-duo-reboot-loop/122464
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-03-28 16:12:05 +08:00
Matthias Schiffer
275bb2b7de ath79: fix TPLINK_HWREV field for TL-WR1043ND v4
Required to allow sysupgrades from OpenWrt 19.07.

Closes #7071

Fixes: 98fbf2edc0 ("ath79: move TPLINK_HWID/_HWREV to parent for tplink-safeloader")
Tested-by: J. Burfeind <git@aiyionpri.me>
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2022-03-28 16:10:54 +08:00
Tianling Shen
f99dff1f6a Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-26 22:51:06 +08:00
Matthias Schiffer
d16776bc33 ath79: change Ubiquiti UniFi AP model name to include "AP"
While it hasn't always been clear whether the "AP" is part of the model
name on the Ubiquiti website, we include it for all other pre-AC
variants (AP Pro and the AP Outdoor+). Add it to the original UniFi AP
as well for consistency.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2022-03-25 10:39:55 +08:00
Matthias Schiffer
f3d410b279 ath79: fix label MAC address for Ubiquiti UniFi
The label has the MAC address of eth0, not the WLAN PHY address.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2022-03-25 10:39:42 +08:00
Stijn Tintel
d25b1c602d kernel: enable SERIAL_8250_16550A_VARIANTS
Kernel 5.6 introduced a new config symbol SERIAL_8250_16550A_VARIANTS.
In kernel 5.8, this symbol was changed to default to on on !x86, as some
embedded devices still use 16650A variants. Let's play safe here and
enable this symbol in the generic config, to avoid others from running
into this problem and having to spend several hours trying to bisect
this problem. While we could disable the symbol in the x86 target
configs, a 20ms boot time reduction really isn't worth the time wasted
on bisecting this issue.

Matt discovered this problem while working on adding support for the
WatchGuard Firebox M200 to the qoriq target, where it caused some
characters to be missing on the console output.

Reported-by: Matt Fawcett <mattytap@icloud.com>
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Reviewed-by: Rui Salvaterra <rsalvaterra@gmail.com>
2022-03-25 10:38:51 +08:00
Stijn Tintel
f2ed18751e qoriq: enable I2C in target kernel config
The I2C controller used in QorIQ PPC devices requires the mpc-i2c
driver, which is enabled by the I2C_MPC kernel config symbol. Enable
this and its dependencies in the target kernel config, as is done for
the mpc85xx target.

This fixes missing hwmon, rtc and tpm devices on the M300.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-03-25 10:37:24 +08:00
Petr Štetiar
ac944a6bdd sunxi: cortexa7: fix ethernet link detection on a20-olinuxino-lime2
a20-olinuxino-lime2 is currently having hard time with link detection of
certain 1000Mbit partners due to usage of generic PHY driver, probably
due to following missing workaround introduced in upstream in commit
3aed3e2a143c ("net: phy: micrel: add Asym Pause workaround"):

 The Micrel KSZ9031 PHY may fail to establish a link when the Asymmetric
 Pause capability is set. This issue is described in a Silicon Errata
 (DS80000691D or DS80000692D), which advises to always disable the
 capability. This patch implements the workaround by defining a KSZ9031
 specific get_feature callback to force the Asymmetric Pause capability
 bit to be cleared.

 This fixes issues where the link would not come up at boot time, or when
 the Asym Pause bit was set later on.

As a20-olinuxino-lime2 has Micrel KSZ9031RNXCC-TR Gigabit PHY since
revision H, so we need to use Micrel PHY driver on those devices.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-03-24 16:50:14 +08:00
Robert Marko
832b8962de uboot-mvebu: backport patch to fix eMMC
v2022.01 has a regression that broke eMMC usage on most if not all Armada
SoC-s, thus breaking boards like uDPU which use eMMC for storage.

Fix it by backporting a recent upstream patch.

Fixes: 782d4c8306 ("uboot-mvebu: update to version 2022.01")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-03-24 16:49:22 +08:00
Robert Marko
a498d09465 mvebu: udpu: include LM75 kmod by default
uDPU has 2 LM75 compatible temperature sensors, so include the driver for
them by default in order to utilize them.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-03-24 16:49:10 +08:00
Robert Marko
54aba209f4 mvebu: udpu: fix initramfs booting
uDPU provides a FIT based initramfs, but currently gets stuck after U-boot
starts the kernel at "Starting kernel..".

It is due to the load address being too low, so increase it in order to get
the initramfs booting again.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-03-24 16:48:55 +08:00
Peter Geis
f2357c0495 ipq806x: add support for Netgear Nighthawk Pro Gaming XR500
This adds support for the Netgear Nighthawk Pro Gaming XR500.
It is the successor to the Netgear Nighthawk R7800 and shares almost
identical hardware to that device.
The stock firmware is a heavily modified version of OpenWRT.

Specifications:
  SoC: Qualcomm Atheros IPQ8065
  RAM: 512 MB
  Storage: 256 MiB NAND Flash
  Wireless: 2x Qualcomm Atheros QCA9984
  Ethernet: 2x 1000/100/10 dedicated interfaces
  Switch: 5x 1000/100/10 external ports
  USB: 2x 3.0 ports

More information:
Manufacturer page: https://www.netgear.com/gaming/xr500/
Almost identical to Netgear R7800
Differences (r7800 > xr500):
  Flash: 128MiB > 256MiB
  Removed esata
  swapped leds:
    usb1 (gpio 7 > 8)
    usb2 (gpio 8 > 26)
    guest/esata (gpio 26 > 7)

MAC addresses:

On the OEM firmware, the mac addresses are:

  WAN: *:50  art 0x6
  LAN: *:4f  art 0x0 (label)
  2G:  *:4f  art 0x0
  5G:  *:51  art 0xc

Installation:
Install via Web Interface (preferred):
Utilize openwrt-ipq806x-netgear_xr500-squashfs-factory.img

Install via TFTP recovery:
1.Turn off the power, push and hold the reset button (in a hole on
  backside) with a pin
2.Turn on the power and wait till power led starts flashing white
  (after it first flashes orange for a while)
3.Release the reset button and tftp the factory img in binary mode.
  The power led will stop flashing if you succeeded in transferring
  the image, and the router reboots rather quickly with the new
  firmware.
4.Try to ping the router (ping 192.168.1.1). If does not respond,
  then tftp will not work either.

Uploading the firmware image with a TFTP client
$ tftp 192.168.1.1
bin
put openwrt-ipq806x-netgear_xr500-squashfs-factory.img

Note:

The end of the last partition is at 0xee00000. This was chosen
by the initial author, but nobody was able to tell why this
particular arbitrary size was chosen. Since it's not leaving
too much empty space and it's the only issue left, let's just
keep it for now.

Based on work by Adam Hnat <adamhnat@gmail.com>
ref: https://github.com/openwrt/openwrt/pull/3215

Signed-off-by: Peter Geis <pgwipeout@gmail.com>
[squash commits, move common LEDs to DTSI, remove SPDX on old
 files, minor whitespace cleanup, commit message facelift,
 add MAC address overview, add Notes, fix MAC addresses,
 use generic name for partition nodes in DTS]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2022-03-24 16:38:50 +08:00
Richard Huynh
e1e8afc646 mediatek: Add support for Xiaomi Redmi Router AX6S
Also known as the "Xiaomi Router AX3200" in western markets,
but only the AX6S is widely installation-capable at this time.

SoC: MediaTek MT7622B
RAM: DDR3 256 MiB (ESMT M15T2G16128A)
Flash: SPI-NAND 128 MiB (ESMT F50L1G41LB or Gigadevice GD5F1GQ5xExxG)
WLAN: 2.4/5 GHz 4T4R
2.4 GHz: MediaTek MT7622B
5 GHz: MediaTek MT7915E
Ethernet: 4x 10/100/1000 Mbps
Switch: MediaTek MT7531B
LEDs/Keys: 2/2 (Internet + System LED, Mesh button + Reset pin)
UART: Marked J1 on board VCC RX GND TX, beginning from "1". 3.3v, 115200n8
Power: 12 VDC, 1.5 A

Notes:
U-Boot passes through the ethaddr from uboot-env partition,
but also has been known to reset it to a generic mac address
hardcoded in the bootloader.

However, bdata is also populated with the ethernet mac addresses,
but is also typically never written to. Thus this is used instead.

Installation:
1. Flash stock Xiaomi "closed beta" image labelled
'miwifi_rb03_firmware_stable_1.2.7_closedbeta.bin'.
(MD5: 5eedf1632ac97bb5a6bb072c08603ed7)

2. Calculate telnet password from serial number and login

3. Execute commands to prepare device
nvram set ssh_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit

4. Download and flash image
On computer:
python -m http.server
On router:
cd /tmp
wget http://<IP>:8000/factory.bin
mtd -r write factory.bin firmware

Device should reboot at this point.

Reverting to stock:
Stock Xiaomi recovery tftp that accepts their signed images,
with default ips of 192.168.31.1 + 192.168.31.100.
Stock image should be renamed to tftp server ip in hex (Eg. C0A81F64.img)
Triggered by holding reset pin on powerup.

A simple implementation of this would be via dnsmasq's
dhcp-boot option or using the vendor's (Windows only)
recovery tool available on their website.

Signed-off-by: Richard Huynh <voxlympha@gmail.com>
2022-03-21 11:50:29 +08:00
Richard Huynh
f868dd5336 mediatek: Add GD5F1GQ5xExxG to mtk-snand
Some units of the Xiaomi Redmi Router AX6S/Xiaomi Router AX3200 contain this part.

Signed-off-by: Richard Huynh <voxlympha@gmail.com>
2022-03-21 11:50:07 +08:00
Igor Nazarov
119bfa7593 ramips: add support for D-Link DIR-878 R1
Specifications:
- SoC: MediaTek MT7621AT
- RAM: 128 MB (DDR3)
- Flash: 16 MB (SPI NOR)
- WiFi: MT7615N (2.4GHz) and MT7615N (5Ghz)
- Switch: 1 WAN, 4 LAN (Gigabit)
- Buttons: Reset, WiFi Toggle, WPS
- LEDs: Power, Internet, WiFi 2.4G WiFi 5G

The R1 revision is identical to the A1 revision except
- No Config2 Parition, therefore
- factory partition resized to 64k from 128K
- Firmware partition offset is 0x50000 not 0x60000
- Firmware partitions size increased by 64K
- Firmware partition type is "denx,uimage", not "sge,uimage"
- Padding of image creation "uimage-padhdr 96" removed

Installation:
Update to the last D-Link firmware through web-ui before OpenWRT
installation then follow the instructions to patch your device using
D-Link FailsafeUI.

- D-Link FailsafeUI:
Power down the router, press and hold the reset button, then
re-plug it. Keep the reset button pressed until the internet LED stops
flashing, then jack into any lan port and manually assign a static IP
address in 192.168.0.0/24 other than 192.168.0.1 (e.g. 192.168.0.2)
and go to http://192.168.0.1
Flash with the factory image.

Signed-off-by: Igor Nazarov <tigron.dev@gmail.com>
2022-03-21 11:41:02 +08:00
Mikhail Zhilkin
a985eedd04 ramips: add support for Beeline SmartBox Flash
Beeline SmartBox Flash is a wireless AC1300 (WiFi 5) router manufactured
by Arcadyan company.

Device specification
--------------------
SoC Type: MediaTek MT7621AT
RAM: 256 MiB, Winbond W632GU6NB
Flash: 128 MiB (NAND), Winbond W29N01HVSINF
Wireless 2.4 GHz (MT7615DN): b/g/n, 2x2
Wireless 5 GHz (MT7615DN): a/n/ac, 2x2
Ethernet: 3xGbE (WAN, LAN1, LAN2)
USB ports: 1xUSB3.0
Button: 1 (Reset/WPS)
LEDs: 1 RGB LED
Power: 12 VDC, 1.5 A
Connector type: Barrel
Bootloader: U-Boot (Ralink UBoot Version: 5.0.0.2)
OEM: Arcadyan WE42022

Installation
------------
1. Place *factory.trx on any web server (192.168.1.2 in this example)
2. Connect to the router using telnet shell (no password required)
3. Save MAC adresses to U-Boot environment:
   uboot_env --set --name eth2macaddr --value $(ifconfig | grep eth2 | \
    awk '{print $5}')
   uboot_env --set --name eth3macaddr --value $(ifconfig | grep eth3 | \
    awk '{print $5}')
   uboot_env --set --name ra0macaddr --value $(ifconfig | grep ra0 | \
    awk '{print $5}')
   uboot_env --set --name rax0macaddr --value $(ifconfig | grep rax0 | \
    awk '{print $5}')
4. Ensure that MACs were saved correctly:
   uboot_env --get --name eth2macaddr
   uboot_env --get --name eth3macaddr
   uboot_env --get --name ra0macaddr
   uboot_env --get --name rax0macaddr
5. Download and write the OpenWrt images:
   cd /tmp
   wget http://192.168.1.2/factory.trx
   mtd_write erase /dev/mtd4
   mtd_write write factory.trx /dev/mtd4
6. Set 1st boot partition and reboot:
   uboot_env --set --name bootpartition --value 0
   reboot

Back to Stock
-------------
1. Run in the OpenWrt shell:
   fw_setenv bootpartition 1
   reboot
2. Optional step. Upgrade the stock firmware with any version to
   overwrite the OpenWrt in Slot 1.

MAC addresses
-------------
+-----------+-------------------+----------------+
| Interface | MAC               | Source         |
+-----------+-------------------+----------------+
| label     | 30:xx:xx:51:xx:09 | No MACs was    |
| LAN       | 30:xx:xx:51:xx:09 | found on Flash |
| WAN       | 30:xx:xx:51:xx:06 | [1]            |
| WLAN_2g   | 30:xx:xx:51:xx:07 |                |
| WLAN_5g   | 32:xx:xx:41:xx:07 |                |
+-----------+-------------------+----------------+
[1]:
a. Label wasb't found neither in factory nor in other places.
b. MAC addresses are stored in encrypted partition "glbcfg". Encryption
   key hasn't known yet. To ensure the correct MACs in OpenWrt, a hack
   with saving of the MACs to u-boot-env during the installation was
   applied.
c. Default Ralink ethernet MAC address (00:0C:43:28:80:36) was found in
   "Factory" 0xfff0. It's the same for all Smartbox Flash devices. OEM
   firmware also uses this MAC when initialazes ethernet driver. In
   OpenWrt we use it only as internal GMAC (eth0), all other MACs are
   unique. Therefore, there is no any barriers to the operation of several
   Smartbox Flash devices even within the same broadcast domain.

Stock firmware image format
---------------------------
+--------------+---------------+----------------------------------------+
| Offset       | 1.0.15        | Description                            |
+==============+===============+========================================+
| 0x0          | 5d 43 6f 74   | TRX magic "]Cot"                       |
+--------------+---------------+----------------------------------------+
| 0x4          | 00 70 ff 00   | Length (reverse)                       |
+--------------+---------------+----------------------------------------+
|              |               | htonl(~crc) from 0xc ("flag_version")  |
| 0x8          | 72 b3 93 16   | to "Length"                            |
+--------------+---------------+----------------------------------------+
| 0xc          | 00 00 01 00   | Flags                                  |
+--------------+---------------+----------------------------------------+
|              |               | Offset (reverse) of Kernel partition   |
| 0x10         | 1c 00 00 00   | from the start of the header           |
+--------------+---------------+----------------------------------------+
|              |               | Offset (reverse) of RootFS partition   |
| 0x14         | 00 00 42 00   | from the start of the header           |
+--------------+---------------+----------------------------------------+
| 0x18         | 00 00 00 00   | Zeroes                                 |
+--------------+---------------+----------------------------------------+
| 0x1c         | 27 05 19 56 … | Kernel data + zero padding             |
+--------------+---------------+----------------------------------------+
|              |               | RootFS data (starting with "hsqs") +   |
| 0x420000     | 68 73 71 73 … | zero padding to "Length"               |
+--------------+---------------+----------------------------------------+
|              |               | Some signature data (format is         |
|              |               | unknown). Necessary for the fw         |
| "Lenght"     | 00 00 00 00 … | update via oem fw web interface.       |
+--------------+---------------+----------------------------------------+
| "Lenght" +   |               | TRX magic "HDR0". U-Boot is            |
| 0x10c        | 48 44 52 30   | checking it at every boot.             |
+--------------+---------------+----------------------------------------+
|              |               | 1.00:                                  |
|              |               |   Zero padding to ("Lenght" + 0x23000) |
|              |               | 1.0.12:                                |
|              |               |   Zero padding to ("Lenght" + 0x2a000) |
| "Lenght" +   |               | 1.0.13, 1.0.15, 1.0.16:                |
| 0x110        | 00 00 00 00   |   Zero padding to ("Lenght" + 0x10000) |
+--------------+---------------+----------------------------------------+

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
2022-03-21 11:40:43 +08:00
Rodolphe de Saint Léger
2b21753e49 ramips: add support for Netgear WN3100RPv2
This patch adds support for the Netgear WN3100RPv2
http://www.netgear.com/support/product/wn3100rpv2.aspx

Specifications:
- SoC: MediaTek MT7620A (580MHz, ramips)
- RAM: 32MB DDR
- Storage: 8MB NOR SPI flash
- Wireless: builtin MT7620A, 2x2:2 with u.FL connectors
- Ethernet: 1x100M
- Stock firmware based on OpenWRT Kamikaze

Like the EX2700, the bootloader expects a secondary image signature,
see https://forum.openwrt.org/viewtopic.php?pid=312577#p312577

This device seems to be same hardware as a WN3000RPv3

Flash instructions:
- Use the Netgear WebUI to upgrade to OpenWRT using the factory image
  (see note below),
- Use the sysupgrade image for upgrading versions from OpenWRT,
- TFTP recovery procedure can be used to flash the factory image
  (preferred method).

Note:
- The WebUI may not reboot automatically, wait at least 5 minutes before
  powercycling the device

Flashing using TFTP:
- Set you IP address to 192.168.1.10/24 (no gateway)
- Connect your machine to the Ethernet port
- Power off the device and wait for 10 seconds,
- Hold the reset button and power on the device (do not release reset),
- Hold the reset button until the green light is flashing (Approx. 15s)
- launch tftp, set mode to binary and connect to 192.168.1.1
- put the factory firmware image
- All leds will switch off (like a power off), this is normal
- Wait for the device to reboot in the new OpenWRT image (max 5 mins)
- The first boot will take longer than usual.
- After boot, the Device IP on the ethernet port is 192.168.1.1

Signed-off-by: Rodolphe de Saint Léger <rdesaintleger@gmail.com>
[drop unneeded includes in dts, wrap commit message]
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2022-03-21 11:38:10 +08:00
Joe Mullally
58cac8971a ramips: Apply pinctrl DTS changes to TL-WPA8631P
Applies changes from 7774b86019 to new device committed later. Fix some
whitespace in the DTS. Use standard model name format in DTS.

Fixes: 6c743c3006 ("ramips: Add support for TP-Link TL-WPA8631P v3")
Signed-off-by: Joe Mullally <jwmullally@gmail.com>
Reported-by: Arınç ÜNAL <arinc.unal@arinc9.com>
2022-03-21 11:37:34 +08:00
Dawsen Gao
7f98731062 ramips: Add support for Dual-Q H721
Dual-Q H721 is a router platform board, it is the smaller model of
the U7621-06.

The device has the following specifications:

MT7621AT (880 MHz)
256 of RAM (DDR3)
16 MB of FLASH (MX25l12805d SPI)
5x 1 Gbps Ethernet (MT7621 built-in switch)
1x M.2 (NGFF) 3.7V 3A max for 5G M.2 Modem work at USB3.0 mode
1x Minipcie 3.7V 3A max for LTE Modem work at USB2.0 Mode
2x Minipcie for WIFI card
4x Lan+1x Wan 10/100M/1000M RJ45 port
14x LEDs (1x GPIO-controlled)
1x reset button
1x UART header (4-pins)
1x mico SD-card reader
1x DC jack for main power (5~27 V)

The following has been tested and is working:

Ethernet switch
miniPCIe slots (tested with Wi-Fi cards and LTE modem cards)
miniSIM slot (works with normal size simcard)
sysupgrade
reset button
micro SD-card reader

Installation:

This board has no locked down bootloader. The seller can be asked to
install openwrt, so upgrades are standard sysupgrade method.

Recovery:

This board contains a Chinese, closed-source bootloader called Breed
(Boot and Recovery Environment for Embedded Devices). Breed supports web
recovery and to enter it, you keep the reset button pressed for around
5 seconds during boot. Your machine will be assigned an IP through DHCP
and the router will use IP address 192.168.1.1. The recovery website is
in Chinese, but is easy to use. Click on the second item in the list to
access the recovery page, then the second item on the next page is where
you select the firmware. In order to start the recovery, you click the
button at the bottom.

Signed-off-by: Dawsen Gao <dawsen_gao@163.com>
[change author name (used SoB one), add ethernet pinctrl,
 apply sorting to device recipe]
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2022-03-21 11:36:59 +08:00
Tianling Shen
ddf990bf82 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-17 19:53:20 +08:00
Hauke Mehrtens
783e063111 kernel: Add extra configuration options
These options show up when compiling the at91 target.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-03-17 11:24:36 +08:00
Claudiu Beznea
c0bbcd6ac6 at91: add support for sam9x60-ek board
Add support for SAM9X60-EK board.

Hardware:
- SoC: SAM9X60
- RAM: Winbond W972GG6KB-25 (2Gbit DDR2)
- NAND Flash: Micron MT29F4G08ABAEA
- QSPI Flash: Microchip SST26VF064B
- EEPROM: Microchip 24AA02E48
- SDMMC: One standard 4-bit SD card interface
- USB: two stacked Type-A connectors with power switches, one micro-B
       USB device
- CAN: 2 interfaces (Microchip MCP2542)
- Ethernet: one 10/100Mbps
- WiFi/BT: one optional WiFi/Bluetooth interface
- Audio: one ClassD port
- Display: one 24-bit LCD interface
- Camera: one 12-bit image sensor interface
- IO: one IO expander (Microchip MCP23008)
- Debug ports: one J-Link-OB + CDC, one JTAG interface
- Leds: one RGB LED
- Buttons: 4 push button switches
- Expansion: one PIO connector, one mikrobus connector
- Power management: two power regulators, two power consumption measurement
                    devices

Flashing:
- follow the procedure at [1]

[1] https://www.linux4sam.org/bin/view/Linux4SAM/Sam9x60EKMainPage#Create_a_SD_card_with_the_demo

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
2022-03-17 11:23:53 +08:00
Claudiu Beznea
7518ad0634 at91: enable kernel config for sam9x60
Enable kernel config for SAM9X60.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
2022-03-17 11:23:05 +08:00
Claudiu Beznea
1ebd615d42 at91: add support for sama5d27-wlsom1-ek board
Add support for SAMA5D27 WLSOM1-EK board.

Hardware:
- SIP: SAMA5D27C-LD2G-CU including SAMA5D27 MPU and 2Gbit LPDDR2-SDRAM
- MMC: one standard SD card interface
- Flash: 64 Mb serial quad I/O flash memory (SST26VF064BEUIT-104I/MF)
	 with embedded EUI-48 and EUI-64 MAC addresses
- USB: one USB device, one USB host one HSIC interface
- Ethernet: 1x10/100Mbps port
- WiFi/BT: IEEE 802.11 b/g/n Wi-Fi plus Bluetooth (Wi-Fi/BT) module
	   (ATWILC3000-MR110UA)
- Crypto: one ATECC608B-TNGTLS secure element
- Video: one LCD RGB 18-bit interface, one ISC 12-bit camera interface
- Debug port: one JTAG interface, one UART interface, one WILC UART
              interface
- Leds: one RGB LED
- Buttons: start, reset, wakeup, user buttons
- Expansion: one tamper connector, one mikrobus interface, 2 XPRO PTC
             connector
- Power managament: PMIC (MCP16502)

Flashing:
- follow procedure at [1]

[1] https://www.linux4sam.org/bin/view/Linux4SAM/Sama5d27WLSom1EKMainPage#Create_a_SD_card_with_the_demo

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
2022-03-17 11:22:48 +08:00
Claudiu Beznea
350e41a6ff at91: add support for sama5d2 icp board
Add support for SAMA5D2 ICP board.

Hardware:
- SoC: SAMA5D27
- RAM: 512 MB DDR3L
- MMC: One stanard SD card interface
- USB: One USB host switch 4 ports with power switch,
       One USB device type Micro-AB
- CAN: 2 interfaces
- Ethernet: One Gigabit Ethernet PHY through HSIC,
	    One ETH switchport,
	    One EtherCAT interface
- WiFi/BT: Footprint for IEEE 802.11 b/g/n Wi-Fi plus
	   Bluetooth module (Wi-Fi/BT), suitable for
	   Microchip WILC3000-MR110CA or WILC3000-MR110UA
- Debug port: One J-Link-OB/J-Link-CDC, one JTAG interface
- Leds: one RGB LED
- Buttons: reset, wakeup, 2 user buttons
- Expansion: one PIOBU/PIO connector, 3 mikrobus sockets
- Power mangament: PMIC (MCP16502), one power consumption device
                   (PAC1934)

Not working in Linux:
- EtherCAT interface: there is no Linux support integrated
- PAC1934: driver available at [1] but not integrated in Linux

Flashing:
- follow the procedure at [2]

[1] https://ww1.microchip.com/downloads/en/DeviceDoc/pac193x_linux_driver.zip
[2] https://www.linux4sam.org/bin/view/Linux4SAM/Sama5d2IcpMainPage#Create_a_SD_card_with_the_demo

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
2022-03-17 11:22:25 +08:00
Claudiu Beznea
4dc6dabfcb at91: enable specific sam9x kernel config flags
Enable specific sam9x kernel config flags.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
2022-03-17 11:22:06 +08:00
Claudiu Beznea
04fb35d868 at91: kernel: bump to 5.10
Bump at91 targets to kernel v5.10. With this patches and files for
wb45n and wb50n were removed as they are now included in upstream
kernel. Along with:
- this the kernel config for sama5d2 and sam9x targets has been
  refreshed (with make kernel_menuconfig + save);
- CONFIG_ARCH_AT91 and specific sam9x SoCs (AT91RM9200, AT91SAM9,
  SAM9X60) has been enabled such that sam9x SoCs to be able to boot.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
2022-03-17 11:21:49 +08:00
SuLingGG
6e376579fe kernel/5.10: generic: add missing Kconfigs 2022-03-15 11:49:49 +08:00
msylgj
379ef63300 r8168: allow build for kernel 5.10
(cherry picked from commit 8dbec6a2fe)
2022-03-14 15:28:33 +08:00
msylgj
b54d7e67b8 r8168: add support for kernel over 5.10
(cherry picked from commit 92578caeca)
2022-03-14 15:28:11 +08:00
Tianling Shen
523163b6b7 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-14 15:27:39 +08:00
INAGAKI Hiroshi
3ce3c3e65a ramips: use parser_trx for Buffalo WCR-1166DS
Buffalo WCR-1166DS uses trx-fomatted firmware and the custom magic
number (0x5C436F74, "\Cot") is required for OpenWrt installation from
OEM WebUI.
But the current mtdsplit_trx doesn't support the custom magic number and
fail to parse and split to kernel and rootfs when the factory image is
flashed. Then, the kernel fails to mount rootfs automatically and panics.

Before the commit fddc78bc11, mtdsplit_trx
was patched in ramips target and the device-specific magic number was
supported only for WCR-1166DS[1].
But the patch was not inherited to the later version of the kernel and
deleted by the above commit, then, the custom magic number support was
broken.

[1]: 05d6e92594/target/linux/ramips/patches-4.4/0400-mtd-mtdsplit-add-support-for-custom-trx-magic-for-Buffalo-WCR-1166DS.patch (L27)

log (factory image):

[    1.165312] spi-mt7621 10000b00.spi: sys_freq: 193333333
[    1.195782] spi-nor spi0.0: w25q128 (16384 Kbytes)
[    1.205353] 7 fixed-partitions partitions found on MTD device spi0.0
[    1.217938] Creating 7 MTD partitions on "spi0.0":
[    1.227436] 0x000000000000-0x000000030000 : "u-boot"
[    1.238427] 0x000000030000-0x000000040000 : "u-boot-env"
[    1.250123] 0x000000040000-0x000000050000 : "factory"
[    1.261306] 0x000000050000-0x000000810000 : "firmware"
[    1.282051] 0x000000810000-0x000000fd0000 : "firmware2"
[    1.293594] 0x000000fd0000-0x000000fe0000 : "glbcfg"
[    1.304719] 0x000000fe0000-0x000000ff0000 : "board_data"
...
[    1.452424] /dev/root: Can't open blockdev
[    1.460619] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    1.475434] Please append a correct "root=" boot option; here are the available partitions:
[    1.491986] 1f00             192 mtdblock0
[    1.491989]  (driver?)
[    1.504938] 1f01              64 mtdblock1
[    1.504941]  (driver?)
[    1.517885] 1f02              64 mtdblock2
[    1.517888]  (driver?)
[    1.530831] 1f03            7936 mtdblock3
[    1.530834]  (driver?)
[    1.543777] 1f04            7936 mtdblock4
[    1.543781]  (driver?)
[    1.556724] 1f05              64 mtdblock5
[    1.556727]  (driver?)
[    1.569672] 1f06              64 mtdblock6
[    1.569675]  (driver?)
[    1.582617] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.598976] Rebooting in 1 seconds..

This patch fixes this issue by using parser_trx with specifying custom
magic number in dts instead of mtdsplit_trx.

log (fixed factory image):

[    1.202044] spi-mt7621 10000b00.spi: sys_freq: 193333333
[    1.225369] spi-nor spi0.0: w25q128 (16384 Kbytes)
[    1.235015] 7 fixed-partitions partitions found on MTD device spi0.0
[    1.247603] Creating 7 MTD partitions on "spi0.0":
[    1.257106] 0x000000000000-0x000000030000 : "u-boot"
[    1.269447] 0x000000030000-0x000000040000 : "u-boot-env"
[    1.281192] 0x000000040000-0x000000050000 : "factory"
[    1.294208] 0x000000050000-0x000000810000 : "firmware"
[    1.305774] 2 trx partitions found on MTD device firmware
[    1.316540] Creating 2 MTD partitions on "firmware":
[    1.326399] 0x00000000001c-0x000000214754 : "linux"
[    1.336063] mtd: partition "linux" doesn't start on an erase/write block boundary -- force read-only
[    1.357070] 0x000000214754-0x0000007c0000 : "rootfs"
[    1.366994] mtd: partition "rootfs" doesn't start on an erase/write block boundary -- force read-only
[    1.386368] mtd: device 5 (rootfs) set to be root filesystem
[    1.398700] 1 squashfs-split partitions found on MTD device rootfs
[    1.411027] 0x000000520000-0x0000007c0000 : "rootfs_data"
[    1.422841] 0x000000810000-0x000000fd0000 : "firmware2"
[    1.436282] 0x000000fd0000-0x000000fe0000 : "glbcfg"
[    1.447408] 0x000000fe0000-0x000000ff0000 : "board_data"
...
[    1.611216] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-03-11 23:38:23 +08:00
INAGAKI Hiroshi
0259e5c07a ramips: switch parser of trx for mt76x8 subtarget
This patch enable parser_trx and disable mtdsplit_trx for mt76x8
subtarget.
The trx format is used only on Buffalo WCR-1166DS in mt76x8 subtarget
and the parser need to be switched to parser_trx to use the custom magic
number in the header for WCR-1166DS.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-03-11 23:38:10 +08:00
INAGAKI Hiroshi
ed2c559673 kernel: backport patch to allow using parser_trx from ramips
This patch adds a patch to allow using parser_trx from ramips target,
mainly for Buffalo devices.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-03-11 23:37:52 +08:00
INAGAKI Hiroshi
e5a58b88ce kernel: move parser_trx patches of custom magic to generic
This patch moves the patches of parser_trx in mediatek target to
generic/backport-5.10 to use the changes from ramips target and
backport the additional patch of the parser.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-03-11 23:37:36 +08:00
INAGAKI Hiroshi
164b8d9429 ramips: update MAC address configuration for Buffalo WCR-1166DS
This patch converts MAC address configuration of Buffalo WCR-1166DS in
02_network to use the generic function of OpenWrt. And also, add
label_mac.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-03-11 23:37:18 +08:00
INAGAKI Hiroshi
9c3d8977c7 ramips: increase spi frequency for Buffalo WCR-1166DS
Use higher frequency than current and up the speed to access to the
flash on WCR-1166DS.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2022-03-11 23:36:58 +08:00
Sungbo Eo
7b9ced6a7a ramips: fix DEVICE_VENDOR for unbranded devices
In commit ee66fe4ea9 ("ramips: convert DEVICE_TITLE to new variables"),
DEVICE_VENDOR of some unbranded devices were set incorrectly:
* WR512-3GN is not a dev board from Ralink.
* "XDX-RN502J" is the whole model name and should be not split.

This patch sets their DEVICE_VENDOR to "Unbranded", and changes their DTS
model properties accordingly.

Ref: d0bf15f235 ("ramips: add support for A5-V11 board (resubmit)")
Ref: 9085b05d9e ("ramips: rt305x: support for wr512-3gn-like routers")
Ref: 0e486d2fd2 ("ramips: add support for unbranded XDX-RN502J board")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2022-03-10 09:08:48 +08:00
Dmitry Chigiryov
0fb8104ef6 ramips: allow USB power control on TP-Link MR3020v3
By switching EPHY_LED4_N_JTRST_N from EPHY_LED4_N to GPIO#39
we can control USB port power an all current revisions of MR3020v3.
It was not a thing on some first revisions, pin was unused.
But for now on all current MR3020v3 boards EPHY_LED4_N_JTRST_N pin
is connected to USB power key.
Also it was not used as EPHY indicator on any revision of the board.

Signed-off-by: Dmitry Chigiryov <dmitry.chigiryov@ya.ru>
[changed author address (used SoB one)]
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2022-03-10 09:08:20 +08:00
Kim Namu
b8f5f6eb28 ramips: mt7621: add support for Zbtlink ZBT-WG1608
Zbtlink ZBT-WG1608 is a Wi-Fi router intendent to use with WWAN (4G/5G)
modems.

Specifications:
* SoC: MediaTek MT7621A
* RAM: 256/512 MiB
* Flash: 16/32 MiB (SPI NOR)
* Wi-Fi:
  * MediaTek MT7603E : 2.4Ghz
  * MediaTek MT7613BE : 5Ghz
* Ethernet: 10/100/1000 Mbps Ethernet x5 ports (4xLAN + WAN)
* M.2: 1x slot with USB&SIM
  * EM7455/EM12-G/EM160R/RM500Q-AE
* USB: 1x 3.0 Type-A port
* External storage: 1x microSD (SDXC) slot
* UART: console (115200 baud)
* LED:
  * 1 power indicator
  * 1 WLAN 2.4G controlled (wlan 2G)
  * 3 SoC controlled (wlan 5G, wwan, internet)
  * 5 per Eth phy (4xLAN + WAN)

MAC Addresses:
* LAN    : f8:5e:3c:xx:xx:e0 (Factory, 0xe000 (hex))
* WAN    : f8:5e:3c:xx:xx:e1 (Factory, 0xe006 (hex))
* 2.4 GHz: f8:5e:3c:xx:xx:de (Factory, 0x0004 (hex))
* 5 GHz  : f8:5e:3c:xx:xx:df (Factory, 0x8004 (hex))

Installation:
* Vendor's firmware is OpenWrt (LEDE) based, so the sysupgrade image can
  be directly used to install OpenWrt. Firmware must be upgraded using the
  'force' and 'do not save configuration' command line options (or
  correspondig web interface checkboxes) since the vendor firmware is from
  the pre-DSA era.

Recovery Mode:
 * Press reset button, power up the device, wait for about 10sec.
 * Upload sysupgrade image through the firmware recovery mode web page at
  192.168.1.1.

Signed-off-by: Kim Namu <namu@theseed.io>
2022-03-10 09:07:53 +08:00
Ray Wang
ba0b50138d ramips: add support for Asus RT-AC1200
Asus RT-AC1200 is a 2.4/5GHz dual band AC router,
based on MediaTek MT7628AN.

Specification:
* SoC: MT7628AN
* RAM: DDR2 64 MiB
* Flash: 16 MiB NOR (W25Q128BV)
* Wi-Fi:
  * 2.4GHz: SoC Built-in
  * 5GHz: MT7612EN
* Ethernet: 5x 100Mbps
  * Switch: SoC built-in
* USB: 1x 2.0

Flash Layout:
 0x0000000-0x0030000 : "bootloader"
 0x0030000-0x0040000 : "nvram"
 0x0040000-0x0050000 : "factory"
 0x0050000-0x1000000 : "firmware"

MAC address:
 LAN: factory 0x28
 WAN: factory 0x22
 2.4G: factory 0x4
 5G: factory 0x8004

Installation via **recovery** mode:
1. Download the Asus recovery firmware (windows) tool from
   http://dlcdnet.asus.com/pub/ASUS/LiveUpdate/Release/Wireless/Rescue.zip
2. Set your ethernet IP manually 192.168.1.5 / 255.255.255.0 with NO
   gateway.
3. Plug in your ethernet to LAN port 1 on the router.
4. Load up the recovery software with the firmware file, but don't press
   "Upload" yet.
5. Plug in the router to power WHILE HOLDING the reset button in. While
   CONTINUING to hold the button, select "Upload" Continue to hold the
   reset button in until it finishes and verifies!
6. If that doesn't work try pressing "Upload" first just before you do
   step 5. At some point while holding reset the rescue tool will finally
   detect and upload the firmware. That's when you can let go of the
   reset button.
7. The router will reboot and not much will happen. Wait a minute or 2.
8. Power off and on the router again. Voila. Set everything your Ethernet
   IP back to DHCP (automatically) and you're good to go.

Revert to stock firmware:
1. Install stock image via recovery mode.

Tested-by: Ivan Pavlov <AuthorReflex@gmail.com>
Signed-off-by: Ray Wang <raywang777@foxmail.com>
2022-03-10 09:06:13 +08:00
Joe Mullally
7036abee07 ramips: Add support for TP-Link TL-WPA8631P v3
AV1300 Gigabit Passthrough Powerline ac Wi-Fi Extender

Specifications
--------------
* SoC: MediaTek MT7621AT
* CPU: 880 MHz MIPS 1004KEc dual-core CPU
* RAM: 64 MiB DDR2 (Zentel A3R12E40DBF-8E)
* Flash: 8 MiB SPI NOR (GigaDevice GD25Q64CSIG)
* Ethernet: SoC built-in Switch 5x 1GbE
  * Port 0: PLC (connected through AR8035-A)
  * Port 1-3: LAN
* WLAN: 2x2 2.4GHz 300 Mbps + 2x2 5GHz 867 Mbps (MT7603EN + MT7613BEN)
* PLC: HomePlug AV2 (Qualcomm QCA7500)
* PLC Flash: 2MiB SPI NOR (GigaDevice GD25Q16CSIG)
* Buttons: Reset, LED, Pair, Wi-Fi
* LEDs: Power (green), PLC (green/amber), LAN (green), 2.4G (green),
  5G (green)
* UART: J1 (57600 baud)
  * Pinout: (3V3) (GND) (RX) (TX)
  * Visually identify GND from connection to PCB ground plane

Installation
------------
Installation is possible from the OEM web interface. Make sure to install
the latest OEM firmware first, so that the PLC firmware is at the latest
version. However, please first check the OpenWRT Wiki page for
confirmation that your OEM firmware version is supported.

Signed-off-by: Joe Mullally <jwmullally@gmail.com>
2022-03-10 09:05:50 +08:00
Langhua Ye
3101a18db9 uboot-envtools: mt7622: add support for Ruijie RG-EW3200GX PRO
Add U-Boot environment settings for Ruijie RG-EW3200GX PRO to allow
users to access the bootloader environment using fw_printenv/fw_setenv
while running OpenWrt.

Signed-off-by: Langhua Ye <y1248289414@outlook.com>
2022-03-10 09:02:15 +08:00
Langhua Ye
297d82c870 mediatek: add support for Ruijie RG-EW3200GX PRO
X32 Pro is another product  name for it in the Chinese market.

Specifications:
- SoC: MT7622B
- RAM: 256MB
- Flash: XMC XM25QH128C or Winbond WQ25Q128JVSQ 16MB SPI NOR
- Ethernet: 5x1GbE
- Switch: MT7531BE
- WiFi: 2.4G: MT7622 5G: MT7915AN+MT7975AN
- 3LEDs: System LED(blue) + Mesh LED(green) + Mesh LED(red)
- 2Keys: Mesh button + Reset button
- UART: Marked J19 on board. 3.3v, 115200n1
- Power: 12V 2.5A

MAC addresses as verified by OEM firmware:
use   address    source
WAN   *:F4       ethaddr@product_info
LAN   *:F5
5g    *:F6
2g    *:F7

Flash instruction:
1. Serve the initramfs.img using a TFTP server with address 10.10.10.3.
2. Interrupt the uboot startup process via UART.
3. Select "System Load Linux to SDRAM via TFTP" item.
4. (important) Back up firmware(mtd7) partitions with:
        dd if=/dev/mtd7 of=/tmp/firmware.bin
   and then download the firmware.bin image via SCP.
5. Flash the OpenWrt sysupgrade firmware.

Recovery stock firmware:
1. Transfer the firmware.bin image to the device.
2. Flash the image with:
        mtd write firmware.bin firmware

Signed-off-by: Langhua Ye <y1248289414@outlook.com>
2022-03-10 09:02:04 +08:00
Langhua Ye
c3dff0ad6e kernel: add support for XMC XM25QH128C
The XMC XM25QH128C is a 16MB SPI NOR chip. The patch is verified on Ruijie RG-EW3200GX PRO.
Datasheet available at https://www.xmcwh.com/uploads/435/XM25QH128C.pdf

Signed-off-by: Langhua Ye <y1248289414@outlook.com>
2022-03-10 09:01:03 +08:00
Tianling Shen
1ff097db84 om-fwupgradecfg-gen: add missing catch for PA1200
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-09 22:03:37 +08:00
Tianling Shen
0b320c4be8 ath79: drop CSAC support
Nobody really owns this device, and the code is broken.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 6bf789b8fb)
2022-03-08 12:18:14 +08:00
Tianling Shen
84ebd96334 [HOT FIX] Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-08 12:01:53 +08:00
Tianling Shen
e38cb49ef6 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-08 11:43:38 +08:00
Tianling Shen
ec7b7129f4 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-03 10:37:24 +08:00
zxlhhyccc
aa85f5239a mt-drivers: mt7603e: fix syntax error
(cherry picked from commit 3896b7d788)
2022-02-25 14:21:26 +08:00
Tianling Shen
c96b15cc4d Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-02-25 13:03:01 +08:00
AmadeusGhost
5501bb89ba ipq806x: add support for SURF G-NAT200
Hardware specs:
  SoC: Qualcomm IPQ8064
  RAM: 1GB DDR3
  SPI: 32MB S25FL256S
  NAND: 512MB S34MS04G2
  Ethernet: 5x 10/100/1000 Mbps QCA8337
  LED: power, internet, usb, sata
  Button: Reset
  USB: 1 x 3.0

Installation:
  Interrupt U-Boot, tftpboot initramfs image,
  than sysupgrade to openwrt.

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2022-02-25 11:36:09 +08:00
Mauri Sandberg
cbbef547e9 gpio-nxp-74hc153: remove package
This module was used solely by Buffalo WZR-HP-G300NH devices
and has become obsolete with the introduction of gpio-cascade.

Signed-off-by: Mauri Sandberg <maukka@ext.kapsi.fi>
2022-02-21 11:15:40 +08:00
Mauri Sandberg
3d7abd3e64 ath79: use gpio-cascade for Buffalo WZR-HP-G300NH
Switch to a generic GPIO cascade driver.

Signed-off-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [missing commit description]
2022-02-21 11:14:33 +08:00
Mauri Sandberg
4deff7e9db kernel: add package kmod-gpio-cascade
Adds kernel module for Generic GPIO cascade.

Signed-off-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [missing commit description]
2022-02-21 11:13:03 +08:00
Mauri Sandberg
b2b150d1b8 kernel: add package kmod-multiplexer
Adds new kernel module for GPIO controlled multiplexer support.

Signed-off-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [missing commit description]
2022-02-21 11:12:48 +08:00
Mauri Sandberg
2f2e70a1e2 kernel: 5.10: backport gpio-cascade and related symbols
The patch is under review at [1].

Signed-off-by: Mauri Sandberg <maukka@ext.kapsi.fi>

[1] http://patchwork.ozlabs.org/project/linux-gpio/patch/20211026191506.3099-3-maukka@ext.kapsi.fi/
2022-02-21 11:12:36 +08:00
Rosen Penev
69606aaeec target/linux: add missing symbol
Found when building the qoriq target.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-02-21 11:03:07 +08:00
Tianling Shen
c1f1a6dd04 rockchip: motorcomm: fix typo error
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit a672f0b7e8)
2022-02-14 21:47:12 +08:00
Tianling Shen
162db7778f rockchip: add OrangePi R1 Plus LTS support
This board is a fork of OrangePi R1 Plus, with native NIC changed.

Hardware
--------
RockChip RK3328 ARM64 (4 cores)
1GB DDR4 RAM
2x 1000 Base-T
3 LEDs (LAN / WAN / SYS)
1 Button (Reset)
Micro-SD slot
USB 2.0 Port

Installation
------------
Uncompress the OpenWrt sysupgrade and write it to a micro SD card using
dd.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 9d64b55c2e)
2022-02-14 21:47:04 +08:00
Tianling Shen
db2fd2ae80 uboot-rockchip: add OrangePi R1 Plus LTS support
Add support for the Xunlong OrangePi R1 Plus LTS.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit dfc3b62282)
2022-02-14 21:46:47 +08:00
Tianling Shen
dd7539a0c6 rockchip: motorcomm: add yt8531 support
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit a59a466d57)
2022-02-14 21:46:40 +08:00
Tianling Shen
777c3800e9 rockchip: motorcomm: move new files to dir
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 3ca7a5f921)
2022-02-14 21:46:27 +08:00
Daniel Golle
a8ce403965 mediatek: mt7623: include regular AHCI PCI driver
The legacy image for the UniElec U7623-02 until now included
kmod-ata-ahci-mtk. The MT7623 chip doesn't have that IP and that
board uses a PCIe-connected AHCI controller for the SATA port and
mSATA-pins of the mPCIe socket. Hence include kmod-ata-ahci instead.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:34:06 +08:00
Daniel Golle
282f391254 uboot-mediatek: update to version 2022.01
Tested on BananaPi R2 (SD, eMMC), BananaPi R64 (SD, eMMC, SPI-NAND) and
UniElec U7623-02 (eMMC).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:33:31 +08:00
Daniel Golle
ae65eb3e8d mediatek: store random MAC address in U-Boot env on first boot
For devboards without a MAC address assigned from factory, store
the random MAC in U-Boot env on first boot to make it persistent.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:32:54 +08:00
Daniel Golle
c29f6b6cd8 uboot-envtools: add configuration for UniElec U7623 board
Add U-Boot env settings to allow accessing the environment using
fw_printenv and fw_setenv tools on the UniElec U7623 board.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:32:31 +08:00
Daniel Golle
488d6c46ef mediatek: mt7623: rework images for U7623-02 board
Users of older OpenWrt versions need sysupgrade using the *emmc.img.gz
file once which will upgrade U-Boot and switch to the new image layout.
Users of the vendor firmware need to first flash the legacy image to
then sunsequently carry out a full-flash upgrade.

Alternatively the board can also be flashed using MediaTek's
proprietary SP Flash Tool.

Configuration as well as persistent MAC address will be lost once at
this point and you will have to redo (or restore) all configuration
manually. To restore the previous persistent MAC address users may set
it manually using

fw_setenv ethaddr 00:11:22:33:44:55

For future upgrades once running OpenWrt past this commit, the usual
*sysupgrade.itb file can be used.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:32:07 +08:00
Daniel Golle
ca0acba0dc uboot-mediatek: update build for the U7623-02 board
Brings bootmenu and production/recovery dual-boot scheme like on
the BPi-R2, BPi-R64, E8450 and UniFi 6 LR.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:31:19 +08:00
Daniel Golle
7e86e3fc8c mediatek: add common DTS aliases for UniElec U7623 board
* Use serial0 instead of serial2 for the only serial port
 * Add LED aliases
 * Add ethernet0 alias to inherit ethaddr from U-Boot env

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:30:55 +08:00
Daniel Golle
ace5c56093 uml: make use of 'rootfs-part' feature
Use 'rootfs-part' feature instead of referencing the TARGET_uml in
Config-images.in.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:29:30 +08:00
Daniel Golle
f47071e53d sunxi: make use of 'rootfs-part' feature
Use 'rootfs-part' feature instead of referencing the TARGET_sunxi in
Config-images.in.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:28:21 +08:00
Daniel Golle
fc0cf76ccf omap: make use of 'rootfs-part' feature
Use 'rootfs-part' feature instead of referencing the TARGET_omap in
Config-images.in.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:25:38 +08:00
Daniel Golle
c3a09bfb54 mediatek: use CONFIG_TARGET_ROOTFS_PARTSIZE
Enable 'rootfs-part' feature to make the size of the partition of the
production image configurable instead of hard-coding it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-14 18:22:16 +08:00
Daniel Golle
06d3c830c5 generic: deny write to uImage.FIT sub-image partitions
Set policy bit to force read-only mode on uImage.FIT filesystem
sub-images mapped as block partitions by the FIT partition parser.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-12 12:30:58 +08:00
Daniel Golle
7069ab9e32 mediatek: mt7623: switch to BPi-R2 to generic eMMC sysugprade
Make use of new functions in emmc.sh to implement sysupgrade on the
BananaPi BPi-R2.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-12 12:27:12 +08:00
Daniel Golle
3cb1f8c150 mediatek: mt7622: switch to generic eMMC sysupgrade
Use functions in newly introduced emmc.sh for sysupgrade of the
BananaPi BPi-R64.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-12 12:26:52 +08:00
Enrico Mioso
6faa43beae base-files: add eMMC sysupgrade support
Adds generic support for sysupgrading on eMMC-based devices.

Provide function emmc_do_upgrade and emmc_copy_config to be used in
/lib/upgrade/platform.sh instead of redundantly implementing the same
logic over and over again.
Similar to generic sysupgrade on NAND, use environment variables
CI_KERNPART, CI_ROOTPART and newly introduce CI_DATAPART to indicate
GPT partition names to be used. On devices with more than one MMC
block device, CI_ROOTDEV can be used to specify the MMC device for
partition name lookups.

Also allow to select block devices directly using EMMC_KERN_DEV,
EMMC_ROOT_DEV and EMMC_DATA_DEV, as using GPT partition names is not
always an option (e.g. when forced to use MBR).

To easily handle writing kernel and rootfs make use of sysupgrade.tar
format convention which is also already used for generic NAND support.

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
CC: Li Zhang <li.zhang@gl-inet.com>
CC: TruongSinh Tran-Nguyen <i@truongsinh.pro>
2022-02-12 12:26:37 +08:00
Daniel Golle
d669d1240a base-files: rename 'sdcard' to 'legacy-sdcard'
While an image layout based on MBR and 'bootfs' partition may be easy
to understand for users who are very used to the IBM PC and always have
the option to access the SD card outside of the device (and hence don't
really depend on other recovery methods or dual-boot), in my opinion
it's a dead end for many desirable features on embedded systems,
especially when managed remotely (and hence without an easy option to
access the SD card using another device in case things go wrong, for
example).

Let me explain:

* using a MSDOS/VFAT filesystem to store kernel(s) is problematic, as a
  single corruption of the bootfs can render the system into a state
  that it no longer boots at all. This makes dual-boot useless, or at
  least very tedious to setup with then 2 independent boot partitions
  to avoid the single point of failure on a "hot" block (the FAT index
  of the boot partition, written every time a file is changed in
  bootfs). And well: most targets even store the bootloader environment
  in a file in that very same FAT filesystem, hence it cannot be used
  to script a reliable dual-boot method (as loading the environment
  itself will already fail if the filesystem is corrupted).

* loading the kernel uImage from bootfs and using rootfs inside an
  additional partition means the bootloader can only validate the
  kernel -- if rootfs is broken or corrupted, this can lead to a reboot
  loop, which is often a quite costly thing to happen in terms of
  hardware lifetime.

* imitating MBR-boot behavior with a FAT-formatted bootfs partition
  (like IBM PC in the 80s and 90s) is just one of many choices on
  embedded targets. There are much better options with modern U-Boot
  (which is what we use and build from source for all targets booting
  off SD cards), see examples in mediatek/mt7622 and mediatek/mt7623.

Hence rename the 'sdcard' feature to 'legacy-sdcard', and prefix
functions with 'legacy_sdcard_' instead of 'sdcard_'.

Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-12 12:26:08 +08:00
Tianling Shen
a947e3ae0a rockchip: fix led-data of NanoPi R2C
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 1c9c6ec230)
2022-02-11 02:06:42 +08:00
Raymond Wang
081171f94c ramips: add support for Xiaomi Mi Router CR660x series
Xiaomi Mi Router CR6606 is a Wi-Fi6 AX1800 Router with 4 GbE Ports.
Alongside the general model, it has three carrier customized models:
CR6606 (China Unicom), CR6608 (China Mobile), CR6609 (China Telecom)

Specifications:
- SoC: MediaTek MT7621AT
- RAM: 256MB DDR3 (ESMT M15T2G16128A)
- Flash: 128MB NAND (ESMT F59L1G81MB)
- Ethernet: 1000Base-T x4 (MT7530 SoC)
- WLAN: 2x2 2.4GHz 574Mbps + 2x2 5GHz 1201Mbps (MT7905DAN + MT7975DN)
- LEDs: System (Blue, Yellow), Internet (Blue, Yellow)
- Buttons: Reset, WPS
- UART: through-hole on PCB ([VCC 3.3v](RX)(GND)(TX) 115200, 8n1)
- Power: 12VDC, 1A

Jailbreak Notes:
1. Get shell access.
   1.1. Get yourself a wireless router that runs OpenWrt already.
   1.2. On the OpenWrt router:
      1.2.1. Access its console.
      1.2.2. Create and edit
             /usr/lib/lua/luci/controller/admin/xqsystem.lua
             with the following code (exclude backquotes and line no.):
```
     1  module("luci.controller.admin.xqsystem", package.seeall)
     2
     3  function index()
     4      local page   = node("api")
     5      page.target  = firstchild()
     6      page.title   = ("")
     7      page.order   = 100
     8      page.index = true
     9      page   = node("api","xqsystem")
    10      page.target  = firstchild()
    11      page.title   = ("")
    12      page.order   = 100
    13      page.index = true
    14      entry({"api", "xqsystem", "token"}, call("getToken"), (""),
103, 0x08)
    15  end
    16
    17  local LuciHttp = require("luci.http")
    18
    19  function getToken()
    20      local result = {}
    21      result["code"] = 0
    22      result["token"] = "; nvram set ssh_en=1; nvram commit; sed -i
's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/drop
bear start;"
    23      LuciHttp.write_json(result)
    24  end
```
      1.2.3. Browse http://{OWRT_ADDR}/cgi-bin/luci/api/xqsystem/token
             It should give you a respond like this:
             {"code":0,"token":"; nvram set ssh_en=1; nvram commit; ..."}
             If so, continue; Otherwise, check the file, reboot the rout-
             er, try again.
      1.2.4. Set wireless network interface's IP to 169.254.31.1, turn
             off DHCP of wireless interface's zone.
      1.2.5. Connect to the router wirelessly, manually set your access
             device's IP to 169.254.31.3, make sure
             http://169.254.31.1/cgi-bin/luci/api/xqsystem/token
             still have a similar result as 1.2.3 shows.
   1.3. On the Xiaomi CR660x:
        1.3.1. Login to the web interface. Your would be directed to a
               page with URL like this:
               http://{ROUTER_ADDR}/cgi-bin/luci/;stok={STOK}/web/home#r-
               outer
        1.3.2. Browse this URL with {STOK} from 1.3.1, {WIFI_NAME}
               {PASSWORD} be your OpenWrt router's SSID and password:
               http://{MIROUTER_ADDR}/cgi-bin/luci/;stok={STOK}/api/misy-
               stem/extendwifi_connect?ssid={WIFI_NAME}&password={PASSWO-
               RD}
               It should return 0.
        1.3.3. Browse this URL with {STOK} from 1.3.1:
               http://{MIROUTER_ADDR}/cgi-bin/luci/;stok={STOK}/api/xqsy-
               stem/oneclick_get_remote_token?username=xxx&password=xxx&-
               nonce=xxx
   1.4. Before rebooting, you can now access your CR660x via SSH.
        For CR6606, you can calculate your root password by this project:
        https://github.com/wfjsw/xiaoqiang-root-password, or at
        https://www.oxygen7.cn/miwifi.
        The root password for carrier-specific models should be the admi-
        nistration password or the default login password on the label.
        It is also feasible to change the root password at the same time
        by modifying the script from step 1.2.2.
        You can treat OpenWrt Router however you like from this point as
        long as you don't mind go through this again if you have to expl-
        oit it again. If you do have to and left your OpenWrt router unt-
        ouched, start from 1.3.
2. There's no official binary firmware available, and if you lose the
   content of your flash, no one except Xiaomi can help you.
   Dump these partitions in case you need them:
   "Bootloader" "Nvram" "Bdata" "crash" "crash_log"
   "firmware" "firmware1" "overlay" "obr"
   Find the corespond block device from /proc/mtd
   Read from read-only block device to avoid misoperation.
   It's recommended to use /tmp/syslogbackup/ as destination, since files
   would be available at http://{ROUTER_ADDR}/backup/log/YOUR_DUMP
   Keep an eye on memory usage though.
3. Since UART access is locked ootb, you should get UART access by modify
   uboot env. Otherwise, your router may become bricked.
   Excute these in stock firmware shell:
    a. nvram set boot_wait=on
    b. nvram set bootdelay=3
    c. nvram commit
   Or in OpenWrt:
    a. opkg update && opkg install kmod-mtd-rw
    b. insmod mtd-rw i_want_a_brick=1
    c. fw_setenv boot_wait on
    d. fw_setenv bootdelay 3
    e. rmmod mtd-rw

Migrate to OpenWrt:
 1. Transfer squashfs-firmware.bin to the router.
 2. nvram set flag_try_sys1_failed=0
 3. nvram set flag_try_sys2_failed=1
 4. nvram commit
 5. mtd -r write /path/to/image/squashfs-firmware.bin firmware

Additional Info:
 1. CR660x series routers has a different nand layout compared to other
    Xiaomi nand devices.
 2. This router has a relatively fresh uboot (2018.09) compared to other
    Xiaomi devices, and it is capable of booting fit image firmware.
    Unfortunately, no successful attempt of booting OpenWrt fit image
    were made so far. The cause is still yet to be known. For now, we use
    legacy image instead.

Signed-off-by: Raymond Wang <infiwang@pm.me>
2022-02-10 12:50:42 +08:00
Mike Lothian
4b8d12ce49 ipq806x: Enlarge D7800 flash - use netgear partition
Increase the available flash memory size in Netgear R7800
by repurposing the unused "netgear" partition that is
located after the firmware partition.

Available flash space for kernel+rootfs+overlay increases
by 68 MB from 32 MB to 100 MB.

In a typical build, overlay space increases from 15 to 85,
increasing the package installation possibilities greatly.

Reverting to the OEM firmware is still possible, as the OEM
firmware contains logic to initialise the "netgear" partition
if its contents do not match expectations. In OEM firmware,
"netgear" contains 6 UBI sub-partitions that are defined in
/etc/netgear.cfg and initialisation is done by /etc/preinit

This is based on fb8a578aa7

Signed-off-by: Mike Lothian <mike@fireburn.co.uk>
2022-02-10 12:48:16 +08:00
Christian Lamparter
5e97690e53 ipq806x: convert TP-Link Archer VR2600v to denx,uimage
The recent device-tree modification that added pre-cal
nvmem-cells pushed the device's kernel+dtb over the
allotted 3072k KERNEL_SIZE.

> WARNING: Image file tplink_vr2600v-uImage is too big: 3147214 > 3145728

There was a previous kernel partition size upgrade:
commit 0c967d92b3 ("ipq806x: increase kernel partition size for the TP-Link Archer VR2600v")
It has been seemingly upgraded from a 2048k KERNEL_SIZE in the past.
The commit talks about using the MTD_SPLIT_TPLINK_FW. But looking at
the image make recipe, there is no code that adds a TPLINK header.
So instead the board will use "denx,umimage". This requires
MTD_SPLIT_UIMAGE_FW, but this is present thanks to some NEC devices.

(Maybe the MTD_CONFIG_ARGS can be removed as well? But it could be
there because of the padding at the beginning. This needs testing.)

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-02-10 12:46:48 +08:00
John Audia
d711aabf23 bcm27xx: update distroconfig.txt for faster RPi4
Newer RPi 4 Rev 6 (8 GB models and recent 2 GB / 4 GB models) ship with
the so-called C0 processor which can run turbo mode at 1.8 GHz max rather
than 1.5 GHz gracefully.  Add 'arm_boost=1' to pi4 section of to enable.

Note that this setting has no effect on older chips; they continue with
their 1.5 GHz max unless users overclock them.

Ref: https://www.raspberrypi.com/news/bullseye-bonus-1-8ghz-raspberry-pi-4

Signed-off-by: John Audia <graysky@archlinux.us>
2022-02-10 12:40:18 +08:00
Sven Eckelmann
88bbcdfe05 om-watchdog: Drop unused package
All devices which used this package migrated to the kernel GPIO-line
watchdog driver and configure it over their DT.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-10 12:39:46 +08:00
Sven Eckelmann
393bef8cc1 ramips: Switch Teltonika RUT5xx to kernel GPIO-line watchdog driver
The commit 04e91631e0 ("om-watchdog: add support for Teltonika RUT5xx
(ramips)") used the deprecated om-watchdog daemon to handle the GPIO-line
connected watchdog on the Teltonika RUT5xx.

But this daemon has massive problems since commit 30f61a34b4
("base-files: always use staged sysupgrade"). The process will always be
stopped on sysupgrades. If the sysupgrade takes slightly longer, the
watchdog is not triggered at the correct time and thus the sysupgrade will
interrupted hard by the watchdog sysupgrade. And this hard interrupt can
easily brick the device when there is no fallback (dual-boot, ...).

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-02-10 12:38:32 +08:00
Daniel Golle
50bdd88fc5 base-files: stage2: improve /proc/*/stat parser
Simply reading /proc/*/stat as a space-separated string will not work
as the process name may itself contain spaces. Hence we must match on
the '(' and ')' characters around the process name and can then handle
the remaining string as space-separated values.
This fixes shell error messages which have been popping up the console
due to spaces in process names being interpreted as field separators.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-09 15:53:50 +08:00
Daniel Golle
ea8be0ad5c mediatek: mt7622: bpi-r64: rewrite MMC uImage.FIT sysupgrade
Similar to mt7623, also no longer use 'blockdev' and stop relying on
in-kernel partition parsers. Instead, strip off all metadata using
'fwtool' while writing the firmware image and scrape the number of
blocks written from 'dd', then use that block offset to stash the
configuration backup.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-09 15:51:07 +08:00
Daniel Golle
0b898ff4e2 mediatek: mt7623: re-write sysupgrade uImage.FIT on MMC
Re-reading the partition table doesn't work reliably, it fails if
anything on the device is still in use and it's not trivial to prevent
every possible case of a block device still being in use somehow.

Therefore, instead of relying on the in-kernel partition parser to know
where to write the configuration backup, use OpenWrt's format-agnostic
fwtool to strip off all metadata from the image and count its blocks
while writing. In that way we can know where to write the config backup
without needing the kernel to parse the MBR and FIT structures.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-09 15:50:45 +08:00
Daniel Golle
1d03277224 mediatek: mt7623: make use of find_mmc_part
Use find_mmc_part instead of previously introduced
get_partition_by_name which requires a custom kernel patch.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-09 15:45:02 +08:00
Daniel Golle
a7192387f4 mediatek: mt7622: make use of find_mmc_part
Use find_mmc_part instead of previously introduced
get_partition_by_name which requires a custom kernel patch.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-09 15:44:21 +08:00
Daniel Golle
1ebf269427 uboot-envtools: mt7622: make use of find_mmc_part
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-09 15:41:58 +08:00
Daniel Golle
4e9062bfa6 base-files: allow specifiying rootdev for find_mmc_part
Some devices got more than one mmc device.
Allow specifying the root device as 2nd parameter of find_mmc_part so
scripts can avoid matching irrelevant partitions on wrong mmc device.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-02-09 15:41:09 +08:00
Davide Fioravanti
d50795e25f base-files: add minimal mmc support
Added minimal mmc support for helper functions:

 - find_mmc_part: Look for a given partition name. Returns the
	coresponding partition path
 - caldata_extract_mmc: Look for a given partition name and then
	extracts the calibration data
 - mmc_get_mac_binary: Returns the mac address from a given partition
	name and offset

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
Signed-off-by: Robert Marko <robimarko@gmail.com>
[replace dd with caldata_dd, moved sysupgrade mmc to orbi]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-02-09 15:40:48 +08:00
Pawel Dembicki
d662e79468 ipq40xx: use zImage for Cell-C RTL30VW
After switch to 5.10 kernel, kernel size was too high.
This patch switches Cell-C RTL30VW from uImage to zImage build.

Lzma uImage wrap is required for factory booting and it must left
untouched.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2022-02-08 12:38:00 +08:00
Robert Marko
f8d121cd32 ipq40xx: 5.10: refresh config
It looks like CONFIG_BLK_CMDLINE_PARSER was forgotten during the Orbi
device merge.
So lets refresh the config with it.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-02-08 12:37:30 +08:00
Davide Fioravanti
94e8908232 ipq40xx: add support for Netgear SRR60/SRS60 and RBR50/RBS50
The Netgear SRS60 and SRR60 (sold together as SRK60) are two almost
identical AC3000 routers. The SRR60 has one port labeled as wan while
the SRS60 not. The RBR50 and RBS50 (sold together as RBK50) have a
different external shape but they have an USB 2.0 port on the back.

This patch has been tested only on SRS60 and RBR50, but should work
on SRR60 and RBS50.

Hardware
--------
SoC:   Qualcomm IPQ4019 (717 MHz, 4 cores 4 threads)
RAM:   512MB DDR3
FLASH: 4GB EMMC
ETH:
  - 3x 10/100/1000 Mbps Ethernet
  - 1x 10/100/1000 Mbps Ethernet (WAN)
WIFI:
  - 2.4GHz: 1x IPQ4019 (2x2:2)
  - 5GHz:   1x IPQ4019 (2x2:2)
  - 5GHz:   1x QCA9984 (4x4:4)
  - 6 internal antennas
BTN:
  - 1x Reset button
  - 1x Sync button
  - 1x ON/OFF button
LEDS:
  - 8 leds controlled by TLC59208F (they can be switched on/off
    independendently but the color can by changed by GPIOs)
  - 1x Red led (Power)
  - 1x Green led (Power)
UART:
  - 115200-8-N-1

Everything works correctly.

Installation
------------
These routers have a dual partition system. However this firmware works
only on boot partition 1 and the OEM web interface will always flash on
the partition currently not booted.

The following steps will use the SRS60 firmware, but you have to chose
the right firmware for your router.

There are 2 ways to install Openwrt the first time:

1) Using NMRPflash
 1. Download nmrpflash (https://github.com/jclehner/nmrpflash)
 2. Put the openwrt-ipq40xx-generic-netgear_srs60-squashfs-factory.img
	file in the same folder of the nmrpflash executable
 3. Connect your pc to the router using the port near the power button.
 4. Run "nmrpflash -i XXX -f openwrt-ipq40xx-generic-netgear_srs60-squashfs-factory.img".
	Replace XXX with your network interface (can be identified by
	running "nmrpflash -L")
 5. Power on the router and wait for the flash to complete. After about
	a minute the router should boot directly to Openwrt. If nothing
	happens try to reboot the router. If you have problems flashing
	try to set "10.164.183.253" as your computer IP address

2) Without NMRPflash
The OEM web interface will always flash on the partition currently not
booted, so to flash OpenWrt for the first time you have to switch to
boot partition 2 and then flash the factory image directly from the OEM
web interface.

To switch on partition 2 you have to enable telnet first:
 1. Go to http://192.168.1.250/debug.htm and check "Enable Telnet".
 2. Connect through telent ("telnet 192.168.1.250") and login using
	admin/password.

	To read the current boot_part:
		artmtd -r boot_part

	To write the new boot_part:
		artmtd -w boot_part 02

	Then reboot the router and then check again the current booted
	partition

Now that you are on boot partition 2 you can flash the factory Openwrt
image directly from the OEM web interface.

Restore OEM Firmware
--------------------
 1. Download the stock firmware from official netgear support.
 2. Follow the nmrpflash procedure like above, using the official
	Netgear firmware (for example SRS60-V2.2.1.210.img)

        nmrpflash -i XXX -f SRS60-V2.2.1.210.img

Notes
-----
1) You can check and edit the boot partition in the Uboot shell using
	the UART connection.
	"boot_partition_show" shows the current boot partition
	"boot_partition_set 1" sets the current boot partition to 1

2) Router mac addresses:

   LAN XX:XX:XX:XX:XX:69
   WAN XX:XX:XX:XX:XX:6a
   WIFI 2G XX:XX:XX:XX:XX:69
   WIFI 5G XX:XX:XX:XX:XX:6b
   WIFI 5G (2nd) XX:XX:XX:XX:XX:6c

   LABEL XX:XX:XX:XX:XX:69

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
Signed-off-by: Robert Marko <robimarko@gmail.com>
[added 5.10 changes for 901-arm-boot-add-dts-files.patch, moved
sysupgrade mmc.sh to here and renamed it, various dtsi changes]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-02-08 12:36:31 +08:00
Davide Fioravanti
ba9dc988eb ipq40xx: enable CONFIG_CMDLINE_PARTITION and CONFIG_LEDS_TLC591XX
CONFIG_CMDLINE_PARTITION:
Some devices with mmc like the Netgear Orbi Pro SRS60 or Netgear Orbi
RBR50 needs to hardcode the partitions layout in the cmdline boot
correctly

CONFIG_LEDS_TLC591XX:
This is needed for the led driver found in the Netgear Orbi Pro SRS60

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
Signed-off-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Shang Jia <jiash416@gmail.com>
[added 5.10 config]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-02-08 12:27:53 +08:00
Christian Lamparter
3b5a660b1a ipq40xx: detangle ath10k-board-qca4019 from ath10k-firmware-qca4019*
Back in the day, the board-2.bin came with ath10k-firmware-qca4019.
This changed with
commit c3b2efaf24 ("linux-firmware: ath10k: add board firmware packages")
which placed the board-2.bin into a separate package: ath10k-board-qca4019.
This was great, because it addressed one of the caveat of the original
ipq-wifi package:
commit fa03d441e9 ("firmware: add custom IPQ wifi board definitions")

|  2. updating ath10k-firmware-qca4019 will also replace
|      the board-2.bin. For this cases the user needs to
|      manually reinstall the wifi-board package once the
|      ath10k-firmware-qca4019 is updated.

This could be extended further so that ipq-wifi packages
no longer use "install-override" and the various QCA4019
variants list the ath10k-board-qca4019 as a CONFLICT
package.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-02-08 12:27:10 +08:00
Tan Zien
673a6429d6 ipq40xx: MR33: Fix LP5562 LED driver probe
Add the reg and color property to each channel node. This update is
to accommodate the multicolor framework.

Refer to:
<https://lore.kernel.org/all/20200622185919.2131-9-dmurphy@ti.com>
<https://lore.kernel.org/all/20210818070209.1540451-1-michal.vokac@ysoft.com>

Signed-off-by: Tan Zien <nabsdh9@gmail.com>
[replaced links to lore, wrote something of a commit message]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-02-08 12:25:44 +08:00
Szabolcs Hubai
54b7767072 ipq40xx: use zImage for GL.iNet GL-B1300, GL-S1300 to shrink below 4096k
In the "ipq40xx: switch to Kernel 5.10" discussion at GitHub,
Adrian noted [0] that these GL.iNet Conexa series devices,
GL-B1300 and GL-S1300 failed their image generation [1] as their gzipped
uImage kernel went above 4096k.

While notifying the vendor about this problem [2], I tested all U-Boot
releases from GL.iNet:
- they really fail to boot kernel above 4096k
- they don't support lzma: "Unimplemented compression type 3"
- but they boot zImage

Using zImage (xz compression) the kernel is 2909k which is
more than a megabyte away from the KERNEL_SIZE := 4096k limit.

The gzip compressed version would be 4116k.

[0]: https://github.com/openwrt/openwrt/pull/4620#issuecomment-932765776
[1]: commit 7b1fa276f5 ("ipq40xx: add testing support for kernel 5.10")
[2]: https://forum.gl-inet.com/t/ipq40xx-kernel-size-and-u-boot-v5-10-is-too-big-for-4-mb/17619

Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
2022-02-08 12:25:26 +08:00
LGA1150
4fbafa4a7e ipq40xx: 5.10: add ramoops dts 2022-02-07 12:36:52 +08:00
LGA1150
fc6c54586a ipq40xx: 5.10: enable pstore 2022-02-07 12:35:58 +08:00
Chen Minqiang
91e7ebad50 ipq40xx: ar40xx: add switch led blink support 2022-02-07 12:33:19 +08:00
AmadeusGhost
b8fde8c7b8 ipq40xx: 5.10: apply our own patches 2022-02-07 12:29:03 +08:00
Robert Marko
f4d0d04a72 ipq40xx: add testing support for kernel 5.10
Add kernel 5.10 as the testing kernel to ipq40xx to
get wider testing.

The following devices failed to build with buildbot settings and all
feeds installed (apparently due to kernel size):

 * cell-c rtl30vw
 * compex wpj428
 * devolo magic 2 next
 * engenius emr3500
 * glinet gl-b1300
 * glinet gl-s1300
 * qcom ap-dk01.1-c1
 * qcom ap-dk04.1-c1

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Tested-by: Nick Hainke <vincent@systemli.org> [ipq4019/fritzbox-7530
                                               ipq4019/fritzbox-4040
                                               ipq4019/sxtsq-5ac]
Tested-by: Szabolcs Hubai <szab.hu@gmail.com> [ipq4029/gl-b1300]
Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de> [ipq4019/map-ac2200]
[add tested-by and note about failed devices]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2022-02-06 12:26:19 +08:00
Robert Marko
56db0d203a ipq40xx: 5.10: move AR40xx to MDIO drivers
MDIO drivers were moved into their own sub directory of networking drivers.
This has caused the AR40xx driver to probe before MDIO drivers and that wont
work as it depends on the MDIO bus to be up so it can be fetched.

Lets solve it by moving the AR40xx into MDIO folder so they get probed like
before.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-02-06 12:24:20 +08:00
Robert Marko
b46b196af8 ipq40xx: net: ethernet: edma: reject unsupported coalescing params
Set ethtool_ops->supported_coalesce_params to let
the core reject unsupported coalescing parameters.

This driver did not previously reject unsupported parameters.

This is a required ethtool op since kernel 5.7.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-02-06 12:24:04 +08:00
Robert Marko
245c41443b ipq40xx: net: ethernet: edma: update of_get_phy_mode() for 5.10
In kernel v5.5 of_get_phy_mode had its API changed, so its now returning 0
or errors instead of phymode.

Phymode is now returning by passing a pointer to phy_interface_t where it
will be stored.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-02-06 12:23:36 +08:00
Robert Marko
2c7e0718dc ipq40xx: 5.10: add kernel config
Copy config from 5.4 and run "make kernel_oldconfig".

Select default ("N") for all new symbols.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
[make commit message more explicit]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2022-02-06 12:23:17 +08:00
Robert Marko
51b39e9b85 ipq40xx: 5.10: refresh patches to apply
Refresh the kernel patches on top of 5.10 so they apply.
Manually fixup the 705-net-add-qualcomm-ar40xx-phy.patch
to apply.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-02-06 12:21:43 +08:00
Robert Marko
007973973c ipq40xx: 5.10: replace patches with upstreamed versions
USB and SDHCI LDO DTS patches have been upstreamed into 5.12, so
replace the local versions with upstreamed ones.

Reorder, and clearly mark the kernel version.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-02-06 12:21:26 +08:00
Robert Marko
61f5ef8fa6 ipq40xx: 5.10: remove duplicate GPIO export patch
Its in the generic target already, so remove the duplicate
as it breaks compilation.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-02-06 12:21:06 +08:00
Robert Marko
5190210cee ipq40xx: 5.10: drop upstreamed patches
Drop patches that have been upstreamed in before 5.10.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-02-06 12:20:50 +08:00
Robert Marko
5936afab71 ipq40xx: 5.10: copy patches
Copy over the 5.4 kernel patches to 5.10 folder.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2022-02-06 12:20:35 +08:00
AmadeusGhost
ddd1ef2a31 ipq40xx: sync upstream source code 2022-02-05 12:20:39 +08:00
AmadeusGhost
ba890ae799 ipq-wifi: sync upstream source code 2022-02-05 12:18:07 +08:00
AmadeusGhost
68324672e0 autocore-arm: support reading temperature of ath11k wifi 2022-02-05 12:15:09 +08:00
Tamas Balogh
55a2113503 ath79: ASUS RP-AC66 use flash till the end
This makes available the additional space,
which was occupied by OEM's jffs2 partition before:
"0x000000f80000-0x000001000000 : jffs2"

Reverting to the OEM firmware will also recover
this partition, i.e. it is not needed and can be
used by OpenWrt.

Signed-off-by: Tamas Balogh <tamasbalogh@hotmail.com>
2022-01-30 12:59:20 +08:00
Davide Fioravanti
c743a5086c ramips: add support for Wavlink WL-WN535K1
The Wavlink WL-WN535K1 is a "mesh" router with 2 gigabit ethernet ports
and one fast ethernet port. Mine is branded as Talius TAL-WMESH1.
It can be found in kits of 2 or 3 (WL-WN535K2 or WL-WN535K3).
The motherboard is labelled as WS-WN535G3-B-V1.2 so this image could
potentially work for WL-WN535G3R and WS-WN535G3R with little to none
effort, but it's untested.

Hardware
--------
SoC:   Mediatek MT7620A
RAM:   64MB
FLASH: 8MB NOR (GigaDevice GD25Q64CS)
ETH:
  - 2x 10/100/1000 Mbps Ethernet (RTL8211F)
  - 1x 10/100 Mbps Ethernet (integrated in SOC)
WIFI:
  - 2.4GHz: 1x (integrated in SOC) (2x2:2)
  - 5GHz:   1x MT7612E (2x2:2)
  - 4 internal antennas
BTN:
  - 1x Reset button
  - 1x Touchlink button (set to WPS)
  - 1x ON/OFF switch
LEDS:
  - 1x Red led (system status)
  - 1x Blue led (system status)
  - 3x Green leds (ethernet port status/act)
UART:
  - 57600-8-N-1

Everything works correctly.

Currently there is no firmware update available. Because of this, in
order to restore the OEM firmware, you must firstly dump the OEM
firmware from your router before you flash the OpenWrt image.

Backup the OEM Firmware
-----------------------
The following steps are to be intended for users having little to none
experience in linux. Obviously there are many ways to backup the OEM
firmware, but probably this is the easiest way for this router.
Procedure tested on WN535K1_V1510_200916 firmware version.

1) Go to http://192.168.10.1/webcmd.shtml

2) Type the following line in the "Command" input box and then press enter:
	mkdir /etc_ro/lighttpd/www/dev; dd if=/dev/mtd0ro of=/etc_ro/lighttpd/www/dev/mtd0ro

3) After few seconds in the textarea should appear this output:
		16384+0 records in
	16384+0 records out

   If your output doesn't match mine, stop reading and ask for
   help in the forum.

4) Open in another tab http://192.168.10.1/dev/mtd0ro to download the
   content of the whole NOR. If the file size is 0 byte, stop reading
   and ask for help in the forum.

5) Come back to the http://192.168.10.1/webcmd.shtml webpage and type:
	rm /etc_ro/lighttpd/www/dev/mtd0ro;for i in 1 2 3 4 5; do dd if=/dev/mtd${i}ro of=/etc_ro/lighttpd/www/dev/mtd${i}ro; done

6) After few seconds, in the textarea should appear this output:
		384+0 records in
	384+0 records out
	128+0 records in
	128+0 records out
	128+0 records in
	128+0 records out
	14720+0 records in
	14720+0 records out
	1024+0 records in
	1024+0 records out

   If your output doesn't match mine, stop reading and ask for
   help in the forum.

7) Open the following links to download the partitions of the OEM FW:
	http://192.168.10.1/dev/mtd1ro
	http://192.168.10.1/dev/mtd2ro
	http://192.168.10.1/dev/mtd3ro
	http://192.168.10.1/dev/mtd4ro
	http://192.168.10.1/dev/mtd5ro

   If one (or more) of these files are 0 byte, stop reading and ask
   for help in the forum.

8) Store these downloaded files in a safe place.

9) Reboot your router to remove any temporary file in ram.

Installation
------------
Flash the initramfs image in the OEM firmware interface
(http://192.168.10.1/update_mesh.shtml).
When Openwrt boots, flash the sysupgrade image otherwise you won't be
able to keep configuration between reboots.

Restore OEM Firmware
--------------------
Flash the "mtd4ro" file you previously backed-up directly from LUCI.
Warning: Remember to not keep settings!
Warning2: Remember to force the flash.

Notes
-----
1) Router mac addresses:
   LAN		XX:XX:XX:XX:XX:E2 (factory @ 0x28)
   WAN		XX:XX:XX:XX:XX:E3 (factory @ 0x2e)
   WIFI 2G	XX:XX:XX:XX:XX:E4 (factory @ 0x04)
   WIFI 5G	XX:XX:XX:XX:XX:E5 (factory @ 0x8004)

   LABEL	XX:XX:XX:XX:XX:E5

2) The OEM firmware upgrade page accepts only files containing the
   string "WN535K1" in the filename.

3) Additional notes 1,2,3 in the WS-WN583A6 commit are still valid
(92780d80ab)

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
[remove trailing whitespace]
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2022-01-30 12:58:41 +08:00
Chuanhong Guo
1fb717cb94 kernel: 5.10: drop broken-flash-reset patch
Flash accessing instruction templates are determined during probe since
v5.6 for spimem-dirmap support in spi-nor driver in upstream commit:
df5c21002cf4 ("mtd: spi-nor: use spi-mem dirmap API")
As a result, changing bus_width on the fly doesn't work anymore and this
patch will cause executing spi-mem ops with 3-byte address on 16-32M
flash area.
We can't easily revert that behavioral change upstream so drop the patch
to prevent u-boot and eeprom from being erased.

Fixes: b10d604459("kernel: add linux 5.10 support")
Reported-by: Frank Di Matteo <dimatto@foxmail.com>
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2022-01-30 12:55:42 +08:00
Daniel Golle
4e35a0d0f8 firmware-utils: update to git HEAD of 2022-01-28
6c95945 ptgen: add Chromium OS kernel partition support
 8e7274e cros-vbutil: add Chrome OS vboot kernel-signing utility

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2022-01-30 12:53:41 +08:00
Hauke Mehrtens
cb0f18cc5a firmware-utils: update to latest master
d885b49 tplink-safeloader: support Archer C6v3.0 (BR)

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-01-30 12:53:31 +08:00
Matthias Schiffer
7aa726d71c firmware-utils: update to latest master
84dbf8ee49f5 tplink-safeloader: fix Archer A7v5 factory flashing from vendor fw > v1.1.x

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2022-01-30 12:53:21 +08:00
Etienne Champetier
31e6a03378 netfilter.mk: add conntrack support to nft bridge
This allows to implement statefull bridge filtering

As the uncompressed size is only 7.6k (arm64), just add
nf_conntrack_bridge.ko to kmod-nft-bridge package

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
2022-01-29 19:00:21 +08:00
Hauke Mehrtens
e8ecc8e48d octeontx: Refresh kernel configuration
Refresh the kernel configuration.
No manual changes done.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-01-29 19:00:08 +08:00
Hauke Mehrtens
aa42139b6c kernel: Add CONFIG_CRYPTO_DEV_OCTEONTX_CPT kernel config option
This new kernel configuration option is available when building the
octeontx target.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-01-29 18:59:55 +08:00
Hauke Mehrtens
b134de990d kernel: Fix compile warning
This fixes the following compile warning:
  CC      init/do_mounts.o
init/do_mounts.c:478:19: warning: 'mount_ubi_rootfs' defined but not used [-Wunused-function]
  478 | static int __init mount_ubi_rootfs(void)
      |                   ^~~~~~~~~~~~~~~~

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-01-29 18:59:43 +08:00
Hauke Mehrtens
c583ebdea8 arc770: Remove arc770 target
The arc700 target is not booting up since some time, see here:
https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/issues/400

It looks like there is a problem in the toolchain when using glibc.

Currently no one is working on fixing this problem, remove the target
instead. This target also does not have many users we are aware of.

If someone wants to have this target back, feel free to add a fixed
version of this target again.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-01-29 18:59:10 +08:00
Florian Fainelli
a6431aa307 perf: Depend on libbfd and libopcodes when enabled
bpftool will enabled libbfd and libopcodes which gets picked up by perf
as libraries to link against. Add those missing dependencies when either
of these packages are enabled.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2022-01-29 18:58:07 +08:00
Stijn Tintel
c83143c986 ramips: enable I2C_CHARDEV in mt7621/config-5.10
I2C_CHARDEV used to be enabled in mt7621/config-5.4. Enable it in the
5.10 config, as it's required for PoE control on Unifi Switch Flex.

Fixes: b4aad29a1d ("ramips: add support for kernel 5.10")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-01-29 18:57:52 +08:00
David Bauer
4fbe188b55 rockchip: disable UHS modes for NanoPi R4S
The NanoPi R4S leaves the SD card in 1.8V signalling when rebooting
while U-Boot requires the card to be in 3.3V mode.

Remove UHS support from the SD controller so the card remains in 3.3V
mode. This reduces transfer speeds but ensures a reboot whether from
userspace or following a kernel panic is always working.

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-01-27 12:29:20 +08:00
David Bauer
cda7154283 ramips: read Tenbay T-MB5EU address from single location
Currently the WAN MAC address is read from a different offset contrary
to all other addresses.

There's conflicting information whether offset 0x28 on the factory
partition contains the valid WAN mac for all devices while 0x4 seems to
be uniform.

Read the WAN mac from this location and calculate it.

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-01-27 12:25:55 +08:00
David Bauer
e993c9dd4e ramips: update Tenbay T-MB5EU wireless MAC address
The current MAC address assignment is still incorrect.

Use the same MAC address as seen on the stock firmware
for both wireless interfaces.

The 5GHz MAC address OUI is +2 in the first EUI octet. We currently
don't do this in OpenWrt. Ignore this offset for now. With the current
assignment, recurring MAC addresses between radios is already taken care
of.

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-01-27 12:25:22 +08:00
David Bauer
27d909c474 ramips: fix Tenbay T-MB5EU v1 Wireless MAC
It was reported, that Tenbay T-MB5EU v1 do have incorrect Wireless MAC
address set on 2.4 and 5 GHz.

Some boards do not seem to have the correct MAC address set for the
external PHY of the MT7915 radio at caldata offset 0xa.

As the external PHY does not expose a DT binding (yet), fix up the mac
address in userspace.

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-01-27 12:25:03 +08:00
Rodrigo Araujo
a0799a492a ramips: correct vendor name for COMFAST/Joowin
When Joowin WR758AC V1 and V2 devices were added, they should have been
added with the primary manufacturer name which is COMFAST, since Joowin
is just an alternate vendor name on some coutries or stores.

Fix this by changing the the vendor name on the respective files and set
Joowin as ALT0 variants while ensuring compatibility for early users.
Also adjust the model names to better follow the naming rules.

As a side effect, fix mt76x8 network script which was left incorrectly
unsorted on the case block conditions.

Fixes: 766733e172 ("ramips: add support for Joowin WR758AC V1 and V2")
Signed-off-by: Rodrigo Araujo <araujo.rm@gmail.com>
2022-01-27 12:22:46 +08:00
David Woodhouse
4d26897cd5 ipq806x: Netgear D7800: Fix RAM and enable PCIe #2
This board has 512MiB of RAM like the R7800, and the VDSL modem is
attached to the second PCIe port.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2022-01-27 12:22:31 +08:00
Victorien Molle
375f97f0e5 ath79: add support for GL.iNet GL-XE300
The GL.iNet GL-XE300 is a 4G LTE Wireless router, based on QCA9531 SoC.

Specifications:

 - SoC: QCA9531 (650MHz)
 - RAM: DDR2 128M
 - Flash: SPI NOR 16M + SPI NAND 128M
 - WiFi: 2.4GHz with 2 antennas
 - Ethernet:
   - 1x LAN (10/100M)
   - 1x WAN (10/100M)
 - LTE:
 - USB: 1x USB 2.0 port
 - UART:
   - 3.3V, TX, RX, GND / 115200 8N1

MAC addresses as verified by OEM firmware:

 use    address   source
 LAN    *:c5      art 0x0 (label)
 WAN    *:c6      label + 1
 WLAN   *:c7      art 0x1002

Installation via U-Boot rescue:

1. Press and hold reset and power buttons simultaneously
2. Wait for the LAN led to blink 5 times
3. Release reset and power buttons
4. The rescue page is accessible via http://192.168.1.1
5. Select the OpenWrt factory image and start upgrade
6. Wait for the router to flash new firmware and reboot

Revert to stock firmware:

 i. Download the stock firmware from GL.Inet website
 ii. Use the same method explained above to flash the stock firmware

Signed-off-by: Victorien Molle <victorien.molle@wifirst.fr>
[update commit message]
Signed-off-by: David Bauer <mail@david-bauer.net>
2022-01-23 18:56:50 +08:00
Lech Perczak
3fc22a9fe4 ath79: use lzma-loader for ZyXEL NBG6716
Since gzip-compressed kernel image stopped fitting on 4MB kernel
partition on the device, use lzma-loader wrapping LZMA-compressed
kernel. This yields bootable device once again, and saves a very
substantial amount of space, the kernel size decreasing from about 4.4MB
to about 2.5MB for 5.10 kernel. This avoids changing of the flash layout
for the device.

While at that, reactivate the build for the device.

Fixes: 5d8ea6d34f ("ath79: Deactivate ZyXEL NBG6716 by default")
Cc: André Valentin <avalentin@marcant.net>
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Tested-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2022-01-23 18:50:28 +08:00
Sven Eckelmann
cc6a32beb4 ath79: Add support for OpenMesh OM2P v1
Device specifications:
======================

* Qualcomm/Atheros AR7240 rev 2
* 350/350/175 MHz (CPU/DDR/AHB)
* 32 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 1T1R 2.4 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + 18-24V passive POE (mode B)
    + used as WAN interface
  - eth1
    + builtin switch port 4
    + used as LAN interface
* 12-24V 1A DC
* external antenna

The device itself requires the mtdparts from the uboot arguments to
properly boot the flashed image and to support dual-boot (primary +
recovery image). Unfortunately, the name of the mtd device in mtdparts is
still using the legacy name "ar7240-nor0" which must be supplied using the
Linux-specfic DT parameter linux,mtd-name to overwrite the generic name
"spi0.0".

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to the
device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-01-23 18:50:13 +08:00
Sven Eckelmann
fcd3671572 ath79: Allow to set spi-nor mtd name via devicetree
On ar71xx, it was possible to overwrite the name of the spi-nor mtd device
identifier using the flash_platform_data which each mach-*.c could adjust
for its devices. A similar feature was introduced for mtd-physmap in
devicetree's. The property linux,mtd-name can be used to set the name and
provide a stable identifier for mtdpart from the bootloader.

But this feature is not yet available upstream for spi-nor devices which
also might receive their partition layout from the bootloader. But the
OpenWrt pistachio support for this property can simply be imported into
ath79 to gain this support.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-01-23 18:49:23 +08:00
Sven Eckelmann
9a78bfba12 ath79: Add support for OpenMesh OM5P-AC v2
Device specifications:
======================

* Qualcomm/Atheros QCA9558 ver 1 rev 0
* 720/600/200 MHz (CPU/DDR/AHB)
* 128 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2T2R 2.4 GHz Wi-Fi (11n)
* 2T2R 5 GHz Wi-Fi (11ac)
* 4x GPIO-LEDs (3x wifi, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default))
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* TI tmp423 (package kmod-hwmon-tmp421) for temperature monitoring
* 2x ethernet
  - eth0
    + AR8035 ethernet PHY (RGMII)
    + 10/100/1000 Mbps Ethernet
    + 802.3af POE
    + used as LAN interface
  - eth1
    + AR8031 ethernet PHY (RGMII)
    + 10/100/1000 Mbps Ethernet
    + 18-24V passive POE (mode B)
    + used as WAN interface
* 12-24V 1A DC
* internal antennas

This device support is based on the partially working stub from commit
53c474abbd ("ath79: add new OF only target for QCA MIPS silicon").

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to the
device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-01-23 18:48:54 +08:00
Tamas Balogh
57bea73f54 ath79: patch Asus RP-AC66 clean up and fix for sysupgrade image
- clean up leftovers regarding MAC configure in dts
- fix alphabetical order in caldata
- IMAGE_SIZE for sysupgrade image

Signed-off-by: Tamas Balogh <tamasbalogh@hotmail.com>
2022-01-23 18:45:44 +08:00
Denis Kalashnikov
537379543f ath79: add support for reset key on MikroTik RB912UAG-2HPnD
On MikroTik RB91x board series a reset key shares SoC gpio
line #15 with NAND ALE and NAND IO7. So we need a custom
gpio driver to manage this non-trivial connection schema.
Also rb91x-nand needs to have an ability to disable a polling
of the key while it works with NAND.

While we've been integrating rb91x-key into a firmware, we've
figured out that:
* In the gpio-latch driver we need to add a "cansleep" suffix to
several gpiolib calls,
* When gpio-latch and rb91x-nand fail to get a gpio and an error
is -EPROBE_DEFER, they shouldn't report about this, since this
actually is not an error and occurs when the gpio-latch probe
function is called before the rb91x-key probe.
We fix these related things here too.

Signed-off-by: Denis Kalashnikov <denis281089@gmail.com>
Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2022-01-23 18:45:28 +08:00
Felix Fietkau
af7775fd56 ramips: enable badblock table support on linksys ea7xxx devices
Use remapping only on the kernel partitions.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-01-20 12:26:58 +08:00
Felix Fietkau
830103ac07 kernel: mtk_bmt: add support for the bbt format used on mt7621
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>
2022-01-20 12:26:48 +08:00
Felix Fietkau
dc402b6f0f kernel: mtk_bmt: add abstraction for supporting other formats
Preparation for supporting remapping on MT7621

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-01-20 12:26:30 +08:00
Felix Fietkau
50aaa53dc0 ramips: mt7621_nand: fix writing upper half of fdm data
Since the loop iterates from 0-3, subtracting 4 from the shift
multiplier does not make any sense

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-01-20 12:26:19 +08:00
Felix Fietkau
1e6897f630 mediatek: rework and fix mt7622-rfb1-ubi support
Limit bmt remapping range to cover everything up to and including the kernel image,
use the rest of the flash area for ubi.
Fix partition table and sysupgrade support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-01-20 12:25:11 +08:00
Felix Fietkau
e74066afea kernel: mtk_bmt: remap blocks after reaching bitflip threshold
This ensures that blocks are remapped before data becomes corrupt

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-01-20 12:24:59 +08:00
Felix Fietkau
178a5df934 kernel: mtk_bmt: pass number of bitflips on read to the caller
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-01-20 12:24:47 +08:00
Felix Fietkau
ef440fb09e kernel: mtk_bmt: add support for limiting range of remapping
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>
2022-01-20 12:24:34 +08:00
Felix Fietkau
fba5fa33ce kernel: mtk_bmt: extend debug interface
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>
2022-01-20 12:24:22 +08:00
Felix Fietkau
2e13088301 kernel: mtk_bmt: fix remapping after read/write failure
Copy from the previous block in order to preserve existing data

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-01-20 12:23:41 +08:00
Felix Fietkau
a2054c5cf7 kernel: move mediatek BMT support patch to generic patches
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>
2022-01-20 12:23:25 +08:00
David Woodhouse
e54f3b0090 mediatek: mt7623: Enable PCIe bus 0 (and thus SATA) on U7623
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2022-01-17 12:29:05 +08:00
Michael Pratt
640f0d64d3 ramips: fix reboot for remaining 32 MB boards
The following devices have a Winbond W25Q256FV flash chip,
which does not have the RESET pin enabled by default,
and otherwise would require setting a bit in a status register.

Before moving to Linux 5.4, we had the patch:
0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch
which kept specific flash chips with explicit 3-byte and 4-byte address modes
to stay in 3-byte address mode while idle (after an erase or write)
by using a custom flag SPI_NOR_4B_READ_OP that was part of the patch.

this was obsoleted by the patch:
481-mtd-spi-nor-rework-broken-flash-reset-support.patch
which uses the newer upstream flag SNOR_F_BROKEN_RESET
for devices with a flash chip that cannot be hardware reset with RESET pin
and therefore must be left in 3-byte address mode when idle.

The new patch requires that the DTS of affected devices
have the property "broken-flash-reset", which was not yet added for most of them.

This commit adds the property for remaining affected devices in ramips target,
specifically because of the flash chip model.

However, it is possible that there are other devices
where the flash chip uses an explicit 4-byte address mode
and the RESET pin is not connected to the SOC on the board,
and those DTS would also need this property.

Ref: 22d982ea00 ("ramips: add support for switching between 3-byte and 4-byte addressing")
Ref: dfa521f129 ("generic: spi-nor: rework broken-flash-reset")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2022-01-17 12:27:24 +08:00
David Bauer
6101c84ca5 lantiq: increase fritz-cal-extract output limit
It was reported the caldata on the FritzBox 7430 is not only stored at
different offsets, but is also larger than the current output size
limit.

Increase the output file size limit (after deflate) by 1024 bytes.

Ref: FS#3604 ("ath9k firmware is 0 bytes on Fritzbox 7430")
Signed-off-by: David Bauer <mail@david-bauer.net>
2022-01-17 12:26:45 +08:00
David Bauer
0e9ff8e173 lantiq: flag FritzBox 7360 family buttons active-low
All buttons of the FritzBox 7360 family are active-low, not active-high.
Corrent the GPIO flag. This fixes release triggers upon push of a button.

Reported-by: Jan-Niklas Burfeind <git@aiyionpri.me>
Signed-off-by: David Bauer <mail@david-bauer.net>
2022-01-17 12:24:50 +08:00
David Bauer
26ace082ff lantiq: add additional caldata offsets
It was reported the AVM FritzBox 7430 has different offsets for the
caldata depending on the device.

Whether this is due to custom bad-block handling or up to the installed
bootloader-version is unknown.

Try both known caldata offsets like it is already done for the ipq40xx
NAND based models. Use the same approach for the FritzBox 7412. While it
is currently unknown, whether it is affected, applying the same logic
has no downsides.

Signed-off-by: David Bauer <mail@david-bauer.net>
2022-01-17 12:24:36 +08:00
SeongUk Moon
027bd914e2 ramips: add support for ipTIME A6004NS-M
ipTIME A6004NS-M is a 2.4/5GHz band AC1900 router, based on MediaTek MT7621A.

Specifications:
- SoC: MediaTek MT7621A (880MHz, Duel-Core)
- RAM: DDR3 256MB
- Flash: SPI NOR 16MB (Winbond W25Q128BV)
- WiFi: MediaTek MT7615E (2.4GHz, 5GHz)
- Ethernet: MediaTek MT7530 (WAN x1, LAN x4, SoC built-in Estimated)
- USB: USB 3.0 x1
- UART: [3.3V, TX, RX, GND] (57600 8N1)

Installation via web interface:
1. Flash initramfs image using OEM's Firmware Update page.
2. Connect to OpenWrt with an SSH connection to `192.168.1.1`.
3. Perform sysupgrade with sysupgrade image.

Revert to stock firmware:
1.  Flash stock firmware via OEM's Recovery mode

How to use OEM's Recovery mode:
1. Power on the device and connect the shell through UART.
2. Connect to the shell and press the `t` key on the keyboard.
3. Set fixed IP with  `192.168.0.2`  with subnet mask  `255.255.255.0`
4. Flash image via TFTP to  `192.168.0.1`

Additional Notes:
1. The higher the 5Ghz Frequency, the lower the stability. It is recommended to use less than 5.775Ghz.
2. If the 5Ghz frequency is too high, 5Ghz may not work.
3. A6ns-M use shared dtsi file of A6004NS-M. (reference: /mt7621_iptime_a6004ns-m.dtsi).

Signed-off-by: SeongUk Moon <antegral@antegral.net>
[convert CRLF to LF]
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2022-01-17 12:24:14 +08:00
Kyoungkyu Park
d8d432dafa ramips: add support for HUMAX E2
HUMAX E2 (also known as HUMAX QUANTUM E2) is a 2.4/5GHz band AC router,
based on MediaTek MT7620A.

Specifications:
- SoC: MT7620A
- RAM: DDR2 64MB
- Flash: SPI NOR 8MB (MXIC MX25L6405D)
- WiFi:
  - 2.4GHz: SoC internal
  - 5GHz: MT7610E
- Ethernet: 1x 10/100Mbps
  - Switch: SoC internal
- UART: J2 (57600 8N1)
  - pinout: [3V3] (RXD) (GND) (TXD)

Installation and Recovery via TFTP:
1. Connect ethernet cable between Router port and PC Ethernet port.
2. Set your computer to a static IP **192.168.1.1**
3. Turn the device off and wait a few seconds. Hold the WPS button on front
   of device and insert power.
4. Send a firmware image to **192.168.1.6** using TFTP.
   You can use any TFTP client. (tftp, curl, Tftpd64...)
5. Wait until Power LED stop flashing. **DO NOT TURN OFF DEVICE!**
   The device will be automatically rebooted.

Signed-off-by: Kyoungkyu Park <choryu.park@choryu.space>
2022-01-17 12:22:47 +08:00
Paul Spooren
5cfa72036a at91: drop /etc/config/firewall
The file can't be part of base files or the base-files and firewall
packages collide. Two packages must not provide the same config files
without having a defined CONFLICT since it would result in an
undeterministic config state depending on what package is installed
last.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-01-17 12:22:11 +08:00
AmadeusGhost
444d028352 rtl88x2bu: fixes ap mode not working
Remember to restart after completing any related settings.
2022-01-15 18:15:35 +08:00
AmadeusGhost
0c21781af3 autocore-arm: add mediatek/mt7622 support 2022-01-15 18:08:13 +08:00
Tianling Shen
659519f45e rt3883: disable build for rt-n56u
Signed-off-by: Tianling Shen <i@cnsztl.eu.org>
2022-01-14 12:58:18 +08:00
Koen Vandeputte
6bebb6c095 ath79: qca955x: remove double declaration
No need to mention the same value twice

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2022-01-14 12:28:40 +08:00
Koen Vandeputte
c3852bf135 ath79: rb912: remove unused property
ar934x does not define property 'rgmii-enabled' in the parsing code
remove it

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2022-01-14 12:28:30 +08:00
Koen Vandeputte
2180d912af ath79: rb912: fix pll init issues
It was reported that some rb912 boards (ar934x) have issues with some ethernet speeds.
Investigation shows that the board failed to adapt the ethernet pll values as shown here:

[    5.284359] ag71xx 19000000.eth: failed to read pll-handle property

added custom prints in code and triggering a link switch:

[   62.821446] Atheros AG71xx: fast reset
[   62.826442] Atheros AG71xx: update pll 2
[   62.830494] Atheros AG71xx: no pll regmap!

Comparison with another very similar board (rb922 - QCA955x) showed a missing
reference clock frequency in dts, which seems to cause a pll init issue.
Unfortunately, no errors are printed when this occurs.

Adding the frequency property fixes the pll init as it can be parsed now
by the ethernet driver.

[   55.861407] Atheros AG71xx: fast reset
[   55.866403] Atheros AG71xx: update pll 2
[   55.870462] Atheros AG71xx: ath79_set_pllval: regmap: 0x81548000, pll_reg: 0x2c, pll_val: 0x02000000

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2022-01-14 12:28:10 +08:00
David Woodhouse
2db1c56599 mediatek: mt7623: Re-enable ARM arch timer
CONFIG_ARM_ARCH_TIMER cannot be enabled in the config directly; it is only
selected by CONFIG_HAVE_ARM_ARCH_TIMER. We need to enable the latter in
our config.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Fixes: 4f1c5b01c1 ("mediatek: mt7623: backport musb, improve HDMI console")
2022-01-14 12:23:48 +08:00
David Woodhouse
0520290aa8 mediatek: mt7623: Disable power button reset for U7623-02 board
The Unielec U7623 doesn't have a physical power button; I think it's hard
wired so that it turns on automatically when power is applied (unlike the
Banana Pi R2 which is a pain).

So the 'reset on long press of power button' behaviour that we get when
we enable the PMIC keyboard driver is kind of unhelpful. Disable it.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Fixes: 0d3f3323a2 ("mediatek: mt7623: enable more hardware features")
2022-01-14 12:22:56 +08:00
Fritz D. Ansel
8bd2fb072e mediatek mt7622: fix 300mhz typo in dts
The lowest frequency should be 300MHz, since that is the label
assigned to the OPP in the mt7622.dtsi device tree, while there is one
missing zero in the actual value.

To be clear, the lowest frequency should be 300MHz instead of 30MHz.

As mentioned @dangowrt on the OpenWrt forum there is no benefit in
leaving 30MHz as the lowest frequency.

Signed-off-by: Jip de Beer <gpk6x3591g0l@opayq.com>
Signed-off-by: Fritz D. Ansel <fdansel@yandex.ru>
2022-01-14 12:21:46 +08:00
Sven Eckelmann
9fe5be7f08 ath79: Add support for OpenMesh OM5P-AC v1
Device specifications:
======================

* Qualcomm/Atheros QCA9558 ver 1 rev 0
* 720/600/240 MHz (CPU/DDR/AHB)
* 128 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2T2R 2.4 GHz Wi-Fi (11n)
* 2T2R 5 GHz Wi-Fi (11ac)
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* external h/w watchdog (enabled by default))
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* TI tmp423 (package kmod-hwmon-tmp421) for temperature monitoring
* 2x ethernet
  - eth0
    + AR8035 ethernet PHY (RGMII)
    + 10/100/1000 Mbps Ethernet
    + 802.3af POE
    + used as LAN interface
  - eth1
    + AR8035 ethernet PHY (SGMII)
    + 10/100/1000 Mbps Ethernet
    + 18-24V passive POE (mode B)
    + used as WAN interface
* 12-24V 1A DC
* internal antennas

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to the
device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-01-13 12:39:17 +08:00
Sven Eckelmann
668fbc8339 ath79: Add support for OpenMesh OM5P-AN
Device specifications:
======================

* Qualcomm/Atheros AR9344 rev 2
* 560/450/225 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 1T1R 2.4 GHz Wi-Fi
* 2T2R 5 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* TI tmp423 (package kmod-hwmon-tmp421) for temperature monitoring
* 2x ethernet
  - eth0
    + AR8035 ethernet PHY
    + 10/100/1000 Mbps Ethernet
    + 802.3af POE
    + used as LAN interface
  - eth1
    + 10/100 Mbps Ethernet
    + builtin switch port 1
    + 18-24V passive POE (mode B)
    + used as WAN interface
* 12-24V 1A DC
* internal antennas

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to the
device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2022-01-13 12:39:10 +08:00
Tamas Balogh
f75fb0058f ath79: add support for ASUS RP-AC66
Asus RP-AC66 Repeater

Hardware specifications:
Board: AP152
SoC: QCA9563
DRAM: 64MB DDR2
Flash: 25l128 16MB SPI-NOR
LAN/WAN: 1x1000M QCA8033
WiFi 5GHz: QCA9880
Clocks: CPU:775.000MHz, DDR:650.000MHz, AHB:258.333MHz, Ref:25.000MHz

MAC addresses as verified by OEM firmware:
use            address   source
Lan/Wan   *:24         art 0x1002 (label)
2G             *:24         art 0x1002
5G             *:26         art 0x5006

Installation:

Asus windows recovery tool:
 - install the Asus firmware restoration utility
 - unplug the router, hold the reset button while powering it on
 - release when the power LED flashes slowly
 - specify a static IP on your computer:
     IP address: 192.168.1.75
     Subnet mask 255.255.255.0
 - Start the Asus firmware restoration utility, specify the factory image
    and press upload
 - Do not power off the device after OpenWrt has booted until the LED flashing.

TFTP Recovery method:
 - set computer to a static ip, 192.168.1.75
 - connect computer to the LAN 1 port of the router
 - hold the reset button while powering on the router for a few seconds
 - send firmware image using a tftp client; i.e from linux:
 $ tftp
 tftp> binary
 tftp> connect 192.168.1.1
 tftp> put factory.bin
 tftp> quit

Signed-off-by: Tamas Balogh <tamasbalogh@hotmail.com>
2022-01-13 12:38:42 +08:00
Nick McKinney
be3375bf9d ramips: add support for Linksys EA6350 v4
Specifications:
- SoC: MT7621DAT (880MHz, 2 Cores)
- RAM: 128 MB
- Flash: 128 MB NAND
- Ethernet: 5x 1GiE MT7530
- WiFi: MT7603/MT7613
- USB: 1x USB 3.0

This is another MT7621 device, very similar to other Linksys EA7300
series devices.

Installation:

Upload the generated factory.bin image via the stock web firmware
updater.

Reverting to factory firmware:

Like other EA7300 devices, this device has an A/B router configuration
to prevent bricking.  Hard-resetting this device three (3) times will
put the device in failsafe (default) mode.  At this point, flash the
OEM image to itself and reboot.  This puts the router back into the 'B'
image and allows for a firmware upgrade.

Troubleshooting:

If the firmware will not boot, first restore the factory as described
above.  This will then allow the factory.bin update to be applied
properly.

Signed-off-by: Nick McKinney <nick@ndmckinney.net>
2022-01-13 12:38:02 +08:00
Liangkuan Yang
b8ec641fd3 ramips: add support for RAISECOM MSG1500 X.00
RAISECOM MSG1500 X.00 is a 2.4/5 GHz band 11ac (Wi-Fi 5) router.
Apart from the general model, there are two ISP customized models:
China Mobile and China Telecom.

Specifications:

- SoC: Mediatek MT7621AT
- RAM: 256MiB DDR3
- Flash: 128MiB NAND
- Ethernet: 5 * 10/100/1000Mbps: 4 * LAN + 1 * WAN
  - Switch: MediaTek MT7530 (SoC)
- WLAN: 1 * MT7615DN Dual-Band 2.4GHz 2T2R (400Mbps) 5GHz 2T2R (867Mbps)
- USB: 1 * USB 2.0 port
- Button: 1 * RESET button, 1 * WPS button, 1 * WIFI button
- LED: blue color: POWER, WAN, WPS, 2.4G, 5G, LAN1, LAN2, LAN3, LAN4, USB
- UART: 1 * serial port header (4-pin)
- Power: DC 12V, 1A
  - Switch: 1 * POWER switch

MAC addresses as verified by vendor firmware:

use   address             source
LAN   C8:XX:XX:3A:XX:E7   Config   "protest_lan_mac"  ascii  (label)
WAN   C8:XX:XX:3A:XX:EA   Config   "protest_wan_mac"  ascii
5G    C8:XX:XX:3A:XX:E8   Factory  "0x4"              hex
2.4G  CA:XX:XX:4A:XX:E8   [not on flash]

The increment of the 4th byte for the 2.4g address appears to vary.
Reported cases:

       5g                 2.4g         increment
 C8:XX:XX:90:XX:C3  CA:XX:XX:C0:XX:C3  0x30
 C8:XX:XX:3A:XX:08  CA:XX:XX:4A:XX:08  0x10
 C8:XX:XX:3A:XX:E8  CA:XX:XX:4A:XX:E8  0x10

Since increment is inconsistent and there is no obvious pattern
in swapping bytes, and the 2.4g address has local bit set anyway,
it seems safer to use the LAN address with flipped byte here in
order to prevent collisions between OpenWrt devices and OEM devices
for this interface. This way we at least use an address as base
that is definitely owned by the device at hand.

Notes:

1. The vendor firmware allows you to connect to the router by telnet.
   (known version 1.0.0 can open telnet.)
   There is no official binary firmware available.
   Backup the important partitions data:
   "Bootloader", "Config", "Factory", and "firmware".
   Note that with the vendor firmware the memory is detected only 128MiB
   and the last 512KiB in NAND flash is not used.

2. The POWER LED is default on after press POWER switch.
   The WAN and LAN1 - 4 LEDs are wired to ethernet switch.
   The WPS LED is controlled by MT7615DN's GPIO.
   Currently there is no proper way to configure it.

3. At the time of adding support the wireless config needs to be set up
   by editing the wireless config file:

 * Setting the country code is mandatory, otherwise the router loses
   connectivity at the next reboot. This is mandatory and can be done
   from luci. After setting the country code the router boots correctly.
   A reset with the reset button will fix the issue and the user has to
   reconfigure.

 * This is minor since the 5g interface does not come up online although
   it is not set as disabled. 2 options here:

   1- Either run the "wifi" command. Can be added from LuCI in system -
      startup - local startup and just add wifi above "exit 0".

   2- Or add the serialize option in the wireless config file as shown
      below. This one would work and bring both interfaces automatically
      at every boot:

      config wifi-device 'radio0'
          option serialize '1'

      config wifi-device 'radio1'
          option serialize '1'

Flash instructions using initramfs image:

1. Press POWER switch to power down if the router is running.

2. Connect PC to one of LAN ports, and set
   static IP address to "10.10.10.2", netmask to "255.255.255.0",
   and gateway to "10.10.10.1" manually on the PC.

3. Push and hold the WIFI button, and then power up the router.
   After about 10s (or you can call the recovery page, see "4" below)
   you can release the WIFI button.
   There is no clear indication when the router
   is entering or has entered into "RAISECOM Router Recovery Mode".

4. Call the recovery page for the router at "http://10.10.10.1".
   Keep an eye on the "WARNING!! tip" of the recovery page.
   Click "Choose File" to select initramfs image, then click "Upload".

5. If image is uploaded successfully, you will see the page display
   "Device is upgrading the firmware... %".
   Keep an eye on the "WARNING!! tip" of the recovery page.
   When the page display "Upgrade Successfully",
   you can set IP address as "automatically obtain".

6. After the rebooting (PC should automatically obtain an IP address),
   open the SSH connection, then download the sysupgrade image
   to the router and perform sysupgrade with it.

Flash back to vendor firmware:

 See "Flash instructions 1 - 5" above.
 The only difference is that in step 4
 you should select the vendor firmware which you backup.

Signed-off-by: Liangkuan Yang <ylk951207@gmail.com>
2022-01-13 12:37:38 +08:00
Rodrigo Araujo
8fdd31f22e ramips: add support for Joowin WR758AC V1 and V2
This commit adds support for Joowin (aka Comfast) WR758AC V1 and V2
devices.

Both have the same wall AP/repeater form factor and differ only
in the 5Ghz chipset (V1 has MT7662, V2 has MT7663).

OpenWrt developers forum page:
https://forum.openwrt.org/t/87355

Specifications:

 - CPU: MediaTek MT7628AN (580MHz)
 - Flash: 8MB
 - RAM: 64MB DDR2
 - 2.4 GHz: 802.11b/g/n (MT7603)
 - 5 GHz: 802.11ac (V1 has MT7662, V2 has MT7663)
 - Antennas: 4x external single band antennas
 - LAN: 1x 10/100M
 - LED: Wifi 3x blue. Programmable
 - Button: WPS

MAC addresses as verified by OEM firmware:

use address source
LAN *:83 factory 0xe000
2g *:85 factory 0x4
5g *:86 factory 0x8004

How to install:
1- Setup a TFTP server on a machine with IP address 192.168.1.10/24
2- Name the image as `firmware_auto.bin` and place it on the root of the
TFTP server
3- Connect the device via Ethernet, it should pick and flash the image

Signed-off-by: Rodrigo Araujo <araujo.rm@gmail.com>
2022-01-13 12:35:43 +08:00
AmadeusGhost
30f1f686ca luci-app-mtwifi: sync upstream source
From: https://github.com/MeIsReallyBa/MT7915_7621-MT_WIFI-Openwrt
2022-01-10 23:30:44 +08:00
AmadeusGhost
5f966b6afb mtwifi: add default config for mt7915d
Based on: https://github.com/MeIsReallyBa/MT7915_7621-MT_WIFI-Openwrt
2022-01-10 23:28:07 +08:00
skbeh
353ea181fc mt_wifi: update to 5.1.0.0 (#552) 2022-01-10 23:16:44 +08:00
Chen Minqiang
ff266e929e ath79: append/prepad okli kernel support
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit ce6fd478a3)
2022-01-09 16:10:34 +08:00
Christian Lamparter
5062047f8a kernel: provide kmod-fixed-phy as separate kmod
Almost all targets have the fixed-phy feature built into the kernel.
One big exception is x86. This caused a problem with the upcoming
LAN78xx usb driver. Hence this patch breaks out the fixed-phy from
of_mdio (which didn't include the .ko) and puts into a separate
module.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2022-01-09 11:23:42 +08:00
Marty Jones
b4f939099e linux-firmware: add new package r8152-firmware
Linux upstream commit 9370f2d05a
add load firmware file through request_firmware,this affect the
nanopi r2s and some USB adapters in kernel 5.10 with this error:
'r8152 4-1:1.0: unable to load firmware patch rtl_nic/rtl8153b-2.fw'
This patch split the USB NIC firmware files from r8169 firmware,
and adds r8152-firmware to r8152 driver.
Add kmod-usb-net-cdc-ncm to support RTL8156A and RTL8156B 2.5G ethernet
adapters supported since v5.13-rc1.
195aae321c

Signed-off-by: Marty Jones <mj8263788@gmail.com>
2022-01-09 11:23:13 +08:00
Tianling Shen
81d2e65e3d ath25: disable build for ubnt2/5
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-07 19:40:34 +08:00
Daniel Golle
6201d92c02 image: use portable filename in 'append-image-stage'
The 'append-image-stage' command doesn't work when setting the
EXTRA_IMAGE_NAME option of the ImageBuilder as in that case
DEVICE_IMG_PREFIX is modified and no longer matches the value it had in
buildroot. Choose a filename independent of DEVICE_IMG_PREFIX for
images staged using 'append-image-stage' to fix that.

Fixes: de4b29dab9 ("image: introduce 'append-image-stage' build command")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit c7a5a093ef)
2022-01-07 14:16:47 +08:00
Daniel Golle
cc4e4f6e28 mediatek: bpi-r64: fix sdcard.img.gz in ImageBuilder
Generating the sdcard.img.gz file requires the initramfs/recovery
image to be present. Use the newly introduced 'append-image-stage'
build command to fix the ImageBuilder for the BPi-R64.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 210916c9e6)
2022-01-07 14:16:34 +08:00
Daniel Golle
9674d0a66f image: introduce 'append-image-stage' build command
Similar to 'append-image' this new command appends an existing binary.
'append-image-stage' also makes a copy of that binary and keeps it in
$(STAGING_DIR_IMAGE). When called from within the ImageBuilder, this
copy is used instead of expecting the binary to be present.
This is useful for artifacts which include the initramfs/recovery image
which is usually not included in the ImageBuilder.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit de4b29dab9)
2022-01-07 14:16:23 +08:00
Daniel Golle
db3656aa70 image: fix append-image when building multiple profiles
In case CONFIG_TARGET_MULTI_PROFILE is set, IMG_PREFIX cannot be
expanded. Use DEVICE_IMG_PREFIX instead and make sure it's defined.

Fixes: 8f89b1ab0f ("image: add 'append-image' build command")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit b6c366efa8)
2022-01-07 14:15:31 +08:00
Daniel Golle
4726c988e5 image: add 'append-image' build command
Commit 7ce1d9ce09 ("build: artifacts add dependency for built images")
now makes sure that sysupgrade and initramfs images are available at
the stage that artifacts are created.
Allow making use of that with a new build command 'append-image' to
be used in artifacts.
See the next commit for an example.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 8f89b1ab0f)
2022-01-07 14:14:16 +08:00
Tianling Shen
9d6b3d5182 apm821xx: add missing export-dtb
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-07 14:07:28 +08:00
Tianling Shen
637ba71ee7 lantiq: disable build for tplink tdw8970/tdw8980
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-06 12:54:03 +08:00
Tianling Shen
f11d5108c7 mt76x8: disable build for rp-wd009
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-06 12:25:56 +08:00
Tianling Shen
8b8f2de65a mt7620: disable build for wn-ac1167gr
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-06 10:49:16 +08:00
Tianling Shen
bb06c315f3 ath79: disable build for nec_wg800hp
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-05 13:40:14 +08:00
Tianling Shen
0056ee65f2 ath79: migrate to use uimage
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-05 11:29:54 +08:00
AmadeusGhost
f873bd76fb libubox: remove outdated patches
Fixes: e9cabad ("Merge Official Source")
2022-01-04 23:56:40 +08:00
Hauke Mehrtens
2e9750242c sunxi: Use rtl8723bu-firmware instead of rtl8723bs-firmware
The firmware for the rtl8723bs chip is now included in the
rtl8723bu-firmware package.

Fixes: 397dfe4a97 ("linux-firmware: Update to version 20121216")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-01-04 23:50:21 +08:00
INAGAKI Hiroshi
3e1974b707 build: add elecom-product-header for ELECOM devices
A header used in ELECOM WRC-300GHBK2-I and WRC-1750GHBK2-I/C is also
used in ELECOM WRC-2533GHBK-I, so split the code to generate the header
and move it to image-commands.mk to use from ramips target.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Reviewed-by: Sungbo Eo <mans0n@gorani.run>
(cherry picked from commit 0071c7cd82)
2022-01-04 14:19:37 +08:00
Tianling Shen
e9cabadf7c Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-03 13:54:53 +08:00
Tianling Shen
f2be5aa53c kernel: refresh kernel 5.4 patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-12-28 14:26:58 +08:00
zheshifandian
12dce29771 ipq806x: refresh kernel patch 2021-12-28 13:10:50 +08:00
Sungbo Eo
e975c7e8eb ramips: mt7620: tidy up 02_network
* fix alphabetic sorting
* consolidate duplicate cases

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-12-26 23:56:19 +08:00
Pawel Dembicki
fe00469d6d ramips: mt7620: use OKLI loader with Jboot devices
Jboot devices have problem with >2MB kernelsize. The only way to avoid
this problem is use small loader.

This patch switch all mt7620 Jboot devices to lzma OKLI loader.

Suggested-by: Szabolcs Hubai <szab.hu@gmail.com>
Co-authored-by: Michael Pratt <mcpratt@pm.me>
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2021-12-26 23:53:52 +08:00
Kyoungkyu Park
f34f55d4e1 ramips: add support for HUMAX E10
HUMAX E10 (also known as HUMAX QUANTUM E10) is a 2.4/5GHz band AC router,
based on MediaTek MT7621A.

Specifications:
- SoC: MT7621A
- RAM: DDR3 128MB
- Flash: SPI NOR 16MB (MXIC MX25L12805D)
- WiFi:
  - 2.4GHz: MT7615
  - 5GHz: MT7615
- Ethernet: 2x 10/100/1000Mbps
  - Switch: SoC internal
- USB: 1x USB 2.0 Type-A
- UART: J1 (57600 8N1)
  - pinout: [3V3] (RXD) (GND) (TXD)

Installation via web interface:
- Flash **factory** image through the stock web interface.

Recovery procedure:
1. Connect ethernet cable between Router **LAN** port and PC Ethernet port.
2. Set your computer to a static IP **192.168.1.1**
3. Turn the device off and wait a few seconds. Hold the WPS button on front
   of device and insert power.
4. Send a firmware image to **192.168.1.6** using TFTP.
   You can use any TFTP client. (tftp, curl, Tftpd64...)
- It can accept both images which is
  HUMAX stock firmware dump (0x70000-0x1000000) image
  and OpenWRT **sysupgrade** image.

Signed-off-by: Kyoungkyu Park <choryu.park@choryu.space>
[remove trailing whitespace]
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-12-26 23:53:22 +08:00
Stijn Tintel
647ab42ab8 qoriq: add support for WatchGuard Firebox M300
This device is based on NXP's QorIQ T2081QDS board, with a quad-core
dual-threaded 1.5 GHz ppc64 CPU and 4GB ECC RAM. The board has 5
ethernet interfaces, of which 3 are connected to the ethernet ports on
the front panel. The other 2 are internally connected to a Marvell
88E6171 switch; the other 5 ports of this switch are also connected to
the ethernet ports on the front panel.

Installation: write the sdcard image to an SD card. Stock U-Boot will
not boot, wait for it to fail then run these commands:

setenv OpenWrt_fdt image-watchguard-firebox-m300.dtb
setenv OpenWrt_kernel watchguard_firebox-m300-kernel.bin
setenv wgBootSysA 'setenv bootargs root=/dev/mmcblk0p2 rw rootdelay=2 console=$consoledev,$baudrate fsl_dpaa_fman.fsl_fm_max_frm=1530; ext2load mmc 0:1 $fdtaddr $OpenWrt_fdt; ext2load mmc 0:1 $loadaddr $OpenWrt_kernel; bootm $loadaddr - $fdtaddr'
saveenv
reset

The default U-Boot boot entry will now boot OpenWrt from the SD card.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-12-24 11:28:40 +08:00
Stijn Tintel
d6092ec87a qoriq: new target
Add a new target named "qoriq", that will support boards using PowerPC
processors from NXP's QorIQ brand.

This doesn't actually add support for any board yet, so that
installation instructions can go in the commit message of the commit
that adds actual support for a board.

Using CONFIG_E6500_CPU here due to the kernel using -mcpu=powerpc64
rather than -mcpu=e5500 when selecting CONFIG_E5500_CPU. The only
difference between e5500 and e6500 is AltiVec support, and the kernel
checks for it at runtime. Musl will only check at runtime if AltiVec
support is disabled at compile-time, so we need to use e5500 in CPU_TYPE
to avoid SIGILL.

Math emulation (CONFIG_MATH_EMULATION_HW_UNIMPLEMENTED) is required, as
neither e5500 nor e6500 implement fsqrt nor fsqrts, and musl hardcodes
sqrt and sqrtf to use these ASM instructions on PowerPC64.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Reviewed-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-12-24 11:28:22 +08:00
Stijn Tintel
8184c6f203 libunwind: add ppc64 support
Backport an upstream patch to make libunwind build on ppc64, and add
powerpc64 to the dependencies.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-12-24 11:28:11 +08:00
Stijn Tintel
f2769816bc nettle: disable assembler on ppc64
As of version 3.7, Nettle added PowerPC64 assembly for several
algorithms. Unfortunately, they cause build to fail due to ABI mismatch:

gcm-hash.o: ABI version 1 is not compatible with ABI version 2 output

Disable assembler when ppc64 and musl are used for now.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-12-24 11:27:45 +08:00
Stijn Tintel
d086284a46 openssl: add ppc64 support
Backport an upstream patch that adds support for ELFv2 ABI on big endian
ppc64. As musl only supports ELFv2 ABI on ppc64 regardless of
endianness, this is required to be able to build OpenSSL for ppc64be.

Modify our targets patch to add linux-powerpc64-openwrt, which will use
the linux64v2 perlasm scheme. This will probably break the combination
ppc64 with glibc, but as we really only want to support musl, this
shouldn't be a problem.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-12-24 11:27:30 +08:00
Stijn Tintel
48debfcb5d toolchain/gcc: use ELFv2 ABI on ppc64 with musl
At configuration time, gcc assumes that ppc64be targets use the ELFv1
ABI, and ppc64le targets use the ELFv2 ABI. However, musl libc does not
support the ELFv1 ABI on ppc64 at all, regardless of the endianness.

Therefore, when building for a ppc64 arch and with musl libc, instruct
gcc to use the ELFv2 ABI.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93157 for more info.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Reviewed-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-12-24 11:26:43 +08:00
Stijn Tintel
d8f481e5ec build: add e5500 CPU_TYPE
This CPU type is compatible with NXP's PPC based QorIQ processors, and
will be used by the upcoming new qoriq target.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Reviewed-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-12-24 11:26:30 +08:00
Piotr Dymacz
b5407d1216 imx: update subtargets default kernel configs for 5.10
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:32:14 +08:00
Piotr Dymacz
d089d99383 imx: introduce 'cortexa7' subtarget
This adds some essential files required by new 'cortexa7' subtarget,
dedicated for Cortex-A7 based NXP i.MX series. For now, the kernel
config-default focuses only on the i.MX 6UL family, as the following
changeset will introduce support for i.MX 6ULL based device. Support
for more platforms (e.g. i.MX 7) might be enabled later, while adding
more devices.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:31:36 +08:00
Piotr Dymacz
27ad83d51b uboot-imx: set BUILD_SUBTARGET to 'cortexa9'
All currently supported devices belong to the imx/cortexa9 subtarget.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:31:14 +08:00
Piotr Dymacz
38a0dc9801 uboot-envtools: move imx to imx_cortexa9
Subtarget-specific files under 'uboot-envtools' package are supported
since 6f3a05ebb0 ("uboot-envtools: support uci-default config also per
subtargets").

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:29:54 +08:00
Piotr Dymacz
548fbc5cfc imx: split into arch-specific subtargets
Modern NXP i.MX series includes several different families, based on
single- or multi-core Arm Cortex-A CPUs. To be able to support more
families within a single target, we split the 'imx' in arch-specific
subtargets, starting with 'cortexa9' for the Cortex-A9 based i.MX 6,
already supported by the original 'imx6' target.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:29:33 +08:00
Piotr Dymacz
5757352d2f uboot-imx6: rename to 'uboot-imx'
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:27:27 +08:00
Piotr Dymacz
4ee480c7c6 uboot-envtools: rename 'imx6' to 'imx'
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:27:01 +08:00
Piotr Dymacz
4cc04797d1 kobs-ng: update dependencies after 'imx6' -> 'imx' rename
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:26:10 +08:00
Piotr Dymacz
b38df8d195 kernel: update dependencies after 'imx6' -> 'imx' rename
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:25:55 +08:00
Piotr Dymacz
7b412097fb imx6: rename target to 'imx'
This is first step in migrating to a generic i.MX target which in the
next steps will also get divided into arch-specific subtargets.

In the result, this will make it possible to support, within a single
target, also other modern NXP i.MX families, like the i.MX 7, i.MX 8
or recently introduced i.MX 9.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:24:54 +08:00
Piotr Dymacz
01c105c01e imx6: refresh and update target kernel configs
This is a minor extension of the commit 26ae69fd03 ("imx6: refresh
kernel config with 5.10 symbols"), with correct and full disable of
the Arm Cortex-A7 based i.MX 6UL and 6UL{L,Z} families support and
re-enable of the Cortex-A9 based i.MX 6L{S,X}.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:24:35 +08:00
Piotr Dymacz
a93944027e imx6: image: fix Gateworks Ventana boot script filename
U-Boot for the Gateworks Ventana includes filename of the boot script in
the default/embedded environment (see 'include/configs/gw_ventana.h' in
the U-Boot sources).

This restores the old boot script filename ('6x_bootscript-ventana'),
making Ventana boards boot again.

Fixes: 8dba71dd33 ("imx6: image: drop BOOT_SCRIPT and fix DEVICE_NAME")
Reported-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:24:22 +08:00
Piotr Dymacz
c691478f12 ath79: add support for Netgear R6100
Netgear R6100 is a dual-band Wi-Fi 5 (AC1200) router based on Qualcomm
Atheros (AR9344 + QCA9882) platform. Support for this device was first
introduced in 15f6f67d18 (ar71xx). FCC ID: PY312400225.

Specifications:

- Atheros AR9344 (560 MHz)
- 128 MB of RAM (DDR2)
- 128 MB of flash (parallel NAND)
- 2T2R 2.4 GHz Wi-Fi (AR9344)
- 2T2R 5 GHz Wi-Fi (QCA9882)
- 5x 10/100 Mbps Ethernet (AR9344)
- 4x internal antenna
- 1x USB 2.0 (GPIO-controlled power)
- 6x LED, 3x button (reset, Wi-Fi, WPS)
- UART (4-pin, 2.54 mm pitch) header on PCB
- 1x mechanical power switch
- DC jack for main power input (12 V)

WARNING: sysupgrade from older stable releases is not possible, fresh
installation (via vendor's GUI or TFTP based recovery) is required.
Reason for that is increased kernel partition size.

Installation:

Use the 'factory' image under vendor's GUI or via TFTP U-Boot recovery.
You can use the 'nmrpflash' tool at a boot time, before kernel is loaded
or start it manually by pressing the 'reset' button for ~20 seconds from
powering up the device (U-Boot will start TFTP server on 192.168.1.1,
use TFTP client to send the image).

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-12-22 11:24:08 +08:00
Stijn Tintel
796a97976a kernel: drop obsolete kmod-video-core dependencies
These dependencies do not exist in any of the supported kernel versions.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-12-21 23:58:38 +08:00
Stijn Tintel
6c57856087 kernel: drop obsolete symbols from kmod-video-core
These symbols don't exist in any of the supported kernel versions.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-12-21 23:58:26 +08:00
Daniel Golle
0a4ae57f34 mediatek: mt7623: bpi-r2: add ethernet alias to device tree
Add ethernet0 alias in device tree to make U-Boot inherit the Ethernet
mac address (set via environment variable 'ethaddr') down to Linux.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-12-21 23:57:07 +08:00
Rafał Miłecki
981b6236a4 bcm4908: add uboot-envtools to default packages
It's required by sysupgrade to access UBI metadata partitions.

Fixes: 5f05795aa7 ("bcm4908: sysupgrade: add pkgtb format support")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-21 23:55:17 +08:00
Rafał Miłecki
78da5347c1 kernel: backport support for multicolor & RGB LEDs to 5.4
This is a requirement for backporting DT files defining such LEDs.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-21 23:55:02 +08:00
John Audia
80893208a4 kernel: bump 5.4 to 5.4.162
All patches automatically rebased.

Build system: x86_64
Build-tested: ramips/mt7621*

*I am hit with the binutils 2.37 bug so I had to revert 7f1edbd412
in order to downgrade to 2.35.1

Signed-off-by: John Audia <graysky@archlinux.us>
2021-12-20 11:16:52 +08:00
John Audia
87e5fa00d3 kernel: bump 5.4 to 5.4.161
Removed upstreamed:
    ath79/patches-5.4/921-serial-core-add-support-for-boot-console-with-arbitr.patch[1]

Manually rebased:
    layerscape/patches-5.4/804-crypto-0016-MLKU-114-1-crypto-caam-reduce-page-0-regs-access-to-.patch
    octeontx/patches-5.4/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch

All other patches automatically rebased.

1. Private email exchange with patch author, Hauke Mehrtens

Signed-off-by: John Audia <graysky@archlinux.us>
2021-12-20 11:16:27 +08:00
John Audia
aa5aa86599 kernel: bump 5.10 to 5.10.82
Removed upstreamed:
    bcm53xx/patches-5.10/033-v5.16-0014-ARM-dts-NSP-Fix-mpcore-mmc-node-names.patch

Manually rebased:
    ipq806x/patches-5.10/086-ipq8064-fix-duplicate-node.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, ipq806x/R7800
Run-tested: bcm2711/RPi4B, ipq806x/R7800

Signed-off-by: John Audia <graysky@archlinux.us>
2021-12-20 11:16:13 +08:00
John Audia
a5bfc7d67a kernel: bump 5.10 to 5.10.81
Manually rebased:
    octeontx/patches-5.10/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, ipq806x/R7800
Run-tested: bcm2711/RPi4B, ipq806x/R7800

Signed-off-by: John Audia <graysky@archlinux.us>
2021-12-20 11:15:59 +08:00
John Audia
4e5a0a3705 kernel: bump 5.4 to 5.4.159
Manually rebased:
    generic-backport/850-v5.13-usb-ehci-add-spurious-flag-to-disable-overcurrent-ch.patch

All other patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
2021-12-20 11:15:46 +08:00
SuLingGG
f54382148f treewide: add missing kernel config for 5.10 2021-12-18 00:25:49 +08:00
Sander Vanheule
e963e6c4f5 realtek: update watchdog timer patch
The Realtek Otto watchdog timer driver was accepted upstream, and is
queued for 5.17. Update the patch's file name, and replace by the final
version.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2021-12-17 00:19:57 +08:00
Sander Vanheule
d3744f6ec7 realtek: netgear-gigabit: Add gpio-restart node
The Netgear GS110TPP v1 switch cannot reliably perform cold reboots
using the system's internal reset controller.

On this device, and the other supported Netgear switches, internal GPIO
line 13 is connected to the system's hard reset logic. Expose this GPIO
on all systems to ensure restarts work properly.

Cc: Raylynn Knight <rayknight@me.com>
Cc: Michael Mohr <akihana@gmail.com>
Cc: Stijn Segers <foss@volatilesystems.org>
Cc: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: Bjørn Mork <bjorn@mork.no>
2021-12-17 00:19:03 +08:00
Sander Vanheule
34b7d116ac realtek: Enable gpio-restart driver
Add the gpio-restart driver to the realtek build. This way devices,
which cannot reliably perform resets using the SoC's internal reset
logic, can use a GPIO line to drive the SoC's hard reset input.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2021-12-17 00:18:53 +08:00
Sander Vanheule
1dfb381b4a realtek: add missing GPIO irq properties
The internal GPIO controller on RTL838x is also an IRQ controller, which
requires the 'interrupt-controller' and '#interrupts-cells' properties
to be present in the device tree.

Reported-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2021-12-17 00:18:44 +08:00
Sander Vanheule
ab23a5fa77 realtek: Remove _machine_restart and _machine_halt
By dropping _machine_restart, users can provide more reliable or
device-specific restart modes.

_machine_halt was already removed in commit f4b687d1f0 ("realtek: use
kernel defined halt"), but quietly reintroduced in commit 8faffa00cb
("realtek: add support for the RTL9300 timer"). Let's remove it again.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: Stijn Segers <foss@volatilesystems.org>
Tested-by: Paul Fertser <fercerpav@gmail.com>
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-12-17 00:14:28 +08:00
Sander Vanheule
4a34df3c4a realtek: Add and enable watchdog node
Add and enable the Realtek Otto WDT peripheral found on these SoCs.

Default all devices to use standard (cold) reboot and "soc" resets.

Devices that require the PLL value fixup before restarting, should pick
the "cpu" or "software" reset mode. These devices also need to provide a
custom reboot mode, by adding the reboot argument to the kernel command
line:

    WDT reset mode  | kernel reboot mode
    ----------------+---------------------------------------
    soc             | reboot=cold (default if not specified)
    cpu             | reboot=warm
    software        | reboot=software

Preferrably, these devices should use an alternative restart method like
gpio-restart to provide reliable restarts.

Note that watchdog restarts are not yet exposed, since the
_machine_restart override is still present.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: Stijn Segers <foss@volatilesystems.org>
Tested-by: Paul Fertser <fercerpav@gmail.com>
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-12-17 00:14:14 +08:00
Sander Vanheule
d2920bdc39 realtek: Backport Realtek Otto WDT driver
Add patch submitted upstream to linux-watchdog and replace the MIPS
architecture symbols. Requires one extra patch for the DIV_ROUND_*
macros, which have moved to a different header since 5.10.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: Stijn Segers <foss@volatilesystems.org>
Tested-by: Paul Fertser <fercerpav@gmail.com>
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-12-17 00:12:40 +08:00
Sander Vanheule
8864bc790a realtek: Add Lexra bus clock
The CPU peripherals on RTL83xx/RTL930x are connected to the CPU via the
Lexra bus. This bus can provide a clock signal to these peripherals, but
no clock driver is currently available. Instead, use a fixed-clock to
provide the clock frequency, and update the dependent peripherals.

Lexra bus clock frequencies:
- RTL838x: 200MHz
- RTL839x: 200MHz
- RTL930x: 175MHz

Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: Stijn Segers <foss@volatilesystems.org>
Tested-by: Paul Fertser <fercerpav@gmail.com>
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-12-17 00:12:11 +08:00
Sander Vanheule
74b9d0da17 realtek: Consolidate bootargs
All current devices use identical bootargs, so let's move that to the
common devicetree includes.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: Stijn Segers <foss@volatilesystems.org>
Tested-by: Paul Fertser <fercerpav@gmail.com>
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-12-17 00:11:58 +08:00
Sander Vanheule
96969f4bc0 realtek: reset both ethernet NIC and queues
Recent versions of Realtek's SDK reset both the ethernet NIC and queues
(SW_NIC_RST and SW_Q_RST bits) when initialising the hardware.

Furthermore, when issuing a CPU reset on the Zyxel GS1900-8 (not
supported by any current driver), the networking part of the SoC is not
reset. This leads to unresponsive network after the restart. By
resetting both the ethernet NIC and queues, networking always comes up
reliably.

Suggested-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-12-17 00:11:18 +08:00
Rafał Miłecki
66df7e3fc3 bcm4908: add fdt-utils to default packages
It's required by sysupgrade.

Fixes: 5f05795aa7 ("bcm4908: sysupgrade: add pkgtb format support")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-16 00:05:54 +08:00
Rafał Miłecki
598882fc8e bcm53xx: sysupgrade: fix support for Luxul's legacy firmware format
Fixes: 80041dea70 ("bcm53xx: sysupgrade: refactor handling different firmware formats")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-16 00:05:39 +08:00
Rafał Miłecki
6cdd7d4ce7 otrx: update to the latest master
56e8e19 otrx: support TRX from stdin when extracting
a37ccaf otrx: support unsorted partitions offsets
1fa145e otrx: extract shared code opening & parsing TRX format
4ecefda otrx: allow validating TRX from stdin
cf01e69 otrx: avoid unneeded fseek() when calculating CRC32

Fixes: 80041dea70 ("bcm53xx: sysupgrade: refactor handling different firmware formats")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-16 00:05:06 +08:00
Rafał Miłecki
95b7bee778 bcm4908: sysupgrade: add pkgtb format support
BCM4908 devices with U-Boot use pkgtb firmware format. It's based on
U-Boot's FIT: DTB with configurations, images & embedded data.

This format contains bootfs, rootfs and optionally a first stage U-Boot
loader. Contained images need to be extracted & flashed.

Broadcom used two sets of firmwares: main & backup. It uses UBI volumes
"metadata1" & "metadata2" for storing U-Boot env variables with info
about flashed images.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-16 00:03:16 +08:00
Rafał Miłecki
24d014da17 dtc: support printing binary data with fdtget
It's needed for extracting binary images.

Cc: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-16 00:02:53 +08:00
Rafał Miłecki
7da1d72f86 dtc: import package for dtc & fdt from packages feed
fdt* utils are needed by targets that use U-Boot FIT images for
sysupgrade. It includes all recent BCM4908 SoC routers as Broadcom
switched from CFE to U-Boot.

fdtget is required for extracting images (bootfs & rootfs) from
Broadcom's ITB. Extracted images can be then flashed to UBI volumes.

sysupgrade is core functionality so it needs dtc as part of base code
base.

Cc: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-16 00:02:38 +08:00
Sungbo Eo
13adecdabb ramips: mt76x8: tidy up 02_network
* fix alphabetic sorting
* consolidate duplicate cases

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-12-15 23:58:45 +08:00
Sungbo Eo
32f719e810 build: image: improve zip build recipe
* clean before build
* specify executable path
* allow adding extra options for zip
* use basename of $@

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-12-15 23:58:27 +08:00
Daniel Golle
b68db06a99 image: fix CONFIG_EXTERNAL_CPIO handling
CONFIG_EXTERNAL_CPIO is a string variable, hence testing for 'y'
doesn't make much sense here.

Fixes: 330bd380e8 ("image: allow building FIT and uImage with ramdisk")
Reported-by: Huangbin Zhan <zhanhb88@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-12-15 23:55:27 +08:00
Rafał Miłecki
780ef26191 bcm53xx: fix platform clocks & USB 2.0 PHY
This fixes WARNing, missing clocks and
[   10.422481] bcm_ns_usb2 1800c164.usb2-phy: Clock not defined

Fixes: 5901917b93 ("bcm53xx: use more upsteam DT patches from 5.16 / 5.17")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-14 00:14:50 +08:00
Rafał Miłecki
091d1f48bf bcm53xx: use new USB 2.0 PHY binding
This fixes:
[   10.440495] bcm_ns_usb2 1800c000.usb2-phy: can't request region for resource [mem 0x1800c000-0x1800cfff]
[   10.450039] bcm_ns_usb2 1800c000.usb2-phy: Failed to map DMU regs
[   10.456183] bcm_ns_usb2: probe of 1800c000.usb2-phy failed with error -16
caused by conflict in allocating resources.

Fixes: f55f1dbaad ("bcm53xx: switch to the kernel 5.10")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-14 00:14:35 +08:00
Rafał Miłecki
ada64b91b5 bcm53xx: specify switch ports on TP-LINK devices
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-14 00:14:00 +08:00
Rafał Miłecki
5c8f0dc919 bcm4908: build chk image for Netgear RAXE500
Fixes: 63ba3eaccd ("bcm4908: start working on Netgear RAXE500 image")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-14 00:12:45 +08:00
Rafał Miłecki
51974de59c bcm4908: start working on Netgear RAXE500 image
bootfs still needs more work before it's ready.

For some unknown reason model RAXE500 uses board id RAX220.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-14 00:12:29 +08:00
Rafał Miłecki
76f942f0ee bcm4908: enable MTD_CMDLINE_PARTS
It's needed to support devices with U-Boot. That bootloader passes MTD
layout using cmdline.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-14 00:12:00 +08:00
Rafał Miłecki
8a1adef257 bcm4908: continue work on images for U-Boot based devices
It still isn't ready though - more data needs to be added to the bootfs.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-14 00:11:32 +08:00
Rafał Miłecki
e3daa9f973 bcm4908: backport upstream DT commits
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-14 00:10:51 +08:00
Rafał Miłecki
248d44d094 bcm53xx: use more upsteam DT patches from 5.16 / 5.17
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-14 00:08:19 +08:00
Joel Linn
2f17caedfc lantiq: fixed wifi support for AVM FRITZ!Box 7430
adds the correct offset for the calibration data.
The values are according to the OpenWrt Forum Thread:
"Fritzbox 7430 and wifi".

Link: <https://forum.openwrt.org/t/fritzbox-7430-and-wifi/86944>
Reported-by: RENErica
Signed-off-by: Joel Linn <jl@conductive.de>
[changed commit message]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-12-13 00:02:19 +08:00
Ryan Mounce
67e64ad4f7 ath79: add support for WD My Net N600
SoC: AR9344
RAM: 128MB
Flash: 16MiB SPI NOR
5GHz WiFi: AR9382 PCIe 2x2:2 802.11n
2.4GHz WiFi: AR9344 (SoC) AHB 2x2:2 802.11n

5x Fast ethernet via SoC switch (green LEDs)
1x USB 2.0
4x front LEDs from SoC GPIO
1x front WPS button from SoC GPIO
1x bottom reset button from SoC GPIO

UART header JP1, 115200 no parity 1 stop
TX
GND
VCC
(N/P)
RX

Flash factory image via "emergency room" recovery:
- Configure your computer with a static IP 192.168.1.123/24
- Connect to LAN port on the N600 switch
- Hold reset putton
- Power on, holding reset until the power LED blinks slowly
- Visit http://192.168.1.1/ and upload OpenWrt factory image
- Wait at least 5 minutes for flashing, reboot and key generation
- Visit http://192.168.1.1/ (OpenWrt LuCI) and upload OpenWrt sysupgrade image

Signed-off-by: Ryan Mounce <ryan@mounce.com.au>
[dt leds preparations]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-12-13 00:01:42 +08:00
Olivier Valentin
50715dcdf5 ath79: add support for jjPlus JWAP230
The jjPlus JWAP230 is an access point board built around the QCA9558,
with built-in 2.4GHz 3x3 N WiFi (28dBm). It can be expanded with 2
mini-PCIe boards, and has an USB2 root port.

Specifications:
- SOC: Qualcomm Atheros QCA9558
- CPU: 720MHz
- H/W switch: QCA8327 rev 2
- Flash: 16 MiB SPI NOR (en25qh128)
- RAM: 128 MiB DDR2
- WLAN: AR9550 built-in SoC bgn 3T3R (ath9k)
- PCI: 2x mini-PCIe (optional 5V)
- LEDs: 6x LEDs (3 are currently available)
- Button: 1x Reset (not yet defined)
- USB2:
  - 1x Type A root port
  - 1x combined mini-PCIe
- Ethernet:
  - 2x 10/100/1000 (1x PoE 802.3af (36-57 V))

Notes:
 The device used to be supported in the ar71xx target.
 For upgrades: Please use "sysupgrade --force -n <image>".
 This will restore the device back to OpenWrt defaults!

MAC address assignment:
    use   source
    LAN   art 0x0
    WAN   art 0x6
    WLAN  art 0x1002 (as part of the calibration data)

Flash instructions:
- install from u-boot with tftp (requires serial access)
  > setenv ipaddr a.b.c.d
  > setenv serverip e.f.g.h
  > tftp 0x80060000 \
      openwrt-ath79-generic-jjplus_jwap230-squashfs-sysupgrade.bin
  > erase 0x9f050000 +${filesize}
  > cp.b $fileaddr 0x9f050000 $filesize
  > setenv bootcmd bootm 0x9f050000
  > saveenv

Signed-off-by: Olivier Valentin <valentio@free.fr>
[Added DT-Leds (based on ar71xx), Added more notes about sysupgrade,
fixed "qca9550" to match SoC in commit and dts file name]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-12-13 00:01:12 +08:00
Christian Lamparter
1d0f890e78 ath79: fix various dts warnings
ar9344_openmesh_mr600-v1.dts:40.10-44.5: Warning (gpios_property):
/leds-ath9k/wifi2g: Missing property '#gpio-cells' in node
/ahb/pcie-controller@180c0000/wifi@0,0 or bad phandle
=> added gpio-controller + #gpio-cells

qca955x_zyxel_nbg6x16.dtsi:121.3-13: Warning (reg_format):
/ahb/usb@1b000000/port@1:reg: property has invalid length (4 bytes)
(#address-cells == 2, #size-cells == 1)
../dts/qca955x_zyxel_nbg6x16.dtsi:131.3-13: Warning (reg_format):
/ahb/usb@1b400000/port@1:reg: property has invalid length (4 bytes)
(#address-cells == 2, #size-cells == 1)
qca955x_zyxel_nbg6x16.dtsi:120.20-123.4: Warning (avoid_default_addr_size):
/ahb/usb@1b000000/port@1: Relying on default #address-cells value
=> ath79's usb-nodes are missing the address- and size-cells properties.
These are needed for usb led trigger support.

ar7242_ubnt_sw.dtsi:54.4-14: Warning (reg_format): /gpio_spi/gpio_spi@0:reg:
property has invalid length (4 bytes) (#address-cells == 1, #size-cells == 1)
=> the #address-cells and #size-cells had to be nudged.

qca9531_dlink_dch-g020-a1.dts:19.6-39.4: Warning (i2c_bus_bridge):
/i2c: incorrect #size-cells for I2C bus
=> #size-cells = <0>;

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-12-13 00:01:05 +08:00
Felix Fietkau
2c38513f03 kernel: fix RCU issue in xt_FLOWOFFLOAD patch
cond_resched() may not be called in a rcu-locked section

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-12-12 23:57:07 +08:00
Christian Lamparter
1df289a1a4 x86: remove old lzma tuning patch
Chen Minqiang reported in his GitHub PR #4733 that:
With CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA=y option set,
the popular x86/amd64 target's initramfs-kernel failed to boot.

The cause for this boot failure is that the LZMA compression
uses a the first bytes to encode the compression parameters.
It does not have a fixed magic. Yes, this only works if the
the existing lzma options in the upstream are not changed.

This patch does away with OpenWrt special LZMA options tuning
since it is rather unlikely that upstream will improve the
compression algorithm detection after all this time. Even
though, the tuning produced a smaller initramfs (~1.1% in a
spot check).

Link: <https://github.com/openwrt/openwrt/pull/4733>
Reported-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-12-12 23:56:28 +08:00
Stan Grishin
8b6e6b0cb4 x86: add/improve support for Sophos SG/XG products
* Better product ID for Sophos SG/XG-105 models
* Add support for Sophos SG/XG-135 r1, r2 with/without wireless

Signed-off-by: Stan Grishin <stangri@melmac.ca>
[Changed subject to x86 - probably eaten somewhere, the PR had it]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-12-12 23:55:59 +08:00
Josef Schlehofer
60a5e7ff52 kernel: add more disabled config options
NET_DSA_MSCC_FELIX:

Marvell 88E6xxx Ethernet switch fabric support (NET_DSA_MV88E6XXX) [N/m/y/?] n
Ocelot / Felix Ethernet switch support (NET_DSA_MSCC_FELIX) [N/m/y/?] (NEW)
Error in reading or end of file.

make[6]: *** [scripts/kconfig/Makefile:71: syncconfig] Error 1
make[5]: *** [Makefile:603: syncconfig] Error 2

IR_IMON_RAW:
    SoundGraph iMON Receiver (early raw IR models) (IR_IMON_RAW) [N/m/?] (NEW)

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
[squashed with "kernel: add missing IR_IMON_RAW config symbol"]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-12-12 23:55:11 +08:00
Rui Salvaterra
0811975706 kernel: bump 5.10 to 5.10.80
Deleted (upstreamed):
ath79/patches-5.10/921-serial-core-add-support-for-boot-console-with-arbitr.patch [1]
bcm53xx/patches-5.10/033-v5.15-0012-ARM-dts-BCM5301X-Fix-memory-nodes-names.patch [2]
lantiq/patches-5.10/0016-mtd-rawnand-xway-Keep-the-driver-compatible-with-on-.patch [3]
lantiq/patches-5.10/0110-MIPS-lantiq-dma-add-small-delay-after-reset.patch [4]
lantiq/patches-5.10/0111-MIPS-lantiq-dma-reset-correct-number-of-channel.patch [5]
lantiq/patches-5.10/0112-MIPS-lantiq-dma-fix-burst-length-for-DEU.patch [6]

Manually rebased:
ipq806x/patches-5.10/0065-arm-override-compiler-flags.patch

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=47462c5e600fbaffd755cd13dedd80d04e41ff83
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=2fde76df1885a6bec04317e457121326070450eb
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=9b366f5221d8aa64b22f35be137a5749326444ce
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=5af57ce8a6155fe3e4270d28d171abf8903bebc0
[5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=b92a5df2c7adc79a57481445f67de0c1c716581f
[6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=6b72caabc47011d03f44064452b2c65e8ed18326

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-12-08 23:59:43 +08:00
Rui Salvaterra
db068bde10 kernel: bump 5.10 to 5.10.79
Manually rebased:
generic/backport-5.10/810-v5.13-usb-ehci-add-spurious-flag-to-disable-overcurrent-ch.patch

Tested-by: John Audia <graysky@archlinux.us>
Tested-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-12-08 23:59:31 +08:00
John Audia
b0c3414252 kernel: bump 5.10 to 5.10.78
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <graysky@archlinux.us>
2021-12-08 23:59:10 +08:00
John Audia
6edf9aba28 kernel: bump 5.4 to 5.4.158
All patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
2021-12-08 23:57:50 +08:00
John Audia
8edc900371 kernel: bump 5.4 to 5.4.156
Removed upstreamed:
  backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch

All other patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
2021-12-08 23:56:51 +08:00
Rui Salvaterra
d6c7af6ead kernel: bump 5.10 to 5.10.77
Deleted (upstreamed):
bcm53xx/patches-5.10/081-v5.15-Revert-pinctrl-bcm-ns-support-updated-DT-binding-as-.patch [1]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=01c2881bb0e0a71b87ca425e1b763ac13855aa7e

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-12-08 23:56:27 +08:00
Rafał Miłecki
a32de839b2 bcm4908: sysupgrade: refactor handling different firmware formats
This results in setting format specific data (format info, extract
commands) in a single function. It should help maintaining sysupgrade
code.

This change has been tested on Asus GT-AC5300 and Netgear R8000P.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-07 23:58:16 +08:00
Rafał Miłecki
c7a7947811 bcm53xx: sysupgrade: refactor handling different firmware formats
List of supported formats grew over time and implementation got a bit
messy. There are multiple functions with format-specific parameters and
commands.

Refactor it by making platform_identify() setup all required info right
after detecting firmware format. This simplifies formats handling in
platform_other_check_image() and platform_do_upgrade() a lot.

This has been tested on:
1. SmartRG SR400ac (TRX): non-NAND sysupgrade
2. Netgear R8000 (CHK): NAND aware and standard sysupgrade-s
3. D-Link DIR-885L (Seama): NAND aware and standard sysupgrade-s
4. Luxul XWR-3150 (LXL): NAND aware and standard sysupgrade-s

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-07 23:57:59 +08:00
Rafał Miłecki
808eeddaaf bcm53xx: sysupgrade: simplify extracting image from Seama seal
Use "oseama extract" which supports now writing to stdout.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-07 23:57:43 +08:00
Rafał Miłecki
2cb83a991a firmware-utils: bump to the latest master
56e8e19 otrx: support TRX from stdin when extracting
a37ccaf otrx: support unsorted partitions offsets
1fa145e otrx: extract shared code opening & parsing TRX format
0fbc135 oseama: support extracting entity to stdout
58c9d5d oseama: allow reading from stdin
4ecefda otrx: allow validating TRX from stdin
cf01e69 otrx: avoid unneeded fseek() when calculating CRC32
fa35379 tplink-safeloader: add EAP225 v1 support
f4d1263 build, cmake: switch OPENSSL_CRYPTO_LIBRARY -> OPENSSL_CRYPTO_LIBRARIES
cd3f6ee build, cmake: add quotes for FW_UTIL variable arguments

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-12-07 23:57:30 +08:00
Sergey Ryazanov
1047ba52ff ramips: add support for Zbtlink ZBT-WG1602
Zbtlink ZBT-WG1602 is a Wi-Fi router intendent to use with WWAN
(UMTS/LTE/3G/4G) modems. The router board offsers a couple of miniPCIe
slots with USB and SIM only and another one pure miniPCIe slot as well
as five Gigabit Ethernet ports (4xLAN + WAN).

Specification:

* SoC: MT7621A
* RAM: 256/512 MiB
* Flash: 16/32 MiB (SPI NOR)
* external watchdog (looks like Torexsemi XC6131B)
* Eth: 10/100/1000 Mbps Ethernet x5 ports (4xLAN + WAN)
* WLAN 2GHz: MT7603EN (.11n, MIMO 2x2)
* WLAN 5GHz: MT7612EN (.11ac, MIMO 2x2)
* WLAN Ants: detachable x2, shared by 2GHz & 5GHz radios
* miniPCIe: 2x slots with USB&SIM + 1x slot with regular PCIe bus
* WWAN Ants: detachable x4
* External storage: microSD (SDXC) slot
* USB: 2.0 Type-A port
* LED: 11 (5 per Eth phy, 3 SoC controlled, 2 WLAN 2/5 controlled, 1
       power indicator)
* Button: 1 (reset)
* UART: console (115200 baud)
* Power: DC jack (12 V / 2.5 A)

Additional HW information:

* SoC USB port #1 is shared by internal miniPCIe slot and external
  Type-A USB port, USB D+/D- lines are toggled between ports using a
  GPIO controlled DPDT switch.
* Power of the USB enabled miniPCIe slots can be individually controlled
  using dedicated GPIO lines.
* Vendor firmware feeds the external watchdog with 1s pulses. GPIO
  watchdog driver is able to either generate a 1us pulses or toggle the
  output line. 1us is not enough for the external watchod timer, so
  the line toggling driver mode is utilized.

Installation:

Vendor's firmware is OpenWrt (LEDE) based, so the sysupgrade image can
be directly used to install OpenWrt. Firmware must be upgraded using the
'force' and 'do not save configuration' command line options (or
correspondig web interface checkboxes) since the vendor firmware is from
the pre-DSA era.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
2021-12-06 23:58:42 +08:00
Shane Synan
dce4054e34 ipq806x: revert SDC clock changes for NBG6817 MMC
Revert the SDC "CLK_SET_RATE_GATE" changes to the SDC clock regulator
structures.

See https://elinux.org/images/b/b8/Elc2013_Clement.pdf
> if ((clk->flags & CLK_SET_RATE_GATE) && clk->prepare_count) {
>
> For this particular clock, setting its rate is possible only if the
> clock is ungated (not yet prepared)

This fixes the MMC failing to initialize on newer ZyXEL NBG6817
hardware revisions with Kingston MMC.  Older revisions should
hopefully be unaffected.

Check MMC hardware details with:
cd /sys/block/mmcblk0/device/ && \
  tail -v cid date name manfid fwrev hwrev oemid rev

Known problematic MMC names (broken before this commit):
* M62704 (dated 12/2018) via myself
* M62704 (dated 11/2018) via Drake Stefani

Known unaffected MMC names (already working without this commit):
* S10004 (dated 12/2015) via slh

Without enabling dynamic debugging, this error manifests in the kernel
hardware serial console as the following:

[    2.746605] mmc0: error -110 whilst initialising MMC card
[…trimmed other messages…]
[    2.877832] Waiting for root device /dev/mmcblk0p5...

Enabling Linux dynamic kernel debugging provides additional messages.
For guidance, see the Linux kernel documentation:
https://www.kernel.org/doc/html/latest/admin-guide/dynamic-debug-howto.html

First, enable dynamic debugging in OpenWRT's configuration:

1.  Run "make menuconfig"

2.  Select "Global build settings --->"

3.  Select "Kernel build options --->"

4.  Enable "Compile the kernel with dynamic printk" via spacebar

5.  Save and exit (arrow key to "Exit" until prompted to save, save)

Alternatively, set "CONFIG_KERNEL_DYNAMIC_DEBUG=y" in your .config.

Then, turn on dynamic debugging at boot:

Modify bootargs in
target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts
to add…

bootargs = "[…existing bootargs…] dyndbg=\"file drivers/mmc/* +p\" dynamic_debug.verbose=1 loglevel=8";

For example:
 	chosen {
-		bootargs = "rootfstype=squashfs,ext4 rootwait noinitrd fstools_ignore_partname=1";
+		bootargs = "rootfstype=squashfs,ext4 rootwait noinitrd fstools_ignore_partname=1 dyndbg=\"file drivers/mmc/* +p\" dynamic_debug.verbose=1 loglevel=8";
 		append-rootblock = "root=/dev/mmcblk0p";

Then, compile and flash the resulting build.  If you are testing
before this commit on newer MMC hardware, be prepared to recover!

NOTE: If you have hardware serial console access, you don't need to
use TFTP recovery to change the active boot partition.

Reboot to working alternative partition via serial console:

1.  Connect to hardware serial console
    * See https://openwrt.org/toh/zyxel/nbg6817#serial

2.  Interrupt boot at "Hit any key to stop autoboot:"

3.  Run "ATSE NBG6817"

4.  Copy the result (e.g. "001976FE4B04")
    * Changes with **every boot** - can't reuse this

5.  On your local system, run
    "./zyxel-uboot-password-tool.sh <copied value here>"
    * Example: "./zyxel-uboot-password-tool.sh 001976FE4B04"

6.  Run the command provided by the password tool
    * Example: "ATEN 1,910F129B"
    * Changes with **every boot** - can't reuse this

7.  Run "ATGU"
    * You now have full u-boot shell until next boot - unlocking is
       not remembered

8.  Run either "run boot_mmc" (for booting partition set "FF") or
    "run boot_mmc_1" (for booting partition set "01")
    * These commands are not affected by dual-boot partition flags

NOTE: This will NOT set the dual-boot partition flag.  You'll need to
fix that manually.  The "nbg6817-dualboot" script may help:
https://github.com/pkgadd/nbg6817/blob/master/nbg6817-dualboot

zyxel-uboot-password-tool.sh - sourced from
commit 459c8c9ef8:

ror32() {
  echo $(( ($1 >> $2) | (($1 << (32 - $2) & (2**32-1)) ) ))
}

v="0x$1"
a="0x${v:2:6}"
b=$(( a + 0x10F0A563))
c=$(( 0x${v:12:14} & 7 ))
p=$(( $(ror32 $b $c) ^ a ))
printf "ATEN 1,%X\n" $p

Kernel serial console log BEFORE commit with dynamic debug enabled:
[…trimmed…]
[    3.171343] mmci-pl18x 12400000.sdcc: designer ID = 0x51
[    3.171397] mmci-pl18x 12400000.sdcc: revision = 0x0
[    3.175811] mmci-pl18x 12400000.sdcc: clocking block at 96000000 Hz
[    3.181134] mmci-pl18x 12400000.sdcc: No vqmmc regulator found
[    3.186788] mmci-pl18x 12400000.sdcc: mmc0: PL180 manf 51 rev0 at 0x12400000 irq 41,0 (pio)
[    3.192902] mmci-pl18x 12400000.sdcc: DMA channels RX dma1chan1, TX dma1chan2
[    3.215609] mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 21 width 1 timing 0
[    3.227532] mmci-pl18x 12400000.sdcc: Initial signal voltage of 3.3v
[    3.247518] mmc0: clock 52000000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
[…trimmed…]
[    3.997725] mmc0: req done (CMD2): -110: 00000000 00000000 00000000 00000000
[    4.003631] mmci-pl18x 12400000.sdcc: irq0 (data+cmd) 00000000
[    4.003659] mmc0: error -110 whilst initialising MMC card
[    4.016481] mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0

Notice how the initial clock is 52 MHz, which is incorrect - MMC
requires negotiation to enable higher speeds.

Kernel serial console log AFTER commit with dynamic debug enabled:
[…trimmed…]
[    3.168996] mmci-pl18x 12400000.sdcc: designer ID = 0x51
[    3.169051] mmci-pl18x 12400000.sdcc: revision = 0x0
[    3.173492] mmci-pl18x 12400000.sdcc: clocking block at 96000000 Hz
[    3.178808] mmci-pl18x 12400000.sdcc: No vqmmc regulator found
[    3.184702] mmci-pl18x 12400000.sdcc: mmc0: PL180 manf 51 rev0 at 0x12400000 irq 41,0 (pio)
[    3.190573] mmci-pl18x 12400000.sdcc: DMA channels RX dma1chan1, TX dma1chan2
[    3.217873] mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 21 width 1 timing 0
[    3.229250] mmci-pl18x 12400000.sdcc: Initial signal voltage of 3.3v
[    3.249111] mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
[…trimmed…]
[    4.392652] mmci-pl18x 12400000.sdcc: irq0 (data+cmd) 00000000
[    4.392785] mmc0: clock 52000000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 1
[    4.406554] mmc0: starting CMD6 arg 03b70201 flags 0000049d
[…trimmed…]

Now, the MMC properly initializes and later switches to high speed.

Thanks to:
* Ansuel for maintaining/help with the IPQ806x platform, kernel code
* slh for additional debugging and suggestions
* dwfreed for confirming newer MMC details, clock frequency
* robimarko for device driver debug printing help, clock debugging
* Drake for testing and confirmation with their own newer NBG6817
...and anyone else I missed!

Signed-off-by: Shane Synan <digitalcircuit36939@gmail.com>
Tested-by: Shane Synan <digitalcircuit36939@gmail.com>
2021-12-06 23:56:41 +08:00
Felix Fietkau
99843f7e12 mediatek: enable bmt on mt7622-rfb1
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-12-06 23:56:07 +08:00
Chuanhong Guo
8949484aaf mediatek: bmt: use generic mtd api
BMT replaces nand-specific ops for erasing and writing, but the
mtk-snand driver only implements generic mtd api.

Replace erase, block_isbad, block_markbad in mtd_info for generic mtd
drivers.

Fixes: b600aee3ed ("mediatek: attach bmt to the new snand driver")
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-12-06 23:55:46 +08:00
Yuchan Seo
05938af730 ramips: add support for ipTIME A3004NS-dual
ipTIME A3004NS-dual is a 2.4/5GHz band router, based on Mediatek MT7621.

Specifications:
- SoC: MT7621 (880MHz)
- RAM: DDR3 256M
- Flash: SPI NOR 16MB
- WiFi:
 - 2.4GHz: MT7602E
 - 5GHz : MT7612E
- Ethernet:
 - 4x LAN
 - 1x WAN
- USB: 1 * USB3.0 port
- UART:
  - 3.3V, TX, RX, GND / 57600 8N1

Installation via web interface:
- 1. Flash Initramfs image using OEM Firmware's web GUI
- 2. Boot into OpenWrt and perform Sysupgrade with sysupgrade image.

Revert to stock firmware:
- 1. Boot into OpenWrt and perform Sysupgrade with OEM Stock Firmware image.

Signed-off-by: Yuchan Seo <hexagonwin@disroot.org>
Reviewed-by: Sungbo Eo <mans0n@gorani.run>
2021-12-05 23:58:53 +08:00
Sergey V. Lobanov
d1b60ed26c ramips: fix tl-mr3020-v3 switch topology to configure vlans via luci
Currently it is not possible to configure VLANs via LUCI on
tplink tl-mr3020-v3. This patch fixes switch topology for the
LUCI interface.

Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
[copied commit message from github PR]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-12-05 23:57:51 +08:00
Pawel Dembicki
ef784379ea ramips: mt7620: Enable PHY aneg of Lava LR-25G001
In 20b09a2125 Lava LR-25G001 router have problem with two inactive
ethernet ports. JBOOT bootloader didn't configure ethernet devices by default.
The same situation was there. It is required to enable all phy ports.
This is fragment of stock bootlog:

switch reg write_athr offset=90, value=2b0
switch reg write_athr offset=8c, value=2b0
switch reg write_athr offset=88, value=2b0
switch reg write_athr offset=84, value=2b0
switch reg write_athr offset=80, value=2b0

This patch adds proper registers configuration ar8337 initvals.
0x2b0 value causes force flow control configuration, 0x1200 was used
instead (flow control config auto-neg with phy). [1]

When switch is now ok, let's fix port numeration too.

Fixes: 20b09a2125 ("ramips: add support for Lava LR-25G001")

[1] https://github.com/openwrt/openwrt/pull/4806#issuecomment-982019858

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2021-12-05 23:57:36 +08:00
Michel Promonet
6278f18c34 sunxi: update nanopi neo air that use brcmfmac43430a0
Update wifi firmware used for nanopi neo air, with
cypress-firmware-43430-sdio there is no wifi detected, as
brcmfmac-firmware-43430a0-sdio allow to acces to wifi.

Signed-off-by: Michel Promonet <michel.promonet@free.fr>
2021-12-03 00:05:55 +08:00
Aleksander Jan Bajkowski
3832c0f44e lantiq: xway_legacy: disable unused switches
The xway_legacy subtarget only supports 5 devices. Most compiled
switch drivers are unused by any of these devices. The same drivers
are compiled into the xway subtarget. They were probably copied
from there when creating this subtarget.

Switches used by devices:
Arcadyan ARV4518PWR01   Realtek RTL8306SD
Arcadyan ARV4518PWR01A  Realtek RTL8306SD
Arcadyan ARV4520PW      Infineon ADM6996I
Arcadyan ARV4525PW      only PHY(IC+ IP101A)
Arcadyan ARV452CQW      Realtek RTL8306

The CONFIG_ETHERNET_PACKET_MANGLE symbol has also been disabled,
as it is only needed by the driver for AR8216.

Reduces kernel size by 19.9 kB.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2021-12-03 00:05:41 +08:00
Martin Kennedy
9510f52b25 mpc85xx: Fix HiveAP-330 nvmem mac loader
We actually need to enclose the whole section of partitions in a
`partitions { ... }` to assign it a `compatible = "fixed-partitions";
otherwise the partition referred to by `hwinfo` won't be registered
when bringing up MTD partitions, for example as per:

- <https://forum.openwrt.org/t/tp-link-c2600-missing-default-mac-mtd-partition-in-snapshot/103945/6>

- commit e2b03c16eb ("ipq806x: add missing enclosing partitions block for TP-Link C2600")'

Fixes: 8ec21d6bb2 ("mpc85xx: convert mtd-mac-address to nvmem implementation")
Signed-off-by: Martin Kennedy <hurricos@gmail.com>
[minor beautification]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-12-03 00:05:26 +08:00
Hauke Mehrtens
d475f3604d bcm4908: Deactivate pci feature
This target does not activate CONFIG_PCI kernel configuration option, do
not activate the PCI feature. This will deactivate some PCI drivers
which are not building without PCI support in the kernel.

If PCI_SUPPORT or PCIE_SUPPORT are activated in the kernel configuration
the feature flag will be automatically set by the build system again.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-12-03 00:04:02 +08:00
Hauke Mehrtens
af93ece017 kernel: Deactivate B53 symbols in generic configuration
Deactivate all the symbols of the B53 DSA driver in the generic kernel
configuration. Multiple targets are now using this drivers and they
only need some of the options.
This fixes the bcm4908 build which didn't deactivate all of the options.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-12-03 00:03:50 +08:00
Mathias Kresin
4374426081 uboot-lantiq: danube: fix hanging lzma kernel uncompression #2
Follow up to commit 565b62cca2. Managed to
hit the very same issue again while playing with the NOR SPL builds.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-12-02 00:09:52 +08:00
Mathias Kresin
cf171733a6 lantiq: set maximum kernel size for P2812HNUF3
The board has a fixed size kernel partition but do not limit the kernel
size during image building.

Disable image building for both boards as well, since the kernel of the
last release as well as master are to big to fit into the 2 MByte kernel
partition.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-12-02 00:09:35 +08:00
Mathias Kresin
acd4849458 lantiq: ar7: use okli loader for FRITZ!Box
With Kernel 5.10 the ar7 FRITZ!Box are not booting the initramfs nor the
sysupgrade image any more. Presumably due to the grown kernel.

Use the okli preloader to workaround the bootloader issue. No solution
so far for the initramfs.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-12-02 00:08:43 +08:00
Mathias Kresin
4d04c8a404 lantiq: bring back okli loader
Removed due to being unused with 1f7a03a706, but now required for the
ar7 FRITZ!Box.

Could be used for the ARV7519RW22 as well, for which the image
generation was disabled due to a stock u-boot issue with kernel bigger
than 2 MByte.

The code is combination of the ath79 and ramips okli loader.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-12-02 00:07:50 +08:00
Mathias Kresin
0551ecc17b lantiq: fix mac address from nvmem-cells
The devicetree property mac-address is expected to be set by the
bootloader and has priority over the nvmem supplied one.

Drop the mac-address address property from the dtsi files, to let the
mac address from nvmem-cells get used.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-12-02 00:05:17 +08:00
Mathias Kresin
eb9d5afec5 uboot-lantiq: reduce stack size
On lantiq a lot of stuff expects to be loaded to and executed at
0x80002000, including our own second stage bootloader.

For all build u-boots, the initial stack pointer is at 0x80008000. After
loading data to 0x80002000, every further stack operation corrupts the
loaded code.

Set the initial stack pointer to 0x80002000, to not overwrite code
loaded in memory. A stack of 0x2000 bytes has been proven as enough in
all done tests.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-12-02 00:04:17 +08:00
Mathias Kresin
f36c2414d0 uboot-lantiq: danube: fix SPL boot
On danube we only have 0x6800 bytes of usable SRAM. Everything behind
can't be written to and a SPL u-boot locks up during boot.

Since it's a hard to debug issue and took me more than two years to fix
it, I consider it worth to include fix albeit SPL u-boots are not build
in OpenWrt.

I faced the issue while trying to shrink the u-boot to 64K since some
boards only have an u-boot partition of that size from the days
ifx-uboot was used.

Signed-off-by: Mathias Kresin <dev@kresin.me>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
2021-12-02 00:03:58 +08:00
Mathias Kresin
e7574b49c7 uboot-lantiq: fix out of bounds cache invalidate
With gcc10 the variables are placed more tightly to each other, which
uncovers a long existing bug in the lantiq DMA code. It can be observed
when using tftpboot with the filename parameter, which gets reset during
the tftpboot execution.

NetRxPackets[] points to cache line size aligned addresses. In
ltq_eth_rx_packet_align() the address NetRxPackets[] points to is
increased by LTQ_ETH_IP_ALIGN and the resulting not cache aligned
address is used further on. While doing so, the length/size is never
updated.

The "not cache aligned address" + len/size for a cache aligned address
is passed to invalidate_dcache_range(). Hence, invalidate_dcache_range()
invalidates the next 32 bit as well, which flashes the BootFile variable
as well.

   variable BootFile is at address: 0x83ffe12c
   NetRxPackets[] points to 0x83ffdb20 (len is 0x600)
   data points to: 0x83ffdb22 (len is 0x600)

   ltq_dma_dcache_inv: 0x83ffdb22 (for len 0x600)
   invalidate_dcache_range: 0x83ffdb20 to 0x83ffe120 (size: 32)
   invalidate_dcache_range: 0x83ffdb20 to 0x83ffdb40 (Bootfile: a.bin)
   ...
   invalidate_dcache_range: 0x83ffe100 to 0x83ffe120 (Bootfile: a.bin)
   invalidate_dcache_range: 0x83ffe120 to 0x83ffe140 (Bootfile: )

In ltq_dma_tx_map() and ltq_dma_rx_map() the start address passed to
ltq_dma_dcache_wb_inv() is incorrect. By considering the offset, the
start address passed to flush_dcache_range() is always aligned to 32, 64
or 128 bytes dependent on configured DMA burst size.

Fixes: FS#4113

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-12-02 00:03:43 +08:00
Mathias Kresin
5f3075768d uboot-lantiq: danube: fix hanging lzma kernel uncompression
At least since gcc 7.3.0 (OpenWrt 18.06) lwr/lwl are used in the
assembly of LzmaProps_Decode. While the decission made by the compiler
looks perfect fine, it triggers some obscure hang on lantiq danube-s
v1.5 with MX29LV640EB NOR flash chips.

Only if the offset 1 is used, the hang can be observed. Using any other
offset works fine:

  lwl s0,0(a1) - s0 == 0x6d000080
  lwl s0,1(a1) - hangs
  lwl s0,2(a1) - s0 == 0x0080xxxx
  lwl s0,3(a1) - s0 == 0x80xxxxxx

It isn't clear whether it is a limitation of the flash chip, the EBU or
something else.

Force 8bit reads to prevent gcc optimizing the read with lwr/lwl
instructions.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-12-02 00:02:30 +08:00
Hauke Mehrtens
84d37321b5 uboot-omap: Remove omap3_overo configuration
The configs/omap3_overo_defconfig file was removed from upstream U-Boot
in commit ed3294d6d1f9 ("arm: Remove overo board"). Remove it in OpenWrt
too. If someone needs this please add it also to upstream U-Boot.

This fixes the compile of the omap target.

Fixes: ffb807ec90 ("omap: update u-boot to 2021.07")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-12-01 23:48:09 +08:00
Hauke Mehrtens
d3ba208ba8 kernel: Add extra kernel configuration options for omap
This fixes the build on omap.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-12-01 23:47:51 +08:00
AmadeusGhost
0c9ce5afbc Merge Mainline 2021-12-01 00:15:25 +08:00
Tianling Shen
7134610f60 automount: rebuild if target was changed
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit e7d7cc1de7)
2021-11-30 20:56:43 +08:00
AmadeusGhost
1f163a0a08 automount: simplify dependencies 2021-11-29 23:58:31 +08:00
AmadeusGhost
1eccfecf13 iproute2: remove hack for qos-gargoyle 2021-11-29 23:55:11 +08:00
AmadeusGhost
6d407b9ee8 rockchip: 5.10: NanoPi R2S: fixes vcc-rtl8153-regulator
This patch incorrectly puts vcc-rtl8153-regulator at the forefront,
causing probe timeout all the time. This commit backport the upstream
commit https://github.com/torvalds/linux/commit/d49f120 ("arm64: dts:
rockchip: Enable USB3 Ethernet on rk3328 NanoPi R2S") to ensure that
this regulator can be normally supplied.

Before:
  reg-fixed-voltage vcc-rtl8153-regulator: deferred probe timeout,
  ignoring dependency.

After:
  vdd_5v_lan: supplied by vdd_5v

Fixes: d53ae8c ("rockchip: add Kernel 5.10 support")
Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-11-29 23:43:22 +08:00
Andre Heider
8e6c5479e0 omap: switch to kernel 5.10
Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-11-23 00:09:21 +08:00
Andre Heider
5030b45bf4 omap: update kernel 5.10 config
Manually set toggles are:
MMC_SDHCI_OMAP=y
TI_PRUSS_INTC=y
DRM_TI_TPD12S015=y (successor to DRM_OMAP_ENCODER_TPD12S015 [0] [1])
DRM_DISPLAY_CONNECTOR=y (for DRM_TI_TPD12S015 [1])
DRM_SIMPLE_BRIDGE=y (for DRM_TI_TPD12S015 [1])

Manually unset toggles are:
SND_MIXER_OSS=y (disabled by generic config)

The rest was automatically modified by the kernel_oldconfig make target.

[0] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cff5e6f7e83f6271ed75972e9a2920e2c7f62d6c
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e7e67d9a2f1dd2f938adcc219b3769f5cc3f0df7

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-11-23 00:06:45 +08:00
Andre Heider
7db2e88cee omap: copy kernel 5.4 config for 5.10
Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-11-23 00:06:27 +08:00
Andre Heider
2742c1139b omap: update u-boot to 2021.07
Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-11-23 00:05:42 +08:00
Eneas U de Queiroz
db44f5c082 ramips: fix ralink_i2s_debugfs_remove declaration
Correct ralink_i2s_debugfs_remove declaration in ralink patches when
CONFIG_DEBUG_FS is not selected.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2021-11-22 00:08:20 +08:00
Mirko Parthey
c61ba992a3 ramips: use lzma-loader on D-Link DIR-615 H1
Fixes the boot loader LZMA decompression issue:
LZMA ERROR 1 - must RESET board to recover

Signed-off-by: Mirko Parthey <mirko.parthey@web.de>
2021-11-22 00:07:53 +08:00
Thomas Aldrian
22c09e1be2 ramips: add support for Wavlink WL-WN576A2
This commit adds support for the Wavlink WL-WN576A2 wall-plug wireles
repeater / router. It is also sold under the name SilverCrest SWV 733 B1.

Device specs:

- CPU: MediaTek MT7628AN
- Flash: 8MB
- RAM: 64MB
- Bootloader: U-Boot
- Ethernet: 1x 10/100 Mbps
- 2.4 GHz: b/g/n SoC
- 5 GHz: a/n/ac MT7610EN
- Buttons: WPS, reset, sliding switch (ap/repeater)
- LEDs: 5x wifi status, 1x LAN/WAN, 1x WPS

Flashing:

U-Boot launches a TFTP client if WPS button is held during boot.

- Server IP: 192.168.10.100
- Firmware file name: firmware.bin

Device will reboot automatically. First boot takes about 90s.

Coelner (waenger@gmail.com) is the original author, but I have made some
fixes. He does not wish to sign off using his real name.

Signed-off-by: Thomas Aldrian <dev.aldrian@gmail.com>
2021-11-22 00:06:21 +08:00
Robert Marko
aaab68be63 sunxi: 5.10: Orange Pi Zero Plus: Fix networking
Orange Pi Zero Plus uses a Realtek RTL8211E RGMII Gigabit PHY, but its
currently set to plain RGMII mode meaning that it doesn't introduce
delays.

With this setup, TX packets are completely lost and changing the mode to
RGMII-ID so the PHY will add delays internally fixes the issue.

It looks like this got broken in 5.10 as the PHY RGMII config got fixed
due to datasheet being available and a lot of boards got broken by that.

This has already been sent upstream and received multiple reviews.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-11-20 00:10:45 +08:00
Jihoon Han
af5a11485a ath79: add support for Dongwon T&I DW02-412H
Dongwon T&I DW02-412H is a 2.4/5GHz band 11ac (WiFi-5) router, based on
Qualcomm Atheros QCA9557.

Specifications
--------------

- SoC: Qualcomm Atheros QCA9557-AT4A
- RAM: DDR2 128MB
- Flash: SPI NOR 2MB (Winbond W25Q16DVSSIG / ESMT F25L16PA(2S)) +
         NAND 64/128MB
- WiFi:
  - 2.4GHz: QCA9557 WMAC
  - 5GHz: QCA9882-BR4A
- Ethernet: 5x 10/100/1000Mbps
  - Switch: QCA8337N-AL3C
- USB: 1x USB 2.0
- UART:
  - JP2: 3.3V, TX, RX, GND (3.3V is the square pad) / 115200 8N1

Installation
--------------

1.  Connect a serial interface to UART header and
    interrupt the autostart of kernel.
2.  Transfer the factory image via TFTP and write it to the NAND flash.
3.  Update U-Boot environment variable.
    > tftpboot 0x81000000 <your image>-factory.img
    > nand erase 0x1000000
    > nand write 0x81000000 0x1000000 ${filesize}
    > setenv bootpart 2
    > saveenv

Revert to stock firmware
--------------

1.  Revert to stock U-Boot environment variable.
    > setenv bootpart 1
    > saveenv

MAC addresses as verified by OEM firmware
--------------

   WAN: *:XX (label)
   LAN: *:XX + 1
  2.4G: *:XX + 3
    5G: *:XX + 4

The label MAC address was found in art 0x0.

Credits
--------------

Credit goes to the @manatails who first developed how to port OpenWRT
to this device and had a significant impact on this patch.

And thanks to @adschm and @mans0n for guiding me to revise the code
in many ways.

Signed-off-by: Jihoon Han <rapid_renard@renard.ga>
Reviewed-by: Sungbo Eo <mans0n@gorani.run>
Tested-by: Sungbo Eo <mans0n@gorani.run>
2021-11-20 00:10:22 +08:00
Jihoon Han
025286acd1 kernel: add support for ESMT F25L16PA(2S) SPI-NOR
This fixes support for Dongwon T&I DW02-412H which uses F25L16PA(2S) flash.

Signed-off-by: Jihoon Han <rapid_renard@renard.ga>
Reviewed-by: Sungbo Eo <mans0n@gorani.run>
[refresh patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-11-20 00:08:23 +08:00
Wout Bertrums
64c70442b2 ramips: add broken-flash-reset for HLK-7621A EvB
This is needed because the HLK-7621 EvB has 32MB of flash,
so it will have to use 4B addressing and the
broken-flash-reset hack has to be used to be able to reboot.

Signed-off-by: Wout Bertrums <wout@wbnet.eu>
[copied github message into commit message]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-11-19 00:10:34 +08:00
Jani Partanen
f286a0d77a ramips: fix LAVA LR-25G001 broken wifi led triggers
LED labels for this device are different in 01_leds file and in device
DTS. Switch to DT triggers, which works on Telewell TW-4 (LTE) clone
device.

This has not been tested on the LR-25G001 itself, just on the clone
mentioned above.

Fixes: 20b09a2125 ("ramips: add support for Lava LR-25G001")

Signed-off-by: Jani Partanen <rtfm@iki.fi>
[rephrase commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-11-19 00:06:41 +08:00
Michal Kozuch
2b9a2de6a3 ramips: add support for TP-Link RE305 v3
Specs (same as in v1):
- MT7628AN (575 MHz)
- 64MB RAM
- 8MB of flash (SPI NOR)
- 1x 10/100Mbps Ethernet (MT7628AN built-in switch with vlan)
- 1x 2.4GHz wifi (MT7628AN)
- 1x 5Ghz wifi (MT7612E)
- 4x LEDs (5 GPIO-controlled)
- 1x reset button
- 1x WPS button

The only and important difference between v1 & v3 is in flash memory
layout, so pls don't interchange these 2 builds!

Installation through web-ui (on OEM factory firmware):
1. Visit http://tplinkrepeater.net or the configured IP address of
   your RE305 v3 (default 192.168.0.254).
2. Log in with the password you've set during initial setup of the
   RE305 (there is no default password).
3. Go to Settings -> System Tools -> Firmware upgrade
4. Click Browse and select the OpenWRT image with factory.bin suffix
   (not sysupgrade.bin)
5. A window with a progress bar will appear. Wait until it completes.
6. The RE305 will reboot into OpenWRT and serve DHCP requests on the
   ethernet port.
7. Connect an RJ45 cable from the RE305 to your computer and access
   LuCI at http://192.168.1.1/ to configure (or use ssh).

Disassembly:
Just unscrew 4 screws in the corners & take off the back cover.
Serial is exposed to the right side of the main board (in the middle)
and marked with TX/RX/3V3/GND, but the holes are filled with solder.

Installation through serial:
1. connect trough serial (1n8, baudrate=57600)
2. setup the TFTP server and connect it via ethernet
   (ipaddr=192.168.0.254 of device, serverip=192.168.0.184 - your pc)
3. boot from a initramfs image first (choose 1 in the bootloader
   options)
4. test it a bit with that, then proceed to run sysupgrade build

MAC addresses as verified by OEM firmware:

  use  OpenWrt  address  reference
  LAN  eth0     *:d2     label
  2g   wlan0    *:d1     label - 1
  5g   wlan1    *:d0     label - 2

  The label MAC address can be found in config 0x2008.

Signed-off-by: Michal Kozuch <servitkar@gmail.com>
[redistribute WLAN node properties between DTS/DTSI, remove
 compatible on DTSI, fix indent/wrapping, split out firmware-utils
 change]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-11-19 00:05:40 +08:00
Adrian Schmutzler
f2d5827020 firmware-utils: bump to latest git HEAD
7073760 ramips: add support for TP-Link RE305 v3
86739f2 Add more missing include for byte swap operations

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-11-19 00:05:23 +08:00
Tianling Shen
95a2138475 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-11-18 15:52:19 +08:00
Rafał Miłecki
39bcd77d8b bcm4908: add watchdog support
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-15 00:02:36 +08:00
Rafał Miłecki
6ac61a5cf2 bcm4908: refresh kernel configs
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-15 00:02:14 +08:00
Rafał Miłecki
938f50592d bcm4908: fix b53 regression regarding RGMII reg(s)
This fixes:
[   35.308550] WARNING: CPU: 0 PID: 230 at bcm_sf2_reg_rgmii_cntrl.isra.0+0x84/0x90

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-15 00:01:47 +08:00
Rafał Miłecki
263df75f0a bcm53xx: drop patch for downstream swconfig-based b53
It isn't used anymore so there is no need to hack CPU port. Upstream
(DSA-based) b53 also supports all switch ports just fine.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-14 23:59:35 +08:00
Rafał Miłecki
f5fb97e5aa bcm53xx: drop downstream patch for Buffalo WZR-1750DHP button
This patch never received a proper description and was never sent
upstream as supposed. It was meant to be handled in 2015-2018 so it
should be safe to assume noone really understands it or care.

Cc: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-14 23:59:07 +08:00
Rafał Miłecki
14571d6963 layerscape: mkits-multiple-config: fail on invalid arguments
Fail if arguments couldn't be parsed and print unrecognized part. It's
important when running it from script with dynamic values. Missing value
could result in skipping argument and silent failures (unexpected its).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-14 23:57:59 +08:00
Rafał Miłecki
f4dc1a807d bcm4908: start work on images for devices using U-Boot
New BCM4908 family based routers will use U-Boot bootloader. That will
require using a totally different firmware format. Kernel has to be put
in a FIT image.

OpenWrt has some helpers for generating .its files but they don't fit
BCM4908 requirements and there is no simple way of extending any of
them. The best solution seems to be storing an .its template.

BCM4908 bootfs may:
1. contain extra binaries (other than kernel & DTB)
2. include multiple DTB files
3. store device specific U-Boot configurations with custom properties

Such setups are too complex to generate using shell script. Raw .its
file on the other hand seems quire clean & reasonable.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-14 23:56:44 +08:00
Rafał Miłecki
9fecc5b6d4 bcm47xx: fix bgmac regression present in 5.10 kernel
This fixes:
[    2.548098] bgmac_bcma bcma0:1: Failed to register fixed PHY device
[    2.554584] bgmac_bcma bcma0:1: Cannot connect to phy
and downstream (swconfig-based) b53 driver failing to load.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-14 23:56:20 +08:00
Rafał Miłecki
41edcb23b5 bcm47xx: relocate LZMA loader
Kernel 5.10 grew bigger than 5.4 so we need to bump BZ_TEXT_START to
allow lzma loader hanel its size.

At the same time BZ_STACK_START needs to be increased to avoid
overwriting the stack.

For a reference see:
d5cf4a5aa4 ("brcm47xx: relocate loader to higher address")
2909a4b78e ("brcm47xx: relocate the stack in loader")

Cc: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-11-14 23:55:51 +08:00
Tianling Shen
8772a45496 automount: rebuild package if kernel version changed
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 45fb3198cf)
2021-11-13 19:27:30 +08:00
Robert Marko
bafa583bf2 ipq806x: ecw5410: use bootloader provided MAC-s
Currently, we are overriding the bootloader provided MAC-s as the ethernet
aliases are reversed so MAC-s were fixed up in userspace.
There is no need to do that as we can just fix the aliases instead and get
rid of MAC setting via userspace helper.

Fixes: 59f0a0f ("ipq806x: add Edgecore ECW5410 support")

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-11-13 00:17:56 +08:00
Robert Marko
1b539e7b86 ipq806x: ecw5410: fix PCI1 radio caldata
ECW5410 has 2 QCA9984 cards, one per PCI controller.
They are located at PCI adresses 0001:01:00.0 and 0002:01:00.0.

Currently, pre-cal is not provided for 0001:01:00.0 at all,but for
0000:01:00.0 which is incorrect and causes the ath10k driver to not
be able to fetch the BMI ID and use that to fetch the proper BDF but
rather fail with:
[   12.029708] ath10k 5.10 driver, optimized for CT firmware, probing pci device: 0x46.
[   12.031816] ath10k_pci 0001:01:00.0: enabling device (0140 -> 0142)
[   12.037660] ath10k_pci 0001:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   13.173898] ath10k_pci 0001:01:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe
[   13.174015] ath10k_pci 0001:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   13.189304] ath10k_pci 0001:01:00.0: firmware ver 10.4b-ct-9984-fW-13-5ae337bb1 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc35
[   15.492322] ath10k_pci 0001:01:00.0: failed to fetch board data for bus=pci,vendor=168c,device=0046,subsystem-vendor=168c,subsystem-device=cafe,variant=Edgecore-ECW541 from ath10k/QCA9984/hw1.0/board-2.bin
[   15.543883] ath10k_pci 0001:01:00.0: failed to fetch board-2.bin or board.bin from ath10k/QCA9984/hw1.0
[   15.543920] ath10k_pci 0001:01:00.0: failed to fetch board file: -12
[   15.552281] ath10k_pci 0001:01:00.0: could not probe fw (-12)

So, provide the pre-cal for the actual PCI card and not the non-existent
one.

Fixes: 59f0a0f ("ipq806x: add Edgecore ECW5410 support")

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-11-13 00:16:27 +08:00
Robert Marko
d5462e1008 ipq806x: ecw5410: drop GPIO based MDIO1 node
It looks like this is a leftover before there was a proper MDIO driver.
Since both PHY-s are connected to the HW MDIO bus there is no reason for
this to exist anymore, especially since it uses the same pins as the HW
controller and has the pinmux for the set to "MDIO" so this worked by
pure luck as GPIO MDIO would probe first and override the HW driver.

Move the GMAC3 to simply use the same MDIO bus phandle.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-11-13 00:09:52 +08:00
Sergio Paracuellos
7a51ec6119 ramips: add support for HiLink HLK-7621A evaluation board
Specifications:
- SoC: MediaTek MT7621AT
- RAM: 256 MB (DDR3)
- Flash: 32 MB SPI NOR 44MHz
- Switch: 1 WAN, 4 LAN (Gigabit)
- LEDs: 1 WAN, 4 LAN (controlled by PHY)
- USB Ports: 1 x USB2, 1 x USB3
- WLAN: 1 x 2.4, 5 GHz 866Mbps (MT7612E)
- Button: 1 button (reset)
- UART Serial: UART1 as console : 57600 baud
- Power: 12VDC, 1A

Installation:
Update openWRT firmware using internal GNUBEE uboot:
https://github.com/gnubee-git/GnuBee-MT7621-uboot

By HTTP: Initial uboot address is http://10.10.10.123, your address
needs to be 10.10.10.x, and mask 255.255.255.0.
By TFTP: Uboot is in client mode, the address of the firmware must
be tftp://10.10.10.3/uboot.bin

Recovery:
Manufacturer provides MTK OpenWrt 14.07 source code, compile then
flash it by uboot.
HLK-7621A is a stamp hole package module for embedded development,
users have to design IO boards to use it.

MAC addresses:
- u-boot-env contains a placeholder address:
  > mtd_get_mac_ascii u-boot-env ethaddr
  03:17:73:ab:cd:ef
- phy0 gets a valid-looking address:
  > cat /sys/class/ieee80211/phy0/macaddress
  f8:62:aa:**:**:a8
- Calibration data for &pcie2 contains a valid address, however the
  zeros in the right half look like it's not real:
  8c:88:2b:00:00:1b
- Since it's an evaluation board and there is no solid information
  about the MAC address assignment, the ethernet MAC address is left random.

Signed-off-by: Chen Yijun <cyjason@bupt.edu.cn>
[add keys and pcie nodes to properly support evaluation board]
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
[remove ethernet address, wrap lines properly]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-11-13 00:09:05 +08:00
Eduardo Santos
e07e9c9cc9 ramips: add support for Xiaomi MiWifi 3C
This commit adds support for Xiaomi MiWiFi 3C device.

Xiaomi MiWifi 3C has almost the same system architecture
as the Xiaomi Mi WiFi Nano, which is already officially
supported by OpenWrt.

The differences are:

 - Numbers of antennas (4 instead of 2). The antenna management
   is done via the µC. There is no configuration needed in the
   software code.
 - LAN port assignments are different. LAN1 and WAN are
   interchanged.

OpenWrt Wiki: https://openwrt.org/toh/xiaomi/mir3c

OpenWrt developers forum page:
https://forum.openwrt.org/t/support-for-xiaomi-mi-3c

Specifications:

 - CPU: MediaTek MT7628AN (575MHz)
 - Flash: 16MB
 - RAM: 64MB DDR2
 - 2.4 GHz: IEEE 802.11b/g/n with Integrated LNA and PA
 - Antennas: 4x external single band antennas
 - WAN: 1x 10/100M
 - LAN: 2x 10/100M
 - LED: 1x amber/blue/red. Programmable
 - Button: Reset

MAC addresses as verified by OEM firmware:

use address source
LAN *:92 factory 0x28
WAN *:92 factory 0x28
2g *:93 factory 0x4

OEM firmware uses VLAN's to create the network interface for WAN and LAN.

Bootloader info:
The stock bootloader uses a "Dual ROM Partition System".
OS1 is a deep copy of OS2.
The bootloader start OS2 by default.
To force start OS1 it is needed to set "flag_try_sys2_failed=1".

How to install:
1- Use OpenWRTInvasion to gain telnet, ssh and ftp access.
   https://github.com/acecilia/OpenWRTInvasion
   (IP: 192.168.31.1 - Username: root - Password: root)
2- Connect to router using telnet or ssh.
3- Backup all partitions. Use command  "dd if=/dev/mtd0 of=/tmp/mtd0".
   Copy /tmp/mtd0 to computer using ftp.
4- Copy openwrt-ramips-mt76x8-xiaomi_miwifi-3c-squashfs-sysupgrade.bin
   to /tmp in router using ftp.
5- Enable UART access and change start image for OS1.
```
nvram set uart_en=1
nvram set flag_last_success=1
nvram set boot_wait=on
nvram set flag_try_sys2_failed=1
nvram commit
```
6- Installing Openwrt on OS1 and free OS2.
```
mtd erase OS1
mtd erase OS2
mtd -r write /tmp/openwrt-ramips-mt76x8-xiaomi_miwifi-3c-squashfs-sysupgrade.bin OS1
```

Limitations: For the first install the image size needs to be less
than 7733248 bits.

Thanks for all community and especially for this device:
minax007, earth08, S.Farid

Signed-off-by: Eduardo Santos <edu.2000.kill@gmail.com>
[wrap lines, remove whitespace errors, add mediatek,mtd-eeprom to
 &wmac, convert to nvmem]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-11-13 00:08:15 +08:00
Hauke Mehrtens
a4e9335c94 kernel: Add regmap-i2c dependency to sound-soc-imx-sgtl5000
This dependency is needed on the imx/cortexa7 subtarget.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-11-12 00:09:38 +08:00
Hauke Mehrtens
6a9e3723be pistachio: Take bootargs from device tree
The boot arguments are copied into the device tree by the boot loader
and taken from the device tree by the kernel.
The code which takes the boot arguments from the different sources was
reworked with kernel 5.5.

We have to activate CONFIG_MIPS_CMDLINE_DTB_EXTEND to take the boot
arguments from the device tree.

This makes the system boot on the board again.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-11-12 00:07:55 +08:00
Hauke Mehrtens
ce6bf75498 pistachio: Make kernel 5.10 patches apply
Make the patches apply on kernel 5.10 and refresh the patches and the
kernel configuration on top of kernel 5.10.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-11-12 00:07:18 +08:00
Hauke Mehrtens
4924a6afac pistachio: Copy kernel 5.4 patches to 5.10
This just copies the patches and the configuration from kernel 5.4 to
kernel 5.10.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-11-12 00:07:05 +08:00
Hauke Mehrtens
b77dca49ce pistachio: Fix FIT image configuration name
The pistachio U-Boot expects a default configuration with the name
config@1 in the FIT image. The default was changed in OpenWrt some
months ago.
This makes the board boot again.

Fixes: 9f714398e0 ("build: use config-1 instead of config@1 as default")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-11-12 00:06:34 +08:00
Hauke Mehrtens
75dd716848 kernel: Set some options in generic configuration
Add CONFIG_USB_ETH and CONFIG_PWM_JZ4740 to generic kernel
configuration.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-11-12 00:06:18 +08:00
Tianling Shen
45ff0ed571 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-11-11 20:20:39 +08:00
Mathias Kresin
d3a6d08482 kernel: 5.10: simplify logic in packet mangling patch
I had quite a hard time to understand what the change to net/core/dev.c
is supposed to do.

Simplify the change by returning NETDEV_TX_OK in case a eth_mangle_tx
callback was set but returned NULL instead of setting the return value
in the else branch.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-11-11 00:04:33 +08:00
Mathias Kresin
7cfdafe27c kernel: 5.10: packet mangling code only for ar8216 driver
Only the ar8216 switch driver uses the packet mangling code.

Update the kernel configs accordingly.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-11-11 00:04:10 +08:00
Mathias Kresin
e2b187d7f2 kernel: 5.10: fix ar8216 vlans
ar8216 switches have a hardware bug, which renders normal 802.1q support
unusable. Packet mangling is required to fix up the vlan for incoming
packets.

The patch was ommited at the time kernel 5.10 support was added but is
still required for ar8216 switches.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-11-11 00:03:50 +08:00
Evgeniy Didin
0b18b82e11 archs38: update kernel version to 5.10
Update config, Makefile and image/Makefile.
Directly switch to kernel 5.10.

This patch was tested in nSIM simulator, no errors appeared.

Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Paul Spooren <mail@aparcar.org>
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Cc: John Crispin <john@phrozen.org>
2021-11-10 23:59:07 +08:00
Paul Spooren
b47f1f5d4b uml: add Kernel 5.10 support via testing
Add the latest default Kernel for testing. This step is required to keep
UML in tree for the next release.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-11-05 00:03:04 +08:00
Paul Spooren
3182711706 uml: build target again via the Buildbots
The UML target been outdated for a long time. Instead of just carrying
unmaintained code we should build it again and allow people and CIs to
use it for testing.

This commit removes the `source-only` feature which disables building.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-11-05 00:02:52 +08:00
Paul Spooren
27e3b870ff uml: drop 32Bit host build support
This step drops support host build systems other than x86/64 to allow
two Kernel configuration in parallel. With this commit the setup follow
the config style of all other targets.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-11-05 00:02:26 +08:00
Paul Spooren
28b656c670 uml: update README to usable examples
The current `uml` README is terribly outdated and non of the examples
work by default. Fix that and while at it convert it to Markdown.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-11-05 00:01:29 +08:00
Sungbo Eo
c9485a4fb9 bcm4908: fix calculation of new cferam index
The arithmetic expansion fails when idx becomes a two digit number.
Fix this by relying on expr command.

root@OpenWrt:/# echo $(((028 + 0) % 1000))
/bin/ash: arithmetic syntax error
root@OpenWrt:/# echo $(($(expr 028 + 0) % 1000))
28

Fixes: a6a0b252ba ("bcm4908: add sysupgrade support")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-11-04 23:57:08 +08:00
Rafał Miłecki
98e09fb2b1 bcm53xx: add first 5.17 DTS changes
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-04 23:55:57 +08:00
Rafał Miłecki
41d12cd551 bcm4908: add testing support for kernel 5.10
CONFIG_COMPAT_32BIT_TIME is a new symbol and has to be set to avoid:
Provide system calls for 32-bit time_t (COMPAT_32BIT_TIME) [N/y/?] (NEW)

CONFIG_RELOCATABLE needs to be enabled to make kernel start booting.
That raises a question: do we really need CONFIG_EXPERT=y ?

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-04 00:06:19 +08:00
Rafał Miłecki
540309ac65 bcm4908: prepare kernel 5.10 support
It compiles but *doesn't* boot so it isn't enabled yet.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-11-04 00:05:56 +08:00
Daniel Golle
211808a977 kernel: remove custom partition name patch
Don't patch the kernel to expose the partition name in sysfs as it is
already exposed via 'uevent'.
All previous users have been converted to use 'uevent', so we can
safely drop the custom patch.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-11-04 00:05:20 +08:00
Daniel Golle
44551c7f93 mediatek: make sure MMC is not busy before commencing sysupgrade
In case of the block device still being in use, re-reading the
partition table fails. In that case, abort sysupgrade to avoid
corrupting the just-written image because of wrong offsets caused
by failure to re-read the partition table.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-11-03 23:58:42 +08:00
Daniel Golle
850b6ea0d4 base-files, metadata: support additional group membership
Some packages may require additional group membership for the system
user added by that package. Allow defining additional groups as third
member of the ':'-separated tuple, allowing to specify multiple
','-separated groups with optional GID.

Example:
USERID:=foouser=1000:foogroup=1000:addg1=1001,addg2=1002,addg3

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-11-03 23:58:28 +08:00
Roger Pueyo Centelles
4333496f73 ath79: mikrotik: enable SFP on RB921GS-5HPacD (mANTBox 15s)
This patch enables the SFP cage on the MikroTik RouterBOARD 921GS-5HPacD
(mANTBox 15s).

The RB922UAGS-5HPacD had it already working, so the support code is
moved to the common DTSI file both devices share.

Tested on a RouterBOARD 921GS-5HPacD with a MikroTik S-53LC20D module.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2021-11-02 00:08:49 +08:00
André Valentin
26c489e498 ath79: fix parallel image generation for Zyxel NBG6716
This changes the image generation to use a unique directory. With
parallel building it may occur that two concurrent jobs try
to create an image which leds to errors. It also removes a needless
subdirecory.

Signed-off-by: André Valentin <avalentin@marcant.net>
2021-11-02 00:08:25 +08:00
Nicolò Veronese
621d6dd18f ath79: fix UBNT Aircube AC gpios
GPIOs on the Aircube AC are wrong:
 - Reset GPIO moved from 17 to 12
 - PoE Pass Through GPIO for Aircube AC is 3

Fixes: 491ae3357e ("ath79: add support for Ubiquiti airCube AC")

Signed-off-by: Nicolò Veronese <nicveronese@gmail.com>
2021-11-02 00:06:16 +08:00
Shiji Yang
b5277aa363 ath79: add support for Letv LBA-047-CH
Specifications:
SOC: QCA9531 650 MHz
ROM: 16 MiB Flash (Winbond W25Q128FV)
RAM: 128 MiB DDR2 (Winbond W971GG6SB)
LAN: 10/100M *2
WAN: 10/100M *1
LED: BGR color *1

Mac address:
label	C8:0E:77:xx:xx:68	art@0x0
lan	C8:0E:77:xx:xx:62	art@0x6
wan	C8:0E:77:xx:xx:68	art@0x0    (same as the label)
wlan	C8:0E:77:xx:xx:B2	art@0x1002 (load automatically)

TFTP installation:
* Set local IP to 192.168.67.100 and open tftpd64, link lan
  port to computer.
  Rename "xxxx-factory.bin" to
  "openwrt-ar71xx-generic-ap147-16M-rootfs-squashfs.bin".
* Make sure firmware file is in the tftpd's directory, push
  reset button and plug in, hold it for 5 seconds, and then
  it will download firmware from tftp server automatically.

More information:
* This device boot from flash@0xe80000 so we need a okli
  loader to deal with small kernel partition issue. In order
  to make full use of the storage space, connect a part of the
  previous kernel partition to the firmware.

  Stock                          Modify
  0x000000-0x040000(u-boot)      0x000000-0x040000(u-boot)
  0x040000-0x050000(u-boot-env)  0x000000-0x050000(u-boot-env)
  0x050000-0xe80000(rootfs)      0x050000-0xe80000(firmware part1)
  0xe80000-0xff0000(kernel)      0xe80000-0xe90000(okli-loader)
                                 0xe90000-0xff0000(firmware part2)
  0xff0000-0x1000000(art)        0xff0000-0x1000000(art)

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2021-11-02 00:05:19 +08:00
Florian Eckert
f85762a25d kernel/modules: prevent bonding driver to create default bond0 interface
When loading the bonding driver, bonding interface are automatically
created on bonding module load.

> ip a s bond0
> 14: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
> group default qlen 1000
>    link/ether a6:f2:20:64:c1:b9 brd ff:ff:ff:ff:ff:ff

This is not necessary in openwrt as we do not use this created interface.
The netifd creates a bonding interface based on its network configuration
name and configures this over the netifd bonding proto handler.

In order to keep the overview of the interfaces clear, bonding
interfaces should not be created automatically when loading this module,
because they are not used anyway.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-11-01 23:56:52 +08:00
Rui Salvaterra
5bf7712f60 kernel: bump 5.10 to 5.10.76
Deleted (upstreamed):
bcm27xx/patches-5.10/950-0145-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch [1]

Manually rebased:
bcm27xx/patches-5.10/950-0355-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch

Note: although automatically rebaseable, the last patch has been edited to avoid
conflicting bit definitions.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=b6f32897af190d4716412e156ee0abcc16e4f1e5

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-11-01 23:54:04 +08:00
AmadeusGhost
047c11f840 rockchip: move r8152 related patches to generic
These patches can be used on other platforms, so
move it to generic.

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-11-01 00:20:13 +08:00
AmadeusGhost
3ddd19a8d2 bcm53xx: sync upstream source code 2021-11-01 00:16:49 +08:00
Bjørn Mork
00240dbaff realtek: re-enable IPv6 routing
Commit 03e1d93e07 ("realtek: add driver support for routing
offload") added routing offload for IPv4, but broke IPv6 routing
completely.  The routing table is empty and cannot be updated:

 root@gs1900-10hp:~# ip -6 route
 root@gs1900-10hp:~# ip -6 route add unreachable default
 RTNETLINK answers: Invalid argument

As a side effect, this breaks opkg on IPv4 only systems too,
since uclient-fetch fails when there are no IPv6 routes:

 root@gs1900-10hp:~# uclient-fetch http://192.168.99.1
 Downloading 'http://192.168.99.1'
 Failed to send request: Operation not permitted

Fix by returning NOTIFY_DONE when offloading is unsupported, falling
back to default behaviour.

Fixes: 03e1d93e07 ("realtek: add driver support for routing offload")
Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-10-31 23:57:45 +08:00
Bjørn Mork
7e1378090e realtek: fix ZyXEL initramfs image generation
The current rule produces empty trailers, causing the OEM firmware
update application to reject our images.

The double expansion of a makefile variable does not work inside
shell code.  The second round is interpreted as a shell expansion,
attempting to run the command ZYXEL_VERS instead of expanding the
$(ZYXEL_VERS) makefile variable.

Fix by removing one level of variable indirection.

Fixes: c6c8d597e1 ("realtek: Add generic zyxel_gs1900 image definition")
Tested-by: Sander Vanheule <sander@svanheule.net>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-10-31 23:57:32 +08:00
Christian Lamparter
8541abf7a6 bcm53xx: MR32: replace i2c-gpio with SoC's i2c
During review of the MR32, Florian Fainelli pointed out that the
SoC has a real I2C-controller. Furthermore, the connected pins
(SDA and SCL) would line up perfectly for use. This patch swaps
out the the bitbanged i2c-gpio with the real deal.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-10-31 23:56:24 +08:00
Tianling Shen
f41b896417 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-10-31 00:52:41 +08:00
Daniel Golle
39fd45ff5a sunxi: deselect CONFIG_VIDEO_SUN6I_CSI by default
Deselect CONFIG_VIDEO_SUN6I_CSI Kconfig symbol for now. If anyone wants
to use CSI (camera interface) they should package the kernel module.
After this change, sunxi targets build again.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-30 23:55:38 +08:00
Daniel Golle
428ede5ebf sunxi: add CONFIG_ARM_CRYPTO Kconfig symbol
And another missing symbol...

Reported-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-30 23:55:24 +08:00
Daniel Golle
699c020ba5 sunxi: add yet another missing Kconfig symbol
Set CONFIG_CRYPTO_CRCT10DIF_ARM_CE=y for sunxi targets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-30 23:55:11 +08:00
Daniel Golle
6490c23206 sunxi: add missing CONFIG_VIDEO_SUN4I_CSI Kconfig symbol
Simply disable this for now, if anyone wants to use CSI feel free to
package it as a kernel module package.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-30 23:54:58 +08:00
Rafał Miłecki
0c528f2665 bcm53xx: backport patch fixing pinctrl driver
This switches pinctrl driver to use the old & good DT binding. There is
no more need to adjust upstream DTS file.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-10-30 23:54:44 +08:00
Andrew Robbins
2eb3f17adb ath10k-ct: update to version from 2021-09-22
Add in a fix for 160Mhz dfs on 5.10 and higher.
Add support for 5.13 and 5.15 kernels.
Add of_get_mac_address support for 5.15 driver.

Signed-off-by: Andrew Robbins <andrew@robbinsa.me>
2021-10-29 23:55:34 +08:00
Rosen Penev
9ed5035255 kernel: backport GPIO LED patch for MT7530
This allows to specify and control switch LEDs on devices using mt7530
(typically mediatek and ramips targets).

Normally these LED GPIOs are 0, 3, 6, 9, and 12. wan/lan assignment is
per device. GPIO 9 is normally inverted. so GPIO_ACTIVE_HIGH instead of
GPIO_ACTIVE_LOW.

Tested on Linksys E7350.

Refreshed all patches.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-10-29 23:55:07 +08:00
Robert Marko
61dbbeee02 kernel: 5.10: backport Marvell 88E1510/2 PHY SFP support
Backport upstream SFP support for the Marvell 88E1510/2 PHY-s.

Globalscale MOCHAbin uses this PHY for the hybrid
WAN port that has 1G SFP and 1G RJ45 with PoE PD
connected to it.

This allows the SFP port to be used on it as well as
parsing the SFP module details with ethtool.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-10-29 23:54:21 +08:00
Robert Marko
aca3483839 kernel: 5.10: backport 100 BaseX SFP support
Backport upstream support for 100Base-FX, 100Base-LX, 100Base-PX and
100Base-BX10 SFP modules.

This is a prerequisite for the Globalscale MOCHAbin hybrid 1G
SFP/Copper support backporting.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-10-29 23:54:10 +08:00
Andre Heider
d4ce91749d ltq-vdsl-app: add error vector counters to the ubus metrics
These are useful stats to debug vector related line deteriorations,
see [0].

Example output:
    "erb": {
	    "sent": 169925,
	    "discarded": 0
    }

[0] https://forum.openwrt.org/t/vectoring-on-lantiq-vrx200-vr9-missing-callback-for-sending-error-samples/104046

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-10-29 23:53:47 +08:00
Andre Heider
cde7dd6f78 ltq-vdsl-app: prepare for multiple mei ioctls
Refactor so that the outer function opens and closes the mei fd and
passes it around, just as with the main fd.

That also allows us to use the IOCTL macro in get_vector_status() and
clean up accordingly.

Switch to AUTORELEASE while at it.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-10-28 23:59:53 +08:00
Andre Heider
25a2dfbd53 u-boot.mk: always link host libraries static
Host libraries are only build static, so let's pass --static to
pkg-config globally and remove the then unnecessary patches doing
exactly that individually.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-10-28 23:57:23 +08:00
Andre Heider
510d44e42f tools/pkgconf: add PKG_CONFIG_EXTRAARGS for additional arguments
This can be used my the OpenWrt build system to pass additional
arguments when required.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-10-28 23:57:10 +08:00
Andre Heider
e3acaa810c u-boot.mk: fix pkg-config usage
Using Host/Exports doesn't work as intended, explicitly add the
required vars so that u-boot finds the required libraries when building
its tools.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-10-28 23:56:57 +08:00
Rafał Miłecki
f87eebcbae bcm53xx: bridge all LAN ports on Linksys EA9500
External switch ports need to be bridged too.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-10-27 23:58:40 +08:00
Rafał Miłecki
6d433a115a bcm53xx: switch to the upstream DSA-based b53 driver
1. Drop swconfig
2. Simplify network setup
3. Verify network config
4. Disable Buffalo WZR-900DHP for now - it misses ports definition

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-By: Christian Lamparter <chunkeey@gmail.com>
2021-10-27 23:58:24 +08:00
Rafał Miłecki
34ae93020a bcm47xx: add kernel 5.10 support
It's for *development* only as it doesn't work with lzma-loader due to
bigger size.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-10-27 23:55:51 +08:00
Tianling Shen
f4effdee24 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-10-27 12:18:41 +08:00
Bruno Randolf
b874243688 ramips: minew g1-c: Allow dynamic RAM sizes
Allow RAM size to be passed thru U-Boot. There are 128MB and 64MB
versions of Minew G1-C. This is also in line with the behaviour of
most other RAMIPS boards.

Signed-off-by: Bruno Randolf <br1@einfach.org>
2021-10-26 23:56:21 +08:00
Luis Araneda
192fe5d1f8 zynq: kernel: update config for 5.10
Update config with make kernel_oldconfig

Signed-off-by: Luis Araneda <luaraneda@gmail.com>
2021-10-26 23:38:45 +08:00
Luis Araneda
d28c0c8ec2 zynq: kernel: copy config from 5.4 to 5.10
Signed-off-by: Luis Araneda <luaraneda@gmail.com>
2021-10-26 23:38:28 +08:00
Luis Araneda
e9c73aff3b zynq: kernel: remove wireless extensions symbols
This fixes compilation of several wireless drivers that
require support for the old wireless extension to work.
One example is kmod-hermes.

The symbols are set to "y" on generic configuration.
But they were wrongly disabled on the target-specific
configuration.

Signed-off-by: Luis Araneda <luaraneda@gmail.com>
2021-10-26 23:38:15 +08:00
Luis Araneda
3cb03249f3 zynq: kernel: refresh config
using "make kernel_oldconfig"

Several configs are now part of generic

Signed-off-by: Luis Araneda <luaraneda@gmail.com>
2021-10-26 23:37:27 +08:00
Felix Fietkau
061954fb75 mt76: update to the latest version
f6bde7ba82ee mt76: connac: fix unresolved symbols when CONFIG_PM is unset

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-25 23:50:17 +08:00
Felix Fietkau
5712e5bc5b mt76: update to the latest version
9d288d7c0c73 mt76: mt7615: apply cached RF data for DBDC
4d2e81d9ecab mt76: mt7915: remove mt7915_mcu_add_he()
2c8c3bcd766c mt76: mt7915: rework .set_bitrate_mask() to support more options
577d45f6e4a0 mt76: mt7915: rework debugfs fixed-rate knob
b68af355f707 mt76: mt7915: fix endiannes warning mt7915_mcu_beacon_check_caps
b52adf981561 mt76: mt7915: add WA firmware log support
ed3d8569c400 mt76: mt7915: add debugfs knobs for MCU utilization
0f49a22314a5 mt76: mt7921: disable 4addr capability
754d4a37ab71 mt76: mt7921: fix mt7921s Kconfig
f81f42fe875f mt76: Print error message when reading EEPROM from mtd failed
fd25a550965d mt76: Make use of the helper macro kthread_run()
1d01257662a6 wireless: mediatek: mt7921: fix Wformat build warning

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-25 23:50:06 +08:00
Hauke Mehrtens
e2a5338d01 layerscape: Fix build in dtb
This fixes a kernel build problem.
The removed parts of the patch are already applied upstream.

Fixes: 9ad3ef27b9 ("kernel: bump 5.4 to 5.4.153")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-10-25 23:49:50 +08:00
David Bauer
1e0ec56f7f ath79: use correct USB package for DIR-505
AR9331 requires kmod-usb2-chipidea to use the USB ports. Include the
correct package so they can be used with the base image.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-10-25 23:48:15 +08:00
David Bauer
2978df4bcd hostapd: ubus: fix uninitialized pointer
This fixes passing a bogus non-null pointer to the ubus handler in case
the transition request is rejected.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-10-24 00:14:05 +08:00
Felix Fietkau
e6aa5ce553 hostapd: fix up patches after the last commit
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-24 00:13:39 +08:00
Felix Fietkau
0868e92d26 hostapd: fix a race condition on adding AP mode wds sta interfaces
Both hostapd and netifd attempt to add a VLAN device to a bridge.
Depending on which one wins the race, bridge vlan settings might be incomplete,
or hostapd might run into an error and refuse to service the client.
Fix this by preventing hostapd from adding interfaces to the bridge and
instead rely entirely on netifd handling this properly

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-24 00:13:15 +08:00
Hauke Mehrtens
4058d2f959 iw: sync nl80211 with kernel backports
The nl80211 was out of sync with the version used in our backports. This
broke the configuration of the antenna gain.

Fixes: 2bfac61483 ("mac80211: backport support for BSS color changes")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-10-24 00:11:54 +08:00
Felix Fietkau
adc94bcf50 mt76: update to the latest version
ebf5b2336591 mt7615/mt7915: fix hwmon device name
8d12f9ed275d mt76: mt7615: mt7622: fix ibss and meshpoint
e7883cdc0b4e mt76: mt7915: improve code readability in mt7915_mcu_sta_bfer_ht
831d5967abb9 wireless: fix spelling of A-MSDU in HE capabilities
f09cb04be261 wireless: align some HE capabilities with the spec
0eeba8f2952d wireless: align HE capabilities A-MPDU Length Exponent Extension
655a6c65b8a7 mt76: mt7915: introduce mt7915_mcu_beacon_check_caps()
4440025d0ba9 mt76: mt7915: fix txbf starec TLV issues
87d2fb6fbff5 mt76: mt7915: improve starec readability of txbf
53c6a3cb7f6b mt76: mt7915: fix sta_rec_wtbl tag len
f517845e4f28 mt76: mt7915: rework starec TLV tags
1df017bc39a3 mt76: mt7915: fix muar_idx in mt7915_mcu_alloc_sta_req()
6724b0a9a748 mt76: mt7915: set VTA bit in tx descriptor
f1f505cbbb30 mt76: mt7915: set muru platform type
8c9d4b38d258 mt76: mt7915: remove dead code in mt7915_get_et_stats
d0ccc4297935 mt76: rely on phy pointer in mt76_register_debugfs_fops routine signature
0af0af82bb97 mt76: mt7915: introduce mt76 debugfs sub-dir for ext-phy
10e85d62f213 mt76: mt7915: improve code readability for xmit-queue handler
b6051f7713d2 mt76: sdio: export mt76s_alloc_rx_queue and mt76s_alloc_tx routines
9a97c38a309d mt76: mt7921: get rid of unused variable in mt7921_tx_complete_skb
c02847c05884 mt76: mt7921: get rid of unused variable in mt7921_mac_tx_free
60dd47a0a62e mt76: mt7915: remove dead code in debugfs code
ce74fc020d81 mt76: mt7921: add MU EDCA cmd support
c062f6920356 mt76: mt7921: refactor mac.c to be bus independent
bfa909c833e8 mt76: mt7921: refactor dma.c to be pcie specific
6556bddf26d2 mt76: mt7921: refactor mcu.c to be bus independent
1c8418207c86 mt76: mt7921: refactor init.c to be bus independent
6cf8248c1a44 mt76: mt7921: add MT7921_COMMON module
77600b0c10ac mt76: connac: move mcu reg access utility routines in mt76_connac_lib module
65362a00d07d mt76: mt7663s: rely on mcu reg access utility
956206bb55c3 mt76: mt7921: make all event parser reusable between mt7921s and mt7921e
f0dedcf6aaf0 mt76: mt7921: use physical addr to unify register access
5079d5b0b13c mt76: sdio: move common code in mt76_sdio module
26257594398b mt76: sdio: introduce parse_irq callback
e353424f1b07 mt76: sdio: extend sdio module to support CONNAC2
ddab3dd25f94 mt76: connac: extend mcu_get_nic_capability
b2d9a1748a41 mt76: mt7921: rely on mcu_get_nic_capability
e6ce5d9cbda0 mt76: mt7921: refactor mt7921_mcu_send_message
ce3706a65ccd mt76: mt7921: introduce mt7921s support
3143118baf53 mt76: mt7921s: add reset support
645eac64bece mt76: mt76x0: correct VHT MCS 8/9 tx power eeprom offset
d54796787cb7 mt76: move mt76_sta_stats in mt76.h
094e085abf5a mt76: move mt76_ethtool_worker_info in mt76 module
f80ab6dde63d mt76: mt7915: run mt7915_get_et_stats holding mt76 mutex
4a11cb67dc27 mt76: mt7915: move tx amsdu stats in mib_stats
486da6fa2512 mt76: do not reset MIB counters in get_stats callback
d8837b7c8dcd mt76: mt7921: add some more MIB counters
5ffe086fcd1b mt76: mt7921: introduce stats reporting through ethtool
69154ae23f6b mt76: mt7921: add sta stats accounting in mt7921_mac_add_txs_skb
4b65fbc4e203 mt76: mt7921: move tx amsdu stats in mib_stats
35b8025f466b mt76: mt7921: add per-vif counters in ethtool
cfbbd861eb12 mt76: mt7915: enable HE UL MU-MIMO
a0b94987df80 mt76: mt7915: rework mt7915_mcu_sta_muru_tlv()
5fbb686e9c0c mt76: mt7915: fix missing HE phy cap
b649678c18ca mt76: mt7915: change max rx len limit of hw modules

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-24 00:10:20 +08:00
Felix Fietkau
a87556188d mac80211: add missing patch chunk for mac80211_hwsim
Fixes build error

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-24 00:09:51 +08:00
Felix Fietkau
297d1d28f1 mac80211: backport a few trivial patches
No functional changes, just some renames to make it easier to keep mt76 in
sync with upstream

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-24 00:09:24 +08:00
David Bauer
e74591221d hostapd: fix goto loop for ubus assoc handler
When a ubus event handler denies a association with a non-zero return
value, the code jumps to preceeding code, creating an endless loop until
the event handler accepts the assc request.

Move the ubus handler further up the code to avoid creating such a loop.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-10-23 23:58:55 +08:00
Felix Fietkau
828b733ac7 ramips: remove kmod-mt7663-firmware-sta from device packages
This firmware should only be used for mobile devices (e.g. laptops), where
AP mode functionality is typically not used. This firmware supports a lot
of power saving offload functionality at the expense of AP mode support.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-23 23:56:08 +08:00
Rosen Penev
69114046e7 ramips: fix dtc warnings for telco-electronics_x1
In all other dts files, the entire block is not edited like this.
They're edited separately.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-10-23 23:54:46 +08:00
Rui Salvaterra
32d28a3249 kernel: bump 5.10 to 5.10.75
Deleted (upstreamed):
bcm27xx/patches-5.10/950-0735-xhci-guard-accesses-to-ep_state-in-xhci_endpoint_res.patch [1]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=dc3e0a20dbb9dbaa22f4a33dea34230f8c663c40

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-10-22 23:58:33 +08:00
Rui Salvaterra
646380af02 kernel: bump 5.10 to 5.10.74
Patches automatically refreshed.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-10-22 23:58:19 +08:00
Rui Salvaterra
0ddb7e6c09 kernel: bump 5.10 to 5.10.73
Patches automatically refreshed.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-10-22 23:58:03 +08:00
John Audia
05ca4ca5b6 kernel: bump 5.4 to 5.4.155
All patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
2021-10-22 23:56:54 +08:00
John Audia
242f175e2e kernel: bump 5.4 to 5.4.154
All patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
2021-10-22 23:56:43 +08:00
John Audia
7f7dccbdb3 kernel: bump 5.4 to 5.4.153
Removed upstreamed:
  backport-5.4/070-v5.5-MIPS-BPF-Restore-MIPS32-cBPF-JIT.patch

All other patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
2021-10-22 23:56:24 +08:00
Tianling Shen
29dd0d020f kernel/5.10: refresh hack patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 6aa52e7e36)
2021-10-21 12:47:14 +08:00
AmadeusGhost
c7621fb09f rockchip: hwrng: sync with official develop-4.19 branch
ee89075 hwrng: rockchip: add rk356x support
2021-10-20 23:57:55 +08:00
AmadeusGhost
4db435509d rockchip: remove vendor usb3 inno driver files 2021-10-20 23:55:37 +08:00
Tianling Shen
5c04b80d3f rockchip: remove rockchip's proprietary usb3 inno driver
It's never used.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit e94abee050)
2021-10-20 16:45:38 +08:00
AmadeusGhost
16be2d38b4 kmod-saradc-rockchip: fixes dependencies on 5.10
Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-10-19 23:58:37 +08:00
Tianling Shen
e3f72ffef1 mt76: refresh vht patch
Fixes: #488

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 8073e03ae7)
2021-10-19 17:38:07 +08:00
AmadeusGhost
05f93afae6 kmod-drm-rockchip: fixes dependencies on 5.10
Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-10-19 00:22:28 +08:00
AmadeusGhost
375466ae21 rockchip: rename nanopi2-timing to default-timing
There is nothing device specific about this file.
2021-10-19 00:18:24 +08:00
Tianling Shen
4b8d19e6ea x86: drop wireless util by default
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-10-18 17:45:02 +08:00
Tianling Shen
2a30b4ade2 rockchip: update patch date
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 77fca48d26)
2021-10-18 13:07:08 +08:00
Tianling Shen
e05f69e6aa rockchip: apply overclocking to all devices
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 4c139c0588)
2021-10-18 13:07:07 +08:00
AmadeusGhost
1df20c4d7d kmod-saradc-rockchip: add new package
This driver support for the SARADC found in SoCs
from Rockchip.

Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-10-18 00:12:46 +08:00
AmadeusGhost
e34397d950 kmod-drm-panfrost: add new package
This driver can be used on AllWinner H6 and rk3399.

Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-10-18 00:10:56 +08:00
AmadeusGhost
971af214bc kmod-drm-lima: rename and enable support for sunxi
This driver can be used on AllWinner h3/h5 and rk3328.

Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-10-18 00:03:17 +08:00
AmadeusGhost
a8fae6b2a3 sunxi: add some kconfig to fix gpu support 2021-10-17 23:59:03 +08:00
AmadeusGhost
cd89cce53d kmod-drm-rockchip: add missing kconfig
Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-10-17 23:56:58 +08:00
AmadeusGhost
f51129b083 Revert "treewide: add missing kconfig symbols"
This reverts commit 6b2cfcd641.
2021-10-17 23:56:01 +08:00
Daniel Golle
8b997cb1dd mediatek: add EEPROM data for BPi-R64 2.4GHz wmac
EEPROM data extracted from vendor image found at
http://forum.banana-pi.org/t/bpi-r64-mt7622-mac80211-wifi-driver/10246/77
http://forum.banana-pi.org/uploads/short-url/jworbyBYpvrw9VQ2sx92B9z6DWS.bin

MAC address in the EEPROM has been zero'd which results in random
address on boot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-16 00:05:13 +08:00
David Bauer
c7d70772d6 hostapd: ubus: add BSS transtiton request method
The existing wnm_disassoc_imminent ubus method only supports issuing a
bss transition request with the disassoc imminent flag set.
For use-cases, where the client is requested to roam to another BSS
without a pending disassoc, this existing method is not suitable.

Add a new bss_transition_request ubus method, which provides a more
universal way to dispatch a transition request. It takes the following
arguments:

Required:
addr: String - MAC-address of the STA to send the request to (colon-seperated)

Optional:
abridged - Bool - Indicates if the abridged flag is set
disassociation_imminent: Bool - Whether or not the disassoc_imminent
                         flag is set
disassociation_timer: I32 - number of TBTTs after which the client will
                      be disassociated
validity_period: I32 - number of TBTTs after which the beacon
                 candidate list (if included) will be invalid
neighbors: blob-array - Array of strings containing neighbor reports as
           hex-string

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-10-16 00:03:58 +08:00
David Bauer
8a2a3e495e hostapd: ubus: add notification for BSS transition response
To allow steering daemons to be aware of the STA-decided transition
target, publish WNM transition responses to ubus. This way, steerings
daemons can learn about STA-chosen targets and send a better selection
of transition candidates.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-10-16 00:03:46 +08:00
Felix Fietkau
8f34f130a1 kernel: backport a rewrite of the mips eBPF JIT implementation
This adds support for eBPF JIT for 32 bit targets and significantly improves
correctness.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-16 00:02:05 +08:00
Felix Fietkau
eb2e735fd2 mt76: update to the latest version
83598c2e872f mt76: avoid possible infinite loop in mt76_tx_status_check

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-15 23:58:40 +08:00
Felix Fietkau
2254d6195a mt76: update to the latest version
1af0242d1241 mt76: mt7915: replace a 64 bit divsion with a call to div_u64_rem

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-15 23:58:26 +08:00
Felix Fietkau
2ebd935669 mt76: update to the latest version
74dedf9352c5 mt76: mt7615: fix skb use-after-free on mac reset
7201290eda43 mt76: mt7921: Fix out of order process by invalid event pkt
ca1b57e9971a mt76: mt7915: add a missing HT flag for GI parsing
4932c5d80153 of: net: pass the dst buffer to of_get_mac_address()
51d9eb3e6f52 mt76: mt7915: fix endianness warnings in mu radiotap
833ca13014ab mt76: mt7921: Add mt7922 support
8f8ed44d026e mt76: mt7915: add control knobs for thermal throttling
16f18bab6b11 mt76: mt7915: send EAPOL frames at lowest rate
affea639c586 mt76: mt7921: send EAPOL frames at lowest rate
ac00fed412d4 mt76: mt7915: fix potential overflow of eeprom page index [update]
e576ddb76dfa mt76: mt7915: switch proper tx arbiter mode in testmode
222847c3d5eb mt76: mt7915: fix bit fields for HT rate idx
d04814366c83 mt76: add support for setting mcast rate
4602acc9271a mt76: mt7921: fix dma hang in rmmod
ec2cf3bf96fd mt76: connac: fix GTK rekey offload failure on WPA mixed mode
2fdb9d621431 mt76: connac: add support for limiting to maximum regulatory Tx power
489ace63d42c mt76: mt7921: get rid of monitor_vif
22da8d28fcc8 mt76: mt7921: get rid of mt7921_mac_set_beacon_filter
c94130519786 mt76: mt7921: introduce mt7921_mcu_set_beacon_filter utility routine
51cff39d7ad3 mt76: overwrite default reg_ops if necessary
da11c1c6edef mt76: mt7615: move mt7615_mcu_set_p2p_oppps in mt76_connac module
47f50b0aa4b8 mt76: mt7921: report HE MU radiotap
4f48ba4b0254 mt76: mt7915: checkpatch cleanup
bc7ee7d7bdea mt76: mt7915: add HE-LTF into fixed rate command
6a19e40820aa mt76: mt7921: continue to probe driver when fw already downloaded
8b3d8e2de084 mt76: mt7921: fix firmware usage of RA info using legacy rates
17305a54b166 mt76: mt7921: fix kernel warning from cfg80211_calculate_bitrate
801c15577293 mt76: mt7921: fix endianness warnings in mt7921_mac_decode_he_mu_radiotap
0182a5b99a7a mt76: mt7915: update mac timing settings
e2ee9d0a33ed mt76: use IEEE80211_OFFLOAD_ENCAP_ENABLED instead of MT_DRV_AMSDU_OFFLOAD
fa6504aceb4f Revert "mt76: mt7915: checkpatch cleanup"
56b842b72a72 mt76: mt7915: fix wmm index on DBDC cards
8044311f5de5 mt76: mt7915: fix potential NPE in TXS processing
28da4baec7c5 mt76: mt7915: fix he_mcs capabilities for 160mhz
f7088ebe7452 mt76: mt7915: add LED support
ee019046284d mt76: mt7915: introduce bss coloring support
9848094e4bb5 mt76: mt7921: Fix fall-through warning for Clang
5710d0643418 mt76: add a bound check in mt76_calculate_default_rate()
a509cf2b654e mt76: mt7921: move mt7921_queue_rx_skb to mac.c
5a0f2382fcfe mt76: mt7915: rework debugfs queue info
62ffc31f4d7b mt76: mt7915: rename debugfs tx-queues
4750b5c918e5 mt76: mt7921: always wake device if necessary in debugfs
ac6adf74b3f2 mt76: mt7921: update mib counters dumping phy stats
eb75b9266ce6 net:wireless:mt76: fix boolreturn.cocci warnings
d7c4698435b3 mt76: mt7921: fix the inconsistent state between bind and unbind
9dcfba3169c4 mt76: switch from 'pci_' to 'dma_' API
d8b5e42c9a73 mt76: fill boottime_ns in Rx path
8ee6446075f2 mt76: disable BH around napi_schedule() calls
e17d730bf2f6 mt76: mt7915: add LED support [update to v3]
80fe40c9457e mt76: mt7915: enable configured beacon tx rate
c8f0d1d81d05 mt76: mt7915: fix hwmon temp sensor mem use-after-free
3b9ba7e02076 mt76: mt7615: fix hwmon temp sensor mem use-after-free
5e82eceb45cb mt76: mt7921: start reworking tx rate reporting
eb66b5c9ff77 mt76: mt7921: add support for tx status reporting
c8010f170e76 mt76: mt7921: report tx rate directly from tx status
4dc7f3db572b mt76: mt7921: remove mcu rate reporting code
db89c6f86724 mt76: mt7921: remove mt7921_sta_stats
6bb8b4267dbe mt76: move spin_lock_bh to spin_lock in tasklet
0eacf41985da mt76: mt7915: honor all possible error conditions in mt7915_mcu_init()
4dfff296ee6e mt76: mt7915: fix possible infinite loop release semaphore
537ed88dd2d0 mt76: mt7921: robustify hardware initialization flow
e0b846159221 mt76: mt7921: fix retrying release semaphore without end
c55dedcea268 mt76: mt7915: add ethtool stats support
d1d5e8cd3a3e mt76: mt7915: add tx stats gathered from tx-status callbacks
1687189d68b7 mt76: mt7915: add some per-station tx stats to ethtool
f4dde5f765af mt76: mt7915: add tx mu/su counters to mib
9752bf0643c9 mt76: mt7915: add more MIB registers
4727415017c9 mt76: mt7915: add mib counters to ethtool stats
4ca80a749e7f mt76: connac: set 6G phymode in mt76_connac_get_phy_mode{,v2}
3f2a5d39631e mt76: connac: enable 6GHz band for hw scan
817a41826bd7 mt76: connac: add 6GHz support to mt76_connac_mcu_set_channel_domain
a6ab81c21080 mt76: connac: set 6G phymode in single-sku support
ca4f47028a44 mt76: connac: add 6GHz support to mt76_connac_mcu_sta_tlv
d2e192ea81e2 mt76: connac: add 6GHz support to mt76_connac_mcu_uni_add_bss
c3dd12b4c8ae mt76: connac: enable hw amsdu @ 6GHz
91ed2b256c20 mt76: add 6GHz support
de8c4f92621f mt76: mt7921: add 6GHz support
f143aedc1d57 mt76: introduce packet_id idr
bcc8d9e03a5d mt76: remove mt76_wcid pointer from mt76_tx_status_check signature
ccbd84763153 mt76: substitute sk_buff_head status_list with spinlock_t status_lock
69bb59df894c mt76: schedule status timeout at dma completion
03a992645310 mt76: support reading EEPROM data embedded in fdt
75615480b3fe mt76: introduce __mt76_mcu_send_firmware routine
e8e2eae41f94 mt76: drop MCU header size from buffer size in __mt76_mcu_send_firmware
4c455e8b1a20 mt76: mt7915: introduce __mt7915_get_tsf routine
9d49c611a2d7 mt76: mt7915: introduce mt7915_mcu_twt_agrt_update mcu command
f44ca79c9aed mt76: mt7915: introduce mt7915_mac_add_twt_setup routine
2f9555a2f18f mt76: mt7915: enable twt responder capability
440e2db8d541 mt76: mt7915: add twt_stats knob in debugfs
eb5f640f8afa mt76: debugfs: improve queue node readability
53d7eb3b4884 mt76: mt7615: fix monitor mode tear down crash
2aa3d4414826 mt76: mt7921: add delay config for sched scan
47e8e96e8e4d mt76: use a separate CCMP PN receive counter for management frames
5560b08f8e2d mt76: do not access 802.11 header in ccmp check for 802.3 rx skbs

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-15 23:58:04 +08:00
Felix Fietkau
c86ee2395f mac80211: remove kcov bits from TWT backport patch
Our backports version does not have support for kcov in mac80211
Fixes build errors on some platforms

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-15 23:57:22 +08:00
Felix Fietkau
a9961a8bfa mac80211: backport AP mode TWT support
Required for an upcoming mt76 update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-15 23:57:03 +08:00
Felix Fietkau
3ae00183b0 scripts/rstrip.sh: do not strip .o files with STRIP_KMOD
Fixes packaging of eBPF modules

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-15 23:56:40 +08:00
Paul Spooren
ce7c52048b x86/64: enable MMIO_CMDLINE_DEVICES for firecracker support
This Kernel option allows to run OpenWrt witin a `firecracker` micro VM.

Firecracker is a KVM-based tool for superfast booting VMs on x86_64 and
aarch64. It makes rootfs available to the guest as a virtio-mmio device
and passes its address via the kernel cmdline. A kernel without
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES will not recognize the rootfs
virtio-mmio device.

Suggested-by: Packet Please <pktpls@systemli.org>
Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-10-14 23:56:55 +08:00
Paul Spooren
66347fa790 armvirt: enable MMIO_CMDLINE_DEVICES for firecracker support
This Kernel option allows to run OpenWrt witin a `firecracker` micro VM.

Firecracker is a KVM-based tool for superfast booting VMs on x86_64 and
aarch64. It makes rootfs available to the guest as a virtio-mmio device
and passes its address via the kernel cmdline. A kernel without
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES will not recognize the rootfs
virtio-mmio device.

Suggested-by: Packet Please <pktpls@systemli.org>
Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-10-14 23:56:43 +08:00
John Audia
dfbda7a318 kernel: bump 5.4 to 5.4.152
All patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
2021-10-14 23:55:50 +08:00
John Audia
71eba0183a kernel: bump 5.4 to 5.4.151
All patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
2021-10-14 23:55:40 +08:00
John Audia
8fdd0311fd kernel: bump 5.10 to 5.10.72
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <graysky@archlinux.us>
2021-10-14 23:55:25 +08:00
John Audia
94986e60c8 kernel: bump 5.10 to 5.10.71
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, ipq806x/R7800
Run-tested: bcm2711/RPi4B, ipq806x/R7800

Signed-off-by: John Audia <graysky@archlinux.us>
2021-10-14 23:54:42 +08:00
Birger Koblitz
eb61f15736 realtek: add legacy realtek GPIO driver for rtl9300 support
The otto GPIO driver does not work with rtl9300 SoCs. Add
the legacy driver again and use that by default in the 9300 .dtsi

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:48:46 +08:00
Birger Koblitz
64cff7fb5a realtek: enable Aquantia PHY support
Enables Aquantia PHY support in the kernel

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:48:32 +08:00
Birger Koblitz
9559066e99 realtek: Fix bug when accessing external PHYs on SoCs older than Revision C
RTL8393 SoCs older than Revision C hang on accesses to PHYs with PHY address
larger or equal to the CPU-port (52). This will make scanning the MDIO bus
hang forever. Since the RTL8390 platform does not support more than
52 PHYs, return -EIO for phy addresses >= 52. Note that the RTL8390 family
of SoCs has a fixed mapping between port number and PHY-address.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:48:19 +08:00
Birger Koblitz
a7aecf66a4 realtek: cleanup PHY driver
Removes unnecessary output from the RTL PHY drivers.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:48:07 +08:00
Birger Koblitz
424db9ff28 realtek: Add debugfs support for RTL9300
Adds support for debugfs on RTL9300, in particular the drop counters.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:47:57 +08:00
Birger Koblitz
0afda063b1 realtek: Add SoC-specific routing offload implementation
Adds SoC specific routing offload implementations for
RTL8380/90 and RTL9300. RTL83xx supports merely nexthop
routing, RTL9300 full host and prefix routes.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:47:38 +08:00
Birger Koblitz
bccf46a7bf realtek: add driver support for routing offload
Add generic support for listening to FIB and Event notifier updates and
use this information to hook into the L3 hardware capabilities of the
RTL SoCs.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:47:25 +08:00
Birger Koblitz
5c4587a130 kernel: Add AQR113C and AQR813 support
This hack adds support for the Aquantia 4th generation, 10GBit
PHYs AQR113C and AQR813.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:46:58 +08:00
Birger Koblitz
640593a654 realtek: Improve MDIO bus probing for RTL9300
Improve handling of multi-gig ports on the RTL9300 when probing
the MDIO bus.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:46:41 +08:00
Birger Koblitz
b7cb8ff235 realtek: Fix bug in VLAN ingress and egress filtering
The ingress filter registers use 2 bits for each port to define the filtering
state, whereas the egress filter uses 1 bit. So for for the ingress filter
the register offset for a given port is:
(port >> 4) << 4: since there are 16 entries in a register of 32 bits
and for the egress filter:
(port >> 5) << 4: since there are 32 entries in a register of 32 bits

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:46:26 +08:00
Birger Koblitz
eb567b97af realtek: Configure initial L2 learning setup
Configure a sane L2 learning configuration upon DSA driver load so that the
switch can start learning L2 addresses. Also configure the correct flood masks
for broadcast and unknown unicast traffice.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:46:12 +08:00
Birger Koblitz
7a93191a71 realtek: Add phylink configuration routines for RTL93xx
This adds RTL93xx-specific MAC configuration routines that allow also configuration
of 10GBit links for phylink. There is support for the Realtek-specific HISGMI
protocol.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:46:00 +08:00
Birger Koblitz
2364f46d23 realtek: Packet Inspection Engine support for RTL930x SoCs
Adds the RTL930x-specific PIE support routines.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:45:49 +08:00
Birger Koblitz
ab6e8d2ae5 realtek: Packet Inspection Engine support for RTL839x SoCs
Adds the RTL839x-specific PIE support routines.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:45:28 +08:00
Birger Koblitz
ab4e53a3c9 realtek: Packet Inspection Engine support for RTL838x SoCs
Adds the RTL838x-specific PIE support routines.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:45:16 +08:00
Birger Koblitz
205891e55c realtek: Add driver support for TC offloading
This adds support for offloading TC flower by using the Packet Inspection Engine
of the RTL-SoCs. Basic infrastructure support is provide with callbacks to the
tc subsystem and support for HW packet counters.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:44:54 +08:00
Birger Koblitz
ba65d2cf14 realtek: Add port to smi-bus address mapping
All RTL SoCs addresss PHYs via their port number, which is mapped to an
SMI address. Add support for configuring this mapping via the .dts on all
SoCs apart from the 839x, where the mapping to the 64 ports is fixed.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:44:35 +08:00
Birger Koblitz
cabddc5135 realtek: Increase maximum RX ring buffer length
Increase the maximum ring buffer length in order to improve
performance on RTL839x devices.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:44:23 +08:00
Birger Koblitz
95d86dc156 realtek: Improve TX CPU-Tag usage
On RTL83xx enable learning of the MAC source address of the CPU port
from outgoing packets. Add documentation on bit fields. On RTL93xx
enable port-mask usage and the use of internal priority, these
SoCs automatically learn the MAC.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:44:10 +08:00
Birger Koblitz
f8f47060d5 realtek: Remove storm control and attack warnings
Remove the storm control and attack warnings from the IRQ handler
of the Ethernet driver. There was no consequence to the detection
and the kernel can also handle at least the attacks itself.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:43:58 +08:00
Birger Koblitz
fd29455ffc realtek: Correct TX ring size in ethernet driver
This enlarges the size of the TX ring buffer, which prevents warnings
when the buffer runs out of space.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-10-13 23:43:47 +08:00
Damien Mascord
549f6e6b93 scripts: mkits.sh: Allow legacy @ mode for dts creation
commit 5ec60cbe9d ("scripts: mkits.sh: replace @ with - in nodes")
broke support for Meraki MR32 and this patch makes the replacement
configurable allowing for specifying the @ or - or whatever character
that is desired to retain backwards compatibility with existing devices.

For example, this patch includes the fix for the Meraki MR32 in
target/linux/bcm53xx/image for meraki_mr32:

  DEVICE_DTS_DELIMITER := @
  DEVICE_DTS_CONFIG := config@1

Fixes: 5ec60cbe9d ("scripts: mkits.sh: replace @ with - in nodes")
Signed-off-by: Damien Mascord <tusker@tusker.org>
[Added tags, checkpatch.pl fixes, noted that this is for old stuff]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-10-12 23:54:34 +08:00
Linus Walleij
e8e54fe8f4 gemini: splash banner on framebuffer console
The D-Link DIR-685 has a small screen with a framebuffer
console, so if we have this, when we start, display the
banner on this framebuffer console so the user know they
are running OpenWRT as root filesystem.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2021-10-11 23:55:36 +08:00
Christian Lamparter
0c09a43c3f apm821xx: disable and move kernel CONFIG_ symbols
try to reduce the kernel size by disabling and moving
options from the common kernel configuration to the
SATA target that doesn't have the constraints.

For NAND this has become necessary because as with 5.10
some devices outgrew their kernels. Though, in my tests
this didn't help much: just a smidgen over 100kib was
saved on the  uncompressed kernel.

... running make kernel_oldconfig also removed some
other config symbols, mostly those that already set
from elsewhere or became obsolete in the meantime.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-10-11 23:54:57 +08:00
Christian Lamparter
a806ac65b2 apm821xx: disable MX60(W) due to kernel size
disables the MX60(W) from being built by the builders for now.
But there's an effort to bring it back:
<https://github.com/openwrt/openwrt/pull/4617>

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-10-11 23:54:42 +08:00
Christian Lamparter
daed25a2cd apm821xx: WNDAP620 + WNDAP660: reorganize partitions for 5.10
Due to 5.10 increased kernel size, the current 4MiB-ish kernel
partition got too small. Luckily, netgear's uboot environment
is setup to read 0x60000 bytes from the kernel partition location.

... While at it: also do some cleanups in the DTS in there.

The original (re-)installation described in
commit d82d84694e ("apm821xx: add support for the Netgear WNDAP620 and WNDAP660")
seemed to be still working for now. What I noticed though
is that the bigger initramfs images needed to use a different
destination address (1000000) to prevent it overwriting
itself during decompression. i.e:
 # tftp 1000000 openwrt-...-wndap620-initramfs-kernel.bin
 # bootm

However, in case of the WNDAP620+660 the factory.img image can be
written directly to the flash through uboot.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-10-11 23:54:30 +08:00
Christian Lamparter
de2c75553b apm821xx: move CONFIG_DMA* to the generic apm821xx config
Both NAND and SATA targets need the DMA engine in one way
or another.

Due to a kernel config refresh various existing symbols
got removed from the apm821xx main config file as well.
(That being said, they are still included because the
built-in crpyto4xx depends on these.)

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-10-11 23:54:17 +08:00
Robert Marko
c00e45d018 mvebu: mochabin: correct LED labels in DTS
LED labels got reversed by accident, so fix it to the usual color:led_name format.

Fixes: 78cf3e53b1 ("mvebu: add Globalscale MOCHAbin")

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
[add Fixes:]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-10-11 23:53:21 +08:00
Daniel Golle
5a20bc09d1 mediatek: enable configfs for DT overlay on mt7622 and mt7623
Enable kernel options to allow loading device tree overlay via configfs
at runtime. This is useful for devboards like the BPi-R2 and BPi-R64
which got RasbPi-compatible 40-pin GPIO header which allow all sorts
of extensions.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-11 23:53:08 +08:00
Kevin Darbyshire-Bryant
e81067552f firmware-utils: bump to git HEAD
f9ad6b3 Add more missing includes for byte swap operations

Basically stop it exploding on MacOS

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-10-10 23:49:10 +08:00
Petr Štetiar
43b96ecea6 firmware-utils: update to version 2021-10-05
Includes following changes:

 db65821f006c cmake: fix missing install target
 3a0cfc856991 Add initial GitLab CI support
 8f47adea6f87 Add missing includes for byte swap operations
 fbafae9f8037 Convert to CMake based project

Additionaly moves source code into separate Git project repository and
converts the package build to utilize CMake.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
[rmilecki: rebase, update to the latest repo git & rm -r src]
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-10-10 23:48:25 +08:00
Matthew Hagan
ed8b410bd3 kernel: 5.10: dsa: don't set skb->offload_fwd_mark when not offloading bridge
Add Vladimir Oltean's "net: dsa: don't set skb->offload_fwd_mark when
not offloading the bridge"

This covers cases where packets received by an upstream switch must be
forwarded back on the same port, which skb->offload_fwd_mark normally
prevents.

Signed-off-by: Matthew Hagan <mnhagan88@gmail.com>
2021-10-10 23:48:00 +08:00
Rafał Miłecki
0905f534ea kernel: export switch_generic_set_link() symbol
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: b2cfed48f6 ("Revert "swconfig: fix Broadcom b53 support"")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-10-10 23:47:46 +08:00
Rafał Miłecki
e504668926 Revert "swconfig: fix Broadcom b53 support"
This reverts commit 8f9cd1af0f.

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>
2021-10-10 23:47:33 +08:00
Rafał Miłecki
06a51747db kernel: backport bgmac upstream commits from 5.15 / for 5.16
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-10-10 23:47:00 +08:00
Rafał Miłecki
9c3c50b40c bcm4908img: detect Linksys images
Linksys uses an extra 0x100 bytes long tail for BCM4908 images.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-10-10 23:46:08 +08:00
Rafał Miłecki
5b9264f3fb bcm4908img: store offset of tail data
This simplifies some operations as it doesn't have to be caculated over
and over. It will also allow adding support for more vendor formats.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-10-10 23:45:56 +08:00
Tianling Shen
077e6b59e8 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-10-09 11:19:14 +08:00
Adrian Schmutzler
15c076db08 treewide: use AUTORELEASE on all uboot-* packages
Nobody ever updates PKG_RELEASE when changing devices or setup in
the various uboot-* packages. Use $(AUTORELEASE) so we still have
proper versioning there.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-10-09 00:13:30 +08:00
Michael Heimpold
5c2ec35d00 uboot-mxs: bump to v2020.04
Also update the U-Boot BSP patch for I2SE Duckbill devices.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2021-10-09 00:11:03 +08:00
Michael Heimpold
ceb19c2e71 uboot-mxs: bump to v2020.01
Also update the U-Boot BSP patch for I2SE Duckbill devices.

Run tested on I2SE Duckbill and Olimex OLinuXino Maxi boards.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2021-10-09 00:10:50 +08:00
Petr Štetiar
c556ac3b3c uboot-imx6: bump to 2020.04 release
Refreshed all patches, run tested on apalis.

Cc: Vladimir Vid <vladimir.vid@sartura.hr>
Cc: Tim Harvey <tharvey@gateworks.com>
Cc: Koen Vandeputte <koen.vandeputte@ncentric.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-10-09 00:09:08 +08:00
Petr Štetiar
1746b0c8f6 uboot-imx6: bump to 2020.01 and refresh patches
Update U-Boot to latest release, remove `100-wandboard-enable-fit.patch`
as FIT support was added in commit 5b8585825128 ("wandboard: Add FIT
image support").

Rework `110-mx6cuboxi-mmc-fallback.patch` into two patches as there was
new config option `CONFIG_SPL_FORCE_MMC_BOOT` added upstream which
should provide the same functionality as the previous patch hunk.

Moving Apalis towards generic distro_bootcmd.

Cc: Vladimir Vid <vladimir.vid@sartura.hr>
Cc: Tim Harvey <tharvey@gateworks.com>
Cc: Koen Vandeputte <koen.vandeputte@ncentric.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-10-09 00:08:39 +08:00
Adrian Schmutzler
cef0572feb ath79: add recipe for common setup with loader-okli-compile
These instructions are repeated for a few devices now, let's move
them to shared definition so we do not repeat ourselves too often.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-10-09 00:04:10 +08:00
Paul Fertser
9784746f8a realtek: ensure output drivers are enabled in RTL8231
The bootloader can leave the GPIO expander in a state which doesn't have
output drivers enabled so GPIOs will properly work for input but output
operations will have no effect.

To avoid disrupting the boot in case the bootloader left direction and
data registers in an inconsistent state (e.g. pulling SoC's reset to 0)
reconfigure everything as input.

Reviewed-by: Sander Vanheule <sander@svanheule.net>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2021-10-09 00:03:52 +08:00
Robert Marko
2262c2ee1e mvebu: add Globalscale MOCHAbin
Globalscale MOCHAbin is a Armada 7040 based development board.

Specifications:
* Armada 7040 Quad core ARMv8 Cortex A-72 @ 1.4GHz
* 2 / 4 / 8 GB of DDR4 DRAM
* 16 GB eMMC
* 4MB SPI-NOR (Bootloader)
* 1x M.2-2280 B-key socket (for SSD expansion, SATA3 only)
* 1x M.2-2250 B-key socket (for modems, USB2.0 and I2C only)
* 1x Mini-PCIe 3.0 (x1, USB2.0 and I2C)
* 1x SATA 7+15 socket (SATA3)
* 1x 16-pin (2×8) MikroBus Connector
* 1x SIM card slot (Connected to the mini-PCIe and both M.2 slots)
* 2x USB3.0 Type-A ports via SMSC USB5434B hub
* Cortex 2x5 JTAG
* microUSB port for UART (PL2303GL/PL2303SA onboard)
* 1x 10G SFP+
* 1x 1G SFP (Connected to 88E1512 PHY)
* 1x 1G RJ45 with PoE PD (Connected to 88E1512 PHY)
* 4x 1G RJ45 ports via Topaz 88E6141 switch
* RTC with battery holder (SoC provided, requires CR2032 battery)
* 1x 12V DC IN
* 1x Power switch
* 1x 12V fan header (3-pin, power only)
* 1x mini-PCIe LED header (2x0.1" pins)
* 1x M.2-2280 LED header (2x0.1" pins)
* 6x Bootstrap jumpers
* 1x Power LED (Green)
* 3x Tri-color RGB LEDs (Controllable)
* 1x Microchip ATECC608B secure element

Note that 1G SFP and 1G WAN cannot be used at the same time as they are in
parallel connected to the same PHY.

Installation:

Copy dtb from build_dir to bin/ and run tftpserver there:
$ cp ./build_dir/target-aarch64_cortex-a72_musl/linux-mvebu_cortexa72/image-armada-7040-mochabin.dtb bin/targets/mvebu/cortexa72/
$ in.tftpd -L -s bin/targets/mvebu/cortexa72/

Connect to the device UART via microUSB port and power on the device.

Power on the device and hit any key to stop the autoboot.

Set serverip (host IP) and ipaddr (any free IP address on the same subnet), e.g:
$ setenv serverip 192.168.1.10 # Host
$ setenv ipaddr 192.168.1.15 # Device

Set the ethernet device (Example for the 1G WAN):
$ setenv ethact mvpp2-2

Ping server to confirm network is working:
$ ping $serverip
Using mvpp2-2 device
host 192.168.1.15 is alive

Tftpboot the firmware:
$ tftpboot $kernel_addr_r openwrt-mvebu-cortexa72-globalscale_mochabin-initramfs-kernel.bin
$ tftpboot $fdt_addr_r image-armada-7040-mochabin.dtb

Boot the image:
$ booti $kernel_addr_r - $fdt_addr_r

Once the initramfs is booted, transfer openwrt-mvebu-cortexa72-globalscale_mochabin-squashfs-sdcard.img.gz
to /tmp dir on the device.

Gunzip and dd the image:
$ gunzip /tmp/openwrt-mvebu-cortexa72-globalscale_mochabin-squashfs-sdcard.img.gz
$ dd if=/tmp/openwrt-mvebu-cortexa72-globalscale_mochabin-squashfs-sdcard.img of=/dev/mmcblk0 && sync

Reboot the device.

Hit any key to stop the autoboot.

Reset U-boot env and set the bootcmd:
$ env default -a
$ setenv bootcmd 'load mmc 0 ${loadaddr} boot.scr && source ${loadaddr}'

Optionally I would advise to edit the console env variable to remove earlycon as that
causes the kernel to never use the driver for the serial console.
Earlycon should be used only for debugging before the kernel can configure the console
and will otherwise cause various issues with the console.

$ setenv console 'console=ttyS0,115200'

Save and reset
$ saveenv
$ reset

OpenWrt should boot from eMMC now.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-10-09 00:03:17 +08:00
Daniel Kestrel
0c5c601bb8 lantiq: kernel: xway-nand: Move ECC engine setting to new DT binding
When trying to add support for another device with Micron NAND chips,
it was discovered that the default setting in the kernel source does
not work with Micron Chips, since the device trees setting is
overwritten and hard coded by the kernel xway_nand driver. This was
the original reason for this PR.
A kernel patch sets the default ECC mode to soft without overwriting
the device tree settings and the device tree for devices using it
are updated with new parameters because the old ones are deprecated
by torvalds/linux@533af69.
A patch for kernel 5.4 is provided to support the new settings
because kernel 5.4 does not support it.

Signed-off-by: Daniel Kestrel <kestrel1974@t-online.de>
2021-10-09 00:02:44 +08:00
Hauke Mehrtens
64f9a1952b lantiq: kernel: xway-nand: Fix setting on-die ECC engines in dts
This backports a fix proposed for upstream kernel to fix overwriting
the NAND ECC engine in device tree.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-10-09 00:02:25 +08:00
Alan Swanson
e39099da17 uboot-lantiq: fix sha1.h header clash when system libmd installed
Backport of u-boot commit "includes: move openssl headers to include/u-boot"
2b9912e6a7

Fixes: FS#3955
Signed-off-by: Alan Swanson <reiver@improbability.net>
2021-10-09 00:02:13 +08:00
David Bauer
a7bd964d01 ramips: fix USW-Flex reversed switch-port order
Switch port order was reversed due to reading the internal labling
(which mismatches the one on the case).

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-10-08 23:58:24 +08:00
AmadeusGhost
1bf59628e6 ramips: switch all supported devices to nvmem-cells 2021-10-08 12:10:13 +08:00
AmadeusGhost
bde39179ff ramips: add support for JCG JHR-AC945M
(cherry picked from commit dd4890c)
Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-10-08 12:03:52 +08:00
Pawel Dembicki
08a109b83a kernel: 5.10: add missing symbols
Three missing symbols were found during mpc85xx/p2020 compilation.

While at it, CONFIG_FSL_ENETC_MDIO is moved to generic config
for consistency.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
[move CONFIG_FSL_ENETC_MDIO, remove redundant definitions, adjust
commit message/title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-10-07 00:05:39 +08:00
Stijn Tintel
25bd240202 bcm27xx: add RPI_AXIPERF symbol
When KERNEL_PERF_EVENTS is enabled in OpenWrt, or PERF_EVENTS in the
kernel config, the RPI_AXIPERF is exposed. Add it to the subtarget
kernel configs to avoid build failures.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-10-07 00:05:24 +08:00
Stijn Tintel
2c09ec436a bcm27xx: add SND_SOC_AD193X_{I2C,SPI} symbols
When building an image for the bcm27xx target, some combinations of
config options will fail to build due the SND_SOC_AD193X_I2C and
SND_SOC_AD193X_SPI kernel config symbols being missing.

The problem only occurs on bcm27xx as the target contains a patch that
modifies the Kconfig file containing the symbols; in the vanilla kernel,
there is no string after the tristate keyword so the symbol is not
exposed.

The _I2C symbol depends on I2C, which is enabled in the kernel configs
of all bcm27xx subtargets.

The _SPI symbol depends on SPI_MASTER, which is exposed by either
kmod-mmc-spi, kmod-spi-bitbang, kmod-spi-dev, kmod-spi-bcm2835 or
kmod-spi-bcm2835-aux.

Both symbols are defined in the sound/soc/codecs directory, which is
only included when SND_SOC is enabled, so this problem doesn't occur
when kmod-sound-soc-core is not enabled. As the
kmod-sound-soc-bcm2835-i2s package disables the SND_SOC_AD193X_SPI
symbol, it also doesn't occur when kmod-sound-soc-bcm2835-i2s is
enabled.

As there are several possible config combinations that do exhibit this
problem, it is best to solve it by adding the missing symbols to the
subtarget kernel configs. By doing this we can remove them from the
kmod-sound-soc-bcm2835-i2s package.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-10-07 00:04:54 +08:00
Hauke Mehrtens
8d5315f3a2 kernel: Deactivate some ARM64 errata workarounds
This deactivates the following workarounds for erratas in ARM64 CPUS:
CONFIG_ARM64_ERRATUM_1165522: Cortex-A76 cores (r0p0, r1p0, r2p0)
CONFIG_ARM64_ERRATUM_1286807: Cortex-A76 cores (r0p0 to r3p0)
CONFIG_ARM64_ERRATUM_1418040: Cortex-A76/Neoverse-N1 cores (r0p0 to r3p1)
CONFIG_CAVIUM_TX2_ERRATUM_219: Cavium ThunderX2
CONFIG_FUJITSU_ERRATUM_010001: Fujitsu-A64FX

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-10-07 00:04:20 +08:00
Hauke Mehrtens
f1b0f77ff6 sunxi: Refresh kernel 5.10 configuration
The cortex53 subtarget was missing multiple config options and the other
targets just defined some options which are not needed.

Fixes: 83672f506d ("sunxi: add testing Linux 5.10")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-10-07 00:03:14 +08:00
Hauke Mehrtens
7040c1d97e sunxi: Activate CONFIG_SATA_PMP
The kernel 5.4 configuration activated SATA Port Multiplier support, add
it to kernel 5.10 too.

Fixes: 83672f506d ("sunxi: add testing Linux 5.10")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-10-07 00:01:52 +08:00
Sungbo Eo
cff4e92c2f kirkwood: refresh kernel config
Refresh config with make kernel_oldconfig.

Tested-by: Pawel Dembicki <paweldembicki@gmail.com>
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-10-06 23:56:13 +08:00
Sungbo Eo
538472be8b kirkwood: solidify SATA_PMP config
SATA_PMP option is no longer exposed when no SATA host driver is enabled
since upstream linux commit bd322af15ce9 ("ata: make SATA_PMP option
selectable only if any SATA host driver is enabled").

Commit 1bb3f593ee ("kirkwood: update config for kernel 5.10") manually
added CONFIG_SATA_PMP=y to config file, but the config will disappear for
every kernel_oldconfig refresh.

To prevent this, a small hack is added, which selects SATA_HOST
automatically when SATA_PMP is enabled. This patch can be dropped if
SATA_MV is ever re-added into kernel config file.

Tested-by: Pawel Dembicki <paweldembicki@gmail.com>
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
[Move patch to generic/hack-5.10]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-10-06 23:55:59 +08:00
Felix Fietkau
1bc02468e2 netifd: update to the latest version
186f6eaeba70 wireless: display log messages for setup/teardown/retry
fac471c4934a wireless: process and close script file descriptor when rerunning setup
62e2bb56f48e main: poll process log stream even if processes are killed
0e311d3f2d1a wireless: reset number of retries on config change
e467e0ff44c0 wireless: reset retry counter when setup succeeds
448ffc154fe7 wireless: fix index for stations

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-06 23:55:11 +08:00
Felix Fietkau
960d717a77 mac80211: allow retry of wifi setup if an iw interface add command fails
In some cases, spurious failures might be cleared by teardown and retry

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-10-06 23:54:59 +08:00
Daniel Golle
312e09061b uboot-mediatek: update to 2021.10
U-Boot 2021.10 has been released.
Rebase mediatek patches on top of new release and remove some patches
which have been merged upstream.

Tested on Bananapi BPi-R2 (mt7623), Bananapi BPi-R64 (mt7622) and
Linksys E8450 (mt7622).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-05 23:58:15 +08:00
Hauke Mehrtens
f563aa7cea kernel: bump 5.4 to 5.4.150
Manually rebased:
  generic/pending-5.4/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch
  mvebu/patches-5.4/021-arm64-dts-marvell-armada-37xx-Move-PCIe-comphy-handl.patch

Removed upstreamed:
  layerscape/patches-5.4/819-uart-0004-MLK-18137-fsl_lpuart-Fix-loopback-mode.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>
2021-10-05 23:56:32 +08:00
Rui Salvaterra
960c4a9e57 kernel: bump 5.10 to 5.10.70
Deleted (upstreamed):
bcm53xx/patches-5.10/181-Revert-USB-bcma-Add-a-check-for-devm_gpiod_get.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-10-05 23:55:51 +08:00
Rui Salvaterra
eafb9a0555 kernel: bump 5.10 to 5.10.69
Patches automatically refreshed.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-10-05 23:55:40 +08:00
Rui Salvaterra
99936ad397 kernel: bump 5.10 to 5.10.68
Deleted (upstreamed):
generic/backport-5.10/610-v5.13-02-netfilter-Fix-fall-through-warnings-for-Clang.patch
generic/backport-5.10/792-v5.15-0001-net-dsa-b53-Fix-calculating-number-of-switch-ports.patch
generic/backport-5.10/792-v5.15-0002-net-dsa-b53-Set-correct-number-of-ports-in-the-DSA-s.patch
generic/backport-5.10/792-v5.15-0003-net-dsa-b53-Fix-IMP-port-setup-on-BCM5301x.patch
generic/backport-5.10/840-0001-PCI-of-Don-t-fail-devm_pci_alloc_host_bridge-on-miss.patch
generic/backport-5.10/840-0002-PCI-iproc-Fix-BCMA-probe-resource-handling.patch
generic/pending-5.10/498-mtd-mtdconcat-select-readwrite-function.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-10-05 23:55:28 +08:00
Rui Salvaterra
2caaeb29cc kernel: bump 5.10 to 5.10.67
Deleted (upstreamed):
bcm27xx/patches-5.10/950-0312-vc4_hdmi-Set-HD_CTL_WHOLSMP-and-HD_CTL_CHALIGN_SET.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-10-05 23:55:18 +08:00
Rui Salvaterra
8e9b97e2d4 kernel: bump 5.10 to 5.10.66
No patches refreshed.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-10-05 23:55:08 +08:00
Rui Salvaterra
f8cc178bce kernel: bump 5.10 to 5.10.65
Manually refreshed:
generic/pending-5.10/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch
bcm27xx/patches-5.10/950-0053-firmware-bcm2835-Support-ARCH_BCM270x.patch
bcm27xx/patches-5.10/950-0087-firmware-raspberrypi-Add-backward-compatible-get_thr.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-10-05 23:54:53 +08:00
INAGAKI Hiroshi
d9d76077a4 realtek: add Kernel 5.10 as testing version
This patch adds "KERNEL_TESTING_PATCHVER:=5.10" to the Makefile in
realtek target to allow using Kernel 5.10 for testing.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:40:16 +08:00
INAGAKI Hiroshi
35477cb816 realtek: enable uart1 on the devices with PoE support in 5.10
On the devices with PoE support, the secondary UART (uart1) on the SoC
is used to communicate between the SoC and controller.

Enable the secondary UART on the following devices:

- D-Link DGS-1210-10P
- Netgear GS110TPP v1
- Netgear GS310TP v1
- ZyXEL GS1900-8HP v1/v2
- ZyXEL GS1900-10HP
- ZyXEL GS1900-24HP v2

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:40:03 +08:00
INAGAKI Hiroshi
af1508eb9a realtek: use physical addresses in soc dtsi in 5.10
Use physical addresses instead of virtual address in dts files.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:39:52 +08:00
INAGAKI Hiroshi
5208a243a7 realtek: use gpio-keys instead of "-polled" if SoC GPIO is used in 5.10
The new backported GPIO driver supports interrupt, so use gpio-keys
instead of gpio-keys-polled for keys connected to the internal GPIO
controller.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:39:38 +08:00
INAGAKI Hiroshi
bef3b8a07d realtek: update GPIO bindings in the dts files in dts-5.10
this patch includes the following changes:

- adjust mapping for the new driver
  - GPIO 24 -> GPIO 0
  - GPIO 47 -> GPIO 0 (+ disabling system LED)

- disable pins in the invalid range
  (out of the range 0-31 of the new driver)
  - are these pins on the external RTL8231 (&gpio1)?
    - GPIO 67 (-> GPIO 3 on &gpio1?)
    - GPIO 94 (-> GPIO 30 on &gpio1?)

- drop "indirect-access-bus-id" property from gpio0 node in device dts
  files

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:39:23 +08:00
INAGAKI Hiroshi
a2ecefbf06 realtek: fix kernel panic in DSA driver for 5.10
dsa_to_port function in 5.10 returns dsa_port from the port list in
dsa_switch_tree, but the tree is built when the switch is registered
by dsa_register_switch and it's null in rtl83xx_mdio_probe.

So, we need to use dsa_to_port after the registration of the switch.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:39:09 +08:00
INAGAKI Hiroshi
f4e41d9551 realtek: add pinmux node of LED_GLB_CTRL to rtl838x.dtsi in dts-5.10
This patch adds a pinctrl-single pinmux node to allow disabling system
LED and enabling GPIO 0 (old driver: GPIO 24).

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:38:58 +08:00
INAGAKI Hiroshi
5a467fbd81 realtek: fix compile errors in dsa driver for 5.10
this patch fixes the following errors when compiling:

- dsa_switch_alloc is removed[1]

- a parameter "enum dsa_tag_protocol mprot" is added to dsa_tag_protocol
  in dsa_switch_ops (include/net/dsa.h)

- several paramters are added to "phylink_mac_link_up" in dsa_switch_ops
  (include/net/dsa.h)

  added:
    - int speed
    - int duplex
    - bool tx_pause
    - bool rx_pause

- a parameter "struct switchdev_trans *trans" is added to
  port_vlan_filtering in dsa_switch_ops (include/net/dsa.h)

[1]: https://lore.kernel.org/lkml/20191020031941.3805884-17-vivien.didelot@gmail.com/

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:38:44 +08:00
INAGAKI Hiroshi
c46cb19708 realtek: fix compile errors in rtl838x_eth.c for 5.10
this patch fixes the following errors when compiling:

- "unsigned int txqueue" is added as an additional parameter of
  ndo_tx_timeout in net_device_ops (include/linux/netdevice.h)

- "mac_link_state" in phylink_mac_ops (include/linux/phylink.h)
  is renamed to "mac_pcs_get_state" and changed the return value
  to void from int

- several parameters are added to "mac_link_up" in phylink_mac_ops
  (include/linux/phylink.h) and the order of the parameters is
  changed

  added:
    - int speed
    - int duplex
    - bool tx_pause
    - bool rx_pause

- a parameter "phy_interface_t *interface" is added to of_get_phy_mode
  (drivers/of/of_net.c) and returns the state instead of phy mode

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:38:30 +08:00
INAGAKI Hiroshi
c2b5447fe7 realtek: add "soc" node to soc dtsi in dts-5.10
Add a "soc" node as a simple-bus to rtl838x.dtsi and rtl930x.dtsi.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:38:18 +08:00
INAGAKI Hiroshi
2186585473 realtek: update soc dtsi in 5.10 for backported drivers
this patch updates SoC dtsi (rtl838x.dtsi, rtl930x.dtsi) for the
following backported drivers:

- gpio-realtek-otto (5.13)
- spi-realtek-rtl (5.12)
- irq-realtek-rtl (5.12)

And, disable SoC GPIO node (gpio0) in rtl930x.dtsi in dts-5.10.
Currently, the upstreamed driver doesn't support the GPIO controller on
RTL930x SoC.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:38:03 +08:00
INAGAKI Hiroshi
17bf9779d6 realtek: cleanup and update soc dtsi in 5.10
the following changes are included in this patch:

- node is enabled by default, drop 'status = "okay"'
- adjust order of "compatible" lines and "reg" lines
- add a new blank line before fixed-link node in rtl830x.dtsi

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:37:54 +08:00
INAGAKI Hiroshi
b1f4a0c08a realtek: copy dts directory for Kernel 5.10
This patch adds "dts-5.10" directory to use backported drivers.
There are several specification changes in the new drivers, so there
are some compatibility issues in using dts/dtsi files for 5.4.

The old DTS files are moved to "dts-5.4", so their corresponding
kernel version is obvious as well.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[change "dts" to "dts-5.4", adjust Makefile]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-10-04 23:37:31 +08:00
INAGAKI Hiroshi
0d44021ef5 realtek: refresh and update config-5.10
This patch adjusts config-5.10 by running kernel_menuconfig.

Note:

- disable psb6970 phy driver (unused in realtek target?)

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:37:15 +08:00
INAGAKI Hiroshi
a500601ccc realtek: refresh patches for Kernel 5.10
This patch refresh all patches in patches-5.10/ to adjust for Kernel
5.10.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:37:02 +08:00
INAGAKI Hiroshi
d8b0815eb3 realtek: remove unnecessary line from rtl838x/Platform in 5.10
The following line is already defined in arch/mips/Kbuild.platforms by
300-mips-add-rtl838x-platform.patch.

platform-$(CONFIG_RTL838X) += rtl838x/

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:36:44 +08:00
INAGAKI Hiroshi
3e6fb721b0 realtek: drop fixup_bigphys_addr from ioremap.h in 5.10
A macro with the same name is provided in asm/pgtable.h in Kernel 5.10,
use it and drop from ioremap.h.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:36:25 +08:00
INAGAKI Hiroshi
1370efa6e9 realtek: fix "help" line in Kconfig in files/patches for 5.10
In Kernel 5.10, "help" must be used instead of "---help---".

this patch fixes the following errors:

drivers/net/dsa/rtl83xx/Kconfig:7: syntax errorgit
drivers/net/dsa/rtl83xx/Kconfig:6: unknown statement "---help---"
drivers/net/dsa/rtl83xx/Kconfig:7:warning: ignoring unsupported character '.'
drivers/net/dsa/rtl83xx/Kconfig:7: unknown statement "This"
drivers/net/ethernet/Kconfig:170: syntax error
drivers/net/ethernet/Kconfig:169: unknown statement "---help---"
drivers/net/ethernet/Kconfig:170:warning: ignoring unsupported character '.'
drivers/net/ethernet/Kconfig:170: unknown statement "Say"
drivers/net/phy/Kconfig:331: syntax error
drivers/net/phy/Kconfig:330: unknown statement "---help---"
drivers/net/phy/Kconfig:331: unknown statement "Supports"

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:36:08 +08:00
INAGAKI Hiroshi
fa5cb9de09 realtek: backport irq-realtek-rtl driver from 5.12 to 5.10
This patch backports "irq-realtek-rtl" driver to Kernel 5.10 from 5.12.
"MACH_REALTEK_RTL" is used as a platform name in upstream, but "RTL838X"
is used in OpenWrt, so update the dependency by the additional patch.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:35:49 +08:00
INAGAKI Hiroshi
1790a265ab realtek: drop platform irq driver from 5.10
To use backported irq driver, drop old irq driver from realtek target
and call irqchip_init() in setup.c.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:35:39 +08:00
INAGAKI Hiroshi
af7a361ec0 realtek: backport gpio-realtek-otto driver from 5.13 to 5.10
This patch backports "gpio-realtek-otto" driver to Kernel 5.10.
"MACH_REALTEK_RTL" is used as a platform name in upstream, but "RTL838X"
is used in OpenWrt, so update the dependency by the additional patch.

Note: GPIO mapping is changed in the upstreamed driver.

  old - new

   24 -  0
   25 -  1
   26 -  2
   27 -  3
   28 -  4
   29 -  5
   30 -  6
   31 -  7
   16 -  8
   17 -  9
   18 - 10
   19 - 11
   20 - 12
   21 - 13
   22 - 14
   23 - 15
    8 - 16
    9 - 17
   10 - 18
   11 - 19
   12 - 20
   13 - 21
   14 - 22
   15 - 23

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:35:17 +08:00
INAGAKI Hiroshi
f3ea002729 realtek: drop rtl838x gpio driver from 5.10
To backport the upstreamed driver (gpio-realtek-otto) from 5.13, drop the
old driver from realtek target.

And, modify 301-gpio-add-rtl838x-driver.patch to remove rtl838x GPIO
support and rename it only for rtl8231 GPIO support.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:35:04 +08:00
INAGAKI Hiroshi
d86b558e30 realtek: backport spi-realtek-rtl driver from 5.12 to 5.10
This patch backports "spi-realtek-rtl" driver to Kernel 5.10 from 5.12.
"MACH_REALTEK_RTL" is used as a platform name in upstream, but "RTL838X"
is used in OpenWrt, so update the dependency by the additional patch.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:34:42 +08:00
INAGAKI Hiroshi
9616de606b realtek: drop rtl838x spi-nor driver from 5.10
To backport the upstreamed driver (spi-realtek-rtl) from 5.12, drop the
old driver from realtek target.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-10-04 23:34:12 +08:00
INAGAKI Hiroshi
c91ceb6560 realtek: copy config/files/patches to 5.10
this patch copies the following files from 5.4 to 5.10:

- config-5.4   -> config-5.10
- files-5.4/   -> files-5.10/
- patches-5.4/ -> patches-5.10/

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[rebase on change in files-5.4]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-10-04 23:33:59 +08:00
Paul Fertser
45c5233174 realtek: fix RTL8231 gpio expander for high GPIOs
GPIOs > 31 require special handling. This patch fixes both the
initialisation and direction get/set operations.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-by: Sander Vanheule <sander@svanheule.net>
2021-10-04 23:33:44 +08:00
Daniel Golle
6293294f71 mediatek: remove files and patches for Linux 5.4
All subtargets only provide files and patches for Linux 5.10 by now
so there is little use for the old Linux 5.4 stuff. Remove it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-03 23:58:27 +08:00
Daniel Golle
cdda3a1d6e mediatek: mt7623: bpi-r2: add LED aliases
Add aliases for LEDs in device tree of the BPi-R2.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-03 23:57:12 +08:00
Daniel Golle
ee56a996d1 mediatek: add FEATURES and order them alphabetically
Add common features 'gpio', 'nand', 'pci', 'pcie', 'squashfs' and 'usb'
for all mediatek targets, add 'display' and 'usbgadget' for MT7623.
Sort features alphabetically while at it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-03 23:56:51 +08:00
Daniel Golle
192d3af17e uboot-mediatek: fix and make use of LEDs on BPi-R2
Fix BPi-R2 GPIO LEDs to indicate boot into production or recovery
firmware in DTS and define them in default environment.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-03 23:56:38 +08:00
Daniel Golle
0c3f870e02 mediatek: mt7622: provide power on mPCIe in SATA mode
User reported that R64 doesn't provide power to the mPCIe slot in case
the PCIe port is disabled as it is when selecting the SATA
configuration. As users may still want to use USB-connected mPCIe
modules in CN8 slot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-10-03 23:56:25 +08:00
AmadeusGhost
aa56b0d6ec mt7601u-ap: fix build with kernel 5.10
Fixes: #473
2021-09-30 16:23:01 +08:00
Stijn Tintel
5a773850cc kernel: add missing symbol to kmod-kvm
Even though TRACEPOINTS is not enabled in my kernel config, my build
fails due to KVM_MMU_AUDIT being missing. Add this symbol to kmod-kvm to
fix this.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-09-30 16:19:39 +08:00
Stijn Tintel
f3e8b9ed6d kernel: order kmod-kvm symbols alphabetically
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-09-30 16:19:27 +08:00
Felix Fietkau
81bcb4301d netifd: update to the latest version
4d0c2ad3fd26 wireless: fix applying wireless devices attributes on hotplug events

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-09-29 23:39:21 +08:00
Felix Fietkau
ac6de19470 netifd: update to the latest version
5a4ac30c7a15 netifd: rework/fix device free handling

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-09-29 23:39:12 +08:00
Moritz Warning
89318ac8fc bcm47xx: use device vendor/model variable
Remove use of DEVICE_TITLE in favor of the
DEVICE_VENDOR and DEVICE_MODEL as used by
all other targets.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2021-09-29 23:38:48 +08:00
Moritz Warning
a5ef3ebb70 x86: use device vendor/model variable
Remove use of DEVICE_TITLE in favor of the
DEVICE_VENDOR and DEVICE_MODEL as used by
all other targets.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2021-09-29 23:38:29 +08:00
Tianling Shen
46a0eb282e sunxi: apply dma hack for kernel 5.10
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit d26e324e4d)
2021-09-29 03:54:40 +08:00
AmadeusGhost
d76295cb73 sunxi/5.10: add missing kconfig 2021-09-28 23:53:05 +08:00
AmadeusGhost
640ad98e9d sunxi/5.10: enable thermal and h6 usb3 driver 2021-09-28 23:52:04 +08:00
AmadeusGhost
5a8ea9ee54 sunxi/5.10: add NanoPi R1S H5 support
Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-09-28 23:49:22 +08:00
Daniel Golle
aa93b2aa8c sunxi: add testing Linux 5.10
Add testing Linux kernel 5.10 for sunxi targets.

Removed patches were replaced by upstream commits:

- 410-v5.6-arm64-dts-allwinner-a64-olinuxino-Add-bank-supply-re.patch
   f0c3b29f56f0a arm64: dts: allwinner: a64: olinuxino: Add bank supply regulators

- 420-v5.7-arm64-dts-allwinner-a64-olinuxino-add-user-red-LED.patch
   89866b2667e0d arm64: dts: allwinner: a64: olinuxino: add user red LED

- 440-add-h6-pwm.patch
   a7fe985633f92 pwm: sun4i: Add an optional probe for reset line
   b8d74644f34a8 pwm: sun4i: Prefer "mod" clock to unnamed
   5b090b430d750 pwm: sun4i: Add an optional probe for bus clock
   fa4d81784681a pwm: sun4i: Always calculate params when applying new parameters
   9f28e95b5286f pwm: sun4i: Add support to output source clock directly
   fdd2c12e3761f pwm: sun4i: Add support for H6 PWM

- 441-arm64-dts-add-PWM-node.patch
   88432f5f8469b arm64: dts: allwinner: h6: Add PWM node

- 443-board-h6-orangepioneplus-fix-missing-ethernet.patch
   7ee32a17e0d65 arm64: dts: allwinner: h6: orangepi-one-plus: Enable ethernet

Run tested on friendlyarm,nanopi-neo (allwinner,sun8i-h3), looks all good.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-09-28 23:43:09 +08:00
Daniel Golle
7d21642ce0 sunxi: bring up DSA b53 switch on Lamobo R1
Build cortexa7 subtarget with DSA driver for MDIO-connected Broadcom
BCM53xxx switches. This is needed for the Lamobo R1 aka. BananaPi
BPi-R1 board which comes with such a switch IC.

Remove old swconfig driver from target kernel config as the only board
using it is now supported by the DSA driver.

No changes to device tree are needed as upstream DTS already got a
DSA switch definition and we are just using that upstream source.

Update default network config of the Lamobo R1 to create lan bridge
with all 4 lan ports.

Introduce DEVICE_COMPAT_VERSION for the board to inform users about
having the re-create their network configuration and add device alias
as Bananapi BPi-R1 while at it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-09-28 23:42:28 +08:00
Zhao Yu
c80f930c3b sunxi: enable MUSB in A7 subtarget
like commit 78c1ed6. Without this,Some USB port on H3 baseboard
can' work. So, need enable MUSB support on this target.

Signed-off-by: Zhao Yu <574249312@qq.com>
2021-09-28 23:42:17 +08:00
Andrew Cameron
4d571bb68b ath79: add support for TP-Link CPE710-v1
TP-Link CPE710-v1 is an outdoor wireless CPE for 5 GHz with
one Ethernet port based on the AP152 reference board

Specifications:
- SoC: QCA9563-AL3A MIPS 74kc @ 775MHz, AHB @ 258MHz
- RAM: 128MiB DDR2 @ 650MHz
- Flash: 16MiB SPI NOR Based on the GD25Q128
- Wi-Fi 5Ghz: ath10k chip (802.11ac for up to 867Mbps on 5GHz wireless
  data rate) Based on the QCA9896
- Ethernet: one 1GbE port
- 23dBi high-gain directional 2×2 MIMO antenna and a dedicated metal
  reflector
- Power, LAN, WLAN5G Blue LEDs
- 3x Blue LEDs

Flashing instructions:
Flash factory image through stock firmware WEB UI or through TFTP
To get to TFTP recovery just hold reset button while powering on for
around 30-40 seconds and release.
Rename factory image to recovery.bin
Stock TFTP server IP:192.168.0.100
Stock device TFTP address:192.168.0.254

Signed-off-by: Andrew Cameron <apcameron@softhome.net>
[convert to nvmem, fix MAC assignment in 11-ath10k-caldata]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-09-27 23:56:37 +08:00
Dale Hui
de4b3d53d7 ramips: add support for Netgear R7450
Netgear R7450 is a clone of Netgear R6700v2

Specifications
==============
SoC: MediaTek MT7621AT
RAM: 256M DDR3
FLASH: 128M NAND
WiFi: MediaTek MT7615N an+ac
MediaTek MT7615N bgn
ETH: MediaTek MT7621AT
BTN: 1x Connect (WPS), 1x WLAN, 1x Reset
LED: Power (white/amber), WAN(white/amber), 2.4G(white), 5G(white),
USB(white) , GuestWifi(white) 4x LAN(white/amber), Wifi Button(white),
WPS Button(white)

Flash Instructions
==================
Login to netgear webinterface and flash factory.img

Signed-off-by: Dale Hui <strokes-races0b@icloud.com>
[fix model/compatible in DTS]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-09-27 23:56:07 +08:00
Dale Hui
074a450d9a ramips: add support for Netgear R6900v2
Netgear R6900v2 is a clone of Netgear R6700v2

Specifications
==============
SoC: MediaTek MT7621AT
RAM: 256M DDR3
FLASH: 128M NAND
WiFi: MediaTek MT7615N an+ac
MediaTek MT7615N bgn
ETH: MediaTek MT7621AT
BTN: 1x Connect (WPS), 1x WLAN, 1x Reset
LED: Power (white/amber), WAN(white/amber), 2.4G(white), 5G(white),
USB(white) , GuestWifi(white) 4x LAN(white/amber), Wifi Button(white),
WPS Button(white)

Flash Instructions
==================
Login to netgear webinterface and flash factory.img

Signed-off-by: Dale Hui <strokes-races0b@icloud.com>
2021-09-27 23:55:51 +08:00
Dale Hui
0ca742e585 ramips: add Nighthawk AC2100 as name for Netgear R6700v2
Netgear Nighthawk AC2100 is another name of the Netgear R6700v2.

Signed-off-by: Dale Hui <strokes-races0b@icloud.com>
[adjust commit message/title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-09-27 23:55:18 +08:00
Dale Hui
beabc453bf ramips: make Netgear R7200 a separate device from R6700v2
With the various variants of Netgear R**** devices, make it more
obvious which image should be used for the R7200.

Signed-off-by: Dale Hui <strokes-races0b@icloud.com>
[provide proper commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-09-27 23:54:40 +08:00
David Bauer
d42c5ba165 ramips: enable I2C_CHARDEV
Expose I2C busses with a chardev device. This is required to control the
PSE controller on the Ubiquiti UniFi Flex Switch.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-09-27 23:54:14 +08:00
David Bauer
6537a5ffe8 ramips: add support for Ubiquiti USW-Flex
Hardware
--------
MediaTek MT7621AT
16M SPI-NOR Macronix MX25L12835FMI
Microchip PD69104B1 4-Channel PoE-PSE controller
TI TPS2373 PoE-PD controller

PoE-Controller
--------------

By default, the PoE outputs do not work with OpenWrt. To make them output
power, install the "poemgr" package from the packages feed.
This package can control the PD69104B1 PSE controller.

Installation
------------

1. Connect to the booted device at 192.168.1.20 using username/password
   "ubnt" via SSH.

2. Add the uboot-envtools configuration file /etc/fw_env.config with the
   following content

   $ echo "/dev/mtd1 0x0 0x1000 0x10000 1" > /etc/fw_env.config

3. Update the bootloader environment.

   $ fw_setenv boot_openwrt "fdt addr \$(fdtcontroladdr);
     fdt rm /signature; bootubnt"
   $ fw_setenv bootcmd "run boot_openwrt"

4. Transfer the OpenWrt sysupgrade image to the device using SCP.

5. Check the mtd partition number for bs / kernel0 / kernel1

   $ cat /proc/mtd

6. Set the bootselect flag to boot from kernel0

   $ dd if=/dev/zero bs=1 count=1 of=/dev/mtdblock4

7. Write the OpenWrt sysupgrade image to both kernel0 as well as kernel1

   $ dd if=openwrt.bin of=/dev/mtdblock6
   $ dd if=openwrt.bin of=/dev/mtdblock7

8. Reboot the device. It should boot into OpenWrt.

Restore to UniFi
----------------

To restore the vendor firmware, follow the Ubiquiti UniFi TFTP
recovery guide for access points. The process is the same for
the Flex switch.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-09-27 23:53:40 +08:00
INAGAKI Hiroshi
ef8552eeb9 ramips: add support for I-O DATA WN-DX2033GR
I-O DATA WN-DX2033GR is a 2.4/5 GHz band 11ac (Wi-Fi 5) router, based on
MT7621A.

Specification:

- SoC		: MediaTek MT7621A
- RAM		: DDR3 128 MiB
- Flash		: Raw NAND 128 MiB (Macronix MX30LF1G18AC-TI)
- WLAN		: 2.4/5 GHz
  - 2.4 GHz	: 2T2R, MediaTek MT7603E
  - 5 GHz	: 4T4R, MediaTek MT7615
- Ethernet	: 5x 10/100/1000 Mbps
  - Switch	: MediaTek MT7530 (SoC)
- LEDs/Keys	: 2x/3x (2x buttons, 1x slide-switch)
- UART		: through-hole on PCB
  - J5: 3.3V, TX, RX, NC, GND from triangle mark
  - 57600n8
- Power		: 12 VDC, 1 A

Flash instruction using initramfs image:

1. Boot WN-DX2033GR normally
2. Access to "http://192.168.0.1/" and open firmware update page
   ("ファームウェア")
3. Select the OpenWrt initramfs image and click update ("更新") button
   to perform firmware update
4. On the initramfs image, download the sysupgrade.bin image to the
   device and perform sysupgrade with it
5. Wait ~120 seconds to complete flashing

Notes:

- The hardware of WN-DX2033GR and WN-AX2033GR are almost the same, and
  it is certified under the same radio-wave related regulations in Japan

- The last 0x80000 (512 KiB) in NAND flash is not used on stock firmware

- stock firmware requires "customized uImage header" (called as "combo
  image") by MSTC (MitraStar Technology Corp.), but U-Boot doesn't

  - uImage magic ( 0x0 - 0x3 ) : 0x434F4D42 ("COMB")
  - header crc32 ( 0x4 - 0x7 ) : with "data length" and "data crc32"
  - image name   (0x20 - 0x37) : model ID and firmware versions
  - data length  (0x38 - 0x3b) : kernel + rootfs
  - data crc32   (0x3c - 0x3f) : kernel + rootfs

- There are 2x important flags in the flash:

  - bootnum   : select os partition for booting (persist, 0x4)

    - 0x01: firmware
    - 0x02: firmware_2

  - debugflag : allow interrupt kernel loader, it's named as "Z-LOADER"
    (Factory, 0xFE75)

    - 0x00: disable debug
    - 0x01: enable debug

MAC addresses:

LAN     : 50:41:B9:xx:xx:90 (Factory, 0xE000 (hex) / Ubootenv, ethaddr (text))
WAN     : 50:41:B9:xx:xx:92 (Factory, 0xE006 (hex))
2.4 GHz : 50:41:B9:xx:xx:90 (Factory, 0x4    (hex))
5 GHz   : 50:41:B9:xx:xx:91 (Factory, 0x8004 (hex))

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-09-27 23:51:02 +08:00
Felix Fietkau
a8d6704e2e kernel: add patch to fix an issue with kernel headers that broke perf
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-09-26 23:58:42 +08:00
Felix Fietkau
b3d52933b2 tools/fakeroot: fix build error on macOS
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-09-26 23:58:32 +08:00
Felix Fietkau
5bbac5519a mac80211: backport support for BSS color changes
This is needed for an upcoming mt76 update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-09-26 23:58:08 +08:00
AmadeusGhost
3d585bb816 rockchip: also apply fixes for pine64-bin 2021-09-25 10:10:09 +08:00
David Bauer
066c02c4ac rockchip: fix broken squashfs sysupgrade
The rockchip platform supports squashfs SD card images. However, the
resulting image is not padded to completely fill the rootfs partition.

Because of that, the f2fs overlay might not be erased, resulting in
uci-defaults not bing executed or the configuration not being erased,
even though drop config was selected.

Modify the image generation process so the image is padded to cover the
entire root filesystem partition.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-09-25 00:16:27 +08:00
Alan Luck
d162f4dd57 ramips: add missing information to dlink headers
Add additional header information required for newer
bootloaders found on DIR-2660-A1 & A2.

Also remove the MTD splitter compatible from the second firmware
partition, as OpenWrt only supports handling of the first one.

Signed-off-by: Alan Luck <luckyhome2008@gmail.com>
[rephrase commit message, remove removal of read-only flags]
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-09-25 00:16:14 +08:00
Jesus Fernandez Manzano
474def648c hostapd: fix segfault when deinit mesh ifaces
In hostapd_ubus_add_bss(), ubus objects are not registered for mesh
interfaces. This provokes a segfault when accessing the ubus object in
mesh deinit.

This commit adds the same condition to hostapd_ubus_free_bss() for
discarding those mesh interfaces.

Signed-off-by: Jesus Fernandez Manzano <jesus.manzano@galgus.net>
2021-09-25 00:15:21 +08:00
Hauke Mehrtens
c62d66e5eb mac80211: Update to backports-5.10.68
Refresh all patches.
The removed patches were integrated upstream.

This contains fixes for CVE-2020-3702

1. These patches (ath, ath9k, mac80211)  were included in kernel
versions since 4.14.245 and 4.19.205. They fix security vulnerability
CVE-2020-3702 [1] similar to KrØØk, which was found by ESET [2].

Thank you Josef Schlehofer for reporting this problem.

[1] https://nvd.nist.gov/vuln/detail/CVE-2020-3702
[2] https://www.welivesecurity.com/2020/08/06/beyond-kr00k-even-more-wifi-chips-vulnerable-eavesdropping/

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-09-25 00:06:51 +08:00
Rosen Penev
8dc18561b0 restool: add back PKG_VERSION
For some reason, the build system chops off the last number from the version,
which is not correct. Add it back.

Update hash.

Fixes: 96c7164acd ("restool: update to LSDK-20.12")

Signed-off-by: Rosen Penev <rosenp@gmail.com>
[add Fixes]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-09-24 23:55:29 +08:00
Christian Lamparter
1880713a0d bcm53xx: MR32: read mac-address from eeprom
Meraki wrote the ethernet MAC-address of the device
onto the eeprom (AT24C64) at the fixed location 0x66
to 0x6C. Let's fetch it from there.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-09-24 23:55:03 +08:00
Rafał Miłecki
c700aa1057 bcm53xx: backport early DT patches queued for 5.16
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-09-23 23:51:42 +08:00
Rosen Penev
8e03e7669c bcm63xx: remove memcpy from mac assignment
With GCC11, memcpy doesn't work here as it assumes a size of 0. Use
ioremap to avoid it.

Fixed parameter type to match board_get_mac_address.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-09-23 23:51:29 +08:00
Rosen Penev
040518d757 tfp-layerscape: update to LSDK-20.12
Fixes compilation with GCC11.

Kept PKG_VERSION as there's some bug that chops off the 12 at the end.

Refreshed other patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-09-23 23:48:05 +08:00
Rosen Penev
eb2699c206 restool: update to LSDK-20.12
Fixes compilation with both GCC 10 and 11.

Switched to AUTORELEASE for simplicity.

Removed PKG_VERSION as it's derived from PKG_SOURCE_VERSION.

Removed all patches as they are upstream backports.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-09-23 23:46:32 +08:00
Kuan-Yi Li
7ea1438cd3 restool: fix compilation with GCC 10
GCC 10 defaults to `-fno-common` and complains about multiple definition
of `mc_status` in restool.

Backport a patch from upstream to fix compilation with host GCC 10.

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2021-09-23 23:44:02 +08:00
Felix Fietkau
fd99f5e4a8 hostapd: let netifd set bridge port attributes for snooping
Avoids race conditions on bridge member add/remove

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-09-23 23:39:47 +08:00
Felix Fietkau
7142ca0a5e ustp: update to the latest version
c62d85cf7a0d bridge: check port bpdu filter status and apply it to the config
25555611be91 libnetlink: turn rtnetlink error answers into debug msgs
462b3a491347 build: use pthread cflags/ldflags

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-09-23 23:39:15 +08:00
Felix Fietkau
17e009833e netifd: update to the latest version
d590fbd255ce wireless: always enable bpdu filter for AP interfaces and VLANs
f8ff6d820283 system-linux: remove copy&paste from /proc and /sys path names
300b1220fab3 wireless: improve reliability of proxyarp support
5ba9744aac6d device: add support for configuring bonding devices
6fa9b042ff4d wireless: only apply wireless device attributes to the base vif interface
06d11bbf1f2b wireless: only enable proxyarp/isolate for AP vifs
08e954e137ff bonding: claim the port device before creating the bonding device

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-09-23 23:38:41 +08:00
Felix Fietkau
decb5c5eb3 kernel: add a bridge feature for filtering BPDU packets on ports
This will be used to ensure that APs don't transmit unnecessary STP packets

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-09-23 23:38:24 +08:00
Tianling Shen
11805f2f70 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-09-23 10:13:31 +08:00
Daniel Danzberger
0a719bb58e octeontx: add linux 5.10 testing kernel support
Changes from 5.4 to 5.10:
-------------------------
 - patches from 5.4 are all upstream for 5.10 execpt for
   0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch

 - disable block device data integrity (DIF/DIX/T10) in default config
   (CONFIG_BLK_DEV_INTEGRITY)
   This feature is only supported by:
     - Enterprise SAS/SCSI HBAs and Disks
     - Software raid
     - NVMEs with metadata capabilities (most don't have this)
   None of which are part of any octeontx boards.

 - arm64 TEXT_OFFSET (0x80000) has been removed after 5.4
   This will break Uimages with kernel load addresses that aren't 2MiB
   aligned any longer. Resulting in the kernel silently fail to boot.
   For Gatworks newport boards for example, the uimage kernel load
   and execute address is 0x20080000. These need to be changed to
   0x20000000 when running kernels beyond 5.4.

Tested-on: Gateworks Newport GW64xx

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
2021-09-21 23:56:13 +08:00
Pawel Dembicki
cd50c532b4 kirkwood: increase kernel size of Linksyses
Linksyses Audi EA3500 and Viper E4200/E4500 have too small kernel
partition size when kernel 5.10 is used. This patch change kernel
partition to maximum size allowed by u-boot.

Kernel size is overlapping rootfs now, like mvebu Linksyses and stock
partition table. It fix  back to stock via sysupgrade, which was broken
since 18.06.

Fixes: 9808b9ae02 ("kirkwood: switch to kernel 4.9")

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2021-09-21 23:55:02 +08:00
Soma Zambelly
b9cb1ba2a5 realtek: add ZyXEL GS1900-24HPv2 support
The ZyXEL GS1900-24HPv2 is a 24 port PoE switch with two SFP ports, similar to the other GS1900 switches.

Specifications
--------------
* Device:    ZyXEL GS1900-24HPv2
* SoC:       Realtek RTL8382M 500 MHz MIPS 4KEc
* Flash:     16 MiB
* RAM:       W631GG8MB-12 128 MiB DDR3 SDRAM
             (stock firmware is configured to use only 64 MiB)
* Ethernet:  24x 10/100/1000 Mbps, 2x SFP 100/1000 Mbps
* LEDs:      1 PWR LED (green, not configurable)
             1 SYS LED (green, configurable)
             24 ethernet port link/activity LEDs (green, SoC controlled)
             24 ethernet port PoE status LEDs
             2 SFP status/activity LEDs (green, SoC controlled)
* Buttons:   1 "RESTORE" button on front panel
             1 "RESET" button on front panel
* Power      120-240V AC C13
* UART:      1 serial header (J41) with populated standard pin connector on
             the left edge of the PCB, angled towards the side.
             The casing has a rectangular cutout on the side that provides
             external access to these pins.
             Pinout (front to back):
             + GND
             + TX
             + RX
             + VCC

Serial connection parameters for both devices: 115200 8N1.

Installation
------------

OEM upgrade method:

(Possible on master once https://patchwork.ozlabs.org/project/openwrt/patch/20210624210408.19248-1-bjorn@mork.no/ is merged)

* Log in to OEM management web interface
* Navigate to Maintenance > Firmware > Management
* If "Active Image" has the first option selected, OpenWrt will need to be
  flashed to the "Active" partition. If the second option is selected,
  OpenWrt will need to be flashed to the "Backup" partition.
* Navigate to Maintenance > Firmware > Upload
* Upload the openwrt-realtek-generic-zyxel_gs1900-24hp-v2-initramfs-kernel.bin
  file by your preferred method to the previously determined partition.
  When prompted, select to boot from the newly flashed image, and reboot the switch.
* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:
   > sysupgrade -n /tmp/openwrt-realtek-generic-zyxel_gs1900-24hp-v2-squashfs-sysupgrade.bin
   it may be necessary to restart the network (/etc/init.d/network restart) on
   the running initramfs image.

U-Boot TFTP method:

* Configure your client with a static 192.168.1.x IP (e.g. 192.168.1.10).
* Set up a TFTP server on your client and make it serve the initramfs image.
* Connect serial, power up the switch, interrupt U-boot by hitting the
  space bar, and enable the network:
   > rtk network on
* Since the GS1900-24HPv2 is a dual-partition device, you want to keep the OEM
  firmware on the backup partition for the time being. OpenWrt can only boot
  from the first partition anyway (hardcoded in the DTS). To make sure we are
  manipulating the first partition, issue the following commands:
  > setsys bootpartition 0
  > savesys
* Download the image onto the device and boot from it:
   > tftpboot 0x84f00000 192.168.1.10:openwrt-realtek-generic-zyxel_gs1900-24hp-v2-initramfs-kernel.bin
   > bootm
* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:
   > sysupgrade -n /tmp/openwrt-realtek-generic-zyxel_gs1900-24hp-v2-squashfs-sysupgrade.bin
   it may be necessary to restart the network (/etc/init.d/network restart) on
   the running initramfs image.

Signed-off-by: Soma Zambelly <zambelly.soma@gmail.com>
2021-09-21 23:51:59 +08:00
Hauke Mehrtens
e6b180c22d arm-trusted-firmware-mvebu: Add hash for aarch64 cm3-gcc
This adds the hash also for the aarch64 toolchain in addition to the
x86_64 toolchain. This gets the build on a Linux aarch64 host one step
further.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-09-21 23:50:49 +08:00
Hans Dedecker
7cffacccdd glibc: update to latest 2.33 HEAD (bug 28213)
9b01145592 MIPS: Setup errno for {f,l,}xstat
9c676ef514 RISC-V: Update rv64 ULPs
c6cadbf83a linux: Remove shmmax check from tst-sysvshm-linux
22d37364ae librt: add test (bug 28213)
27a78fd712 librt: fix NULL pointer dereference (bug 28213)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2021-09-21 23:50:33 +08:00
Rafał Miłecki
56c5e6f2a3 kernel: add missing CONFIG_NET_DSA_TAG_BRCM_LEGACY config symbol
This fixes:
Distributed Switch Architecture (NET_DSA) [Y/n/m/?] y
  Tag driver for Atheros AR9331 SoC with built-in switch (NET_DSA_TAG_AR9331) [N/m/y/?] n
  Tag driver for Broadcom switches using in-frame headers (NET_DSA_TAG_BRCM) [N/m/y/?] n
  Tag driver for Broadcom legacy switches using in-frame headers (NET_DSA_TAG_BRCM_LEGACY) [N/m/y/?] (NEW)
Error in reading or end of file.

Fixes: 8fa1b576bb ("linux: update b53 upstream driver")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-09-19 23:58:34 +08:00
Rafał Miłecki
c72c5dd5fe linux: update b53 upstream driver
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-09-19 23:57:41 +08:00
sean lee
5964b71fa1 arm-trusted-firmware-mvebu: CZ.NIC's Secure Firmware bump to v2021.09.07
bump version and remove patches that have been applied

176d701 wtmi: Wait 1s after putting PHYs INTn pin low
2eeccfe wtmi: Change comment describing reset workaround
e8c94a5 wtmi: Count RAM size from both CS0 and CS1
995979e wtmi: Rename macro
e29eb29 wtmi: soc: Fix start_ap_workaround() for TF-A with debug
81245ed wtmi: Use constant name PLAT_MARVELL_MAILBOX_BASE
18ccb83 wtmi: Do a proper UART reset with clock change as described in spec
15ff106 avs: Validate VDD value from OTP
3f33626 fix: clock: a3700: change pwm clock for 600/600 and 1200/750 preset
fb5e436 wtmi: uart: fix UART baudrate divisor calculation

Signed-off-by: sean lee <ilf@live.com>
2021-09-19 23:56:53 +08:00
Sander Vanheule
6b3a9d3a3a firmware-utils: tplink-safeloader: set EAP235-Wall v1 soft-version
Starting with v3 of the vendor firmware for the TP-Link EAP235-Wall v1,
downgrades to firmware versions below v3 as not allowed.  Since OpenWrt
uses version 0.0.0 as a default, this causes the factory install to fail
on devices with a recent firmware. This failure is associated by the
following message on the device's serial console:

    EAP235/230-Wall forbid fw reverted from 3.x.x to lower version!

Vendor firmware (v3) also uses build and release numbers to compare
images, so identical version numbers are very unlikely to cause issues.
Bump the firmware version to 3.0.0 to ensure users can install OpenWrt
on their devices.

Reported-by: Colton Conor <colton.conor@gmail.com>
Tested-by: Colton Conor <colton.conor@gmail.com>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2021-09-16 23:59:37 +08:00
Sander Vanheule
0b1f986c4c firmware-utils: tplink-safeloader: improve soft-version customisation
Some devices using the safeloader firmware format require a minimum or
specific version to be set in the soft-version metadata partition.
Currently only custom text values can be provided, but not all device
firmware support this format.

Modify the device info struct to allow for more well-defined types of
soft-version overwrites, and provide a few macros for easy value
initialisation. Requires all existing values to be updated to match the
new structure.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
[Adapt TL-WA1201-V2 entry too]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-09-16 23:59:20 +08:00
Christian Pointner
02f151c7e7 kernel: add package kmod-iio-ads1015 and remove kmod-hwmon-ads1015
The hwmon driver for the ADC ADS1015 has been removed in Linux 5.4 in
favor of a driver in the iio system. For details see:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2c9d5b5e

This fixes: https://bugs.openwrt.org/index.php?do=details&task_id=4005

Run-tested: ramips/mt76x8 (Onion Omega 2+)

Signed-off-by: Christian Pointner <equinox@spreadspace.org>
2021-09-16 23:55:07 +08:00
Fabian Bläse
e831995408 kernel: backport switchdev fix for bridge in bridge configurations
This patch fixes the forwarding behavior of bridge in bridge
configurations with DSA.

Without it, the configuration of the upper bridge might overwrite
settings of the lower bridge. For example, a vlan-aware bridge
with DSA interfaces in it might be offloaded to the DSA hardware. If the
bridge interface itself gets slave of a different bridge without vlan
filtering, the vlan filtering setting of the lower bridge is overwritten
by the upper bridge, which results in an incorrect hardware
configuration.

This was backported from kernel 5.7.

Ref: https://lore.kernel.org/netdev/20191222192235.GK25745@shell.armlinux.org.uk/
Fixes: FS#3996
Signed-off-by: Fabian Bläse <fabian@blaese.de>
2021-09-16 23:54:47 +08:00
Matt Merhar
ca324eb192 kernel: fix jffs2 compilation with GCC_PLUGIN_RANDSTRUCT enabled
Designated initializers are required when using the randstruct GCC
plugin, otherwise an error like the following is seen:

./include/linux/lzma.h:60:31: error: positional initialization of field in 'struct' declared with 'designated_init' attribute [-Werror=designated-init]

Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
2021-09-16 23:54:28 +08:00
Hauke Mehrtens
b09dcce106 kernel: Add missing kernel config options
These options are selectable when some of the kernel debug options like
KERNEL_SOFTLOCKUP_DETECTOR are selected.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-09-16 23:53:31 +08:00
John Audia
30d1162453 kernel: bump 5.4 to 5.4.145
Removed upstreamed:
  generic-backport/040-ARM-8918-2-only-build-return_address-if-needed.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Signed-off-by: John Audia <graysky@archlinux.us>
2021-09-15 10:29:40 +08:00
John Audia
c37e073450 kernel: bump 5.4 to 5.4.144
Manually rebased:
  backport-5.4/370-netfilter-nf_flow_table-fix-offloaded-connection-tim.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800

Signed-off-by: John Audia <graysky@archlinux.us>
2021-09-15 10:29:29 +08:00
John Audia
b0d3f0b698 kernel: bump 5.10 to 5.10.64
All patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, ipq806x/R7800
Run-tested: bcm2711/RPi4B, ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2021-09-15 10:29:17 +08:00
AmadeusGhost
de9c37bc1b rtl8192eu: add new package
Also removed obsolete packages.
2021-09-13 16:00:49 +08:00
AmadeusGhost
5fc52203e4 rtl8812au-ct: re-added package
Fixes: 1a8c421 ("Merge Mainline")
2021-09-13 15:56:31 +08:00
Tianling Shen
d52aca81c9 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-09-11 05:29:44 +08:00
Tianling Shen
369be64ebb Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-09-11 04:14:53 +08:00
Rui Salvaterra
061a818dff kernel: bump 5.10 to 5.10.63
No patches refreshed.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-09-10 12:28:22 +08:00
Rui Salvaterra
5b22f6cc80 kernel: bump 5.10 to 5.10.62
Patches automatically refreshed.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-09-10 12:28:11 +08:00
Sander Vanheule
4d82b2f977 firmware-utils: tplink-safeloader: use revision field
The structured soft-version partition has a field which contains a
(source) revision number. Factory images used to include this, but
it was accidentaly removed during an earlier refactoring.

Include the source revision number again in the generated soft-version
partition. Additionaly, also show this revision number when printing
image info.

Fixes: 1a211af2cb ("firmware-utils: tplink-safeloader: refactor meta-partition generation")
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2021-09-10 12:26:52 +08:00
Ian Chang
9c5cd83435 mvebu: add support for iEi Puzzle-M901/Puzzle-M902
Hardware specification
 ----------------------
 * CN9130 SoC, Quad-core ARMv8 Cortex-72 @ 2200 MHz
 * 4 GB DDR
 * 4 GB eMMC
 * mmcblk0
 - mmcblk0p1    64M  kernel_1
 - mmcblk0p2    64M  kernel_2
 - mmcblk0p3   512M  rootfs_1
 - mmcblk0p4   512M  rootfs_2
 - mmcblk0p5   512M  Reserved
 - mmcblk0p6    64M  Reserved
 - mmcblk0p7   1.8G  rootfs_data

 * 4 MB (SPI Flash)
 * 6 x 2.5 Gigabit  ports (Puzzle-M901)
 - External PHY with 6 ports (AQR112R)

 * 6 x 2.5 Gigabit ports (Puzzle-M902)
 - External PHY with 6 ports (AQR112R)
   3 x 10 Gigabit ports (Puzzle-M902)
 - External PHY with 3 ports (AQR113R)

 * 4 x Front panel LED
 * 1 x USB 3.0
 * Reset button on Rear panel
 * UART (115200 8N1,header on PCB)

 Flash instructions:
    The original firmware is based on OpenWrt.
    Flash firmware using LuCI and CLI

Signed-off-by: Ian Chang <ianchang@ieiworld.com>
2021-09-10 12:26:39 +08:00
Ian Chang
85189a8b78 mvebu: backport CN9130 dts necessary files changes to 5.4
1. Add support for Marvell CN9130 SoC
 2. Add support for CP115,and create an armada-cp11x.dtsi file which will be used to instantiate both CP110 and CP115
 3. Add support for AP807/AP807-quad,AP807 is a major component of CN9130 SoC series
 4. Drop PCIe I/O ranges from CP11x file and externalize PCIe macros from CP11x file

Signed-off-by: Ian Chang <ianchang@ieiworld.com>
2021-09-10 12:26:26 +08:00
Hauke Mehrtens
63c74899e1 kernel: Set CONFIG_RCU_CPU_STALL_TIMEOUT=21
The default value for CONFIG_RCU_CPU_STALL_TIMEOUT was changed from 60
seconds to 21 seconds in 2012 in the upstream kernel. Some targets
already use 21 seconds.

This patch changes the default value in the generic configuration to 21
seconds and removes the target specific configuration options.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-09-10 12:26:08 +08:00
Rafał Miłecki
3e039efc1c bcm53xx: specify switch ports for more devices
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-09-08 23:26:14 +08:00
Rafał Miłecki
4eb5501cda linux: backport DSA b53 driver fixes for switch ports
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-09-08 23:26:02 +08:00
Rafał Miłecki
2fb7e00601 firmware-utils: seama.h: replace LGPL-2.1-or-later boilerplate with SPDX
This was missed because scancode license scanner was confused by a
slightly different than expected license text (96,75% license score).

License text included "file" instead of "library" in the main part of
the licensing info. It also used "The GNU C Library" instead of the
standard "This library" in 2nd and 3rd paragraphs.

The first paragraph clearly mentions LGPL-2.1-or-later and the use of
"file" instead of "library" should not affect licensing.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-09-08 23:25:51 +08:00
Felix Fietkau
71d2d7b06a mac80211: revert faulty change that was breaking broadcast tx
Fixes: 0f6887972a ("mac80211: add missing change for encap offload on devices with sw rate control")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-09-06 23:29:47 +08:00
Andrea Poletti
1f83b6d2a6 ramips: add support for Sitecom WLR-4100 v1 002
Sitecom WLR-4100 v1 002 (marked as X4 N300) is a wireless router
Specification:
SoC: MT7620A
RAM: 64 MB DDR2
Flash: MX25L6405D SPI NOR 8 MB
WIFI: 2.4 GHz integrated
Ethernet: 5x 10/100/1000 Mbps QCA8337
USB: 1x 2.0
LEDS: 2x GPIO controlled, 5x switch
Buttons: 1x GPIO controlled
UART: row of 4 unpopulated holes near USB port, starting count from
      white triangle on PCB:

    VCC 3.3V
    GND
    TX
    RX

    baud: 115200, parity: none, flow control: none

Installation

    Connect to one of LAN (yellow) ethernet ports,
    Open router configuration interface,
    Go to Toolbox > Firmware,
    Browse for OpenWrt factory image with dlf extension and hit Apply,
    Wait few minutes, after the Power LED will stop blinking, the router is
    ready for configuration.

Known issues
Some USB 2.0 devices work at full speed mode 1.1 only

MAC addresses

factory partition only contains one (binary) MAC address in 0x4.
u-boot-env contains four (ascii) MAC addresses, of which two appear
to be valid.

  factory     0x4       **:**:**:**:b9:84  binary
  u-boot-env  ethaddr   **:**:**:**:b9:84  ascii
  u-boot-env  wanaddr   **:**:**:**:b9:85  ascii
  u-boot-env  wlanaddr  00:AA:BB:CC:DD:12  ascii
  u-boot-env  iNICaddr  00:AA:BB:CC:DD:22  ascii

The factory firmware only assigns ethaddr. Thus, we take the
binary value which we can use directly in DTS.

Additional information
OEM firmware shell password is: SitecomSenao
useful for creating backup of original firmware.
There is also another revision of this device (v1 001), based on RT3352 SoC

Signed-off-by: Andrea Poletti <polex73@yahoo.it>
[remove config DT label, convert to nvmem, remove MAC address
 setup from u-boot-env, add MAC address info to commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-09-06 23:29:24 +08:00
Robert Balas
729694614d ath79: add support for TP-Link TL-WA1201 v2
This device is a wireless access point working on the 2.4 GHz and 5 GHz
band, based on Qualcomm/Atheros QCA9563 + QCA9886.

Specification
- 775 MHz CPU
- 128 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- QCA9563: 2.4 GHz 3x3
- QCA9886: 5 GHz
- AR8033: 1x 1 Gbs Ethernet
- 4x LED, WPS factory reset and power button
- bare UART on PCB (accessible through testpoints)

Methods for Flashing:
- Apply factory image in OEM firmware web-gui. Wait a minute after the
  progress bar completes and restart the device.
- Sysupgrade on top of existing OpenWRT image
- Solder wires onto UART testpoints and attach a terminal.
  Boot the device and press enter to enter u-boot's menu. Then issue the
  following commands
  1. setenv serverip your-server-ip
     setenv ipaddr your-device-ip
  2. tftp 0x80060000 openwrt-squashfs.bin (Rembember output of size in
    hex, henceforth "sizeinhex")
  3. erase 0x9f030000 +"sizeinhex"
  4. cp.b 0x80060000 0x9f030000 0x"sizeinhex"
  5. reboot

Recover:
- U-boot serial console

Signed-off-by: Robert Balas <balasr@iis.ee.ethz.ch>
[convert to nvmem]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-09-06 23:29:12 +08:00
Chuanhong Guo
b0fa0c9c36 mediatek: add support for TOTOLINK A8000RU
Specifications:
- SoC: MT7622
- RAM: 512MB
- Flash: MX35LF1GE4AB 128MB SPI NAND
- Ethernet: RTL8367S 5x1GbE
- WiFi: 2.4G: MT7622 5G: MT7615N x2
- Other ports: USB3.0 x1

Flash instruction:
*important*: upgrade vendor firmware to at least V7.1cu.643_B20200521
1. hold the reset button and power on the device. wait for about 10s
   before releasing the reset button.
2. upload sysupgrade.bin via u-boot recovery page on http://192.168.1.1

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-09-05 23:36:08 +08:00
AmadeusGhost
6da765f430 Revert "ramips: add ZTE e8820s support"
This reverts commit 1ad0ada444.
There are too many errors in this commit. Revert first and fix
it after someone has this machine and want to provide a test.
2021-09-05 23:31:23 +08:00
coolsnowwolf
1ad0ada444 ramips: add ZTE e8820s support
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-09-05 06:15:16 +08:00
Tianling Shen
f895287396 Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-09-03 03:26:54 +08:00
Rui Salvaterra
d1d71dab42 kernel: add missing CONFIG_SECURITY_NETWORK_XFRM ksym
Paul noticed a build failure [1] due to this missing symbol. Add it as disabled
to both generic kconfigs.

[1] https://github.com/aparcar/openwrt/runs/3480872706?check_suite_focus=true#step:11:63

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-09-02 12:24:53 +08:00
Matthew Hagan
3fd56fc83e firmware-utils: mkmerakifw-old: Add le32 support
mkmerakifw-old was created for the z1 which uses the AR9344 SoC with
be32 addressing. The MX64/MX65 devices use the same header style, however
these boards use a BCM NSP SoC with le32 addressing.

Since we may be booting initramfs images with this header, which may be
of any size, within reason, board->imagelen is set to 0. The kernel
image shoule be limited in the image Makefile.

Signed-off-by: Matthew Hagan <mnhagan88@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-09-02 12:23:11 +08:00
Rafał Miłecki
06e5d1afda bcm53xx: fix kmod-i2c-bcm-iproc for kernel 5.10
I2C_BCM_IPROC selects I2C_SLAVE which in turn makes two new symbols
available: I2C_SLAVE_EEPROM and I2C_SLAVE_TESTUNIT. That was causing:

I2C support (I2C) [M/n/y/?] m
  Enable compatibility bits for old user-space (I2C_COMPAT) [N/y/?] n
  I2C device interface (I2C_CHARDEV) [M/n/?] m
  I2C bus multiplexing support (I2C_MUX) [N/m/?] n
  Autoselect pertinent helper modules (I2C_HELPER_AUTO) [N/y/?] n
    SMBus-specific protocols (I2C_SMBUS) [N/m/?] n
  I2C/SMBus Test Stub (I2C_STUB) [N/m/?] n
  I2C slave support (I2C_SLAVE) [Y/?] y
    I2C eeprom slave driver (I2C_SLAVE_EEPROM) [N/m/?] n
    I2C eeprom testunit driver (I2C_SLAVE_TESTUNIT) [N/m/?] (NEW)

Ideally I2C_SLAVE should probably be packaged as kmod-i2c-slabe. For now
just modify kmod-i2c-bcm-iproc to fix kernel compilation.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-31 18:28:53 +08:00
Rafał Miłecki
88c49838e3 bcm53xx: fix USB in kernel 5.10
This makes USB controller driver work with USBs that are always powered
on (don't require toggling any GPIO).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-31 18:28:39 +08:00
Rafał Miłecki
39048f0518 bcm53xx: backport missed DT patch cleaning up CRU block
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-31 18:28:17 +08:00
Alexander Couzens
8776239be4 ramips: minew g1-c: use default static address for lan instead of dhcp
As Adrian Schmutzler suggested on github [1] the device should follow the
default behaviour on ethernet using a static address instead using dhcp.

[1] 8d497b6570

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-08-31 18:28:00 +08:00
Adrian Schmutzler
5038822fcc ramips: provide default BLOCKSIZE for Device/seama
The Device/seama shared definition requires BLOCKSIZE, so it should
have a default value for this variable.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-30 12:16:19 +08:00
Sungbo Eo
ccc90a35d9 ramips: w2914ns-v2: consolidate leds nodes into dtsi
w2914ns-v2, 11acnas, and freezio use almost same board and thus share a
common dtsi file. Now that LED labels do not contain "devicename" since
commit c846dd91f0 ("ramips: remove model name from LED labels"), let's
move the leds nodes to dtsi and remove them from dts.

Note that freezio has only one USB 3.0 port and adding &ehci_port2 trigger
does not incur any visible changes.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-08-30 12:16:06 +08:00
Filip Matijević
87bbb95f30 ipq806x: add missing enclosing partitions block for TP-Link C2600
The partitions that have compatible property set are skipped by mtd if
they are not contained inside a partitions node and this breaks
fetching MAC address from "default-mac" partition.

Fix this by defining all the partitions inside partitions node with
compatible = "fixed-partitions" as nvmem requires the standard
partitions scheme to work correctly.

Fixes: FS#3945
Fixes: cd36d71655 ("ipq806x/dts: Add Archer C2600 DTS")
Fixes: 0458a8993c ("ipq806x: convert mtd-mac-address to nvmem
implementation")

Signed-off-by: Filip Matijević <filip.matijevic.pz@gmail.com>
Reviewed-by: Ansuel Smith <ansuelsmth@gmail.com>
[adjust commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-30 12:15:46 +08:00
Adrian Schmutzler
aba5fcc236 ath79: remove redundant BLOCKSIZE of 64k from devices
BLOCKSIZE = 64k is set in Device/Default, i.e. global default on
the target.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-30 12:15:27 +08:00
Rafał Miłecki
5b9a737eba bcm53xx: backport the latest upstream DT changes
This includes:
1. BCM5301X changes from 5.14 and queued 5.15 stuff
2. NSP changes from 5.11 - 5.15 for kernel 5.10

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-30 12:14:51 +08:00
Rui Salvaterra
ae3d513158 kernel: move two symbols to the generic kconfigs
CONFIG_RCU_{NEED_SEGCBLIST,STALL_COMMON} are set basically everywhere. Move them
to the generic kconfigs. And resort the generic kconfigs while at it.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-08-30 12:13:54 +08:00
Rui Salvaterra
5d84f37d0d kernel: disable CONFIG_RCU_EXPERT and friends
Based on the existing documentation [1][2], I dare anyone to demonstrate that
we need to fine-tune these RCU parameters. The (performance) breakage potential
for doing so is immense, so let's just please put down this loaded footgun.

Disable CONFIG_RCU_EXPERT and its dependent symbols. Additionally, remove the
CONFIG_RCU_EXPERT symbol from the target kconfigs which contain it.

[1] https://www.kernel.org/doc/Documentation/RCU/Design/Data-Structures/Data-Structures.html
[2] https://lwn.net/Articles/777214/

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-08-30 12:12:32 +08:00
Ansuel Smith
c25279e799 kernel: fix warning about unused try_to_force_load
There is a longlasting warn about unused defined try_to_force_load.
Fix this by including this function only when actually used.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-08-30 12:11:30 +08:00
John Audia
a8ad84535f kernel: bump 5.4 to 5.4.143
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 other patches automatically rebased.

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>
2021-08-30 12:10:02 +08:00
John Audia
2d560ccafb kernel: bump 5.10 to 5.10.61
Manually rebased:
  bcm27xx/patches-5.10/950-1031-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch

Removed upstreamed:
  mvebu/patches-5.10/101-cpufreq-armada-37xx-forbid-cpufreq-for-1.2-GHz-variant.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2021-08-30 12:05:14 +08:00
Sebastian Schaper
ce574b7e45 ath79: fix spelling of DEVICE_MODEL for D-Link DAP-2695
Change `DAP-2965` to `DAP-2695` for device selection in menuconfig.

Fixes: cd09f26660 ("ath79: add support for D-Link DAP-2695-A1")

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
[add Fixes]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-29 12:05:34 +08:00
Christian Lamparter
0c2d984fca gpio-button-hotplug: convert to gpio descriptor (gpiod_) API
OpenWrt's special gpio-button-hotplug driver is still using
exclusively the legacy GPIO Subsystem gpio_ API.

While it still does work fine for most devices, upstream
linux is starting to convert platform support like that of
the APU2/3/4 to the new GPIOD LOOKUP tables that are not
supported by it.

Hence, this patch replaces the gpio_ calls present in
gpio-button-hotplug with gpiod_ equivalent wherever
it's possible. This allows the driver to use the
gpiod lookup tables and still have a fallback for
legacy platform data code that just sets button->gpio
set to the real button/switch GPIO.

As a bonus: the active_low logic is now being handled
by the linux's gpio subsystem too. Another issue that
was address is the of_handle leak in the dt parser
error path.

Tested with legacy platform data: x86_64: APU2, MX-100
Tested on OF: ATH79; MR18, APM821xx: Netgear WNDR4700,
	      RAMIPS: WL-330N3G
	      LANTIQ: AVM FritzBox 7360v1

Reported-by: Chris Blake <chrisrblake93@gmail.com>
Tested-by: Chris Blake <chrisrblake93@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-08-29 12:05:17 +08:00
Tianling Shen
917cec8cc0 Merge Mainline 2021-08-29 00:53:33 +08:00
David Bauer
1f069ee684 ramips: add label-mac for TL-MR3020 v3
The TP-Link TL-MR3020 v3 only has a single MAC address assigned for
ethernet LAN as well as WiFi. This MAC address is also printed on the
casing.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-28 12:26:15 +08:00
David Bauer
a5dab9958b ramips: enable fast-read for TL-MR3020 v3
The GigaDevices GD25Q64B found on the TL-MR3020 v3 supports the fast
read instruction. Add the required DT property in order to enable usage
of this property.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-28 12:26:00 +08:00
David Bauer
294a11d302 ramips: increase SPI frequency for TL-MR3020 v3
The GigaDevices GD25Q64B supports higher SPI clocks than 10 MHz. While
100 MHz do not work reliably, 50 MHz works without issues.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-28 12:25:47 +08:00
David Bauer
4f3723bc0c ramips: fix input type for TL-MR3020 v3
The modec{1,2} keys are actually switches.

Add the respective DTS properties to avoid accidental activation of
failsafe mode.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-28 12:25:37 +08:00
David Bauer
c728938f99 hostapd: enable proxy-arp support for hostapd-full
The hostapd.sh script already has support for configuring proxy-ARP,
however no built variant has support for it enabled.

Enable proxy-ARP support for hostapd-full builds in order to allow users
to actually use this feature.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-28 12:25:27 +08:00
David Bauer
6b8d00f674 hostapd: fix Proxy-ARP with Hotspot 2.0 disabled
The disable_dgaf config fiels is only available in case Hostapd is
compiled with Hotspot 2.0 support, however Proxy-ARP does not depend on
Hotspot 2.0.

Only add the code related to this config field when Hotspot 2.0 is
enabled to fix compilation with the aformentioned preconditions.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-28 12:25:12 +08:00
David Bauer
d9761d1591 hostapd: refresh patches
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-28 12:24:57 +08:00
Daniel Golle
cab1ff0892 kernel: properly handle paging errors in fit partition parser
The uImage.FIT partition uses page mapping without properly handling
paging errors. This can lead to Kernel Oops in case of read errors
while trying to parse uImage.FIT partitions.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-28 12:24:22 +08:00
Chuanhong Guo
c92ff98f44 mediatek: mt7623: replace kconfig symbol for snand driver
this change was missing during the spi-nand driver replacement, causing
build failure.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-08-28 12:23:42 +08:00
Chuanhong Guo
a661edae69 mediatek: mt7629: manually add missing kconfig
These options doesn't show up unless some kernel packages are selected,
so they are not covered by kernel_menuconfig.
Manually add them so that a build with all kmods can pass without user
interaction.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-08-28 12:23:31 +08:00
Chuanhong Guo
531fee94e3 mediatek: mt7629: build with linux 5.10
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-08-28 12:23:18 +08:00
Chuanhong Guo
8ff5e3b3a3 mediatek: bmt: set default bmt oob offset to 0
there's no driver level remapping of oob data in the new spi-nand
driver and bmt oob signature starts at 0x0 of the dumped oob data.
change the default value to 0 for the new spi-nand driver.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-08-28 12:23:05 +08:00
Chuanhong Guo
45ac83d2d8 mediatek: mtk-snand: check request size against chip info
mtd->size will be overrided by BMT which makes all mtd requests made by
bmt fail in request size checking.
this commit changes the driver to check against actual chip size in chip
info as a workaround.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-08-28 12:22:51 +08:00
Chuanhong Guo
4fc78f9284 mediatek: attach bmt to the new snand driver
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-08-28 12:22:38 +08:00
Chuanhong Guo
3f0b3d1847 mediatek: change dts to use the new snand driver
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-08-28 12:22:18 +08:00
Chuanhong Guo
b6bd03f743 mediatek: remove spi-nand hacks from 5.10
we now have a standalone mtd driver and the old spi-mem driver along
with the hack in spi-nand core can be removed.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-08-28 12:21:55 +08:00
Weijie Gao
9022d00408 mediatek: enable new spi-nand driver for kernel 5.10
This patch enables new spi-nand driver for mt7622 and mt7629.

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-08-28 12:21:46 +08:00
Weijie Gao
23ae761288 mediatek: add a new spi-nand driver for kernel 5.10
This patch adds a new spi-nand driver which implements the SNFI of mt7622
and mt7629.

Unlike the existing snfi driver which makes use of the spi-mem framework
and the spi-nand framework with modified ecc support, this driver is
implemented directly on the mtd framework with other components untouched,
and provides better performance, and behaves exactly the same as the nand
framework.

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
2021-08-28 12:21:31 +08:00
AmadeusGhost
6990f22a54 ipq806x: Askey RT4230W REV6: use usual writing for pcie part
The problem has been fixed in f47cb405ca ("ipq806x: fix pci broken
on bootm command"), now the pcie part can be written in the usual way.

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
Reviewed-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-08-27 12:35:23 +08:00
Christian Lamparter
4e639108a3 ath9k: owl-loader: remove obsolete AR71XX patch
this is no longer necessary as the AR71XX target
was superseded by ath79.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-08-27 12:31:33 +08:00
Christian Lamparter
4213687207 ath79: remove obsolete pci-ath9k-fixup.[c,h] files
This was old code from the AR71XXs target days that
doesn't get compiled and used anymore.

Bringing up AR92xx and earlier chips from their
OWL-Emulator state is currently done by the upstream
ath9k-pci-owl-loader module. (see the kmod-owl-loader
package).

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-08-27 12:31:21 +08:00
Jan-Niklas Burfeind
8feb95eaf4 ath79: add support for onion omega
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 5cd49bb067 ("ar71xx: add support for Onion Omega")

Partly reverts:
commit fc553c7e4c ("ath79: drop unused/incomplete dts")

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
2021-08-27 12:24:11 +08:00
Álvaro Fernández Rojas
b6bba59c21 bmips: backport accepted watchdog patch
This patch has been accepted for linux v5.14.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-08-27 12:23:51 +08:00
Romain Mahoux
95ef6c5417 ath79: add support for Compex WPJ558 (16M)
Specifications:
- SoC: QCA9558
- DRAM: 128MB DDR2
- Flash: 16MB SPI-NOR
- Wireless: on-board abgn 2×2 2.4GHz radio
- Ethernet: 2x 10/100/1000 Mbps (1x 802.11af PoE)
- miniPCIe slot

Flash instruction:
- From u-boot

tftpboot 0x80500000 openwrt-ath79-generic-compex_wpj558-16m-squashfs-sysupgrade.bin
erase 0x9f030000 +$filesize
cp.b $fileaddr 0x9f030000 $filesize
boot

- From cpximg loader

The cpximg loader can be started either by holding the reset button
during power up. Once it's running, a TFTP-server under 192.168.1.1 will accept
the image appropriate for the board revision that is etched on the board.

For example, if the board is labelled '6A07':

tftp -v -m binary 192.168.1.1 -c put openwrt-ath79-generic-compex_wpj558-16m-squashfs-cpximg-6a07.bin

Signed-off-by: Romain Mahoux <romain@mahoux.fr>
[convert to nvmem, remove redundant lan_mac in 02_network]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-25 12:12:28 +08:00
David Yang
dba6f8842d ramips: expose ephy leds for miwifi-mini
Give users more control by exposing ephy leds.

Signed-off-by: David Yang <mmyangfl@gmail.com>
[remove execute bit on 01_leds, add status for gpio2]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-25 12:11:59 +08:00
David Yang
bdec441eed ramips: lock u-boot partition and unlock u-boot-env for miwifi-mini
Generally u-boot should keep read-only to avoid mis-overwriting and
bricking the device, but u-boot-env could be safely modified with u-boot
setenv tool.

Signed-off-by: David Yang <mmyangfl@gmail.com>
2021-08-25 12:11:44 +08:00
David Yang
a40558133c ramips: increase flash freq for miwifi-mini
The flash is Winbond 25Q128. As it has large rom, better to increase flash
frequency to 70MHz according to the flash spec and enable fast-read.

Signed-off-by: David Yang <mmyangfl@gmail.com>
2021-08-25 12:11:22 +08:00
Giovanni Cascione
bbae15b61b ramips: add support for D-Link DAP-1325-A1
This patch adds support for D-Link DAP-1325-A1 (Range Extender Wi-Fi N300)

Specifications:
- SoC: 580Mhz MT7628NN
- RAM: 64MB, DDR2 SDRAM
- Storage: 8MB, SPI (W25Q64JVSSIQ)
- Ethernet: 1x 10/100 LAN port
- WIFI: 2.4 GHz 802.11bgn
- LED: Status (2x to provide 3 colors), Wi-Fi Signal Strength (4x)
- Buttons: Reset, WPS
- UART: Serial console (57600, 8n1)
Row of 4 holes near LAN port, starting from square hole:
3.3V, TX,RX,GND
- FCC ID: fccid.io/KA2AP1325A1/

Installation:

Failsafe UI
Firmware can be uploaded with Failsafe UI web page:
- turn device off
- press and hold reset button
- turn device on
- keep holding reset until red wifi strength led turns on (ab. 10sec)
- connect to device through LAN port
PC must be configured with static ip (192.168.0.x)
- connect to 192.168.0.50
- select image to be flashed and upload.
Device will reboot after successful update

Serial port/TFTP server
- Connect through serial connectors on PCB (e.g. with teraterm)
- Set up a TFTP server, and connect through LAN with static IP
- Put image file in the root of the server
- Boot the device and select '2' at U-Boot startup
- Set device IP, server IP and image file name
- Start upload and flash

Signed-off-by: Giovanni Cascione <ing.cascione@gmail.com>
[fix whitespaces in DTS, convert to nvmem, add mtd-eeprom]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-25 12:10:14 +08:00
Shiji Yang
828583169d ramips: add support for DomyWifi DM202/DM203/DW22D
Specifications:
* SOC: MT7620A + MT7610E
* ROM: 16 MiB spi flash (W25Q128FVSG)
* RAM: 128 MiB DDR2 (W971GG6KB-25)
* WAN: 10/100M *1
* LAN: 10/100M *4
* USB: Type-A USB2.0 *1
* SD: MicroSD *1
* Button: Reset *1
* Antennas: 2.4 GHz *2 + 5 GHz *1
* TTL Baudrate: 57600
* U-Boot Recovery: IP: 10.10.10.123, Server: 10.10.10.3

Installation:
* Web UI Update
  1. Open http://192.168.10.1/upgrade.html in the browser.
  2. Rename firmware to a short name like firmware.bin and then upload it.
  3. Fill in the password column with the following content:
  password | mtd -x mIp2osnRG3qZGdIlQPh1 -r write /tmp/firmware.bin firmware
* TFTP + U-Boot
  1. Connect device with a TTL cable.
  2. Press "2" when booting to select "Load system code then write to Flash via TFTP".
  3. Upload firmware by tftpd64, it will boot when write instruction is executed.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2021-08-25 12:09:31 +08:00
Shiji Yang
5a898a507a ramips: add support for Motorola MWR03
Specifications:
* SOC: MT7628AN + MT7612E
* ROM: 8 MiB Flash
* RAM: 64 MiB DDR2
* WAN: 10/100M *1
* LAN: 10/100M *3
* Button: Reset *1
* LEDs: orange *1, white *1
* Antennas: 2.4 GHz *2 + 5 GHz *2
* TTL Baudrate: 57600
* TFTP Upgrade: IP: 192.168.51.1, Server: 192.168.51.100

MAC addresses as verified by OEM firmware:

use   address   source
2g    *:d8      factory 0x0004 (label)
5g    *:d9      factory 0x8004
LAN   *:d7      factory $label -1
WAN   *:da      factory $label +2

Installation (TFTP + U-Boot):
 * Connect device with a TTL cable and open a serial session by
   PuTTY.
 * Press "2" when booting to select "Load system code then write
   to Flash via TFTP".
 * Configure the IP of local host server.
 * Upload firmware by tftpd64, it will boot when write instruction
   is executed.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[fix DTS line endings, fix label MAC address, adjust status LED
 names, convert mtd-mac-address-increment to mac-address-increment]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-25 12:08:14 +08:00
Shiji Yang
689f3c96c2 ramips: add new flash layout support to Phicomm K2
Descriptions:
Phicomm K2 (PSG1218) got a new "permanent_config" partition after
update firmware to v22.5. This partition located in front of the
firmware partition, same as The Phicomm K2P and K2G. Due to this
change the new bootloader can't load previous firmware any more.
This commit is aimed at add support for Phicomm K2 which official
firmware version is 22.5.x or newer. For which runs old firmware
version, just update OpenWrt that has a prefix of "k2-v22.4".
For uniform naming, this commit also changed the model name
PSG1218 to a more recognizable name K2, refer to Phicomm K2G,
K2P K2T.

OpenWrt selection table:
official firmware version           OpenWrt
v22.4.x.x or older              phicomm_k2-v22.4
v22.5.x.x or newer              phicomm_k2-v22.5

Installation:
Same as Phicomm K2G, K2P, PSG1208.
a. TFTP + U-Boot
b. Open telnet by some web page vulnerability (Search Baidu by key
   words "K2 telnet"), and then we can upload firmware image to
   /tmp and write it to firmware partition with mtd instruction.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[rebase, add/harmonize version in model variables, fix version typo
 in commit message, wrap commit message properly]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-25 12:07:39 +08:00
Adrian Schmutzler
48ce0de2c3 ramips: mt7620: move Phicomm MAC address setup to DTSI
The setup is the same for all devices, so move it up one level.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-25 12:07:27 +08:00
Felix Fietkau
e223dc2705 netifd: update to the latest version
94170ae24bc9 device: extend device settings flags to 64 bit
1eb0fafaa986 device: add support for configuring device link speed/duplex
ed84473b7af9 bridge: memset bst->config by default to avoid stale config values
6519cf31e4b0 bridge: add support for an external STP daemon
454e9c33c906 bridge: tune default stp parameters

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-08-25 12:07:13 +08:00
Felix Fietkau
d8898a096d mac80211: add missing change for encap offload on devices with sw rate control
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-08-25 12:04:04 +08:00
Felix Fietkau
bb5ff4bd43 mac80211: refresh patch
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-08-25 12:03:52 +08:00
Felix Fietkau
4c6aef9b8e hostapd: enable ht40 in wpa_supplicant when using wider HE modes
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-08-25 12:03:34 +08:00
Felix Fietkau
031d9c0777 mac80211: fix HT40 mode for 6G band
The channel offset used for VHT segment calculation was missing for HT

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-08-25 12:03:16 +08:00
AmadeusGhost
6e40f735f6 bcm27xx: add 5.10 as testing kernel 2021-08-23 12:09:46 +08:00
Zoltan HERPAI
7422fb320d ath79: add support for Atheros DB120 reference board
Atheros DB120 reference board.

Specifications:

SoC:    QCA9344
DRAM:   128Mb DDR2
Flash:  8Mb SPI-NOR, 128Mb NAND flash
Switch: 5x 10/100Mbps via AR8229 switch (integrated into SoC),
        5x 10/100/1000Mbps via QCA8237 via RGMII
WLAN:   AR9300 (SoC, 2.4G+5G) + AR9340 (PCIe, 5G-only)
USB:    1x 2.0
UART:   standard QCA UART header
JTAG:   yes
Button: 1x reset
LEDs:   a lot
Slots:  2x mPCIe + 1x mini-PCI, but using them requires
        additional undocumented changes.
Misc:   The board allows to boot off NAND, and there is
        I2S audio support as well - also requiring
        additional undocumented changes.

Installation:

1. Original bootloader

   Connect the board to ethernet
   Set up a server with an IP address of 192.168.1.10
   Make the openwrt-ath79-generic-atheros_db120-squashfs-factory.bin
   available via TFTP

   tftpboot 0x80060000 openwrt-ath79-generic-atheros_db120-squashfs-factory.bin
   erase 0x9f050000 +$filesize
   cp.b $fileaddr 0x9f050000 $filesize

2. pepe2k's u-boot_mod

   Connect the board to ethernet
   Set up a server with an IP address of 192.168.1.10
   Make the openwrt-ath79-generic-atheros_db120-squashfs-factory.bin
   available via TFTP, as "firmware.bin"

   run fw_upg

   Reboot the board.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
[explicit factory recipe in generic.mk, sorting in 10-ath9k-eeprom,
 convert to nvmem, use fwconcat* names in DTS, remove unneeded DT
 labels, remove redundant uart node]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-23 12:04:51 +08:00
Russell Senior
c635abf375 ath79: add support for Ubiquiti PowerBeam M2 (XW)
This patch adds support for the Ubiquiti PowerBeam M2 (XW), e.g. PBE-M2-400,
a 802.11n wireless with a feed+dish form factor. This device was previously
supported by the ar71xx loco-m-xw firmware.

Specifications:
 - Atheros AR9342 SoC
 - 64 MB RAM
 - 8 MB SPI flash
 - 1x 10/100 Mbps Ethernet port, 24 Vdc PoE-in
 - Power and LAN green LEDs
 - 4x RSSI LEDs (red, orange, green, green)
 - UART (115200 8N1)

Flashing via stock GUI:
 - Downgrade to AirOS v5.5.x (latest available is 5.5.10-u2) first (see
   https://openwrt.org/toh/ubiquiti/powerbeam installation instructions)
 - Upload the factory image via AirOS web GUI.

Flashing via TFTP:
 - Use a pointy tool (e.g., unbent paperclip) to keep the
   reset button pressed.
 - Power on the device (keep reset button pressed).
 - Keep pressing until LEDs flash alternatively LED1+LED3 =>
   LED2+LED4 => LED1+LED3, etc.
 - Release reset button.
 - The device starts a TFTP server at 192.168.1.20.
 - Set a static IP on the computer (e.g., 192.168.1.21/24).
 - Upload via tftp the factory image:
    $ tftp 192.168.1.20
    tftp> bin
    tftp> trace
    tftp> put openwrt-ath79-generic-ubnt_powerbeam-m2-xw-squashfs-factory.bin

WARNING: so far, no non-destructive method has been discovered for
opening the enclosure to reach the serial console. Internal photos
are available here: https://fcc.io/SWX-NBM2HP

Signed-off-by: Russell Senior <russell@personaltelco.net>
2021-08-23 12:04:27 +08:00
Russell Senior
1e9037c685 ath79: rename Ubiquiti PowerBeam M (XW) to PowerBeam M5 (XW)
The commit [1] added support for Ubiquiti PowerBeam M (XW), tested
on the PBE-M5-400. But, it turns out the PBE-M2-400 has a different
ethernet configuration, so make the support specific to the m5 version
in anticipation of adding specific support for the m2 in a separate
commit.

[1] 12eb5b2384 ("ath79: add support for Ubiquiti PowerBeam M (XW)")

Signed-off-by: Russell Senior <russell@personaltelco.net>
[fix model name in DTS, format commit reference in commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-23 12:03:46 +08:00
Daniel Golle
b51b6d8d02 mediatek: mt7623: enable clock drivers for Mali-450 and audio
Built clock drivers for G3DSYS and AUDSYS into the kernel to allow
multimedia features (GPU and audio) to work if they exist.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-23 12:03:06 +08:00
Álvaro Fernández Rojas
66a4ac630b bcm27xx: add kernel 5.10 support
Rebased RPi foundation patches on linux 5.10.59, removed applied and reverted
patches, wireless patches and defconfig patches.

bcm2708: boot tested on RPi B+ v1.2
bcm2709: boot tested on RPi 4B v1.1 4G
bcm2711: boot tested on RPi 4B v1.1 4G

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-08-22 12:20:16 +08:00
Álvaro Fernández Rojas
f78d3e3223 generic: fix debloat dma-buf 5.10 patch
The current patch produces the following error when CONFIG_DMABUF_HEAPS is
enabled:
drivers/built-in.a: member drivers/dma-buf/heaps in archive is not an object

Fixes: b10d604459 ("kernel: add linux 5.10 support")

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-08-22 12:20:00 +08:00
Álvaro Fernández Rojas
61e9c287cb generic: add missing 5.10 config symbols
These symbols are needed for bcm27xx 5.10 kernel support.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-08-22 12:19:48 +08:00
Álvaro Fernández Rojas
eed8b5c118 bcm27xx-gpu-fw: update to latest version
Multiple firmware fixes needed for kernel updates.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-08-22 12:19:31 +08:00
Álvaro Fernández Rojas
d0f11fa652 bcm27xx-userland: update to latest version
Properly recognise all BCM2711 variants

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-08-22 12:19:20 +08:00
Shane Synan
5163ca420f ipq806x: fix min<>target opp-microvolt DTS mixup
Rearrange all voltage triplets for "opp_table0" to match the
specifications.  "opp-microvolt" and "opp-microvolt-<name>" triplets
are in order of <target min max>, and NOT <min target max>.

Previously, the CPU would *always* spend its time at the "minimum"
voltage, ignoring the actual intended target.  This is a regression
from previous behavior.

On an NBG6817 with a Qualcomm CPU of PVS bin #2...
(see &opp_table0 -> opp-1725000000 -> opp-microvolt-speed0-pvs2-v0)

* Before:
/usr/bin/tail -n +1 /sys/kernel/debug/opp/cpu0/opp\:1725000000/supply-0/u_volt_*
==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_max <==
1260000

==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_min <==
1200000

==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_target <==
1140000

* After:
/usr/bin/tail -n +1 /sys/kernel/debug/opp/cpu0/opp\:1725000000/supply-0/u_volt_*
==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_max <==
1260000

==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_min <==
1140000

==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_target <==
1200000

To check voltages and frequencies at run time, use...
/bin/cat /sys/kernel/debug/regulator/regulator_summary &&
  /bin/cat /sys/kernel/debug/clk/clk_summary | grep "hfpll"

See
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/devicetree/bindings/opp/opp.txt?h=v5.4.142#n91

Fixes: 1e25423be8 ("ipq806x: refresh dtsi patches")

Signed-off-by: Shane Synan <digitalcircuit36939@gmail.com>
Reviewed-by: Ansuel Smith <ansuelsmth@gmail.com>
[commit message style cleanup, another kernel refresh]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-22 12:19:07 +08:00
Daniel Golle
e070612ac6 mediatek: mt7623: backport musb, improve HDMI console
Backport support for dual-role USB 2.0 as that's what is actually
built-into MT7623.
Improve HDMI console by enabling VT and setting up tty1..tty6.
Re-add accidentally removed CONFIG_ARM_ARCH_TIMER.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-22 12:18:53 +08:00
Adrian Schmutzler
80c6910361 ramips: add label MAC address for Onion Omega 2(+)
Thanks to a hint from Michael Siegenthaler in 4b4fa2f9fe ("ramips:
fix ethernet MAC address on Omega2"), the label MAC address of
the Onion Omega 2(+) can be set based on its documentation [1].

[1] https://docs.onion.io/omega2-docs/mac-address.html

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-22 12:18:29 +08:00
Michael Siegenthaler
99d3142e02 ramips: fix ethernet MAC address on Omega2
According to https://docs.onion.io/omega2-docs/mac-address.html, 0x28 is
the correct location to read the address on Onion Omega 2(+) devices.

This fixes a regression introduced by commit 77e850fe76 ("ramips: tidy up
MAC address setup for Linkit Smart and Omega2"), which was a cleanup that
intended to preserve existing behavior. In my testing with v19.07.7,
however, the MAC address determined from the device tree takes precedence
over the one set by 02_network, so the aforementioned commit actually
changed the behavior.

Signed-off-by: Michael Siegenthaler <msiegen@google.com>
[Adapt patch to nvmem usage]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-22 12:18:13 +08:00
Jan Hoffmann
19d7a3e353 ltq-vdsl: add missing backslash
This error was introduced with the recent cleanup.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2021-08-22 12:17:53 +08:00
Jan Hoffmann
50cce31561 ltq-vdsl/ltq-vdsl-app: clean up configure args
The userspace application now uses the model=full option to match the
configuration of the kernel module. The source no longer contains SOAP
support, which was the primary reason to build only typical instead
of full before.

This makes several CLI commands, which were already supported in the
kernel module, available in the userspace application. For example, this
includes bbsg which allows to get information about VDSL2 bands.

Some previously applied build options were redundant. Disabling ADSL MIB
support is unnecessary, as it only applies to Danube. ADSL LED support
is no longer included in the source. ReTx counters are already included
with model type full.

This increases the size of the userspace application by approximately
15 kB (uncompressed). The kernel module does not change at all.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
2021-08-22 12:17:32 +08:00
Kevin Darbyshire-Bryant
2e2da0be6f firmware-utils: fix build on not Linux
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-08-22 12:17:16 +08:00
Vincent Wiemann
f4a330120c firmware-utils: add support for ZyXEL ZLD firmware
This commit adds a tool for extracting and creating firmware archives for:
- ZyXEL NWA5121-N
- ZyXEL NWA5121-NI
- ZyXEL NWA5123-NI
- ZyXEL NWA5123-AC
- ZyXEL NWA5301
- ZyXEL NWA3560N v2
- ZyXEL WAC6100
- ZyXEL WAC6500

And maybe others...

Signed-off-by: Vincent Wiemann <vincent.wiemann@ironai.com>
2021-08-22 12:17:03 +08:00
John Audia
bb59562ebf kernel: bump 5.4 to 5.4.142
Removed upstreamed:
  hack-5.4/991-platform-x86-pcengines-apuv2-revert-simswitch.patch

All other patches automatically rebased.

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>
2021-08-22 12:12:55 +08:00
John Audia
ac4b81a4d6 kernel: bump 5.4 to 5.4.141
All patches automatically rebased.

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>
2021-08-22 12:12:43 +08:00
Rui Salvaterra
1094a55c2b kernel: bump 5.10 to 5.10.60
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-08-22 12:12:32 +08:00
Daniel Golle
c748a23807 mediatek: mt7623: enable more hardware features
In order to make HDMI console available on the BananaPi BPi-R2 select
various Kconfig symbols which are useful for systems with graphics.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-21 12:18:16 +08:00
Daniel Golle
bcab270269 uboot-mediatek: pass console=tty1 for BPi-R2
BananaPi BPi-R2 comes with HDMI and MIPI-DSI. Use dislpay facility in
Linux by add "console=tty1" boot argument.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-21 12:18:04 +08:00
Hauke Mehrtens
132b9a1f33 kernel: Do not deactivate staging drivers
Do not deactivate the kernel configuration symbol CONFIG_STAGING in the
target configurations any more. This prevented the build of the exfat.ko
for example.

Fixes: FS#3979
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-21 12:17:15 +08:00
Hauke Mehrtens
2153e5f9ae layerscape: Do not activate ext2 and ext3 driver options
The ext3 driver was already removed, the kernel config options are only
there for backwards compatibility. The eth4 driver takes care of ext3
file systems. The ext4 driver also handled ext2 file systems.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-21 12:16:57 +08:00
Hauke Mehrtens
6df7c6778d archs38: Do not activate ext3 driver options
The ext3 driver was already removed, the kernel config options are only
there for backwards compatibility. The eth4 driver takes care of ext3
file systems.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-21 12:16:08 +08:00
Hauke Mehrtens
31b15ece4f at91bootstrap: Fix compile with binutils 2.36
This fixes a build problem seen after binutils 2.36 is used by default.

Fixes: 3f41153b1c ("toolchain/binutils: switch to version 2.36.1 by default")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-21 12:15:52 +08:00
Hauke Mehrtens
57bb2557ff uboot-at91: fix dtc compilation on host gcc 10
Backport a patch from upstream U-Boot to fix the compile with host GCC 10.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-21 12:15:40 +08:00
Adrian Schmutzler
0ac321a4f3 mediatek: convert mtd-mac-address to nvmem for MT7629 RFB
This conversion appears to have been overlooked since it's in a
kernel patch.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-21 12:14:53 +08:00
Adrian Schmutzler
eae46d8ed5 lantiq: convert mtd-mac-address to nvmem for Fritz!Box 736x
Convert this series by moving the definitions to the individual
devices.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-21 12:14:41 +08:00
Adrian Schmutzler
8e19b45c10 ramips: convert mtd-mac-address to nvmem for UniElec devices
Convert this series by moving the definitions to the individual
devices.

Now all devices on ramips are converted.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-21 12:13:59 +08:00
Adrian Schmutzler
0c82900cf7 ath79: remove redundant nvmem definitions
Due to use of a script when migrating from mtd-mac-address, a few
of the definitions are redundant in DTSI and DTS files. Remove
those and consolidate the definitions in parent DTSI files in a
few cases.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-21 12:13:45 +08:00
Adrian Schmutzler
e2241808a4 ramips: remove redundant nvmem definitions
Due to use of a script when migrating from mtd-mac-address, a few
of the definitions are redundant in DTSI and DTS files. Remove
those.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-21 12:13:11 +08:00
Adrian Schmutzler
b589f44a72 ramips: fix indent in DTS for GL.iNet VIXMINI/microuter-N300
Use correct indent.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-21 12:12:51 +08:00
Adrian Schmutzler
2fe8e22535 ramips: convert mtd-mac-address to nvmem for D-Link DIR-8xx
Convert this series by moving the definitions to the individual
devices.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-21 12:12:15 +08:00
Ronny Kotzschmar
80edb94644 rockchip: reliably distribute net interrupts
On the NanoPI R4S it takes an average of 3..5 seconds for the network devices
to appear in '/proc/interrupts'.
Wait up to 10 seconds to ensure that the distribution of the interrupts
really happens.

Signed-off-by: Ronny Kotzschmar <ro.ok@me.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit fd65ce6f32)
2021-08-19 15:59:27 +08:00
SuLingGG
6b2cfcd641 treewide: add missing kconfig symbols
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-19 15:56:38 +08:00
QiuSimons
decb6fb59f rockchip: distribute R2C net interrupts
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 9ba4de031d)
2021-08-19 15:56:03 +08:00
Adrian Schmutzler
a214a9764c ath79: convert remaining mtd-mac-address cases to nvmem
Since the nvmem-based approach for retrieving MAC addresses
appears to depend on the addresses being set up after the
partitions, it is no longer possible to keep the MAC address
setup in shared DTSI files while the partitions itself are
set up in DTS files for the individual devices.

In ath79 the firmware partition is typically located somewhere
"in the middle" of the partition table. Thus, it's not trivial
to share the partitions containing MAC address information in
a common DTSI (like we did in some cases on ramips).

In this commit, MAC address setup is thus moved to the relevant
partitions, and in most cases needs to be duplicated. While
the duplication is not really nice, it eventually provides a
cleaner and more tidy setup, making the DTS(I) file
fragmentation a bit more logical. This should also help
with adding new devices, as information is distributed across
less locations.

For consistency, this commit also moves the mtd-cal-data property
"down" together with the MAC address setup, so it's not based
on a partition before the latter is defined either. (This is
only done for those files touched due to nvmem conversion.)

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-19 12:11:23 +08:00
Adrian Schmutzler
52bcce5068 ramips: convert most mtd-mac-address cases in DTSI to nvmem
Convert most of the cases from mtd-mac-address to nvmem where
MAC addresses are set in the DTSI, but the partitions are only
located in the device DTS. This posed some problems earlier, since
in these cases we are using partitions before they are defined,
and the nvmem system did not seem to like that.

There have been a few different resolution approaches, based on
the different tradeoffs of deduplication vs. maintainability:

 1. In many cases, the partition tables were identical except for
    the firmware partition size, and the firmware partition was
    the last in the table.
    In these cases, the partition table has been moved to the
    DTSI, and only the firmware partition's "reg" property has
    been kept in the DTS files. So, the updated nvmem definition
    could stay in the DTSI files as well.

 2. For all other cases, splitting up the partition table would
    have introduced additional complexity. Thus, the nodes to be
    converted to nvmem have been moved to the DTS files where the
    partitioning was defined.

 3. For Netgear EX2700 and WN3000RP v3, the remaining DTSI file
    was completely dissolved, as it was quite small and the name
    was not really nice either.

 4. The D-Link DIR-853 A3 was converted to nvmem as well, though
    it is just a plain DTS file not taken care of in the first
    wave.

In addition, some minor rearrangements have been made for tidyness.

Not covered (yet) by this patch are:

 * Various unielec devices
 * The D-Link DIR-8xx family

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-19 12:11:12 +08:00
Michael Heimpold
306d8bb733 bcm27xx-userland: factor out a -dev package
Installing headers and static libraries to the target system seems
to be not required for most use cases, so let's factor them
out into a dedicated -dev package.

This cuts down to disk usage to around 50% of the original
package to ~ 2MB - not that disk space is an issue normally,
but when using inside an initramfs only project, it counts.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2021-08-19 12:11:01 +08:00
David Yang
400c390cd9 ramips: add WPS button for newifi d1
This device has a WPS button under WiFi antenna cover, add it to dts.

Signed-off-by: David Yang <mmyangfl@gmail.com>
2021-08-18 12:02:23 +08:00
Adrian Schmutzler
d64ce1c239 ramips: mt7628: move mtd-eeprom out of root DTSI
The mt76x8 subtarget is the only one in ramips that stores the
mediatek,mtd-eeprom property directly in the "root" mt7628an.dtsi.

This is not optimal for a few different reasons:

 * If you don't really know it or are used to other (sub)targets,
   the property will be set somewhat magically.
 * The property is set based on &factory partition before (if at all)
   this partition is defined.
 * There are several devices that have different offset or even
   different partitions to read from, which will then be overwritten
   in the DTS files. Thus, definitions are scattered between root
   DTSI and individual files.

Based on these circumstances, the "root" definition is removed and
the property is added to the device-based DTS(I) files where needed
and applicable. This should be easier to grasp for unexperienced
developers and will move the property closer to the partition
definitions.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-18 12:02:14 +08:00
Rui Salvaterra
53bf564c29 kernel: bump 5.10 to 5.10.59
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-08-18 12:02:04 +08:00
Tianling Shen
621ac4fc22 generic: add missing config symbol
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 43cb010da5)
2021-08-18 06:34:45 +08:00
Tianling Shen
ec04bb231f rockchip: nanopi r4s: fix typo error
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-17 19:46:39 +08:00
Tianling Shen
301489a8d9 uboot-rockchip: fix typo error of patch name
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-15 18:08:20 +08:00
Tianling Shen
c65d6afc2a uboot-rockchip: drop DDR patch for NanoPi R4S
As used rockchip's proprietary DDRloader, this hack is useless.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-15 18:04:14 +08:00
David Bauer
540d2be9f1 uboot-rockchip: update to v2021.07
Tested on NanoPi R2S

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-15 18:02:18 +08:00
Tianling Shen
708ea1f758 generic: add missing config symbol
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 21621004f1)
2021-08-15 17:12:24 +08:00
John Audia
4d539a0e40 kernel: bump 5.4 to 5.4.140
Removed upstreamed bcm27xx/patches-5.4:
    950-0977-USB-gadget-f_hid-avoid-crashes-and-log-spam.patch
    950-0980-SQUASH-USB-gadget-f_hid-remove-more-spam.patch

All other patches automatically rebased.

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>
2021-08-15 12:38:33 +08:00
John Audia
0bad9500e1 kernel: bump 5.4 to 5.4.139
All patches automatically rebased.

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>
2021-08-15 12:38:21 +08:00
Rui Salvaterra
7305ab8eba kernel: bump 5.10 to 5.10.58
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-08-15 12:38:08 +08:00
Rui Salvaterra
6493790d74 kernel: bump 5.10 to 5.10.57
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-08-15 12:37:57 +08:00
David Bauer
66befce86f ipq40xx: ar40xx: reset port status register
This resolves incosnsitencies of the configured RX / TX flow control
modes between different boards or bootloaders.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-15 12:37:47 +08:00
David Bauer
b51245e443 ipq40xx: ar40xx: use FIELD_GET macro
This improves code readability.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-15 12:37:31 +08:00
David Bauer
d5867e65eb ipq40xx: increase EX6150v2 SPI frequency
The chip supports clock speeds up to 50 MHz, however it won't even read
the chip-id correctly at this frequency.

45 MHz however works reliable.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-15 12:37:22 +08:00
David Bauer
da140c0bdc bcm4908: add missing config symbol
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-14 12:21:51 +08:00
David Bauer
74fa9fd5d2 mediatek: add missing config symbols
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-14 12:21:37 +08:00
David Bauer
38b1c7c997 tegra: add missing Kconfig symbol
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-14 12:21:27 +08:00
David Bauer
6e89e63d65 rockchip: add missing Kconfig symbols
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-14 12:20:47 +08:00
Tianling Shen
83ce2ba131 rockchip: add Motorcomm PHY driver
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-13 03:20:13 +08:00
Tianling Shen
d9cb05957d rockchip: add NanoPi R2C support
This board is a fork of NanoPi R2S, with the native NIC changed.

Hardware
--------
RockChip RK3328 ARM64 (4 cores)
1GB DDR4 RAM
2x 1000 Base-T
3 LEDs (LAN / WAN / SYS)
1 Button (Reset)
Micro-SD slot
USB 2.0 Port

Installation
------------
Uncompress the OpenWrt sysupgrade and write it to a micro SD card using
dd.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-13 03:16:17 +08:00
Tianling Shen
2f1747a51f uboot-rockchip: add NanoPi R2C support
Add support for the FriendlyARM NanoPi R2C.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-13 03:04:05 +08:00
Tianling Shen
ee6815b64c generic/rockchip: refresh kernel patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-13 02:42:42 +08:00
Tianling Shen
50484ffe5c arm-trusted-firmware-rockchip-vendor: workaround for VARIANT issue
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 751967e121)
2021-08-13 00:36:15 +08:00
Tianling Shen
96c509e504 arm-trusted-firmware-rockchip-vendor: rework multiple devices building
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 4262a83d1d)
2021-08-12 23:54:49 +08:00
Felix Fietkau
07a7fa998e hostapd: fix broken check in radar detection notification
This check was accidentally left in after reworking the code,
causing a segfault

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-08-12 12:01:56 +08:00
David Bauer
f35ba973a6 generic: add missing config symbol
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-11 12:03:34 +08:00
David Bauer
a3217d98ce mediatek: add missing config symbol
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-11 12:03:22 +08:00
David Bauer
8e048b9bbb treewide: add various missing config symbols
Fixes commit 91a52f22a1 ("treewide: backport support for nvmem on non platform devices")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-11 12:03:11 +08:00
David Bauer
24fb77c967 generic: Kconfig: exit on unset symbol
When a target configuration has unser Kconfig symbols, the build will
fail when OpenWrt is compiled with V=s and stdin is connected to a tty.

In case OpenWrt is compiled without either of these preconditions, the
build will uscceed with the symbols in question being unset.

Modify the kernel configuration in a way it fails on unset symbols
regardless of the aformentioned preconditions.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-11 12:02:34 +08:00
David Bauer
fe753a993e generic: fix kernel panic on existing mac-address node
Calling free for the OF property can result in a kernel panic, as the
buffer in question might be referenced elsewhere. Also, it is not
removed from the tree.

Always allocate a new property and updating the tree with it fixes both
issues.

Fixes commit 91a52f22a1 ("treewide: backport support for nvmem on non platform devices")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-11 12:02:16 +08:00
Tianling Shen
ab1d552a8f [HOTFIX] Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-11 00:58:55 +08:00
Tianling Shen
a4375d79b1 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-10 19:34:07 +08:00
AmadeusGhost
2b89737e4b sunxi: refresh kernel 5.4 patches
Fixes: #427
2021-08-10 12:06:36 +08:00
Rafał Miłecki
eb1903b46e firmware-utils: nand_ecc: replace GPL boilerplate with SPDX
Cc: yajin <yajin@vm-kernel.org>
Cc: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-10 12:04:15 +08:00
Rafał Miłecki
73e8129079 firmware-utils: trx: replace GPL-2.0-or-later boilerplate with SPDX
This was missed because scancode license scanner was confused by
comments about crc32buf().

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-10 12:03:59 +08:00
Rafał Miłecki
8ac466c82d firmware-utils: osbridge-crc: replace GPL-2.0-only boilerplate with SPDX
This was missed because scancode license scanner was confused by
comments about crc32buf().

Cc: Gabor Juhos <juhosg@openwrt.org>
Cc: Gabor Juhos <juhosg@freemail.hu>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-10 12:03:28 +08:00
Rafał Miłecki
f493ca36af firmware-utils: mkmylofw: replace GPL-2.0-or-later boilerplate with SPDX
This was missed because scancode license scanner was confused by a
comment about (no) copyrights in the init_crc_table().

Cc: Gabor Juhos <juhosg@openwrt.org>
Cc: Gabor Juhos <juhosg@freemail.hu>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-10 12:03:16 +08:00
Rafał Miłecki
05362e485d firmware-utils: mkmerakifw-old: replace GPL-2.0-only boilerplate with SPDX
This was missed because scancode license scanner was confused by a
comment about Cisco's GPL code github repository.

Cc: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Christian Lamparter <chunkeey@gmail.com>
2021-08-10 12:03:00 +08:00
Hauke Mehrtens
143e84aa93 omap: Remove EXT2 and EXT3 driver config
The EXT4 driver also takes care of EXT2 and EXT3 file systems.
Activating the EXT2 driver kernel config options unlocked some other
ext2 driver related options which OpenWrt did not take care of.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-09 12:10:36 +08:00
Hauke Mehrtens
9a1394db8a uboot-layerscape: fix dtc compilation on host gcc 10
Backport a patch from upstream U-Boot to fix the compile with host GCC 10.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-09 12:10:23 +08:00
Hauke Mehrtens
76bd7181c7 layerscape: Fix multiple bugs in of_get_mac_address() changes
The change which backported the of_get_mac_address() change broke some
patches in the layerscape target so the patches did not apply any more.

This commit makes them apply again and also fixes some other problems
related to this change.

Fixes commit 91a52f22a1 ("treewide: backport support for nvmem on non platform devices")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-09 12:10:12 +08:00
Hauke Mehrtens
16f43442fc kernel: Apply change to of_get_mac_address() to ks8851 too
The code from ks8851.c was moved to ks8851_common.c, so it was not
backported. This broke the compile of the omap target which uses this
driver.

Fixes commit 91a52f22a1 ("treewide: backport support for nvmem on non platform devices")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-09 12:09:59 +08:00
Jesus Fernandez Manzano
a6f13222d3 hostapd: respect fixed channel BW in HE20 mode
When using htmode 'HE20' with a radio mode that uses wpa-supplicant
(like mesh or sta), it will default to 40 MHz bw if disable_ht40 is not
set. This commit fixes this behaviour.

Signed-off-by: Jesus Fernandez Manzano <jesus.manzano@galgus.net>
2021-08-09 12:09:39 +08:00
Jianhui Zhao
8fc4b10e68 iw: enable print wpa ie for scan
This increases the size of the iw_5.9-8fab0c9e-3_mips_24kc.ipk from
41166 to 41942 bytes by 776 bytes.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2021-08-09 12:09:04 +08:00
Martin Schiller
659ad75d76 layerscape: armv8_64b: do not disable CONFIG_IP_ADVANCED_ROUTER
This option is needed e.g. to use strongswan for IPSec.

BTW: This was the only target where this option was disabled.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2021-08-09 12:07:56 +08:00
Linus Walleij
e26f696327 gemini: Add hdparm setting
This uses "hdparm" (if present) to get the harddisk into low
power mode on NAS set-ups.

Cc: Adrian Schmutzler <mail@adrianschmutzler.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2021-08-09 12:07:40 +08:00
Josef Schlehofer
25e26131e2 mvebu: armada-37xx: add patch to forbid cpufreq for 1.2 GHz
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/

Fixes: 7b868fe04a ("Revert "mvebu: 5.4 fix DVFS caused random boot crashes"")
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2021-08-09 12:07:19 +08:00
Josef Schlehofer
d13fdececb Revert "mvebu: 5.10 fix DVFS caused random boot crashes"
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 080a0b74e3.

[1] https://lists.openwrt.org/pipermail/openwrt-devel/2021-June/035702.html

Fixes: d379476817 ("mvebu: armada-37xx: add patch to forbid cpufreq for 1.2 GHz")
CC: Pali Rohár <pali@kernel.org>
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2021-08-09 12:07:08 +08:00
Josef Schlehofer
c8e7e748bd mvebu: armada-37xx: add patch to forbid cpufreq for 1.2 GHz
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>
2021-08-09 12:06:21 +08:00
Josef Schlehofer
3202a0c4a6 Revert "mvebu: 5.4 fix DVFS caused random boot crashes"
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 080a0b74e3.

[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>
2021-08-09 12:06:09 +08:00
Klaus Kudielka
fb7c52a38e mvebu: Turris Omnia: use SFP module, if present
Follow the recommendations stated in the Turris Omnia DTS for eth2:

"In case SFP module is present, U-Boot has to enable the sfp node above,
remove phy-handle property, and add managed = "in-band-status" property."

The boot script is written in a way, that it works for all U-Boot
versions deployed by the vendor so far (2015.10-rc2, 2019.07).

Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
2021-08-09 12:05:23 +08:00
Klaus Kudielka
dd87902551 mvebu: backport Turris Omnia DTS changes to 5.4
Kernel 5.4 receives a reduced set, just to make the SFP cage work.
While we are at it, move the patches accepted upstream to the 0xx series.

Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
2021-08-09 12:05:09 +08:00
Klaus Kudielka
0c050a6b34 mvebu: backport Turris Omnia DTS changes to 5.10
Kernel 5.10 receives the complete set of improvements from 5.11/5.12.
While we are at it, move the patches accepted upstream to the 0xx series.

Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
2021-08-09 12:04:53 +08:00
Rui Salvaterra
42ede6a401 ath79: fix the AR7{1,2}00 USB PHY patches
PHY_SIMPLE is a bogus kconfig symbol, what we really need to select is
GENERIC_PHY.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-08-09 12:04:43 +08:00
Rui Salvaterra
cf69d592cb kernel/generic: add CONFIG_KCSAN to the 5.10 kconfig
Add the missing CONFIG_KCSAN (disabled). Found while making kernel_oldconfig on
an x86-64 subtarget.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-08-09 12:03:54 +08:00
Damien Mascord
225a445959 kernel: backport mdio_find_bus from 5.10.x
mdio-tools (https://github.com/wkz/mdio-tools) requires the use of
mdio_find_bus, which is not present in 5.4.x.

This patch backports the required change from 5.10.x to 5.4.x

The original patch submission for this can be found at
https://patchwork.ozlabs.org/project/netdev/patch/20200201074625.8698-2-jeremy.linton@arm.com/

Signed-off-by: Damien Mascord <tusker@tusker.org>
[Add original patch description]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-09 12:03:36 +08:00
John Audia
5745f05543 kernel: bump 5.4 to 5.4.138
All patches automatically rebased.

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>
2021-08-09 12:03:19 +08:00
Rui Salvaterra
cfb892159c kernel: bump 5.10 to 5.10.56
No patches needed refreshing

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-08-09 12:03:05 +08:00
Rui Salvaterra
d6c4d1690b kernel: bump 5.10 to 5.10.55
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-08-09 12:02:53 +08:00
Tianling Shen
052f3e3c61 uboot-rockchip: fix dependencies
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-08 22:08:50 +08:00
AmadeusGhost
bd7988e68e r8168: update to 8.049.01 2021-08-08 20:18:07 +08:00
AmadeusGhost
da42a1fe22 arm-trusted-firmware-rockchip-vendor: rename from arm-trusted-firmware-rkbin 2021-08-08 20:15:28 +08:00
Tianling Shen
974443992e uboot-rockchip: drop ugly hacks from friendlyarm
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-08 16:36:53 +08:00
Tianling Shen
a2759b1be2 uboot-rockchip: use rkbin for nanopi r4s
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-08 16:36:53 +08:00
Tianling Shen
87fe3f8257 arm-trusted-firmware-rkbin: rename from arm-trusted-firmware-rk3328
Added support for rk3399.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-08-08 16:36:52 +08:00
Stijn Tintel
b0d980f9db mvebu: switch to generic sdcard upgrade method
Now that we have a generic sdcard upgrade method, which was copied from
the mvebu platform method, we can switch mvebu to the generic method.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-08-07 12:10:36 +08:00
Stijn Tintel
4237ba7d6f base-files: add generic sdcard upgrade method
Add a generic sdcard upgrade method instead of duplicating code in yet
another target, and add a feature flag to only install this upgrade
method in targets that set this flag. Copied from mvebu.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-08-07 12:09:16 +08:00
Stijn Tintel
bc335784f0 scripts/target-metadata.pl: order features alphabetically
We generaly do this in many other places, so let's do it here also.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-08-07 12:08:59 +08:00
Rafał Miłecki
4bdb7c187a firmware-utils: add GPL 2.0 SPDX to files with no license info
These files fall under the project license: GPL-2.0-only.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-07 12:07:09 +08:00
Rafał Miłecki
ed8999a8a9 firmware-utils: tplink-safeloader: replace BSD-2-Clause boilerplate with SPDX
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Matthias Schiffer <mschiffer@universe-factory.net>
2021-08-07 12:06:56 +08:00
Rafał Miłecki
6c97c1a93f firmware-utils: seama: replace BSD-3-Clause boilerplate with SPDX
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-07 12:06:46 +08:00
Rafał Miłecki
2e6468e50c firmware-utils: replace GPL 2.0+ boilerplate/reference with SPDX
This uses "GPL-2.0-or-later" header for files identified using scancode
license scanner with 100% score as GPL 2.0 or later.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-07 12:06:35 +08:00
Rafał Miłecki
f93607f973 firmware-utils: replace GPL 2.0 boilerplate/reference with SPDX
This uses "GPL-2.0-only" header for files identified using scancode
license scanner with 100% score as GPL 2.0.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-08-07 12:06:24 +08:00
Stijn Tintel
0b8718b8bb kernel: kmod-xfrm-interface requires IPv6
The xfrm_interface module will not be built if IPv6 is not enabled in
the kernel. Add this dependency in the kmod package to avoid people
wondering why it doesn't build when they disabled IPv6.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-08-06 18:53:11 +08:00
Fabian Bläse
2cb0d9fecb ramips: add missing label-mac-device for Xiaomi Mi Router 4A (100M)
As both the Mi Router 4A (100M) and the Mi Router 4C use the same
label-mac-device, the alias can be moved to the shared dtsi.

Signed-off-by: Fabian Bläse <fabian@blaese.de>
2021-08-06 18:52:57 +08:00
Daniel Golle
3155e81723 kirkwood: import patch to fix build and refresh patches
kirkwood build broke due to missing include needed for ETH_ALEN.
Add patch (sent upstream as well) to address that.
Refresh patches for 5.4 and 5.10.

Fixes: 91a52f22a1 ("treewide: backport support for nvmem on non platform devices")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-06 18:52:22 +08:00
Daniel Golle
4c81103b7f realtek: fix syntax error introduced by previous commit
A superflus ')' character has slipped into commit 91a52f22a1. Remove it
to fix build.

Fixes: 91a52f22a1 ("treewide: backport support for nvmem on non platform devices")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-06 18:51:58 +08:00
David Bauer
2de257f53f generic: fix to few arguments to of_get_mac_address
Fixes commit 91a52f22a1 ("treewide: backport support for nvmem on non platform devices")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-06 18:51:45 +08:00
Ansuel Smith
faf785ddad treewide: backport support for nvmem on non platform devices
In the current state, nvmem cells are only detected on platform device.
To quickly fix the problem, we register the affected problematic driver
with the of_platform but that is more an hack than a real solution.
Backport from net-next the required patch so that nvmem can work also
with non-platform devices and rework our current patch.
Drop the mediatek and dsa workaround and rework the ath10k patches.
Rework every driver that use the of_get_mac_address api.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-08-06 18:51:27 +08:00
Rafał Miłecki
f02018222d bcm4908: backport recent bcm4908_enet changes
This includes 5.12 fix and 5.13 improvements.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-08-06 18:50:59 +08:00
John Marrett
6ad109436b ath79: add support for GL.iNet GL-X300B
The GL-X300B is a industrial 4G LTE router based on the Qualcomm
QCA9531 SoC.

Specifications:
 - Qualcomm QCA9531 @ 650 MHz
 - 128 MB of RAM
 - 16 MB of SPI NOR FLASH
 - 2x 10/100 Mbps Ethernet
 - 2.4GHz 802.11b/g/n
 - 1x USB 2.0 (vbus driven by GPIO)
 - 4x LED, driven by GPIO
 - 1x button (reset)
 - 1x mini pci-e slot (vcc driven by GPIO)
 - RS-485 Serial Port (untested)

Flash instructions:

This firmware can be flashed using either sysupgrade from the GL.iNet
firmware or the recovery console as follows:

 - Press and hold the reset button
 - Connect power to the router, wait five seconds
 - Manually configure 192.168.1.2/24 on your computer, connect to
   192.168.1.1
 - Upload the firmware image using the web interface

RS-485 serial port is untested and may depend on the following commit in
the GL.iNet repo:

202e83a32a

MAC addresses as verified by OEM firmware:

vendor   OpenWrt   address
WAN      eth0      label
LAN      eth1      label + 1
2g       phy0      label + 2

The label MAC address was found in the art partition at 0x0

Based on vendor commit:

16c5708b20

Signed-off-by: John Marrett <johnf@zioncluster.ca>
2021-08-05 12:10:19 +08:00
Hannu Nyman
07b5e35572 generic: add missing Kconfig symbol ARM_SCMI_PROTOCOL
Add the missing ARM_SCMI_PROTOCOL symbol. Apparently it was exposed
for 5.10.53 with a kernel dependency change.
Missing symbol observed with mediatek/7622 E8450/RT3200 router.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2021-08-05 12:10:07 +08:00
David Bauer
0d560e7678 mediatek: mt7622: enable HW RNG
MT7622 provides are hardware RNG with upstream Linux driver. Enable
compilation of this driver to make use of the hardware RNG.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-05 12:09:08 +08:00
David Bauer
ba871f5597 generic: enable netlink ethtool interface
The virtual cable tester depends on the netlink interface for ethtool.
Thus, enable it in the generic kernel configuration.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-05 12:08:50 +08:00
David Bauer
673a322f45 generic: add missing ARM64 crypto Kconfig symbols
bcm27xx-bcm2710 builds are stalling when compiled with V=s.

Explitily disable these unset symbols to avoid stalling
builds.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-01 12:02:01 +08:00
David Bauer
598e24d533 generic: add missing Kconfig symbol
Fixes build errors for sunxi as well as rockchip targets.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-01 12:01:45 +08:00
John Audia
113a720340 kernel: bump 5.4 to 5.4.137
Automatically rebased.

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>
2021-08-01 12:01:35 +08:00
John Audia
c3fd2e757c kernel: bump 5.4 to 5.4.136
All patches automatically rebased.

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>
2021-08-01 12:01:27 +08:00
John Audia
c17dc9a7ea kernel: bump 5.4 to 5.4.135
All patches automatically rebased.

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>
2021-08-01 12:01:15 +08:00
Rui Salvaterra
ec3907d80d kernel: bump 5.10 to 5.10.54
Deleted (upstreamed) patches:
mediatek/patches-5.10/000-spi-fix-fifo.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-30 12:17:47 +08:00
Rui Salvaterra
ca1aedc113 kernel: bump 5.10 to 5.10.53
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-30 12:17:35 +08:00
Nick Hainke
4f3101341a mediatek: mt7623: import patch to fix msi warning
The 1st generation MediaTek PCIe host bridge cannot handle Message
Signaled Interrupts (MSIs). The core PCI code is not aware that MSI is
not available. This results in warnings of the form:

WARNING: CPU: 2 PID: 112 at include/linux/msi.h:219
  pci_msi_setup_msi_irqs.constprop.8+0x64/0x6c
Modules linked in: ahci(+) libahci libata sd_mod scsi_mod
  gpio_button_hotplug
CPU: 2 PID: 112 Comm: kmodloader Not tainted 5.10.52 #0
Hardware name: Mediatek Cortex-A7 (Device Tree)

Import patches that introduce the 'no_msi' attribute to signal missing
MSI support to the core PCI.

Refresh patches:
- 000-spi-fix-fifo.patch
- 330-mtk-bmt-support.patch
- 510-net-mediatek-add-flow-offload-for-mt7623.patch
- 601-PCI-mediatek-Use-regmap-to-get-shared-pcie-cfg-base.patch
- 610-pcie-mediatek-fix-clearing-interrupt-status.patch
- 700-net-ethernet-mtk_eth_soc-add-support-for-coherent-DM.patch
- 710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-07-30 12:17:03 +08:00
Rafał Miłecki
546e170a32 bcm53xx: refresh kernel 5.10 config
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-07-30 12:16:48 +08:00
Rafał Miłecki
f6abc1cdfb bcm53xx: add testing support for kernel 5.10
It still requires fixing PCIe support:
[    6.644699] pcie_iproc_bcma bcma0:7: host bridge /axi@18000000/pcie@12000 ranges:
[    6.652217] pcie_iproc_bcma bcma0:7:   No bus range found for /axi@18000000/pcie@12000, using [bus 00-ff]
[    6.661833] OF: /axi@18000000/pcie@12000: Missing device_type
[    6.667622] pcie_iproc_bcma: probe of bcma0:7 failed with error -12
[    6.673985] pcie_iproc_bcma bcma0:8: host bridge /axi@18000000/pcie@13000 ranges:
[    6.681514] pcie_iproc_bcma bcma0:8:   No bus range found for /axi@18000000/pcie@13000, using [bus 00-ff]
[    6.691137] pcie_iproc_bcma: probe of bcma0:8 failed with error -12
[    6.697522] pcie_iproc_bcma bcma0:9: host bridge /axi@18000000/pcie@14000 ranges:
[    6.705048] pcie_iproc_bcma bcma0:9:   No bus range found for /axi@18000000/pcie@14000, using [bus 00-ff]
[    6.714669] pcie_iproc_bcma: probe of bcma0:9 failed with error -12

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-07-30 12:16:20 +08:00
Rafał Miłecki
e4cb9594d4 kernel: fix bgmac compilation in kernel 5.10
It's required since upstream kernel commit 4bdc0d676a64 ("remove
ioremap_nocache and devm_ioremap_nocache").

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-07-30 12:15:26 +08:00
David Bauer
1e514a5c28 generic: fix build warning
Fixes a unused variable warning:

drivers/of/of_net.c: In function 'of_get_mac_address_mtd':
drivers/of/of_net.c:92:19: warning: unused variable 'prop' [-Wunused-variable]

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-30 12:15:11 +08:00
David Bauer
82b9482622 generic: fix compile-error for non-mtd platforms
Fixes commit cd39aba402 ("generic: write back netdev MAC-address to device-tree")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-30 12:15:05 +08:00
David Bauer
1be85a3938 generic: write back netdev MAC-address to device-tree
The label-mac logic relies on the mac-address property of a netdev
devices of-node. However, the mac address can also be stored as a
different property or read from e.g. an mtd device.

Create this node when reading a mac-address from OF if it does not
already exist and copy the mac-address used for the device to this
property. This way, the MAC address can be accessed using procfs.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-29 12:02:34 +08:00
David Bauer
896dfe2f8c ath79: fix JT-OR750i switch LED assignment
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>
2021-07-29 12:02:21 +08:00
David Bauer
9b3a321b8e ath79: enable missing pinmux for JT-OR750i
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>
2021-07-29 12:01:48 +08:00
David Bauer
20475d6073 Revert "generic: add mac-address property for NVMEM mac addresses"
This reverts commit b309248730.

This commit could create a property without allocated memory, breaking
subsequent reads over a nodes property. Also, the mac-address-increment
was not applied when reading from nvmem.

Revert this commit for now, which breaks the label-mac-address logic.
Possibly, traversing the device-tree from the netdev side is easier
anyways.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-29 12:01:32 +08:00
Vincent Wiemann
d6f7c4e983 ath79: add support for Joy-IT JT-OR750i
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>
2021-07-29 12:01:20 +08:00
Felix Fietkau
3998e2fb82 hostapd: add missing chunk for the snoop interface fix
Fixes: 7b46377a0c ("hostapd: make the snooping interface (for proxyarp) configurable")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-29 12:01:07 +08:00
Tianling Shen
410226a48d sunxi: orangepi-3: use power led to show system running status
The "status led" should be used for other purposes, like networking,
or IO r/w.

Using power led for system running status is fair. It should flash
while the device is booting and upgrading, and keep lighting when it
runs normally.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-07-28 15:36:14 +08:00
Felix Fietkau
9fdddfc7a1 hostapd: make proxyarp work with libnl-tiny
Remove a dependency on libnl3-route

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-28 12:35:45 +08:00
Felix Fietkau
48c44a30d3 hostapd: fix a segfault on sta disconnect with proxy arp enabled
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-28 12:35:37 +08:00
Felix Fietkau
35f457267e hostapd: make the snooping interface (for proxyarp) configurable
Use the VLAN interface instead of the bridge, to ensure that hostapd receives
untagged DHCP packets

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-28 12:35:32 +08:00
Tianling Shen
329a4e184e Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-07-27 19:42:59 +08:00
AmadeusGhost
4af9b12df6 sunxi: orangepi-3: fixes wrong pcie patches
Commit f01b7cd introduced 2 gpios for the pcie part by mistake, one
of it is used for usb2phy, and the other is not connected anywhere.
Obviously, we cannot copy the dts of pine-h64 directly, which will
cause usb2 on this board to be unusable.

Note:
  From the datasheet provided by OrangePi open source, it seems that
  the perst part of pcie is controlled by the sw6 button. However,
  let us first guess a gpio to avoid any related error logs.

  By the way, it seems that the usb3 led (red), sw4 and sw6 buttons
  on this board are not controlled by gpio.

Fixes: f01b7cd ("sunxi: add support for OrangePi 3")
Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-07-27 12:03:08 +08:00
Felix Fietkau
dcb01a89fc netifd: update to the latest version
440eb0647708 bridge: fix regression in bringing up bridge ports

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-27 12:00:45 +08:00
Hauke Mehrtens
4661938e0a mediatek: Fix Fidelix-FM35X1GA patch
This patch did not apply cleanly any more after support for the XTX
flash was added to the generic patches.

Fixes: 92012dd867 ("kernel: Add support for XTX XT26G02A SPI NAND")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-07-26 12:18:12 +08:00
Felix Matouschek
57f06d11cf kernel: Add support for XTX XT26G02A SPI NAND
This chip is used on Teltonika RUTX boards.

Signed-off-by: Felix Matouschek <felix@matouschek.org>
2021-07-26 12:17:57 +08:00
Andre Heider
724ff8bb95 arm-trusted-firmware-mvebu: switch to CZ.NIC's Secure Firmware
CZ.NIC as part of Turris project released free and open source WTMI
application firmware wtmi_app.bin for all Armada 3720 devices.

This firmware includes additional features like access to Hardware
Random Number Generator of Armada 3720 SoC which original Marvell's
fuse.bin image does not have.

Add a patch which allows to pass the commit id, so the firmware is able
to identify itself, see a04bffeb.
Add a patch to disable linking with gold, since the ARM toolchain
doesn't ship gold.
Cherry-pick the 3 post-release fixes.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-07-26 12:17:38 +08:00
Andre Heider
c4e6fb11e3 arm-trusted-firmware-mvebu: update CM3 toolchain to v10.2
Linaro stopped shipping binary toolchains quite some time ago, switch over to
the ARM builds.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-07-26 12:17:26 +08:00
Andre Heider
6171f0838d arm-trusted-firmware-mvebu: update mv-ddr-marvell to current master
02e23db fix compilation errors popped up by GCC-10
7c35173 Merge pull request #29 from pali/sync-a38x-uboot
bb734f5 mv_ddr: a38x: Use SOC_REGS_PHY_BASE for INTER_REGS_BASE
ee1ea84 mv_ddr: a38x: Fix ddr3 compilation
70f3e2e mv_ddr: Fix comment typo
dd960b4 mv_ddr: ddr3: Allow boards to specify CK_DELAY parameter
a87f4f7 mv_ddr: ddr3: only use active chip-selects when tuning ODT
3defcec mv_ddr: a38x: Add support for setting timing in hws_topology_map

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-07-26 12:17:15 +08:00
Andre Heider
b298ea7a6c arm-trusted-firmware-mvebu: update a3700-tools to current master
2efdb10 wtmi: Fix calculation of UART divider
4247e39 fix: twin die ddr porting guide
8ad7992 sys_init: Add missing newlines in debug mode
4ddea19 avs: Validate VDD value from OTP
c444aeb avs: Fix description for avs value 0x2e
1915b78 tim: Optimize code generated by gettimver.sh and print newline
21f566d tim: Print mv_ddr version and configuration on UART
840b70b tim: Use variable $DDRFILE where possible
c10e6ae tim: Fix waiting for UART TX ready
7bf95cf wtmi: Wait 3ms for the TX on UART to be empty prior resetting TX FIFO
63e8433 wtmi: Add "dirty" suffix to git commit and rebuild sys_init.bin binary when VERSION changes
e949b58 wtmi: During setup clock phase print CPU and DDR speed
10376b5 wtmi: Flush output on UART after the '\n' character
509c647 Makefile: Check that specified DDR_TOPOLOGY option is valid

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-07-26 12:17:00 +08:00
Andre Heider
70a4ac04b3 arm-trusted-firmware-mvebu: update to v2.5
Revert to using the checked in `tbb_linux` image tool binary since building
it drags in the rather big Crypto++ project.

Cherry-pick the post-release UART fixes.

Switch to AUTORELEASE while at it.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-07-26 12:16:41 +08:00
Andre Heider
8911c9b5c9 arm-trusted-firmware-mvebu: remove unpacked sources upon clean
These are all unpacked in the Build/Prepare step, clean up accordingly.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-07-26 12:16:23 +08:00
Andre Heider
66bfd0c635 uboot-mvebu: update to v2021.07
Refresh the patches.
Switch to AUTORELEASE while at it.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-07-26 12:16:13 +08:00
Marek Behún
7904454771 uboot-envtools: mvebu: update uci defaults for Turris Omnia
From version 2021.09 U-Boot will fixup Turris Omnia's DTB before
booting, separating U-Boot's environment into separate MTD partition
"u-boot-env" [1].

Check if "u-boot-env" MTD partition exists and set the uci defaults
accordingly.

[1] https://lists.denx.de/pipermail/u-boot/2021-July/455017.html

Signed-off-by: Marek Behún <marek.behun@nic.cz>
2021-07-26 12:15:59 +08:00
Tomasz Maciej Nowak
598bcdddfb mvebu: limit mvneta tx queue workaround to 32 bit SoC
This patch has been carried since introduction throughout every kernel
major bump and no one has tested if the later kernels improved the
situation. The Armada 3720 SoC can only process GbE interrupts on Core 0
and this is already limited in all stable kernels, so ditch this
workaround for 64 bit SoCs.

Ref: https://git.kernel.org/torvalds/c/cf9bf871280d

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-07-26 12:15:45 +08:00
Martin Schiller
a754778575 layerscape: armv8_64b: enable Microsemi phy driver for FRWY-LS1046A
Enable the Microsemi phy driver to support the VSC8514 QSGMII phy on the
FRWY-LS1046A board.

Otherwise, the "Generic PHY" driver is used.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2021-07-26 12:14:39 +08:00
Martin Schiller
9d0fbb60b3 layerscape: fix config restore for FRWY-LS1046A
commit 2c2d77bd3b ("layerscape: add FRWY-LS1046A board support")
missed to add an entry to the 79_move_config preinit script.

Therefore, the config transfer on sysupgrade wass broken for this device.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2021-07-26 12:14:26 +08:00
Thomas Nixon
30ba4d554c Revert "realtek: Fix failsafe mode"
This reverts commit b7ee0786b5.

With the previous commit "realtek: remove rtl83xx vlan 1 special cases"
this is no longer required.

Signed-off-by: Thomas Nixon <tom@tomn.co.uk>
2021-07-26 12:14:13 +08:00
Thomas Nixon
512f8d5514 realtek: remove rtl83xx vlan 1 special cases
On reset, the PVID of all ports is set to 1; if this is reset to 0,
the special cases for VLAN 1 are no longer required.

port_vlan_add is called with vid=0 when the DSA port interfaces are
enabled with no VLAN; previously the VLAN was not configured in this
case, relying on VLAN 1 being present, but with the PVID set to 0,
configuring VLAN 0 as normal works as expected.

Signed-off-by: Thomas Nixon <tom@tomn.co.uk>
2021-07-26 12:13:50 +08:00
Vladimir Markovets
6cc3934abb kernel: backport workaround for Realtek RTL8672 and RTL9601C chips
Adds support for GPON SFP modules based on the Realtek RTL8672 and
RTL9601C chips, including but not limited to:
* V-SOL V2801F
* C-Data FD511GX-RM0
* OPTON GP801R
* BAUDCOM BD-1234-SFM
* CPGOS03-0490 v2.0
* Ubiquiti U-Fiber Instant
* EXOT EGS1

Signed-off-by: Vladimir Markovets <abam_a@yahoo.com>
2021-07-26 12:13:23 +08:00
Damien Mascord
f1361fdd77 linux-firmware: add 2G and 5G precal binaries for QCA99X0
Some devices (such as Extreme Networks WS-AP3959i-ROW) do not contain
precal binaries in ART, and the precal in the cards eeprom causes
firmware load errors.

These firmware files were previously in linux-firmware,
so these are adding them back and renaming to be cleaner.

Signed-off-by: Damien Mascord <tusker@tusker.org>
2021-07-26 12:13:02 +08:00
Rui Salvaterra
f109e1329e kernel/generic: sort the 5.10 kconfig symbols
Sort the kernel configuration using scripts/kconfig.pl.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-26 12:09:54 +08:00
Rui Salvaterra
b54229fa9d kernel/generic: add a missing symbol to the 5.10 kconfig
Add CONFIG_HAVE_ARM_ARCH_TIMER (disabled). A make kernel_oldconfig on cortexa9
will otherwise prompt for its selection. The 5.4 configuration already contains
the same symbol.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-26 12:09:37 +08:00
John Audia
d62d866d1a kernel: bump 5.4 to 5.4.134
All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800

Signed-off-by: John Audia <graysky@archlinux.us>
2021-07-26 12:09:26 +08:00
John Audia
210ecbde93 kernel: bump 5.4 to 5.4.133
Manually rebased:
  pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch

All other patches automatically rebased.

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>
2021-07-26 12:09:15 +08:00
Rui Salvaterra
d0c2b83882 kernel: bump 5.10 to 5.10.52
Add the new CONFIG_BATTERY_RT5033 to the generic configuration, as reported by
Paul Blazejowski. Resort the kconfig while at it.

No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-26 12:09:04 +08:00
Rui Salvaterra
ab68a553e1 kernel/generic: fix the arm gc-sections patch
Latest binutils (2.37) exposed a long-standing bug. The kernel linking stage
would break at the SORTTAB step, due to the exception table having been
previously purged from vmlinux, as its section wasn't marked as unconditionally
kept. Fix thusly.

Additionally, the "#define ARM_MMU_DISCARD(x) KEEP(x)" change is bogus. It
would only apply to !CONFIG_MMU devices (which we don't support in OpenWrt), and
it would even break the build if referenced. Drop it.

While at it, rename the patch in order to make it obvious that it's
arm-specific.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
[Add same changes for kernel 5.4 too]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-07-26 12:08:38 +08:00
Felix Fietkau
64b2e22922 netifd: update to the latest version
85f01c44a950 bridge: check bridge port vlan membership on link-up events
17e453bd68b4 wireless: add back regular virtual interfaces on hotplug-add events as well

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-25 18:20:39 +08:00
Nick Hainke
760d9f9b28 mediatek: mt7623: import patch to fix spi
The patch fixes the fifo rx mode for the mt7623. It is already accepted
upstream for Linux Kernel 5.15.

To test the spi we can change the dts file to

&spi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi0_pins_a>;
	status = "okay";
	spidev: spidev@0 {
		compatible = "linux,spidev";
		spi-max-frequency = <1000000>;
		reg = <0>;
	};
};

Afterwards we should see a spidev device under /dev/.
To test it we can further use spidev-test.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-07-25 18:20:31 +08:00
Ansuel Smith
4794bc55d7 generic: fix mediatek and dsa not detecting mac-addr from nvmem
Nvmem require the device node to be registered with the of_platform.
Register the device node so that nvmem can correctly find the dev and
correctly load the mac-addr stored in the nvmem cell declared in the dts.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-24 12:08:21 +08:00
Stijn Tintel
b5158a0d54 kernel: add missing symbol to kmod-qlcnic
When the kmod-qlcnic package is built on targets that have
CONFIG_PCI_IOV enabled, the CONFIG_QLCNIC_SRIOV symbol is exposed.
Enable this symbol in the kmod package to fix its build.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-07-24 12:08:12 +08:00
Tianling Shen
22968f00c6 kernel/netfilter: drop outdated gargoyle modules
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-07-23 13:32:02 +08:00
Tianling Shen
27a69f4f11 iptables: drop useless imq patch
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-07-23 13:22:24 +08:00
AmadeusGhost
8553655c5f kernel/pending: refresh some patches
Fix: #421
2021-07-23 12:20:56 +08:00
AmadeusGhost
22c1d103a0 kernel: drop outdated module and refresh config 2021-07-23 12:19:29 +08:00
DENG Qingfang
d3daaa2f9c ramips: mt7621: remove bring up DSA master init script
With commit 2e17c71095, there is no need to bring up DSA master port
manually.

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
2021-07-23 12:01:54 +08:00
Paul Blazejowski
009d9a504c ath79: kernel: Add missing quote to drivers/mfd/Kconfig
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>
2021-07-23 12:00:25 +08:00
David Bauer
a93d178a8b generic: add mac-address property for NVMEM mac addresses
Traversing the device-tree by referencing a network device to determine
a devices labe-mac does not work with the generic nvmem implementation,
as the userspace expects the MAC-address to be available as a
device-tree property.

The legacy mtd-mac-address implementation did create such a node. Do the
same when using the nvmem implementation to allow reading the MAC
address.

Fixes commit d284e6ef0f ("treewide: convert mtd-mac-address-increment*
to generic implementation")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-22 12:04:27 +08:00
David Bauer
41e59c347a ramips: fix missing NVMEM subsystem
MAC address retrieval was switched to more generic upstream (5.13) NVMEM
based solution in commit 06bb4a5018 ("ramips: convert mtd-mac-address
to nvmem implementation") , but NVMEM subsystem wasn't enabled in the
kernel, so fix it now.

References: https://github.com/openwrt/openwrt/pull/4041#issuecomment-883322801
Fixes: 06bb4a5018 ("ramips: convert mtd-mac-address to nvmem implementation")
Signed-off-by: David Bauer <mail@david-bauer.net>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [commit message]
2021-07-22 12:04:05 +08:00
Petr Štetiar
7096d6f3de bmips: fix missing NVMEM subsystem
MAC address retrieval was switched to more generic upstream (5.13) NVMEM
based solution in commit 32adbfc789 ("bmips: convert mtd-mac-address
to nvmem implementation"), but NVMEM subsystem wasn't enabled in the
kernel, so fix it now.

References: https://github.com/openwrt/openwrt/pull/4041#issuecomment-883322801
Fixes: 32adbfc789 ("bmips: convert mtd-mac-address to nvmem implementation")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-07-22 12:03:53 +08:00
Daniel Golle
d08a673c49 mediatek: mt7623: yet another legacy image variable restored
Restore BOOTFS_BLOCKS variable until U7623 gets brushed, so things
hopefully build now.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-22 12:03:41 +08:00
Daniel Golle
6d3dc3e3ee mediatek: mt7623: allow build without ext4 rootfs
The image generation code for the U7623 board expects ext4 filesystem
to be selected in menuconfig and CONFIG_TARGET_ROOTFS_PARTSIZE to be
defined. Now that ext4 isn't enabled any more, the variable was missing
and broke the build.
Set the default (104) instead of using the config variable to fix that.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-22 12:03:31 +08:00
Daniel Golle
903245e532 mediatek: mt7623: add back needed build steps for U7623 board
When reworking the BPi-R2 the mtk-mmc-img build step was removed
despite it was still needed to build the image for the UniElec U7623
board. Add it back for now until U7623 gets its facelift.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-22 12:03:11 +08:00
Daniel Golle
15be0c5cae mediatek: remove ext4 images from mt7623 build
A full read-write rootfs cannot work inside uImage.FIT as the hash
will obviously change once writing to it. Disable generating ext4
rootfs images.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-22 12:02:58 +08:00
Rui Salvaterra
9af4d47299 linux/rockchip: update the USB 3.0 controller node patch
This has been added in Linux 5.10.51 [1], but it's broken/incomplete. Update our
patch and refresh the remaining patches.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.51&id=421aff50af5e4cdc56b3ac8d6b670e09697bc8ac

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-21 12:01:32 +08:00
Daniel Golle
cfef440b12 mediatek: fix typo in kernel mt7623/config-5.10
Fix typo reported by github user @mans0n.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-21 12:01:19 +08:00
Daniel Golle
82992a190f mediatek: drop kmod-mmc
Support for MMC is built-into the kernel anyway, no need to select the
(empty/stub) kmod package.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-21 12:01:06 +08:00
Daniel Golle
8a5b536252 uboot-mediatek: fix board name of Bananapi BPi-R2
As the board name was changed to be identical to the device tree
compatible string (just like for other boards), also reflect that
change for U-Boot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-21 12:00:44 +08:00
Daniel Golle
0da7ba33f9 mediatek: rework Bananapi BPi-R2
* introduce recovery (=initramfs) vs. production dual boot scheme
 * make use of uImage.FIT (instead of FAT partition)
 * generate images using build steps (instead of external scripts)
 * simplify sysupgrade and config restore (thanks to uImage.FIT)
 * make sure mmc devices are ordered persistently (set DT aliases)

This commit breaks sysupgrade from existing installations, you will
have to re-install using the sdcard.img.gz image.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-20 12:33:14 +08:00
Daniel Golle
c90e00bda9 uboot-envtools: add configuration for Bananapi BPi-R2
Add fw_env configuration for the BPi-R2 which is a mediatek/mt7623
devboard which can be booted from SD Card or eMMC.
Auto detect the boot device and add environment accordingly.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-20 12:33:03 +08:00
Daniel Golle
98110ab97c uboot-envtools: move mediatek to mediatek_mt7622
All mediatek boards having fw_env accessible through uboot-envtools
belong to be mt7622 subtarget. Move the file, as subtarget-specific
files are supported for a while now.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-20 12:32:50 +08:00
Daniel Golle
dae74e2576 uboot-mediatek: rework support for the BPi-R2
* use built-in default environment instead of file in bootfs
 * get rid of bootfs alltogether and use uImage.FIT
 * auto-detect boot device like original script did
 * add support for factory button

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-20 12:32:27 +08:00
Daniel Golle
a535ede088 kernel: make uImage.FIT partition parser work on MBR partitions
Introduce new partition type 0x2e representing uImage.FIT and trigger
FIT partition parser on partitions having that type.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-20 12:32:14 +08:00
Daniel Golle
e7a5e4fa42 mediatek: mt7623: import patch to fix flow offloading
Hardware flow offloading was reported to work when setting the right
version identifier. Import a patch from Frank Wunderlich doing that.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-20 12:32:02 +08:00
Daniel Golle
808bf426a9 mediatek: mt7623: build with Linux 5.10
Update Kernel config and set Linux 5.10 for mediatek/mt7623.
(patches have already been updated to 5.10 when mt7622 was bumped)
Tested on Bananapi BPi-R2.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-20 12:31:50 +08:00
Ansuel Smith
fe217db559 ath10k: fix compilation error with CONFIG_OF not available
of_platform_device_create require CONFIG_OF selected.
Add an ifdef and register to the of platform only if of is available.

Fixes: 985954ccbd ("kernel: add ath10k support for of_get_mac_address")
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:31:34 +08:00
Ansuel Smith
4fb3ce1636 bmips: convert mtd-mac-address to nvmem implementation
Define nvmem-cells and convert mtd-mac-address to nvmem implementation.
The conversion is done with an automated script.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:31:12 +08:00
Ansuel Smith
931bf0a5b4 ipq40xx: convert mtd-mac-address to nvmem implementation
Define nvmem-cells and convert mtd-mac-address to nvmem implementation.
The conversion is done with an automated script.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:30:59 +08:00
Ansuel Smith
bb97692fd8 mediatek: convert mtd-mac-address to nvmem implementation
Define nvmem-cells and convert mtd-mac-address to nvmem implementation.
The conversion is done with an automated script.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:30:45 +08:00
Ansuel Smith
e8bd6d4a0a mpc85xx: convert mtd-mac-address to nvmem implementation
Define nvmem-cells and convert mtd-mac-address to nvmem implementation.
The conversion is done with an automated script.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:30:32 +08:00
Ansuel Smith
9c556c2bd7 octeon: convert mtd-mac-address to nvmem implementation
Define nvmem-cells and convert mtd-mac-address to nvmem implementation.
The conversion is done with an automated script.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:30:18 +08:00
Ansuel Smith
bf455e2c51 ramips: convert mtd-mac-address to nvmem implementation
Define nvmem-cells and convert mtd-mac-address to nvmem implementation.
The conversion is done with an automated script.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:29:32 +08:00
Ansuel Smith
dadf02900a ath79: convert mtd-mac-address to nvmem implementation
Define nvmem-cells and convert mtd-mac-address to nvmem implementation.
The conversion is done with an automated script.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:27:22 +08:00
Ansuel Smith
f41bb13ede mvebu: convert mtd-mac-address to nvmem implementation
Define nvmem-cells and convert mtd-mac-address to nvmem implementation.
The conversion is done with an automated script.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:27:06 +08:00
Ansuel Smith
644f39d97f lantiq: convert mtd-mac-address to nvmem implementation
Define nvmem-cells and convert mtd-mac-address to nvmem implementation.
The conversion is done with an automated script.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:26:54 +08:00
Ansuel Smith
17cd378312 ipq806x: convert mtd-mac-address to nvmem implementation
Define nvmem-cells and convert mtd-mac-address to nvmem implementation.
The conversion is done with an automated script.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:26:34 +08:00
Ansuel Smith
5a3d0d85ee treewide: convert mtd-mac-address-increment* to generic implementation
Rework patch 681-NET-add-mtd-mac-address-support to implement
only the function to read the mac-address from mtd.
Generalize mtd-mac-address-increment function so it can be applied
to any source of of_get_mac_address.
Rename any mtd-mac-address-increment to mac-address-increment.
Rename any mtd-mac-address-increment-byte to mac-address-increment-byte.

This should make simplify the conversion of target to nvmem implementation.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:25:24 +08:00
Ansuel Smith
85988848cd kernel: add ath10k support for of_get_mac_address
ath10k doesn't currently support the standard function to get mac-address from the dts.
Add this for both ath10k and ath10k-ct

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-20 12:21:16 +08:00
Rui Salvaterra
ca5024d97b kernel: bump 5.10 to 5.10.51
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-20 12:21:00 +08:00
Yonghyu Ban
50c08d2207 scripts/mkits.sh: Fix the hash algorithm paramter
The mkits.sh script help message states hash algorithm can be
specified using the -H command-line option, but it does not work
currently due to a bug in the script.

This patch fixes this problem by changing the option from -S to
-H and specify getopts parameter after it

Signed-off-by: Yonghyu Ban <yonghyu@empo.im>
2021-07-19 12:12:26 +08:00
Edgar Su
495e092c5c x86: kernel: set NR_CPUS to 512
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>
2021-07-19 12:12:10 +08:00
David Bauer
6131392150 generic: add missing symbol
When compiling with all modules enabled, Kconfig complains about
CONFIG_I2C_DESIGNWARE_SLAVE being unset. Disable this symbol by default.

Fixes commit e9c9b5ec72 ("kernel: package Synopsys Designware PCI to I2C controller")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-18 12:10:22 +08:00
David Bauer
005a5405e0 ipq40xx: fix FRITZRepeater 1200 RGMII delay
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>
2021-07-18 12:10:11 +08:00
Rui Salvaterra
ec0ea5cda5 kernel: bump 5.10 to 5.10.50
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-18 12:09:10 +08:00
Rui Salvaterra
c4d23e31e4 kernel: bump 5.10 to 5.10.49
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-18 12:09:00 +08:00
Rui Salvaterra
420ab8963d kernel: bump 5.10 to 5.10.48
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-18 12:08:48 +08:00
Rui Salvaterra
97f7e04a7a kernel: bump 5.10 to 5.10.47
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-07-18 12:08:34 +08:00
John Audia
48d002bacd kernel: bump 5.4 to 5.4.132
Manually rebased:
  layerscape/patches-5.4/805-display-0002-drm-rockchip-prepare-common-code-for-cdns-and-rk-dpi.patch

All other patches automatically rebased.

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>
2021-07-18 12:08:24 +08:00
John Audia
2940ccb8e2 kernel: bump 5.4 to 5.4.131
All patches automatically rebased.

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>
2021-07-18 12:08:11 +08:00
John Audia
454320f981 kernel: bump 5.4 to 5.4.130
All patches automatically rebased.

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>
2021-07-18 12:07:58 +08:00
John Audia
2b21cf2fb5 kernel: bump 5.4 to 5.4.129
All patches automatically rebased.

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>
2021-07-18 12:07:40 +08:00
Tianling Shen
903061029d rockchip: drop armbian-firmware
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-07-17 18:54:48 +08:00
AmadeusGhost
a8e534d089 ap6256-firmware: renamed from armbian-firmware
However, the ap6256 chip does not seem to support the ap mode.
2021-07-17 18:09:15 +08:00
AmadeusGhost
a505196cb5 Revert "base-files: generate "device" UCI type section for bridge"
This reverts commit 0a4ff99091.
2021-07-17 18:08:17 +08:00
AmadeusGhost
83376b6f24 ramips: adjust default packages for some devices 2021-07-16 12:08:26 +08:00
Felix Fietkau
b89f37939c mt76: update to the latest version
bbebea7d6dc6 Revert "mt76: fix mt76_rates for the multiple devices"

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-16 12:01:10 +08:00
Felix Fietkau
1adffed5cb hostapd: add "force" parameter for channel switch
This will restart the interface in case the CSA fails and can be used to
force the device on a DFS channel (including full CAC)

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-15 18:09:29 +08:00
Felix Fietkau
7d728de5bf mt76: update to the latest version
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-15 12:28:06 +08:00
Felix Fietkau
1b6e8adee8 mac80211: backport SAR power limit support
Needed for an upcoming mt76 update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-15 12:27:15 +08:00
Felix Fietkau
6298ebdc01 mac80211: merge a 4-addr client mode fix
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-15 12:26:46 +08:00
Felix Fietkau
f7ab2ec9bb mac80211: merge the virtual time based airtime scheduler
Improves airtime fairness, especially for devices with larger firmware buffers

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-15 12:26:28 +08:00
Felix Fietkau
70aada4771 netifd: update to the latest version
7f24a063475e vlan: fix device vlan alias handling

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-15 12:26:09 +08:00
Marty Jones
4c4a812f82 linux-firmware: add new package r8152-firmware
Linux upstream commit 9370f2d05a
add load firmware file through request_firmware,this affect the
nanopi r2s and some USB adapters in kernel 5.10 with this error:
'r8152 4-1:1.0: unable to load firmware patch rtl_nic/rtl8153b-2.fw'
This patch split the USB NIC firmware files from r8169 firmware,
and adds r8152-firmware to r8152 driver.

Signed-off-by: Marty Jones <mj8263788@gmail.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-07-14 19:47:38 +08:00
Tianling Shen
1857f8d863 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-07-14 14:53:12 +08:00
Felix Fietkau
0787a2e55d netifd: update to the latest version
f12b073c0cc3 wireless: add some comments to functions
b0d090688302 bridge: fix setting pvid for updated vlans
ff3764ce28e0 device: move hotplug handling logic from system-linux.c to device.c
16bff892f415 ubus: add a dummy mode ubus call to simulate hotplug events
7f30b02013f2 examples: make dummy wireless vif names shorter
013a1171e9b0 device: do not treat devices with non-digit characters after . as vlan devices
f037b082923a wireless: handle WDS per-sta devices
db0fa24e1c17 bridge: fix enabling hotplug-added VLANs on the bridge port
4e92ea74273f bridge: bring up pre-existing vlans on hotplug as well
1f283c654aeb bridge: fix hotplug vlan overwrite on big-endian systems

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-13 18:36:09 +08:00
Felix Fietkau
61d062360b hostapd: fix uninitialized stack variable on CSA
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-13 12:05:59 +08:00
Felix Fietkau
1683163077 hostapd: initialize ht/vht/he mode on channel switch by default
Use the current mode, but allow overwriting via ubus command parameters

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-13 12:05:45 +08:00
Felix Fietkau
6fd39656ec hostapd: add support for enabling HE on channel switch
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-13 12:05:26 +08:00
Felix Fietkau
61413776d9 hostapd: make it possible to update station airtime weights via ubus
This allows dynamic tuning based on other runtime information

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-13 12:05:12 +08:00
Jo-Philipp Wich
aec7f8260f iwinfo: update to latest Git HEAD and move device info into -data package
a0a0e02 iwinfo: rename hardware.txt to devices.txt

Also split common devices.txt (former hardware.txt) into a common
libiwinfo-data package to allow different libiwinfo versions to
coexist without file clashes.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-07-12 12:06:57 +08:00
Daniel Golle
33791fdd82 uboot-mediatek: several fixes for MT7622
* ! Behavior change !

   Old behavior: If the Reset button is held down during power-on
   do factory reset and try booting recovery from TFTP forever.
   If valid recovery is received via TFTP, write it to flash and boot.

   New behavior: If the Reset button is held down during power-on
   do factory reset, then try TFTP *once*, then try booting on-flash
   recovery, then keep trying via TFTP forever until a valid image is
   received.
   Only if there is no bootable recovery stored on flash, store the
   downloaded recovery. Then boot it.

 * Set loadaddr to 0x48000000 in order to allow booting images larger
   than ~47MB (reported by Oskari Lemmelä). Setting loadaddr to
   0x48000000 gives us 384MB on devices with 512MB RAM, which should be
   more than enough as a maximum size for uImage.FIT to be loaded.

 * Widely unify device-specific default environment in preparation to
   auto-generate it from parameters.

 * backport upstream commit fixing MBR/DOS partitioning

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-07-12 12:05:40 +08:00
Roberto Valentini
7522b492e6 ath79: add support for TP-Link RE455 v1
TP-Link RE455 v1 is a dual band router/range-extender based on
Qualcomm/Atheros QCA9563 + QCA9880.

This device is nearly identical to RE450 v3

Specification:

- 775 MHz CPU
- 64 MB of RAM (DDR2)
- 8 MB of FLASH (SPI NOR)
- 3T3R 2.4 GHz
- 3T3R 5 GHz
- 1x 10/100/1000 Mbps Ethernet (AR8033 PHY)
- 7x LED, 4x button
- UART header on PCB[1]

Flash instruction:
Apply factory image in OEM firmware web-gui.

[1] Didn't work, probably need to short unpopulated resistor R64
    and R69 as RE450v3

Signed-off-by: Roberto Valentini <valantin89@gmail.com>
2021-07-12 12:05:08 +08:00
Adrian Schmutzler
221e6e4b8e ramips: fix Wifi MAC address setup for D-Link DIR-853 R1
Commands in 10_fix_wifi_mac were not properly concatenated, so
this was also triggered for the second phy without giving a
MAC address as argument.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-07-12 12:04:51 +08:00
Karim Dehouche
75a07d2de9 ramips: add support for D-Link DIR-853 A3
Specifications:
* SoC: MT7621AT
* RAM: 256MB
* Flash: 128MB NAND flash
* WiFi: MT7615DN (2.4GHz+5Ghz) with DBDC
* LAN: 5x1000M
* Firmware layout is Uboot with extra 96 bytes in header
* Base PCB is DIR-1360 REV1.0
* LEDs Power Blue+Orange,Wan Blue+Orange,WPS Blue,"2.4G"Blue, "5G" Blue,
  USB Blue
* Buttons Reset,WPS, Wifi

MAC addresses on OEM firmware:

lan      factory 0xe000   f4:*:*:a8:*:65  (label)
wan      factory 0xe006   f4:*:*:a8:*:68
2.4 GHz  [not on flash]   f6:*:*:c8:*:66
5.0 GHz  factory 0x4      f4:*:*:a8:*:66

The increment of the 4th byte for the 2.4g address appears to vary.
Reported cases:

       5g                 2.4g         increment
 f4:XX:XX:a8:XX:66  f6:XX:XX:c8:XX:66  +0x20
 x0:xx:xx:68:xx:xx  x2:xx:xx:48:xx:xx  -0x20
 x4:xx:xx:6a:xx:xx  x6:xx:xx:4a:xx:xx  -0x20

Since increment is inconsistent and there is no obvious pattern
in swapping bytes, and the 2.4g address has local bit set anyway,
it seems safer to use the LAN address with flipped byte here in
order to prevent collisions between OpenWrt devices and OEM devices
for this interface. This way we at least use an address as base
that is definitely owned by the device at hand.

Flashing instruction:

The Dlink "Emergency Room" cannot be accessed through the reset
button on this device. You can either use console or use the
encrypted factory image availble in the openwrt forum.

Once the encrypted image is flashed throuh the stock Dlink web
interface, the sysupgrade images can be used.

Header pins needs to be soldered near the WPS and Wifi buttons.

The layout for the pins is (VCC,RX,TX,GND). No need to connect the VCC.

the settings are:

Bps/Par/Bits          : 57600 8N1
Hardware Flow Control : No
Software Flow Control : No

Connect your client computer to LAN1 of the device
Set your client IP address manually to 192.168.0.101 / 255.255.255.0.
Call the recovery page or tftp for the device at http://192.168.0.1
Use the provided emergency web GUI to upload and flash a new firmware to
the device

At the time of adding support the wireless config needs to be set up by
editing the wireless config file:

 * Setting the country code is mandatory, otherwise the router loses
   connectivity at the next reboot. This is mandatory and can be done
   from luci. After setting the country code the router boots correctly.
   A reset with the reset button will fix the issue and the user has to
   reconfigure.

 * This is minor since the 5g interface does not come up online although
   it is not set as disabled. 2 options here:

   1- Either run the "wifi" command. Can be added from LUCI in system -
      startup - local startup and just add wifi above "exit 0".

   2- Or add the serialize option in the wireless config file as shown
      below. This one would work and bring both interfaces automatically
      at every boot:

      config wifi-device 'radio0'
          option serialize '1'

      config wifi-device 'radio1'
          option serialize '1'

Signed-off-by: Karim Dehouche <karimdplay@gmail.com>
[rebase, improve MAC table, update wireless config comment, fix
 2.4g macaddr setup]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-07-12 12:04:24 +08:00
Tee Hao Wei
ef7ce48d28 ramips: add support for Linksys EA8100 v2
Specifications:
- SoC: MT7621AT
- RAM: 256MB
- Flash: 128MB NAND
- Ethernet: 5 Gigabit ports
- WiFi: 2.4G/5G MT7615N
- USB: 1 USB 3.0, 1 USB 2.0

This device is very similar to the EA7300 v1/v2, EA7500 v2, and EA8100 v1.

Installation:

Upload the generated factory image through the factory web interface.

(following part taken from EA7300 v2 commit message:)

This might fail due to the A/B nature of this device. When flashing, OEM
firmware writes over the non-booted partition. If booted from 'A',
flashing over 'B' won't work. To get around this, you should flash the
OEM image over itself. This will then boot the router from 'B' and
allow you to flash OpenWRT without problems.

Reverting to factory firmware:

Hard-reset the router three times to force it to boot from 'B.' This is
where the stock firmware resides. To remove any traces of OpenWRT from
your router simply flash the OEM image at this point.

With thanks to Tom Wizetek (@wizetek) for testing.

Signed-off-by: Tee Hao Wei <angelsl@in04.sg>
2021-07-12 12:02:53 +08:00
Adrian Schmutzler
f9f464aa20 treewide: call check-size before append-metadata
sysupgrade metadata is not flashed to the device, so check-size
should be called _before_ adding metadata to the image.

While at it, do some obvious wrapping improvements.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Paul Spooren <mail@aparcar.org>
2021-07-11 12:13:31 +08:00
Dmitry Tunin
2018936b8c ipq40xx: increase SPI frequency for Zyxel NBG6617
The mx25l25635f supports clock speed up to 50Mhz.

Also remove obsolete "mx25l25635f" hack and rename
the matching device-tree flash node.

Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
[mention node rename as well. chip is very very likely
always the "f" revision for all NBG6617]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-07-11 12:09:04 +08:00
Adrian Schmutzler
4a910d2ecf ramips: mt7628an: remove redundant console setup for bootargs
This is already set in mt7628an.dtsi

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-07-11 12:08:38 +08:00
Stas Fiduchi
961d70fe07 ramips: add support for D-Link DIR-853-R1
This PR adds support for router D-Link DIR-853-R1

Specifications:

    SoC: MT7621AT
    RAM: 128MB
    Flash: 16MB SPI
    WiFi: MT7615DN (2.4GHz+5Ghz) with DBDC (This mode allows this
      single chip act as an 2x2 11n radio and an 2x2 11ac radio at the
      same time)
    LAN: 5x1000M
    LEDs Power Blue+Orange,Wan Blue+Orange,WPS Blue,"2.4G"Blue, "5G" Blue
    USB Blue
    Buttons Reset,WPS, Wifi

MAC addresses:

|Interface   |        MAC      |    Factory  |Comment
|------------|-----------------|-------------|----------------
|WAN sticker |C4:XX:XX:6E:XX:2A|             |Sticker
|LAN         |C4:XX:XX:6E:XX:2B|             |
|Wifi (5g)   |C4:XX:XX:6E:XX:2C|0x4          |
|Wifi (2.4g) |C6:XX:XX:7E:XX:2C|             |
|            |                 |             |
|            |C4:XX:XX:6E:XX:2E|0x8004 0xe000|
|            |C4:XX:XX:6E:XX:2F|0xe006       |

The increment of the 4th byte for the 2.4g address appears to vary.
Reported cases:

       5g                 2.4g         increment
 C4:XX:XX:6E:XX:2C  C6:XX:XX:7E:XX:2C  0x10
 f4:XX:XX:16:XX:32  f6:XX:XX:36:XX:32  0x20
 F4:XX:XX:A6:XX:E3  F6:XX:XX:B6:XX:E3  0x10

Since increment is inconsistent and there is no obvious pattern
in swapping bytes, and the 2.4g address has local bit set anyway,
it seems safer to use the LAN address with flipped byte here in
order to prevent collisions between OpenWrt devices and OEM devices
for this interface. This way we at least use an address as base
that is definitely owned by the device at hand.

Flashing instruction:

The Dlink "Emergency Room"

Connect your client computer to LAN1 of the device
Set your client IP address manually to 192.168.0.101 / 255.255.255.0.
Then, power down the router, press and hold the reset button, then
re-plug it. Keep the reset button pressed until the internet LED stops
flashing
Call the recovery page or tftp for the device at http://192.168.0.1
Use the provided emergency web GUI to upload and flash a new firmware to
the device.

Signed-off-by: Stas Fiduchi <fiduchi@protonmail.com>
[commit title/message improvements, use correct label MAC address,
 calculate MAC addresses based on 0x4, minor DTS style fixes, add
 uart2 to state_default, remove factory image, add 2.4g MAC address,
 use partition DTSI, add macaddr comment in DTS]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-07-11 12:08:13 +08:00
Koen Vandeputte
b8769bd456 ath79: add missing MTD_NAND_RB91X symbol
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>
2021-07-11 12:06:24 +08:00
AmadeusGhost
c8d39b45b0 ramips: sync official source code 2021-07-09 11:02:15 +08:00
Felix Fietkau
b0be4498e7 mediatek: prevent duplicate hardware flow offload entries
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-08 23:08:12 +08:00
Felix Fietkau
d5decf8b7a kernel: backport a few upstream flow offloading fixes
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-08 23:07:57 +08:00
Alexander Couzens
a6189a9b83 ramips: minew g1-c: add the old device name to the supported devices
Allow to use the sysupgrade image as factory image without
additional force.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-07-08 23:07:19 +08:00
David Bauer
fbcd5f7473 ath79: increase SPI frequency for OCEDO boards
The MX25L12805D used on all ath79 OCEDO boards supports clock
speeds up to 50 MHz.

Thus, we can increase the maximum SPI frequency the flash chip is
controlled at to 50 MHz, increasing transfer speed.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-08 23:06:57 +08:00
David Bauer
69e1123175 ath79: increase WS-AP3610 SPI frequency
The M25P80 used on the Siemens WS-AP3610 supports clock speeds up to 54
MHz. Thus, we can safely increase the maximum SPI frequency the flash
chip is controlled at to 50 MHz, increasing transfer speed.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-08 23:06:36 +08:00
AmadeusGhost
101db26c48 sunxi: orangepi-3: enable usb3 support 2021-07-06 23:18:25 +08:00
AmadeusGhost
035dca5f0b sunxi: backport phy driver for USB3 on H6 2021-07-06 23:16:21 +08:00
David Bauer
ce99717ec0 hostapd: add HE flag to get_clients
Expose the hostapd HE flag via ubus to indicate HE capable devices.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-06 23:08:04 +08:00
Martin Weinelt
9c09cdb72f hostapd: remove unused mac_buff allocation
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
2021-07-06 23:07:41 +08:00
Martin Weinelt
b22612f9c6 hostapd: report bssid, ssid and channel over ubus
Imports a function from iw to convert frequencies to channel numbers.

Co-authored-by: David Bauer <mail@david-bauer.net>
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
[fix potential out of bounds read]
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-06 23:07:21 +08:00
AmadeusGhost
33fd32d997 kernel 5.4: refresh config after sunxi-ir was enabled 2021-07-06 00:08:49 +08:00
AmadeusGhost
0c678cfe87 sunxi: orangepi-3: backport IR receiver support 2021-07-06 00:06:45 +08:00
AmadeusGhost
5db9c41d22 sunxi: h6: enable gpu supply by default
The corresponding driver will be added later, and this seems very
complicated for me.
2021-07-06 00:03:49 +08:00
AmadeusGhost
b5a37a30b9 sunxi: orangepi-3: use real status led to show status 2021-07-06 00:02:42 +08:00
AmadeusGhost
659cbb7743 sunxi: orangepi-3: avoid random lan port mac address 2021-07-05 23:58:41 +08:00
AmadeusGhost
38933ade14 uboot-sunxi: orangepi-3: simplified patches 2021-07-05 23:56:55 +08:00
AmadeusGhost
e416e1f5e9 Revert "sunxi: disable RTC on h3/h5"
This reverts commit 7686e88d07.
2021-07-05 23:54:38 +08:00
Alexander Couzens
4633f51f5d ramips: add support for minew g1-c
The minew g1-c is a smart home gateway / BLE gateway.
A Nordic nRF52832 is available via USB UART (cp210x) to support BLE.
The LED ring is a ring of 24x ws2812b connect to a generic GPIO (unsupported).
There is a small LED which is only visible when the device is open which
will be used as LED until the ws2812b is supported.
The board has also a micro sdcard/tfcard slot (untested).
The Nordic nRF52832 exposes SWD over a 5pin header (GND, VCC, SWD, SWC, RST).
The vendor uses an older OpenWrt version, sysupgrade can be used via
serial or ssh.

CPU:		MT7628AN / 580MHz
RAM:		DDR2 128 MiB RAM
Flash:		SPI NOR 16 MiB W25Q128
Ethernet:	1x 100 mbit (Port 0) (PoE in)
USB:		USB hub, 2x external, 1x internal to USB UART
Power:		via micro usb or PoE 802.11af
UART:		3.3V, 115200 8n1

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-07-05 23:44:51 +08:00
Petr Štetiar
952a040e11 ath79: base-files: fix broken network config
Fix bash syntax error introduced in commit cce2e8db56 ("ath79: add
support for TP-Link TL-WR941HP v1") which resulted in broken default
network configuration.

 In target/linux/ath79/generic/base-files/etc/board.d/02_network line 402:
	tplink,tl-wr842n-v2)\
        ^-- SC1073: Couldn't parse this case item. Fix to allow more checks.

References: https://gitlab.com/ynezz/openwrt-device-runtime-testing/-/jobs/1398837698/artifacts/file/cram-result-archer-c7-v5-initramfs.txt
Fixes: cce2e8db56 ("ath79: add support for TP-Link TL-WR941HP v1")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-07-05 23:44:25 +08:00
Evgeniy Isaev
d8731069fb ath79: add support for Xiaomi AIoT Router AC2350
Device specifications
* SoC: QCA9563 @ 775MHz (MIPS 74Kc)
* RAM: 128MiB DDR2
* Flash: 16MiB SPI-NOR (EN25QH128)
* Wireless 2.4GHz (SoC): b/g/n, 3x3
* Wireless 5Ghz (QCA9988): a/n/ac, 4x4 MU-MIMO
* IoT Wireless 2.4GHz (QCA6006): currently unusable
* Ethernet (AR8327): 3 LAN × 1GbE, 1 WAN × 1GbE
* LEDs: Internet (blue/orange), System (blue/orange)
* Buttons: Reset
* UART: through-hole on PCB ([VCC 3.3v](RX)(GND)(TX) 115200, 8n1)
* Power: 12VDC, 1,5A

MAC addresses map (like in OEM firmware)
  art@0x0     88:C3:97:*:57  wan/label
  art@0x1002  88:C3:97:*:2D  lan/wlan2g
  art@0x5006  88:C3:97:*:2C  wlan5g

Obtain SSH Access
1. Download and flash the firmware version 1.3.8 (China).
2. Login to the router web interface and get the value of `stok=` from the
   URL
3. Open a new tab and go to the following URL (replace <STOK> with the stok
   value gained above; line breaks are only for easier handling, please put
   together all four lines into a single URL without any spaces):
     http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev
       ?bssid=any&user_id=any&ssid=-h%0Anvram%20set%20ssh_en%3D1%0Anvram%20commit
       %0Ased%20-i%20%27s%2Fchannel%3D.%2A%2Fchannel%3D%5C%5C%22debug%5C%5C%22%2F
       g%27%20%2Fetc%2Finit.d%2Fdropbear%0A%2Fetc%2Finit.d%2Fdropbear%20start%0A
4. Wait 30-60 seconds (this is the time required to generate keys for the
   SSH server on the router).

Create Full Backup
1. Obtain SSH Access.
2. Create backup of all flash (on router):
    dd if=/dev/mtd0 of=/tmp/ALL.backup
3. Copy backup to PC (on PC):
    scp root@192.168.31.1:/tmp/ALL.backup ./
Tip: backup of the original firmware, taken three times, increases the
chances of recovery :)

Calculate The Password
* Locally using shell (replace "12345/E0QM98765" with your router's serial
  number):
  On Linux
    printf "%s6d2df50a-250f-4a30-a5e6-d44fb0960aa0" "12345/E0QM98765" | \
    md5sum - | head -c8 && echo
  On macOS
    printf "%s6d2df50a-250f-4a30-a5e6-d44fb0960aa0" "12345/E0QM98765" | \
    md5 | head -c8
* Locally using python script (replace "12345/E0QM98765" with your
  router's serial number):
    wget https://raw.githubusercontent.com/eisaev/ax3600-files/master/scripts/calc_passwd.py
    python3.7 -c 'from calc_passwd import calc_passwd; print(calc_passwd("12345/E0QM98765"))'
* Online
    https://www.oxygen7.cn/miwifi/

Debricking (lite)
If you have a healthy bootloader, you can use recovery via TFTP using
programs like TinyPXE on Windows or dnsmasq on Linux. To switch the router
to TFTP recovery mode, hold down the reset button, connect the power
supply, and release the button after about 10 seconds. The router must be
connected directly to the PC via the LAN port.

Debricking
You will need a full dump of your flash, a CH341 programmer, and a clip
for in-circuit programming.

Install OpenWRT
1. Obtain SSH Access.
2. Create script (on router):
    echo '#!/bin/sh' > /tmp/flash_fw.sh
    echo >> /tmp/flash_fw.sh
    echo '. /bin/boardupgrade.sh' >> /tmp/flash_fw.sh
    echo >> /tmp/flash_fw.sh
    echo 'board_prepare_upgrade' >> /tmp/flash_fw.sh
    echo 'mtd erase rootfs_data' >> /tmp/flash_fw.sh
    echo 'mtd write /tmp/openwrt.bin firmware' >> /tmp/flash_fw.sh
    echo 'sleep 3' >> /tmp/flash_fw.sh
    echo 'reboot' >> /tmp/flash_fw.sh
    echo >> /tmp/flash_fw.sh
    chmod +x /tmp/flash_fw.sh
3. Copy `openwrt-ath79-generic-xiaomi_aiot-ac2350-squashfs-sysupgrade.bin`
   to the router (on PC):
    scp openwrt-ath79-generic-xiaomi_aiot-ac2350-squashfs-sysupgrade.bin \
    root@192.168.31.1:/tmp/openwrt.bin
4. Flash OpenWRT (on router):
    /bin/ash /tmp/flash_fw.sh &
5. SSH connection will be interrupted - this is normal.
6. Wait for the indicator to turn blue.

Signed-off-by: Evgeniy Isaev <isaev.evgeniy@gmail.com>
[improve commit message formatting slightly]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-07-05 23:44:03 +08:00
Diogenes Rengo
eb0a10f528 ath79: add support for TP-Link TL-WR941HP v1
Specifications:
    SOC:        Qualcomm Atheros TP9343 (750 MHz)
    Flash:      8 Mb (GigaDevice GD25Q64CSIG)
    RAM:        64 Mb (Zentel A3R12E40DBF-8E)
    Serial:     yes, 4-pin header
    Wlan:       Qualcomm Atheros TP9343, antenna: MIM0 3x3:3 RP-SMA
                3 x 2.4GHz power amp module Skyworks (SiGe) SE2576L
    Ethernet:   Qualcomm Atheros TP9343
    Lan speed:  100M ports: 4
    Lan speed:  100M ports: 1
    Other info: same case, ram and flash that TP-Link TL-WR841HP,
                different SOC

    https://forum.openwrt.org/t/adding-device-support-tp-link-wr941hp/

Label MAC addresses based on vendor firmware:
    LAN   *:ee  label
    WAN   *:ef  label +1
    WLAN  *:ee  label

    The label MAC address found in "config" partition at 0x8

Flash instruction:
    Upload the generated factory firmware on web interface.

Signed-off-by: Diogenes Rengo <rengocbx250@gmail.com>
[remove various whitespace issues, squash commits, use short 0x0]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-07-05 23:42:05 +08:00
Russell Senior
5b5c8d9d3c ath79: add support for Ubiquiti PowerBeam M (XW)
This patch adds support for the Ubiquiti PowerBeam M (XW), e.g. PBE-M5-400,
a 802.11n wireless with a feed+dish form factor. This device was previously
supported by the ar71xx loco-m-xw firmware.

Specifications:
 - Atheros AR9342 SoC
 - 64 MB RAM
 - 8 MB SPI flash
 - 1x 10/100 Mbps Ethernet port, 24 Vdc PoE-in
 - Power and LAN green LEDs
 - 4x RSSI LEDs (red, orange, green, green)
 - UART (115200 8N1)

Flashing via stock GUI:
 - Downgrade to AirOS v5.5.x (latest available is 5.5.10-u2) first (see
   https://openwrt.org/toh/ubiquiti/powerbeam installation instructions)
 - Upload the factory image via AirOS web GUI.

Flashing via TFTP:
 - Use a pointy tool (e.g., unbent paperclip) to keep the
   reset button pressed.
 - Power on the device (keep reset button pressed).
 - Keep pressing until LEDs flash alternatively LED1+LED3 =>
   LED2+LED4 => LED1+LED3, etc.
 - Release reset button.
 - The device starts a TFTP server at 192.168.1.20.
 - Set a static IP on the computer (e.g., 192.168.1.21/24).
 - Upload via tftp the factory image:
    $ tftp 192.168.1.20
    tftp> bin
    tftp> trace
    tftp> put openwrt-ath79-generic-xxxxx-ubnt_powerbeam-m-xw-squashfs-factory.bin

WARNING: so far, no non-destructive method has been discovered for
opening the enclosure to reach the serial console. Internal photos
are available here: https://fcc.io/SWX-NBM5HP

Signed-off-by: Russell Senior <russell@personaltelco.net>
2021-07-05 23:41:42 +08:00
Jo-Philipp Wich
c73d2864aa iwinfo: build with nl80211 backend only and make shared
Drop support for building the obsolete broadcom-wl backend and always
forcibly enable the nl82011 support. This allows us to make the package
shared again since no target specific compilation is happening anymore.

This will solve various repository coherency issues related to unavailable
libiwinfo versions in the long run.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-07-03 17:24:00 +08:00
David Bauer
db203f83a3 ath79: resolve GPIO address conflicts
The ar71xx GPIO driver only uses 0x24 registers, all following GPIO
registers are using to control pinmux functions, which are not handles
by the GPIO driver but the generic Linux pinctrl driver.

For some SoC conflicting address ranges were defined for these (AR7240 &
AR9330).

Resolve these cases and align the address space of the GPIO controller
between all SoCs, as the used address space of the driver is identical
for all these.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-02 23:39:07 +08:00
AmadeusGhost
9286772e83 Merge Mainline 2021-07-01 23:28:03 +08:00
Hauke Mehrtens
7c561c4a8a ltq-deu: Mark lantiq DEU broken
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: 53b6783907 ("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>
2021-07-01 23:18:46 +08:00
Koen Vandeputte
838437fb59 ath79: mikrotik: fix beeper phantom noise on RB912
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>
2021-07-01 23:18:29 +08:00
David Bauer
d5fa15a099 ath79: add support for Teltonika RUT230 v1
This commit adds support for the Teltonika RUT230 v1, a Atheros AR9331
based router with a Quectel UC20 UMTS modem.

Hardware
--------
Atheros AR9331
16 MB SPI-NOR XTX XT25F128B
64M DDR2 memory
Atheros AR9331 1T1R 802.11bgn Wireless
Boootloader: pepe2k U-Boot mod

Hardware-Revision
-----------------
There are two board revisions of the RUT230, a v0 and v1.

A HW version is silkscreened on the top of the PCBs front side as well
as shown in the Teltonika UI. However, this looks to be a different
identifier, as the GPl dump shows this silkscreened / UI shown version
are internally treated identically.

Th following mapping has been obtained from the latest GPl dump.

HW Ver   01 - 04 --> v0
HW Ver > 05      --> v1

My board was a HW Ver 09 and is treated as a v1.

Installation
------------
While attaching power, hold down the reset button and release it after
the signal LEDs flashed 3 times.

Attach your Computer with the devices LAN port and assign yourself the
IPv4 address 192.168.1.10/24. Open a web browser, navigate to
192.168.1.1. Upload the OpenWrt factory image.

The device will install OpenWrt and automatically reboots afterwards.

You can use the smae procedure with the stock firmware to return back to
the vendor firmware.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-01 23:18:00 +08:00
Ansuel Smith
57b20da275 ipq806x: fix dedicated cpufreq driver
2 small fix for the dedicated cpufreq driver:
- Fix index wrongly used as the current cpu
- Exit early if a bad freq is detected. In the current state the freq
is applied anyway even with invalid state.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-01 23:17:00 +08:00
Ansuel Smith
080127d948 ipq806x: fix missing 1.4ghz cache freq for ipq8065 SoC
With the new implementation of the dedicated cpufreq driver,
the 1.4 Ghz was only dropped and not added to the ipq8065 SoC.
Fix this to improve performance.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-01 23:16:39 +08:00
Ansuel Smith
ba7aa42fc1 ipq806x: fix missing changes in 5.4 for new cpufreq implementation
The new cpufreq dedicated driver changed the node structure
on how the cache should be defined in the dts. The 5.4 dtsi addition
patch has not been updated to follow the new implementation.
Fix this to restore correct cache scaling and restore any performance
regression.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-07-01 23:16:19 +08:00
Felix Fietkau
8689d8ffab mac80211: backport fix for nl80211 control port tx (fixes FS#3857)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-07-01 23:15:48 +08:00
Felix Fietkau
31ab3b6a41 mac80211: fix a regression in starting aggregation sessions on mesh interfaces
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-29 23:53:51 +08:00
Bob Cantor
bd41e9fcd8 base-files: wifi: tidy up the reconf code
commit 5edbd390d321532d9a697d6895a1a7c71c40bd5d rearranged the
"wifi up" code.

This commit tidies up the "wifi reconf" code so as to
keep it aligned with the "wifi up" code.

branches affected: trunk, 21.02

Signed-off-by: Bob Cantor <coxede6557@w3boats.com>
2021-06-29 23:53:27 +08:00
Bob Cantor
cc574ef05e base-files: wifi: swap the order of some ubus calls
"/sbin/wifi up" makes three ubus calls:
1. ubus call network reload
2. ubus call network.wireless down
3. ubus call network.wireless up

The first and third ubus calls call drv_mac80211_setup,
while the second ubus call triggers wireless_device_setup_cancel,
so the call sequence becomes,

1. drv_mac80211_setup
2. wireless_device_setup_cancel
3. drv_mac80211_setup

This commit swaps the order of the first two ubus calls,
1. ubus call network.wireless down
2. ubus call network reload
3. ubus call network.wireless up

Consequently drv_mac80211_setup is only called once,
and two related bugs (#FS3784 and #FS3902) are no longer triggered
by /sbin/wifi.

branches affected: trunk, 21.02

Signed-off-by: Bob Cantor <coxede6557@w3boats.com>
2021-06-29 23:53:06 +08:00
Bob Cantor
1b62ad2037 mac80211: print an error if wifi teardown fails
drv_mac80211_teardown fails silently if the device to be torn down is
not defined.  This commit prints an error message.

branches affected: trunk, 21.02

Signed-off-by: Bob Cantor <coxede6557@w3boats.com>
2021-06-29 23:52:33 +08:00
Bob Cantor
639de224bd mac80211: always call wireless_set_data (FS#3784)
When wifi is turned off, drv_mac80211_teardown sometimes fails (silently)
because the device to be torn down is not defined.

This situation arises if drv_mac80211_setup was called twice when
wifi was turned on.

This commit ensures that the device to be torn down is always defined
in drv_mac80211_teardown.

Steps to reproduce:

1) Use /sbin/wifi to turn on wifi.
   uci set wireless.@wifi-iface[0].disabled=0
   uci set wireless.@wifi-device[0].disabled=0
   uci commit
   wifi

2) Use /sbin/wifi to turn off wifi.
   uci set wireless.@wifi-device[0].disabled=1
   uci commit
   wifi

3) Observe that wifi is still up.

branches affected: trunk, 21.02

Signed-off-by: Bob Cantor <coxede6557@w3boats.com>
2021-06-29 23:52:12 +08:00
Bob Cantor
5f9a9e1906 mac80211: fix no_reload logic (FS#3902)
If drv_mac80211_setup is called twice with the same wifi configuration,
then the second call returns early with error HOSTAPD_START_FAILED.
(wifi works nevertheless, despite the fact that setup is incomplete.  But
"ubus call network.wireless status" erroneously reports that radio0 is down.)

The relevant part of drv_mac80211_setup is,

if [ "$no_reload" != "0" ]; then
        add_ap=1
        ubus wait_for hostapd
        local hostapd_res="$(ubus call hostapd config_add "{\"iface\":\"$primary_ap\", \"config\":\"${hostapd_conf_file}\"}")"
        ret="$?"
        [ "$ret" != 0 -o -z "$hostapd_res" ] && {
                wireless_setup_failed HOSTAPD_START_FAILED
                return
        }
        wireless_add_process "$(jsonfilter -s "$hostapd_res" -l 1 -e @.pid)" "/usr/sbin/hostapd" 1 1
fi

This commit sets no_reload = 0 during the second call of drv_mac80211_setup.

It is perhaps worth providing a way to reproduce the situation
where drv_mac80211_setup is called twice.

When /sbin/wifi is used to turn on wifi,
   uci set wireless.@wifi-iface[0].disabled=0
   uci set wireless.@wifi-device[0].disabled=0
   uci commit
   wifi

/sbin/wifi makes the following ubus calls,
   ubus call network reload
   ubus call network.wireless down
   ubus call network.wireless up

The first and third ubus calls both call drv_mac80211_setup,
while the second ubus call triggers wireless_device_setup_cancel.
So the call sequence becomes,

   drv_mac80211_setup
   wireless_device_setup_cancel
   drv_mac80211_setup

In contrast, when LuCI is used to turn on wifi only a single call
is made to drv_mac80211_setup.

branches affected: trunk, 21.02

Signed-off-by: Bob Cantor <coxede6557@w3boats.com>
2021-06-29 23:51:39 +08:00
Felix Fietkau
46f339c091 iwinfo: update to the latest version
c9b1672f5a83 nl80211: fix path compatibility issue

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-29 23:51:17 +08:00
Koen Vandeputte
897f7c8c37 ath79: mikrotik: remove rb912 gpio-beeper module dependency
The beeper is currently not fully functional and has also
been removed from DTS.

Also remove the dependency for the gpio-beeper module.

Fixes: 695a1cd53c ("ath79: add support for MikroTik RouterBOARD 912UAG-2HPnD")
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2021-06-28 23:16:37 +08:00
John Audia
c07646d545 ipq806x: refresh config for kernel 5.4
* With kernel 5.4.128, ran: make kernel_menuconfig CONFIG_TARGET=generic
* Manually added back CONFIG_LEDS_TRIGGER_DISK=y so as not to revert
  f93fcf8923 ("ipq806x: enable disk-activity LED trigger")

Signed-off-by: John Audia <graysky@archlinux.us>
[minor commit title/message adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-28 23:16:17 +08:00
David Bauer
27a673f187 ramips: add support for Tenbay T-MB5EU-V01
Hardware
--------
MediaTek MT7621 SoC
256M DDR3
16MB BoHong SPI-NOR
MediaTek MT7905+7975 2x2T2R DBDC bgnax / acax
RGB LED
WPS + RESET Button
UART on compute module (silkscreened / 115200n8)

The router itself is just a board with Power / USB / RJ-45 connectors
and DC/DC converters. The SoC and WiFi components are on a
daughterboard which connect using two M.2 connectors.

The compute module has the model number "T-CB1800K-DM2 V02" printed on
it. The main baord has "T-MB5EU V01" printed on it. This information
might be useful, as it's highly likely either of these two will be
reused in similar designs.

The router itself is sold as Tenbay T-MB5EU directly from the OEM as
well as "KuWFI AX1800 Smart WiFi 6 Eouter" on Amazon.de for ~50€ in a
slightly different case.

Installation
------------

A Tool for creating a factory image for the Vendor Web Interface can be
found here: https://github.com/blocktrron/t-mb5eu-v01-factory-creator/

As the OEM Firmware is just a modified LEDE 17.01, you can also access
failsafe mode via UART while the OS boots, by connecting to UART
and pressing "f" when prompted. The Router is reachable at
192.168.1.1 via root without password.

Transfer the OpenWrt sysupgrade image via scp and apply with sysupgrade
using the -n and -F flags.

Alternatively, the board can be flashed by attaching to the UART
console, interrupting the boot process by keeping "0" pressed while
attaching power.

Serve the OpenWrt initramfs using a TFTP server with address
192.168.1.66. Rename the initramfs to ax1800.bin.

Attach your TFTP server to one of the LAN ports. Execute the following
commands.

 $ setenv ipaddr 192.168.1.67
 $ setenv serverip 192.168.1.66
 $ tftpboot 0x84000000 ax1800.bin
 $ bootm

Wait for the device to boot. Then transfer the OpenWrt sysupgrade image
to the device using SCP and apply sysupgrade.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-28 23:15:27 +08:00
David Bauer
fda3cbbd67 ramips: add AW9523 I2C GPIO expander driver
This adds a driver for the AW9523 I2C GPIO expander.

This driver is required to make LEDs as well as buttons on the Tenbay
T-MB5EU-V01 work.

This driver already had several upstream iterations. I'm working to
push this driver to mainline.

Ref: https://patchwork.ozlabs.org/project/linux-gpio/list/?series=226287

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-28 23:13:10 +08:00
Tianling Shen
45ae20d043 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-28 02:30:23 +08:00
AmadeusGhost
f97f7484d9 ramips: mt7621: build error fixes
Ref: 9e146f3 ("ramips: reorganize DTSI files for D-Link DIR-8xx")
Reported-by: EnnawYang
Fixes: #414
2021-06-28 00:16:55 +08:00
Chen Minqiang
49de9f1ed7 ramips: add back RST_CTRL_MCM for mt7621
Also update the reset_fe() proto
2021-06-27 23:12:33 +08:00
David Bauer
914d6d864b ramips: fix AR8033 fiber operation
It was reported AR8033 did not work in fiber operation mode on the ER-X.

While the earlier attempt of fixing this mitigated the issue of 1000
Base-X link mode not being supported, it also switched to the copper
page, breaking fiber operation altogether.

Extend the hack adding fiber operation so it does not switch to the
copper page. Also remove the part where the supported link mode bit for
1000 Base-X is removed, as this is required for fiber operation.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-27 23:12:01 +08:00
David Bauer
0ad30a057e generic: at803x: mask 1000 Base-X link mode
AR8031/AR8033 have different status registers for copper
and fiber operation. However, the extended status register
is the same for both operation modes.

As a result of that, ESTATUS_1000_XFULL is set to 1 even when
operating in copper TP mode.

Remove this mode from the supported link modes, as this driver
currently only supports copper operation.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-27 23:11:33 +08:00
Martin Blumenstingl
4a3ea7c34f lantiq: xrx200: switch the subtarget to the mainline DSA driver
Enable the XRX200 PMAC, GSWIP DSA tag and GSIP DSA drivers in the 5.4
kernel config. Update the existing vr9_*.dts{,i} to use the new
Ethernet and switch drivers. Drop the swconfig package from the xrx200
target because swconfig doesn't manage DSA based switches.

The new /etc/config/network format for the DSA driver is not compatible
with the old (swconfig) based one. Show a message during sysupgrade
notifying users about this change and asking them to start with a fresh
config (or forcefully update and then migrate the config manually).

Failsafe mode can now automatically bring up the first lan interface
based on board.json including DSA based setups. Drop
05_set_preinit_iface_lantiq from the xRX200 sub-target as this is not
needed anymore. For now we are keeping it for the ase, xway and
xway_legacy until there's some confirmation that it can be dropped from
there as well.

While here, some boards also receive minor fixups:
- Use LAN1 as LAN1 (according to a photo this port can also be
  configured as WAN) on the Buffalo WBMR-300HPD. This makes it easier to
  read the port mapping because otherwise we would have LAN{2,3,4} and
  WAN (which was the case for the non-DSA version previously).
- vr9_avm_fritz3390.dts: move the "gpio" comment from port 0 and 1 to
  their corresponding PHYs
- vr9_tplink_vr200.dtsi: move the "gpio" comment from port 0 to PHY 0
- vr9_tplink_tdw89x0.dtsi: move the "gpio" comment from port 0 to PHY 0

Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
Tested-by: Notupus <notpp46@googlemail.com> # TD-W9980/DM200/FRITZ 7430
Tested-by: Martin Schiller <ms@dev.tdt.de> # tested on TDT VR2020
Tested-by: Martin Schiller <ms@dev.tdt.de> # tested on TP-Link TD-W8980B
Tested-by: Martin Schiller <ms@dev.tdt.de> # tested on ZyXEL P-2812HNU-F1
Tested-by: Daniel Kestrel <kestrel1974@t-online.de> # tested on Fritzbox 7490
Tested-by: Daniel Kestrel <kestrel1974@t-online.de> # tested on Fritzbox 3490
Tested-by: @jospezial <jospezial@gmx.de> # tested on VGV7510KW22 (o2 Box 6431)
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2021-06-26 23:49:52 +08:00
John Audia
bb7d9f8a11 kernel: bump 5.4 to 5.4.128
Removed upstreamed:
  mvebu/patches-5.4/002-PCI-aardvark-Don-t-rely-on-jiffies-while-holding-spi.patch

All other patches automatically rebased.

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>
2021-06-26 23:46:31 +08:00
John Audia
573b6ebeab kernel: bump 5.4 to 5.4.127
All patches automatically rebased.

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>
2021-06-26 23:46:11 +08:00
John Audia
a3b559c7a5 kernel: bump 5.4 to 5.4.126
Manually rebased:
  bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch

All other patches automatically rebased.

Signed-off-by: John Audia <graysky@archlinux.us>
2021-06-26 23:45:53 +08:00
John Audia
3db586df1b kernel: bump 5.4 to 5.4.125
All patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800

Signed-off-by: John Audia <graysky@archlinux.us>
2021-06-26 23:45:15 +08:00
Rui Salvaterra
cb5829fac3 kernel: bump 5.10 to 5.10.46
Add the new symbol to the generic kconfig.

No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-06-26 23:45:08 +08:00
Tianling Shen
7e984cf5b0 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-26 16:49:16 +08:00
Alexander Couzens
8592734ebd ramips: ethernet: ralink: rewrite esw_rt3050 to support link states
Ensure the esw is initialized before the ethernet device is sending
packets. Further implement carrier detection similar to mt7620.
If any port has a link, the ethernet device will detect a carrier.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-06-25 23:43:48 +08:00
Alexander Couzens
72b24625dc ramips: ethernet: ralink: allow to return EPROBE_DEFER on switch_init
For rt3050 the switch needs to be initialized before the ethernet start sending
packets. Allow switch_init to return -EPROBE_DEFER.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-06-25 23:43:30 +08:00
Alexander Couzens
79586de495 ramips: ethernet: ralink: move reset of the esw into the esw instead of fe
The esw reset should only done by the esw driver and not by the fe itself.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-06-25 23:43:08 +08:00
Alexander Couzens
7a4c0c62b7 ramips: ethernet: ralink: use the reset controller api for esw & ephy
Instead of writing direct into the reset registers.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-06-25 23:42:47 +08:00
Alexander Couzens
90d87c6928 ramips: ethernet: ralink: add fe_reset_fe() to reset fe via reset controller
The dts defines the reset fe for all architectures. However
the soc code used direct register access of the reset controller.
Replace the custom soc reset with a generic fe_reset_fe().

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-06-25 23:42:24 +08:00
Alexander Couzens
6baeb46313 ramips: ethernet: ralink: add struct fe_priv as context to fe_reset()
The fe_reset function direct access the reset controller instead
using the reset controller api. In preparation to use the
reset controller.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-06-25 23:41:41 +08:00
Felix Fietkau
15e2b1668c hostapd: add support for providing vendor specific IE elements
They can be added as hex digit strings via the 'vendor_elements' option

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-24 23:10:20 +08:00
Raphaël Mélotte
fdd3f3278f hostapd: add default_disabled option to the supplicant
With the default configuration we generate, the supplicant starts
scanning and tries to connect to any open network when the interface
is enabled.

In some cases it can be desirable to prevent the supplicant from
scanning by itself. For example, if on the same radio an AP is
configured and an unconfigured STA is added (to be configured with
WPS), the AP might not be able to beacon until the STA stops
scanning.

In such a case, the STA configuration can still be required to set
specific settings (e.g. multi_ap_backhaul_sta) so it can't be set to
"disabled" in uci (because that would prevent the supplicant from
being run at all). The alternative is to add the "disabled" parameter
to the default network block in the supplicant configuration.

This patch adds a "default_disabled" setting in UCI which, when set,
adds the "disabled" parameter to the supplicant default network block.

Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
2021-06-24 23:09:52 +08:00
Tianling Shen
2bc2dfccc5 brcmfmac4366c0-firmware-vendor: move to firmware
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-24 17:23:46 +08:00
Liu Yu
11f1ed8293 ramips: fix software reboot failure on HILINK HLK-7628N
In the new kernel version 5.X,reboot will fail.

When SOC is reset, flash has not exited the 4-byte address mode,
which causes the operation mode mismatch of flash during boot.Add
broken-flash-reset to make flash exit 4-byte address mode before
SOC reset

Signed-off-by: Liu Yu <f78fk@live.com>
2021-06-23 23:29:27 +08:00
Shiji Yang
6c34ed82d2 ramips: add missing "pinctrl-names" for Youku YK1
Without this definition ethernet led can work as usual, but it's better to
re-add it. Relying on default values may cause uncontrollable factors.

Fixes: 882a6116d3 ("ramips: improve pinctrl for Youku YK-L1")

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2021-06-23 23:29:08 +08:00
Michael Pratt
64d5094fba ramips: mt7620: disable SOC VLANs for external switches
These boards have AR8327 or QCA8337 external ethernet switch.
The SOC also has it's own internal switch
where VLAN is now enabled by default.

Changes to preinit caused all switches to have VLANs enabled by default
even if they are not configured with a topology in uci_defaults
(see commit f017f617ae)

When both internal and external switches have VLANs,
and the external switch has both LAN and WAN,
the TX traffic from the SOC cannot flow to the tagged port on the external switch
because the VLAN IDs are not matching.

So disable the internal switch VLANs by default on these boards.

Also, add a topology for the internal switch,
so that on LuCI there is not an "unknown topology" warning.

In theory, it may be possible to have LAN ports on both switches
through internal and external PHYs, but there are no known boards that have this.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-06-23 23:28:51 +08:00
Michael Pratt
29d9b98eb8 ramips: mt7620: ethernet: use more macros and bump version
Define and use some missing macros,
and use them instead of BIT() or numbers for more readable code.

Add comment for a bit change that seems unrelated to ethernet
but is actually needed (PCIe Root Complex mode).

Remove unknown and unused macro RST_CTRL_MCM
(probably from MT7621 / MT7622)

This is the last of a series of fixes, so bump version.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-06-23 23:28:23 +08:00
Michael Pratt
df51f96624 ramips: mt7620: fix RGMII TXID PHY mode
the register bits for TX delay and RX delay are opposites:
when TX delay bit is set, delay is enabled
when RX delay bit is set, delay is disabled

So, when both bits are unset, it is RX delay
and when both bits are set, it is TX delay

Note: TXID is the default RGMII mode of the SOC

Fixes: 5410a8e295 ("ramips: mt7620: add rgmii delays support")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-06-23 23:25:25 +08:00
Michael Pratt
365dda18c9 ramips: mt7620: add ephy-disable option to switch driver
Add back the register write to disable internal PHYs
as a separate option in the code that can be set using a DTS property.

Set the option to true by default
when an external mt7530 switch is identified.

This makes the driver more in sync with original SDK code
while keeping the lines separated into different options
to accommodate any board with any PHY layout.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-06-23 23:25:00 +08:00
Michael Pratt
ca5da86633 ramips: mt7620: move mt7620_mdio_mode() to ethernet driver
The function mt7620_mdio_mode is only called once
and both the function and mdio_mode block have been named incorrectly,
leading to confusion and useless commits.

These lines in the mdio_mode block of mt7620_hw_init
are only intended for boards with an external mt7530 switch.
(see commit 194ca6127e)

Therefore, move lines from mdio_mode to the place in soc_mt7620.c
where the type of mt7530 switch is identified,
and move lines from mt7620_mdio_mode to a main function.

mt7620_mdio_mode was called from mt7620_gsw_init
where the priv struct is available,
so the lines must stay in mt7620_gsw_init function.

In order to keep things as simple as possible,
keep the DTS property related function calls together,
by moving them from mt7620_gsw_probe to init.

Remove the now useless DTS properties and extra phy nodes.

Fixes: 5a6229a93d ("ramips: remove superfluous & confusing DT binding")
Fixes: b85fe43ec8 ("ramips: mt7620: add force use of mdio-mode")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-06-23 23:24:38 +08:00
Michael Pratt
6622ef6b57 ramips: mt7620: use DTS to set PHY base address for external PHYs
Set the PHY base address to 12 for mt7530 and 8 for others,
which is based on the default setting for some devices
from printing the register with the following command
after it is written to by uboot during the boot cycle.

`md 0x10117014 1`

PHY_BASE option only uses 5 bits of the register,
bits 16 to 20, so use 8-bit integer type.

Set the option using the DTS property mediatek,ephy-base
and create the gsw node if missing.

Also, added a kernel message to display the EPHY base address.

Note:
If anything is written to a PHY address that is greater than 1 hex char (greater than 0xf)
then there is adverse effects with Atheros switches.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-06-23 23:24:20 +08:00
Michael Pratt
b5fdabdc06 ramips: mt7620: allow both internal and external PHYs
When the new variable ephy_base was introduced,
it was not applied to the if block for mdio_mode.

The first line in the mdio_mode if block
sets the EPHY base address to 12 in the SOC by writing a register,
but the corresponding variable in the driver
was still set to the default of 0.

This causes subsequent lines that write registers with the function
_mt7620_mii_write
to write to PHY addresses 0 through 4
while internal PHYs have been moved to addresses 12 through 16.

All of these lines are intended only for PHYs on the SOC internal switch,
however, they are being written to external ethernet switches
if they exist at those PHY addresses 0 through 4.
This causes some ethernet ports to be broken on boards with AR8327 or QCA8337 switch.

Other suggested fixes move those lines to the else block of mdio_mode,
but removing the else block completely also fixes it.

Therefore, move the lines to the mt7620_hw_init function main block,
and have only one instance of the function mtk_switch_w32
for writing the register with the EPHY base address.

In theory, this also allows for boards that have both external switches
and internal PHYs that lead to ethernet ports to be supported.

Fixes: 391df37829 ("ramips: mt7620: add EPHY base mdio address changing possibility")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-06-23 23:22:10 +08:00
Michael Pratt
36f707a82a ramips: mt7620: fix ethernet driver GMAC port init
A workaround was added to the switch driver
to set SOC port 4 as an RGMII GMAC interface
based on the DTS property mediatek,port4-gmac.
(previously mediatek,port4)

However, the ethernet driver already does this,
but is being blocked by a return statement
whenever the phy-handle and fixed-link properties
are both missing from nodes that define the port properties.

Revert the workaround, so that both the switch driver
and ethernet driver are not doing the same thing
and move the phy-handle related lines down
so nothing is ending the function prematurely.

While at it, clean up kernel messages
and delete useless return statements.

Fixes: f6d81e2fa1 ("mt7620: gsw: make IntPHY and ExtPHY share mdio addr 4 possible")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-06-23 23:21:42 +08:00
Michael Pratt
202b905e3b ramips: mt7620: remove useless GMAC nodes
These nodes are used for configuring a GMAC interface
and for defining external PHYs to be accessed with MDIO.

None of this is possible on MT7620N, only MT7620A,
so remove them from all MT7620N DTS.

When the mdio-bus node is missing, the driver returns -NODEV
which causes the internal switch to not initialize.
Replace that return so that everything works without the DTS node.

Also, an extra kernel message to indicate for all error conditions
that mdio-bus is disabled.

Fixes: d482356322 ("ramips: mt7620n: add mdio node and disable port4 by default")
Fixes: aa5014dd1a ("ramips: mt7620n: enable port 4 as EPHY by default")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-06-23 23:21:17 +08:00
Michael Pratt
54cb612148 ramips: mt7620: simplify DTS properties for GMAC
There are only 2 options in the driver
for the function of mt7620 internal switch port 4:

  EPHY mode (RJ-45, internal PHY)
  GMAC mode (RGMII, external PHY)

Let the DTS property be boolean instead of string
where EPHY mode is the default.

Fix how the properties are written
for all DTS that use them,
and add missing nodes where applicable,
and remove useless nodes,
and minor DTS formatting.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-06-23 23:20:56 +08:00
Hauke Mehrtens
9c9dfab853 realtek: Fix failsafe mode
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>
2021-06-23 23:18:17 +08:00
Hauke Mehrtens
c8ff495937 kernel: Backport patch to automatically bring up DSA master when opening 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>
2021-06-23 23:17:48 +08:00
Rui Salvaterra
13dbf90a4e kernel: bump 5.10 to 5.10.44
Add the new symbol to the generic kconfig.

No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-06-23 23:17:22 +08:00
Jason A. Donenfeld
e2fe07f573 kernel-5.4: backport latest patches for wireguard
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>
2021-06-23 23:17:03 +08:00
Birger Koblitz
8d5c7b98e2 realtek: Fix buffer length calculation on RTL8380 with CRC offload
Fixes the buffer and packet length calculations for Ethernet TX on
the RTL8380 SoC when CRC calculation offload is enabled.
CRC-offload is always done by the SoC, but additional CRC
calculation was previously done also by the kernel.
It also fixes detection of the DSA tag for packets on RTL8390
SoCs for ports > 28.

v2 has correct whitespace

Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>
2021-06-23 23:15:27 +08:00
Timo Sigurdsson
4ae384a3af hostapd: make wnm_sleep_mode_no_keys configurable
In the aftermath of the KRACK attacks, hostapd gained an AP-side workaround
against WNM-Sleep Mode GTK/IGTK reinstallation attacks. WNM Sleep Mode is not
enabled by default on OpenWrt, but it is configurable through the option
wnm_sleep_mode. Thus, make the AP-side workaround configurable as well by
exposing the option wnm_sleep_mode_no_keys. If you use the option
wpa_disable_eapol_key_retries and have wnm_sleep_mode enabled, you might
consider using this workaround.

Signed-off-by: Timo Sigurdsson <public_timo.s@silentcreek.de>
2021-06-23 23:15:01 +08:00
Rafał Miłecki
2609c0acd4 bcm63xx-cfe: update to the latest master
e5050f3 linksys: ea9500-v2: add cferam file

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-06-23 23:10:44 +08:00
Rafał Miłecki
15991e5cc6 bcm4908: fix Ethernet broken state after interface restart
This fixes traffic stalls after ifdown & ifup.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit f8d5bd20b3)
2021-06-22 15:37:07 +08:00
Timo Sigurdsson
ee7f7173c9 hostapd: fix handling of the channel utilization options
Commit 0a7657c ("hostapd: add channel utilization as config option") added the
two new uci options bss_load_update_period and chan_util_avg_period. However,
the corresponding "config_add_int" calls for these options weren't added, so
attempting to actually use these options and change their values is bound to
fail - they always stay at their defaults. Add the missing code to actually
make these options work.

Fixes: 0a7657c ("hostapd: add channel utilization as config option")
Signed-off-by: Timo Sigurdsson <public_timo.s@silentcreek.de>
(cherry picked from commit 85ce590705)
2021-06-22 15:36:58 +08:00
Timo Sigurdsson
4ea1567042 hostapd: make country3 option configurable
The country3 option in hostapd.conf allows the third octet of the country
string to be set. It can be used e.g. to indicate indoor or outdoor use (see
hostapd.conf for further details). Make this option configurable but optional
in OpenWrt.

Signed-off-by: Timo Sigurdsson <public_timo.s@silentcreek.de>
(cherry picked from commit 9f09c1936a)
2021-06-22 15:36:53 +08:00
David Bauer
2df25e842f ath79: add missing GPIO_LATCH symbol
Fixes commit 7b8931678c ("ath79: add gpio-latch driver for MikroTik RouterBOARDs")

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit f2f137593e)
2021-06-22 15:36:45 +08:00
Tianling Shen
5313c26aab Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-21 20:49:40 +08:00
Koen Vandeputte
119532ca5c ath79: ar934x: fix mounting issues if subpage is not supported
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 6561ca1fa5)
2021-06-21 20:39:10 +08:00
Denis Kalashnikov
e2eb061698 ath79: add support for MikroTik RouterBOARD 912UAG-2HPnD
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 695a1cd53c)
2021-06-21 20:39:04 +08:00
Denis Kalashnikov
ef442c5253 ath79: add NAND driver for MikroTik RB91xG series
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 820e660cd7)
2021-06-21 20:38:44 +08:00
Denis Kalashnikov
1e1f52f86e ath79: add gpio-latch driver for MikroTik RouterBOARDs
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 7b8931678c)
2021-06-21 20:38:38 +08:00
Rafał Miłecki
f156855911 bcm4908: add kmod-gpio-button-hotplug
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 fcfa60408c)
2021-06-21 20:38:28 +08:00
Michael Yartys
e5d58c47f9 hostapd: add support for setting sae_pwe
Make it possible to specify the SAE mechanism for PWE derivation. The
following values are possible:

0 = hunting-and-pecking loop only
1 = hash-to-element only
2 = both hunting-and-pecking loop and hash-to-element enabled

hostapd currently defaults to hunting-and-pecking loop only.

Signed-off-by: Michael Yartys <michael.yartys@protonmail.com>
(cherry picked from commit b9b4aef4f2)
2021-06-21 20:37:44 +08:00
Dobroslaw Kijowski
74069c40e8 hostapd: stop advertising 11w feature
This is a follow up of 1a9b896d ("treewide: nuke DRIVER_11W_SUPPORT").
LuCI commit ab010406 ("luci-mod-network: skip check for 802.11w feature")
skips check of the 11w feature [1]. Now advertising it in hostapd is
superfluous so stop doing it.

[1]: https://github.com/openwrt/luci/pull/4689

Signed-off-by: Dobroslaw Kijowski <dobo90@gmail.com>
[remove outdated PKG_RELEASE bump and update to SPDX]
Signed-off-by: Paul Spooren <mail@aparcar.org>
(cherry picked from commit bb2ac5a33b)
2021-06-21 20:37:30 +08:00
Adrian Schmutzler
9e146f352f ramips: clean up dlink_dir-8xx-r1 recipe
* only add factory.bin when it's defined
 * fix check-size vs. append-metadata
 * whitespace/line break cleanup

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 881fdb811f)
2021-06-21 20:37:11 +08:00
Adrian Schmutzler
ce7dfc8bd6 ramips: reorganize DTSI files for D-Link DIR-8xx
* Remove micro-DTSI mt7621_dlink_dir-882-x1.dtsi to ease reading
   config without too much inheritance
 * Use "separate" partitioning DTSIs so we can use the partitioning
   without a complete match on the other settings (i.e. without the
   former parent DTSI)
 * Rename files to express the new organization

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 2001c0ca9f)
2021-06-21 20:36:55 +08:00
Stijn Segers
481c283de7 firmware-utils: tplink-safeloader: support Archer A6 v3 CA
The Canadian edition of the TP-Link Archer A6 v3 uses a different header, but
otherwise it's identical to the already supported EU/US editions.

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
Tested-by: Brian Lee <dev@leebrian.me>
Reviewed-by: Philip Prindeville <philipp@redfish-solutions.com>
(cherry picked from commit b6245fbd58)
2021-06-21 20:36:47 +08:00
ElonH
f90a848331 kmod-rtc-sunxi: missing deps kmod-multimedia-input
(cherry picked from commit 91deb050bb)
2021-06-20 16:59:00 +08:00
ElonH
99d35bc4c1 multimedia-input: missing deps
Target: ipq40xx

Package kmod-multimedia-input is missing dependencies for the following libraries:
input-core.ko

(cherry picked from commit 324306e10d)
2021-06-20 16:58:57 +08:00
Tianling Shen
c6ad48657b sunxi: refresh kernel patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-20 13:12:46 +08:00
Tianling Shen
f01b7cd3cc sunxi: add support for OrangePi 3
Specifications:

SoC Allwinner H6 @ 1.8 Ghz
DRAM    1Gb/2Gb LPDDR3
Power   DC 5V @ 2A, mircoUSB (OTG)
Video   HDMI (Type 2.0A - full)
Audio   3.5mm headphone plug, HDMI, on-board microphone
Network 10/100/1000Mbps Ethernet (Realtek RTL8211)
Storage 8G eMMC Flash (optional), microSD
USB     4 USB3.0 Host, 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.

Notice:
 Wirless is not working for now.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-20 13:12:45 +08:00
lean
a3bdf8b176 ramips: fix mt7620a 8M support 2021-06-20 00:09:02 +08:00
Felix Fietkau
9deb7e2935 mac80211: fix an issue with wds links on 802.11ax devices
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-20 00:08:36 +08:00
Felix Fietkau
b85a92f279 kernel: disable CONFIG_PCIE_BUS_PERFORMANCE
The option was added in 5.9 and for some reason, it is causing performance
issues at least on an APU2 board with the igb device.
Switch CONFIG_PCIE_BUS_DEFAULT to fix the performance issues and match the
older kernel's behavior

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-19 00:08:47 +08:00
Felix Fietkau
7717774acc mac80211: remove extra patch accidentally added during rebase
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-19 00:08:19 +08:00
Felix Fietkau
0119310f4c kernel: make cryptoapi support needed by mac80211 built-in
This reduces the flash space impact, since built-in code is much smaller
than a bunch of kernel modules on squashfs

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-19 00:08:01 +08:00
Felix Fietkau
5727331771 mac80211: remove patches stripping down crypto support
Use of WPA3 and things like FILS is getting much more common, and platforms
that can't affort the extra kilobytes for this code are fading away.
Let's not hold back modern authentication methods any longer

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-19 00:07:21 +08:00
Felix Fietkau
7635271f00 mac80211: system hang caused by deferring calls into minstrel to dequeue
Move the aggregation check to mac80211

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-19 00:07:05 +08:00
Tianling Shen
1bb600e635 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-18 00:03:43 +08:00
Felix Fietkau
45673fd9af mac80211: fix minstrel sample time check
We need to skip sampling if the next sample time is after jiffies, not before.
This patch fixes an issue where in some cases only very little sampling (or none
at all) is performed, leading to really bad data rates

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-17 20:54:01 +08:00
Felix Fietkau
b223328273 mac80211: select iwinfo
Since iwinfo is now used in the core scripts, it needs to be present on the system

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-17 20:53:57 +08:00
Felix Fietkau
35b5c41401 mac80211: fix processing HE capabilities (FS#3871)
Use the right argument to fix setting unsupported capabilities to 0

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-17 20:53:55 +08:00
Tianling Shen
636a2b539b Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-17 20:47:12 +08:00
Tianling Shen
8c7d866ba7 r8125: allow build against with kernel 5.10
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-16 17:36:51 +08:00
AmadeusGhost
1c3cf01b93 arm-trusted-firmware-rk3328: update to latest git HEAD
Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-06-16 11:00:06 +08:00
AmadeusGhost
2ff427b0b9 Merge Mainline 2021-06-15 23:45:52 +08:00
AmadeusGhost
6e017db719 ipq806x: m520: add gpio-led sys support
Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-06-15 23:21:04 +08:00
AmadeusGhost
c8d26d2b91 mtwifi: mt7612: fix build error
Fixes: #404
2021-06-15 23:16:38 +08:00
Rui Salvaterra
ff1a7f31fd kernel: bump 5.10 to 5.10.43
No deleted or manually refreshed patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-06-14 11:51:09 +08:00
Amish Vishwakarma
770caf06b4 ramips: add support for TP-Link Archer C6 v3
The patch adds support for the TP-Link Archer C6 v3 (FCC ID TE7A6V3)
The patch adds identification changes to the existing TP-Link Archer A6,
by Vinay Patil <post2vinay@gmail.com>, which has identical hardware.

Specification
-------------
MediaTek MT7621 SOC
RAM:         128MB DDR3
SPI Flash:   W25Q128 (16MB)
Ethernet:    MT7530 5x 1000Base-T
WiFi 5GHz:   Mediatek MT7613BE
WiFi 2.4GHz: Mediatek MT7603E
UART/Serial: 115200 8n1

Device Configuration & Serial Port Pins
---------------------------------------
ETH Ports:    LAN4 LAN3 LAN2 LAN1 WAN
             _______________________
             |                     |
Serial Pins: |   VCC GND TXD RXD   |
             |_____________________|

LEDs:         Power Wifi2G Wifi5G LAN WAN

Build Output
------------
The build will generate following set of files
[1] openwrt-ramips-mt7621-tplink_archer-c6-v3-initramfs-kernel.bin
[2] openwrt-ramips-mt7621-tplink_archer-c6-v3-squashfs-factory.bin
[3] openwrt-ramips-mt7621-tplink_archer-c6-v3-squashfs-sysupgrade.bin

How to Use - Flashing from TP-Link Web Interface
------------------------------------------------
* Go to "Advanced/System Tools/Firmware Update".
* Click "Browse" and upload the OpenWrt factory image: factory.bin[2]
* Click the "Upgrade" button, and select "Yes" when prompted.

TFTP Booting
------------
Setup a TFTP boot server with address 192.168.0.5.
While starting U-boot press '4' key to stop autoboot.
Copy the initramfs-kernel.bin[1] to TFTP server folder, rename as test.bin
From u-boot command prompt run tftpboot followed by bootm.

Recovery
--------
Archer A6 V3 has recovery page activated if SPI booting from flash fails.
Recovery page can be activated by powercycling the router four times
before the boot process is complete.
Note: TFTP boot can be activated only from u-boot serial console.
Device recovery address: 192.168.0.1

Signed-off-by: Amish Vishwakarma <vishwakarma.amish@gmail.com>
[fix indent]
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-14 11:50:42 +08:00
David Bauer
c94df74152 ramips: refresh at803x patch
This patch failed to apply, breaking builds for the ramips target.

Fixes commit c44cefceb3 ("generic: kernel 5.4: fix probe error for AR803x PHYs")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-14 11:49:20 +08:00
Tomasz Maciej Nowak
355dd25423 kernel: move some drm symbols to generic config
These are architecture independent, so move them to generic config.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-06-14 11:48:45 +08:00
Tomasz Maciej Nowak
4b6ca23866 tegra: add support for kernel 5.10
Mark it as testing for now.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-06-14 11:48:16 +08:00
Tomasz Maciej Nowak
2a5ab807be tegra: copy files for kernel 5.10
Dumb copy of current kernel 5.4 config and patches.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-06-14 11:47:06 +08:00
Tomasz Maciej Nowak
a149749c86 tegra: refresh kernel config
Recent filtering rules alow to trim the kernel configuration in size, do
that to reduce the diff between current config and upcoming one.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-06-14 11:46:39 +08:00
Andy Lee
7014d0f0f8 ath79: add support for TP-Link TL-WR841HP v3
Specifications:
- QCA9533 SoC, 8 MB nor flash, 64 MB DDR2 RAM
- 2x2 9dBi antenna, wifi 2.4Ghz 300Mbps
- 4x Ethernet LAN 10/100, 1x Ethernet WAN 10/100
- 1x WAN, LAN, Wifi, PWR, WPS, RE Leds
- Reset, Wifi on/off, WPS, RE buttons
- Serial UART at J4 onboard: 3.3v GND RX TX, 1152008N1

Label MAC addresses based on vendor firmware:
LAN      *:ea    label
WAN      *:eb    label +1
2.4 GHz  *:ea    label
The label MAC address in found in u-boot 0x1fc00

Installation:
Upload openwrt-ath79-generic-tplink_tl-wr841hp-v3-squashfs-factory.bin
from stock firmware webgui.
Maybe we need rename to shorten file name due to stock webgui error.

Revert back to stock firmware instructions:
- set your PC to static IP address 192.168.0.66 netmask 255.255.255.0
- download stock firmware from Tp-link website
- put it in the root directory of tftp server software
- rename it to wr841hpv3_tp_recovery.bin
- power on while pressing Reset button until any Led is lighting up
- wait for the router to reboot. done

Forum support topic:
https://forum.openwrt.org/t/support-for-tp-link-tl-wr841hp-v3-router

Signed-off-by: Andy Lee <congquynh284@yahoo.com>
[rebase and squash]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-14 11:46:17 +08:00
David Bauer
067b925bfc apm821xx: move CONFIG_REGULATOR to target config
This moves CONFIG_REGULATOR to the target config instead of the
subtarget config.

For kernel 5.10, CONFIG_AT803X_PHY depends on CONFIG_REGULATOR.
As we do not have a size constraint, move this symbol to the
target configuration for kernel 5.4 as well as 5.10.

Reported-by: Russell Senior <russell@personaltelco.net>
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-14 11:45:49 +08:00
David Bauer
60017d986e generic: kernel 5.4: fix probe error for AR803x PHYs
Atheros PHYs using the at803x driver apart from the AR8031/AR8033 fail
to probe with kernel 5.4, due to ret in at803x_probe being
uninitialized.

[    1.403461] Atheros 8035 ethernet: probe of 4ef600c00.ethernet:01
	       failed with error -1066114012

Initialize ret in order to successfully prove the PHYs on kernel 5.4.

Kernel 5.10 is not affected, as the ret is always assigned prior to
returning.

Tested on OCEDO Koala.

Reported-by: Russell Senior <russell@personaltelco.net>
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-14 11:45:23 +08:00
Tianling Shen
a5ea3a9700 rockchip: make at24 eeprom driver built-in
This is required by NanoPi R4S.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit d0c9b218df)
2021-06-14 01:59:48 +08:00
AmadeusGhost
4ba6c32dec feeds: switch luci to openwrt-18.06-k5.4 branch 2021-06-13 12:14:00 +08:00
AmadeusGhost
4d4d1a725a armbian-firmware: update to latest git HEAD 2021-06-13 12:11:53 +08:00
AmadeusGhost
13a3b44d07 sunxi: nanopi-r1s-h5: use mac address provided by eeprom
Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-06-13 12:06:45 +08:00
Felix Fietkau
3a0062b797 mac80211: add support for 802.3 encap offload with software rate control
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-13 11:56:35 +08:00
Felix Fietkau
df26ab5de9 mac80211: improve rate control performance
Call rate control handler after intermediate queueuing

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-13 11:56:16 +08:00
Tianling Shen
aa36d9feba r8152: allow build against kernel 5.10
Kernel >= 5.9 was supported in 2.15 version.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-12 01:35:41 +08:00
Tianling Shen
99adbe5ffd rockchip: nanopi r4s: read mac address from eeprom
NanoPi R4S has a unique MAC address for the ethernet on board. As the
PCIe NIC doesn't have, just reuse this MAC and flipp the LA bit for it.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-12 01:11:44 +08:00
AmadeusGhost
c1efe9c26a autocore-arm: remove special practices for mt76
Now the mt76 driver supports reading temperature through sensors,
so just remove it.
2021-06-10 23:18:10 +08:00
Felix Fietkau
151dacaf26 mac80211: rely on iwinfo for phy->path and path->phy lookups
This avoids inconsistencies from having multiple implementations do the same thing

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-10 23:12:22 +08:00
Felix Fietkau
60d5508d1a iwinfo: update to the latest version
aa0e3c4bbe12 iwinfo: nl80211: add support for printing the device path for a phy
dd6d6d2dec35 iwinfo: nl80211: use new path lookup function for nl80211_phy_idx_from_uci_path
268bb26d2e2a iwinfo: nl80211: support looking up phy by path=.. and macaddr=...
c0414642fead iwinfo: nl80211: fix typo

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-10 23:12:02 +08:00
Pawel Dembicki
cc4a7b9d6b ramips: mt7620: disable Jboot devices build
At this moment kernel size in mt7620 snapshot builds is bigger than 2048k.
It should be disabled by default.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2021-06-10 23:11:16 +08:00
Pawel Dembicki
7b7865f25d ramips: mt7620: add kernel size for Jboot devices
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>
2021-06-10 23:10:57 +08:00
Liu Yu
4c366037c7 ramips: fix Ethernet random MAC address for HILINK HLK-7628N
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: 671c9d16e3 ("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>
2021-06-10 23:10:23 +08:00
AmadeusGhost
f2a7cf7ae7 Merge Mainline 2021-06-08 23:28:46 +08:00
Gaspare Bruno
4567b9be10 ramips: mt7620: enable autonegotiation for all ports
This enables autonegotiation for all ephy ports on probe.
Some devices do not configure the ports, particularly port 4.

Signed-off-by: Gaspare Bruno <gaspare@anlix.io>
[replace magic values ; reword commit message]
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-08 23:15:29 +08:00
David Bauer
5f3aeda52d ramips: fix patch location
The patch for adding the config_aneg function for the Atheros
AR8031/AR8033 PHY was formatted in a way it moved to different PHY
models while refreshing patches on kernel updates.

Move the diff directly below the PHY name so this won't happen in the
future.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-08 23:14:48 +08:00
David Bauer
c558f9816f ramips: make PHY initialization more descriptive
The basic mode control register of the ESW PHYs is modified in this
codeblock. Use the respective macros to make this code more readable.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-08 23:14:20 +08:00
David Bauer
a6ce6630a5 generic: backport at803x fixes
As patches for the AR8031/AR8033 copper page selection were merged
upstream, we can backport these patches.

This also fixes a PHY capabilities detection issue on the Ubiquiti
ER-X-SFP.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-08 23:13:45 +08:00
Jonathan A. Kollasch
e378615cee ath79: fix eth0 PLL registers on WD My Net Wi-Fi Range Extender
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>
2021-06-07 23:33:41 +08:00
Nick Hainke
a83e412d84 ath79: Support for Ubiquiti Rocket 5AC Lite
The Ubiquiti Rocket 5AC Lite (R5AC-Lite) is an outdoor router.

Specifications:
 - SoC: Qualcomm Atheros QCA9558
 - RAM: 128 MB
 - Flash: 16 MB SPI
 - Ethernet: 1x 10/100/1000 Mbps
 - WiFi 5 GHz: QCA988x
 - Buttons: 1x (reset)
 - LEDs: 1x power, 1x Ethernet, 4x RSSI

Installation:
- Instructions for XC-type Ubiquiti:
  https://openwrt.org/toh/ubiquiti/common

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-06-07 23:33:10 +08:00
INAGAKI Hiroshi
28acd366e8 ath79: add support for NEC Aterm WF1200CR
NEC Aterm WF1200CR is a 2.4/5 GHz band 11ac (Wi-Fi 5) router, based on
QCA9561.

Specification:

- SoC		: Qualcomm Atheros QCA9561
- RAM		: DDR2 128 MiB (W971GG6SB-25)
- Flash		: SPI-NOR 8 MiB (MX25L6433FM2I-08G)
- WLAN		: 2.4/5 GHz 2T2R
  - 2.4 GHz	: QCA9561 (SoC)
  - 5 GHz	: QCA9888
- Ethernet	: 2x 10/100 Mbps
  - Switch	: QCA9561 (SoC)
- LEDs/Keys	: 8x/3x (2x buttons, 1x slide-switch)
- UART		: through-hole on PCB
  - JP1: Vcc, GND, NC, TX, RX from "JP1" marking
  - 115200n8
- Power		: 12 VDC, 0.9 A

Flash instruction using factory image (stock: < v1.3.2):

1. Boot WF1200CR normally with "Router" mode
2. Access to "http://192.168.10.1/" and open firmware update page
   ("ファームウェア更新")
3. Select the OpenWrt factory image and click update ("更新") button to
   perform firmware update
4. Wait ~150 seconds to complete flashing

Alternate flash instruction using initramfs image (stock: >= v1.3.2):

1. Prepare the TFTP server with the IP address 192.168.1.10 and place
   the OpenWrt initramfs image to the TFTP directory with the name
   "0101A8C0.img"
2. Connect serial console to WF1200CR
3. Boot WF1200CR and interrupt with any key after the message
   "Hit any key to stop autoboot:  2", the U-Boot starts telnetd after
   the message "starting telnetd server from server 192.168.1.1"
4. login the telnet (address: 192.168.1.1)
5. Perform the following commands to modify "bootcmd" variable
   temporary and check the value
   (to ignore the limitation of available commands, "tp; " command at
   the first is required as dummy, and the output of "printenv" is
   printed on the serial console)

   tp; set bootcmd 'set autostart yes; tftpboot'
   tp; printenv

6. Save the modified variable with the following command and reset
   device

   tp; saveenv
   tp; reset

7. The U-Boot downloads initramfs image from TFTP server and boots it
8. On initramfs image, download the sysupgrade image to the device and
   perform the following commands to erase stock firmware and sysupgrade

   mtd erase firmware
   sysupgrade <sysupgrade image>

9. After the rebooting by completion of sysupgrade, start U-Boot telnetd
   and login with the same way above (3, 4)
10. Perform the following commands to reset "bootcmd" variable to the
    default and reset the device

    tp; run seattle
    tp; reset

    (the contents of "seattle":
     setenv bootcmd 'bootm 0x9f070040' && saveenv)
11. Wait booting-up the device

Known issues:

- the following 6x LEDs are connected to the gpio controller on QCA9888
  chip and the implementation of control via the controller is missing in
  ath10k/ath10k-ct

  - "ACTIVE" (Red/Green)
  - "2.4GHz" (Red/Green)
  - "5GHz"   (Red/Green)

Note:

- after the version v1.3.2 of stock firmware, "offline update" by
  uploading image by user is deleted and the factory image cannot be
  used

- the U-Boot on WF1200CR doesn't configure the port-side LEDs on WAN/LAN
  and the configuration is required on OpenWrt

  - gpio-hog: set the direction of GPIO 14(WAN)/19(LAN) to output
  - pinmux: set GPIO 14/19 as switch-controlled LEDs

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-06-07 23:32:50 +08:00
Felix Matouschek
de9a4a89fc ath79: add support for Devolo dLAN pro 1200+ WiFi ac
This patch adds support for the Devolo dLAN pro 1200+ WiFi ac.
This device is a plc wifi AC2400 router/extender with 2 Ethernet ports,
has a QCA7500 PLC and uses the HomePlug AV2 standard.

Other than the PLC the hardware is identical to the Devolo Magic 2 WIFI.
Therefore it uses the same dts, which was moved to a dtsi to be included
by both boards.

This is a board that was previously included in the ar71xx tree.

Hardware:
   SoC:         AR9344
   CPU:         560 MHz
   Flash:       16 MiB (W25Q128JVSIQ)
   RAM:         128 MiB DDR2
   Ethernet:    2xLAN 10/100/1000
   PLC:         QCA75000 (Qualcomm HPAV2)
   PLC Uplink:  1Gbps MIMO
   PLC Link:    RGMII 1Gbps (WAN)
   WiFi:        Atheros AR9340 2.4GHz 802.11bgn
                Atheros AR9882-BR4A 5GHz 802.11ac
   Switch:      QCA8337, Port0:CPU, Port2:PLC, Port3:LAN1, Port4:LAN2
   Button:      3x Buttons (Reset, wifi and plc)
   LED:         3x Leds (wifi, plc white, plc red)
   GPIO Switch: 11-PLC Pairing (Active Low)
                13-PLC Enable
                21-WLAN power

MACs Details verified with the stock firmware:
   Radio1: 2.4 GHz &wmac     *:4c Art location: 0x1002
   Radio0: 5.0 GHz &pcie     *:4d Art location: 0x5006
   Ethernet        &ethernet *:4e = 2.4 GHz + 2
   PLC uplink      ---       *:4f = 2.4 GHz + 3
Label MAC address is from PLC uplink

The Powerline (PLC) interface of the dLAN pro 1200+ WiFi ac requires 3rd
party firmware which is not available from standard OpenWrt package
feeds. There is a package feed on github which you must add to
OpenWrt buildroot so you can build a firmware image which supports the
plc interface.

See: https://github.com/0xFelix/dlan-openwrt (forked from Devolo and
added compatibility for OpenWrt 21.02)

Flash instruction (TFTP):
 1. Set PC to fixed ip address 192.168.0.100
 2. Download the sysupgrade image and rename it to uploadfile
 3. Start a tftp server with the image file in its root directory
 4. Turn off the router
 5. Press and hold Reset button
 6. Turn on router with the reset button pressed and wait ~15 seconds
 7. Release the reset button and after a short time
    the firmware should be transferred from the tftp server
 8. Allow 1-2 minutes for the first boot.

Signed-off-by: Felix Matouschek <felix@matouschek.org>
[add "plus" to compatible and device name]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-07 23:32:24 +08:00
Andreas Böhler
2c03df2f1e ramips: Add support for SERCOMM NA502
The SERCOMM NA502 is a smart home gateway manufactured by SERCOMM and sold
under different brands (among others, A1 Telekom Austria SmartHome
Gateway). It has multi-protocol radio support in addition to LAN and WiFi.

Note: BLE is currently unsupported.

Specifications
--------------

  - MT7621ST 880MHz, Single-Core, Dual-Thread
  - MT7603EN 2.4GHz WiFi
  - MT7662EN 5GHz WiFi + BLE
  - 128MiB NAND
  - 256MiB DDR3 RAM
  - SD3503 ZWave Controller
  - EM357 Zigbee Coordinator

MAC address assignment
----------------------

LAN MAC is read from the config partition, WiFi 2.4GHz is LAN+2 and matches
the OEM firmware. WiFi 5GHz with LAN+1 is an educated guess since the
OEM firmware does not enable 5GHz WiFi.

Installation
------------
Attach serial console, then boot the initramfs image via TFTP.
Once inside OpenWrt, run sysupgrade -n with the sysupgrade file.

Attention: The device has a dual-firmware design. We overwrite kernel2,
since kernel1 contains an automatic recovery image.

If you get NAND ECC errors and are stuck with bad eraseblocks, try to
erase the mtd partition first with

mtd unlock ubi
mtd erase ubi

This should only be needed once.

Signed-off-by: Andreas Böhler <dev@aboehler.at>
[use kiB for IMAGE_SIZE]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-07 23:31:55 +08:00
Ben Gainey
687ad2a014 ramips: add support for the Wavlink WL-WN579X3
About the device
----------------

SoC: MediaTek MT7620a @ 580MHz
RAM: 64M
FLASH: 8MB
WiFi: SoC-integrated: MediaTek MT7620a bgn
WiFi: MediaTek MT7612EN nac
GbE: 2x (RTL8211F)
BTN: - WPS
- Reset
- Router/Repeater/AP (3-way slide-switch)
LED: - WPS (blue)
- 3-segment Wifi signal representation (blue)
- WiFi (blue)
- WAN (blue)
- LAN (blue)
- Power (blue)
UART: UART is present as Pads with through-holes on the PCB. They are
located next to the reset button and are labelled Vcc/TX/RX/GND as
appropriate. Use 3.3V, 57600-8N1.

Installation
------------

Using the webcmd interface
--------------------------

Warning: Do not update to the latest Wavlink firmware (version
20201201) as this removes the webcmd console and you will need to
use the serial port instead.

You will need to have built uboot/sqauashfs image for this device,
and you will need to provide an HTTP service where the image can
be downloaded from that is accessible by the device.
You cannot use the device manufacturers firmware upgrade interface
as it rejects the OpenWrt image.

1. Log into the device's admin portal. This is necessary to
   authenticate you as a user in order to be able to access the
   webcmd interface.
2. Navigate to http://<device-ip>/webcmd.shtml - you can access
   the console directly through this page, or you may wish to
   launch the installed `telnetd` and use telnet instead.
   * Using telnet is recommended since it provides a more
     convenient shell interface that the web form.
   * Launch telnetd from the form with the command `telnetd`.
   * Check the port that telnetd is running on using
     `netstat -antp|grep telnetd`, it is likely to be 2323.
   * Connect to the target using `telnet`. The username should
     be `admin2860`, and the password is your admin password.
3. On the target use `curl` to download the image.
   e.g.  `curl -L -O http://<some-other-lan-ip>/openwrt-ramips-mt7620-\
          wavlink_wl-wn579x3-squashfs-sysupgrade.bin`.
   Check the hash using `md5sum`.
4. Use the mtd_write command to flash the image.
   * The flash partition should be mtd4, but check
     /sys/class/mtd/mtd4/name first. The partition should be
     called 'Kernel'.
   * To flash use the following command:
     `mtd_write -r -e /dev/mtd<n> write <image-file> /dev/mtd<n>`
     Where mtd<n> is the Kernel partition, and <image-file> is
     the OpenWrt image previously downloaded.
   * The command above will erase, flash and then reboot the
     device. Once it reboots it will be running OpenWrt.

Connect via ssh to the device at 192.168.1.1 on the LAN port.
The WAN port will be configured via DHCP.

Using the serial port
---------------------

The device uses uboot like many other MT7260a based boards. To
use this interface, you will need to connect to the serial
interface, and provide a TFTP server. At boot follow the
bootloader menu and select option 2 to erase/flash the image.
Provide the address and filename details for the tftp server.
The bootloader will do the rest.

Once the image is flashed, the board will boot into OpenWrt. The
console is available over the serial port.

Signed-off-by: Ben Gainey <ba.gainey@googlemail.com>
2021-06-07 23:30:30 +08:00
Nuno Goncalves
d86659c9b6 ramips: add support for Wavlink WL-WN530HG4
Same hardware as Phicomm K2G but different flash layout.

Specification:
- SoC: MediaTek MT7620A
- Flash: 8 MB
- RAM: 64 MB
- Ethernet: 4 FE ports and 1 GE port (RTL8211F on port 5)
- Wireless radio: MT7620 for 2.4G and MT7612E for 5G, both equipped
  with external PA.
- UART: 1 x UART on PCB - 57600 8N1

Flash instruction:
To avoid requiring UART for TFTP a dual flash procedure is suggested
to install the squashfs image:
1. Rename openwrt-ramips-mt7620-wavlink_wl-wn530hg4-initramfs-kernel.bin
   to WN530HG4-WAVLINK.
2. Flash this file with the factory web interface.
3. With OpenWRT now running use standard sysupgrade to install the
   squashfs image.

Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>
[remove dts-v1, remove model from LED labels, wrap commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-07 23:29:05 +08:00
Adrian Schmutzler
73053f60e2 treewide: do not quote compatible in shell scripts
The compatible is a literal string without any problematic
characters, so there is no reason to quote it.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-07 23:25:51 +08:00
Adrian Schmutzler
e0c51a56c3 uboot-kirkwood: refresh patches
This is only cosmetic, but the next one adding a patch here would
have to do it anyway, and thus will get a smaller diff for review
now.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-07 23:25:28 +08:00
BERENYI Balazs
45e3ff8395 kirkwood: Add support for Sheevaplug
Globalscale SheevaPlug:
* Marvell Kirkwood 88F6281
* 512 MB SDRAM
* 512 MB Flash
* Gigabit Network
* USB 2.0
* SD slot
* Serial console

The device is supported in mainline uboot/linux the commit adds only
some openwrt config for building an image.

Installation:
1 - Update uboot:
setenv ipaddr '192.168.0.111'
setenv serverip '192.168.0.1'
tftpboot u-boot.kwb
nand erase 0x0 0x100000
nand write 0x800000 0x0 0x100000
reset
2 - Install OpenWRT:
setenv ethaddr 00:50:43:01:xx:xx
saveenv
setenv ipaddr '192.168.0.111'
setenv serverip '192.168.0.1'
tftpboot openwrt-kirkwood-globalscale_sheevaplug-squashfs-factory.bin
nand erase.part ubi
nand write 0x800000 ubi 0x600000
reset

Signed-off-by: BERENYI Balazs <balazs@wee.hu>
Reviewed-by: Pawel Dembicki <paweldembicki@gmail.com>
[add vendor name for uboot-kirkwood, merge patches, copy to 5.10,
add AUTORELEASE for uboot-kirkwood, refresh patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-07 23:25:04 +08:00
Kip Porterfield
9c17cbd0a8 kirkwood: add support for Seagate BlackArmor NAS220
The Seagate BlackArmor NAS220 is a consumer NAS
with two internal drive bays. The stock OS runs
RAID 1 over the disks via mdadm.

Device specification:
- SoC: Marvell 88F6192 800 MHz
- RAM: 128 MB
- Flash: 32 MB
- 2 x internal SATA II drives
- Ethernet: 10/100/1000 Mbps (single port, no switch)
- WLAN: None
- LED: Power, Status, Sata Activity
- Key: Power, Reset
- Serial: 10 pin header, (115200,8,N,1), 3.3V TTL
	9|x  -   x|10
	7|x  -   x|8
	5|x  - GND|6
	3|x  -  RX|4
	1|TX -   x|2
	front of case
- USB ports: 2 x USB 2.0

Flash instruction:

NOTE: this process uses a serial connection. It will upgrade the
bootloader and reset the bootloader environment variables

TFTP server setup
- Setup PC with TFTP server set the PC IP to 10.4.50.5 as TFTP server
- Copy these files to TFTP server location
    - u-boot.kwb
    - seagate_blackarmor-nas220-initramfs-uImage
    - seagate_blackarmor-nas220-squashfs-sysupgrade.bin
    - seagate_blackarmor-nas220-squashfs-factory.bin

Seagate NAS setup
- Connect LAN cable between PC and seagate device
- Connect to serial to seagate device

Install u-boot
- Boot seagate device and stop in bootloader by pressing any key
- run 'printenv' from u-boot and save the values
- tftpboot 0x2000000 u-boot.kwb
- nand erase.part uboot
- nand write 0x2000000 0x0 ${filesize}
- reset

Update MAC address in u-boot env
- Stop in u-boot by pressing any key
- Get your MAC address from your saved printenv. Is also on chassis
- setenv ethaddr <your MAC>
- saveenv

Option 1 (recommended) - Install OpenWrt via initramfs and sysupgrade
- tftpboot 0x2000000 seagate_blackarmor-nas220-initramfs-uImage
- bootm 0x2000000
- *OpenWrt should be running now, however it is not written to flash yet*
- From the running instance of OpenWrt use Luci's "flash image" feature
    from the web site or use sysupgrade from the console to write
    seagate_blackarmor-nas220-squashfs-sysupgrade.bin to flash

Option 2 - Install OpenWrt by flashing factory image from u-boot
- nand erase.part ubi
- tftpboot 0x2000000 seagate_blackarmor-nas220-squashfs-factory.bin
- nand write 0x2000000 ubi ${filesize}
- reset

Signed-off-by: Kip Porterfield <kip.porterfield@gmail.com>
2021-06-07 23:24:44 +08:00
Pawel Dembicki
53c2e9a8ed uboot-kirkwood: add uboot for CheckPoint L-50
This patch add u-boot for CheckPoint L-50 routers.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2021-06-07 23:22:59 +08:00
Pawel Dembicki
69bf1777c2 uboot-kirkwood: add support for Zyxel NSA310S
This patch modifies the u-boot config for the Zyxel NSA310S to work with
OpenWrt.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2021-06-07 23:22:46 +08:00
Hauke Mehrtens
8bf62e3cc2 mac80211: Update to backports-5.10.42
The removed patches were integrated upstream.

The brcmf_driver_work workqueue was removed in brcmfmac with kernel
5.10.42, the asynchronous call was covered to a synchronous call. There
is no need to wait any more.
This part was removed manually from this patch:
brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-06-07 00:05:26 +08:00
AmadeusGhost
82666afe50 mac80211: adjust ath patches directory 2021-06-06 23:59:30 +08:00
Felix Fietkau
a964d352ea mt76: update to the latest version
Add mt7915e dependency on kmod-thermal

22b690334c0f mt76: mt7915: do not fail if the cooling device could not be registered

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-06 23:58:11 +08:00
Tomasz Maciej Nowak
98c438f62e x86: add Roqos Core RC10 ethernet interfaces
eth0 -> single NIC (i211at)
eth1 -> single NIC (i211at) -> 4-port unmanaged switch (BCM53125U)

Notes
UART is exposed on J4 connector, pinout starting from pin marked 1:
1. GND, 2. NC?, 3. NC?, 4. RX, 5. TX, 6. NC?
baud: 115200, parity: none, flow control: none
The board is setup by coreboot with UEFI. To enter setup screen hold
ESC key on boot.
The 5-LED multicolor matrix is attached on first I2C device named
"Synopsys DesignWare I2C adapter" at address 0x60. Controlling values
are stored in /opt/roqos/etc/rcLED.conf of original firmware.
Remember to backup the original firmware, there are no downloadable
copies.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-06-06 23:53:10 +08:00
Tomasz Maciej Nowak
331f12f14f kernel: package Synopsys Designware PCI to I2C controller
This is present on Roqos Core RC10 and needed to control LED matrix.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-06-06 23:52:42 +08:00
Tomasz Maciej Nowak
0001227867 mvebu: armada-37xx: remove ethernet alias patch
This patch has been added with initial support for ESPRESSObin board and
mistakenly it affects all boards with this SoC. Drop this patch since
the aliases are now in upstream dts for ESPRESSObin. If any boards are
relying on this, please add the respective alias to that board dts.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-06-06 23:51:59 +08:00
Mark Carroll
6e14ba5d2c x86: kernel: enable Fusion-MPT SAS driver
Compile in MPT SAS driver required to mount rootfs on some VMWare
systems (e.g. required for 1&1 IONOS).

Signed-off-by: Mark Carroll <git@markcarroll.net>
2021-06-06 23:46:08 +08:00
Alex Henrie
e138c49be4 ipq806x: fix LAN and WAN port assignments on TP-Link AD7200
LAN port 4 was swapped with the WAN port and the remaining three LAN
ports were numbered in reverse order from their labels on the case.

Fixes: 1a775a4fd0 ("ipq806x: add support for TP-Link Talon AD7200")
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
2021-06-06 23:42:18 +08:00
Martin Schiller
b27ebf1157 layerscape: armv8_64b: enable CONFIG_ARM_PSCI_CPUIDLE
Enable PSCI firmware based CPUidle driver.
PSCI firmware is the standard power management control for all ARM64
based platforms.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2021-06-06 23:40:46 +08:00
Michael Yartys
cd2b43e417 ath10k-ct: update to latest version
Changelog:
- ath10k-ct: Add security fixes.
- ath10k-ct: Add 5.12 kernel version.
- ath10k-ct: Fix the beacon/mcast/bcast override issue
- ath10k-ct 5.7: Fix setting mcast/bcast/beacon rate from debugfs.
- ath10k-ct: Add 5.11 driver.

Delete upstreamed patch and refresh the rest.

Runtime-tested on ipq806x (Netgear R7800).

Signed-off-by: Michael Yartys <michael.yartys@protonmail.com>
2021-06-06 23:40:24 +08:00
John Audia
b75cbf9c24 kernel: bump 5.4 to 5.4.124
Manually rebased:
  generic/hack-5.4/662-remove_pfifo_fast.patch

All other patches automatically rebased.

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>
[manual changes to ramips/patches-5.10/835-asoc-add-mt7620-support.patch]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-06-06 23:39:33 +08:00
Rui Salvaterra
47aa82d388 kernel: bump 5.10 to 5.10.42
Deleted (reverse-appliable):
generic/pending-5.10/110-perf-jevents-fix-getting-maximum-number-of-fds.patch

Manually refreshed:
ramips/patches-5.10/835-asoc-add-mt7620-support.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-06-06 23:38:29 +08:00
Shiji Yang
aeb00b9ccf ramips: split Youku YK1 to YK-L1 and YK-L1c
Device specifications:
* Model: Youku YK-L1/L1c
* CPU: MT7620A
* RAM: 128 MiB
* Flash: 32 MiB (YK-L1)/ 16 MiB (YK-L1c)
* LAN: 2* 10M/100M Ports
* WAN: 1* 10M/100M Port
* USB: 1* USB2.0
* SD: 1* MicroSD socket
* UART: 1* TTL, Baudrate 57600

Descriptions:
  Previous supported device YOUKU yk1 is actually Youku YK-L1. Though they look
  really different, the only hardware difference between the two models is flash
  size, YK-L1 has 32 MiB flash but YK-L1c has 16MiB. It seems that YK-L1c can
  compatible with YK-L1's firmware but it's better to split it to different models.

  It is easy to identify the models by looking at the label on the bottom of the
  device. The label has the model number "YK-L1" or "YK-L1c". Due to different flash
  sizes, YK-L1c that using previous YK-L1's firmware needs to apply "force update"
  to install compatible firmware, so please backup config file before system upgrade.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[use more specific name for DTSI]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-06 23:38:03 +08:00
Daniele Castro
d4873de8b7 bcm63xx: drop USB LEDs for Technicolor TG582N / ADB P.DG A4001N
Remove the USB status red and green LEDs for
- ADB P.DG A4001N A-000-1A1-AX
- Technicolor TG582N
- Technicolor TG582N Telecom Italia

After having mounted an SMD socket for the flash memory for
JTAG reverse engineering, and so be able to easly swap between
OpenWrt and the stock FW, it turned out that the stock FW does
not light up the red and green USB LEDs exactly as I remembered.

Signed-off-by: Daniele Castro <danielecastro@hotmail.it>
[improve commit title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-06 23:35:35 +08:00
Michael Pratt
a543b3201e ath79: use dynamic partitioning for TP-Link CPE series
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>
2021-06-06 23:35:12 +08:00
Lauro Moreno
02e44e044a ipq806x: add support for Askey RT4230W REV6
This adds support for the Askey RT4230W REV6
(Branded by Spectrum/Charter as RAC2V1K)

At this time, there's no way to reinstall the stock firmware so don't install
this on a router that's being rented.

Specifications:

    Qualcomm IPQ8065
    1 GB of RAM (DDR3)
    512 MB Flash (NAND)
    2x Wave 2 WiFi cards (QCA9984)
    5x 10/100/1000 Mbps Ethernet (Switch: QCA8337)
    1x LED (Controlled by a microcontroller that switches it between red and
        blue with different patterns)
    1x USB 3.0 Type-A
    12V DC Power Input
    UART header on PCB - pinout from top to bottom is RX, TX, GND, 5V
    Port settings are 115200n8

More information: https://forum.openwrt.org/t/askey-rac2v1k-support/15830
https://deviwiki.com/wiki/Askey_RAC2V1K

To check what revision your router is, restore one of these config backups
through the stock firmware to get ssh access then run
"cat /proc/device-tree/model".
https://forum.openwrt.org/t/askey-rac2v1k-support/15830/17
The revision number on the board doesn't seem to be very consistent so that's
why this is needed. You can also run printenv in the uboot console and if
machid is set to 177d, that means your router is rev6.

Note: Don't install this if the router is being rented from an ISP. The defined
partition layout is different from the OEM one and even if you changed the
layout to match, backing up and restoring the OEM firmware breaks /overlay so
nothing will save and the router will likely enter a bootloop.

How to install:

Method 1: Install without opening the case using SSH and tftp

    You'll need:
    RAC2V1K-SSH.zip:
https://github.com/lmore377/openwrt-rt4230w/blob/master/RAC2V1K-SSH.zip
    initramfs and sysupgrade images

    Connect to one of the router's LAN ports

    Download the RAC2V1K-SSH.zip file and restore the config file that
corresponds to your router's firmware (If you're firmware is newer than what's
in the zip file, just restore the 1.1.16 file)

    After a reboot, you should be able to ssh into the router with username:
"4230w" and password: "linuxbox" or "admin". Run the following commannds
     fw_setenv ipaddr 10.42.0.10 #IP of router, can be anything as long as
it's in the same subnet as the server
     fw_setenv serverip 10.42.0.1# #IP of tftp server that's set up in next
steps
     fw_setenv bootdelay 8
     fw_setenv bootcmd "tftpboot initramfs.bin; bootm; bootipq"

    Don't reboot the router yet.

    Install and set up a tftp server on your computer

    Set a static ip on the ethernet interface of your computer (use this for
serverip in the above commands)

    Rename the initramfs image to initramfs.bin, and host it with the tftp
server

    Reboot the router. If you set up everything right, the router led should
switch over to a slow blue glow which means openwrt is booted. If for some
reason the file doesn't get loaded into ram properly, it should still boot to
the OEM firmware.
    After openwrt boots, ssh into it and run these commands:
    fw_setenv bootcmd "setenv mtdids nand0=nand0 && setenv mtdparts
 mtdparts=nand0:0x1A000000@0x2400000(firmware) && ubi part firmware && ubi
read 0x44000000 kernel 0x6e0000 && bootm"
    fw_setenv bootdelay 2

    After openwrt boots up, figure out a way to get the sysupgrade file onto it
(scp, custom build with usb kernel module included, wget, etc.) then flash it
with sysupgrade. After it finishes flashing, it should reboot, the light should
start flashing blue, then when the light starts "breathing" blue that means
openwrt is booted.

Method 2: Install with serial access (Do this if something fails and you can't
boot after using method 1)

    You'll need:
    initramfs and sysupgrade images
    Serial access:
https://openwrt.org/inbox/toh/askey/askey_rt4230w_rev6#opening_the_case

    Install and set up a tftp server

    Set a static ip on the ethernet interface of your computer

    Download the initramfs image, rename it to initramfs.bin, and host it with
the tftp server

    Connect the wan port of the router to your computer

    Interrupt U-Boot and run these commands:
    setenv serverip 10.42.0.1 (You can use whatever ip you set for the computer)
    setenv ipaddr 10.42.0.10 (Can be any ip as long as it's in the same subnet)
    setenv bootcmd "setenv mtdids nand0=nand0 &&
set mtdparts mtdparts=nand0:0x1A000000@0x2400000(firmware) && ubi part firmware
&& ubi read 0x44000000 kernel 0x6e0000 && bootm"

    saveenv
    tftpboot initramfs.bin
    bootm

    After openwrt boots up, figure out a way to get the sysupgrade file onto it
(scp, custom build with usb kernel module included, wget, etc.) then flash it
with sysupgrade. After it finishes flashing, it should reboot, the light should
start flashing blue, then when the light starts "breathing" blue that means
openwrt is booted.

Signed-off-by: Lauro Moreno <lmore377@gmail.com>
[add entry in 5.10 patch, fix whitespace issues]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-06 23:34:22 +08:00
Tee Hao Wei
65ebf89f15 ramips: add support for Linksys EA8100 v1
Specifications:
- SoC: MT7621AT
- RAM: 256MB
- Flash: 128MB NAND
- Ethernet: 5 Gigabit ports
- WiFi: 2.4G/5G MT7615N
- USB: 1 USB 3.0, 1 USB 2.0

This device is very similar to the EA7300 v1/v2 and EA7500 v2.

Installation:

Upload the generated factory image through the factory web interface.

(following part taken from EA7300 v2 commit message:)

This might fail due to the A/B nature of this device. When flashing, OEM
firmware writes over the non-booted partition. If booted from 'A',
flashing over 'B' won't work. To get around this, you should flash the
OEM image over itself. This will then boot the router from 'B' and
allow you to flash OpenWRT without problems.

Reverting to factory firmware:

Hard-reset the router three times to force it to boot from 'B.' This is
where the stock firmware resides. To remove any traces of OpenWRT from
your router simply flash the OEM image at this point.

With thanks to Leon Poon (@LeonPoon) for the initial bringup.

Signed-off-by: Tee Hao Wei <angelsl@in04.sg>
[add missing entry in 10_fix_wifi_mac]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-06 23:28:37 +08:00
Jonathan Sturges
46f4d99cf6 ramips: add support for Amped Wireless ALLY router and extender
Amped Wireless ALLY is a whole-home WiFi kit, with a router (model
ALLY-R1900K) and an Extender (model ALLY-00X19K).  Both are devices are
11ac and based on MediaTek MT7621AT and MT7615N chips.  The units are
nearly identical, except the Extender lacks a USB port and has a single
Ethernet port.

Specification:
- SoC: MediaTek MT7621AT (2C/4T) @ 880MHz
- RAM: 128MB DDR3 (Nanya NT5CC64M16GP-DI)
- FLASH: 128MB NAND (Winbond W29N01GVSIAA)
- WiFi: 2.4/5 GHz 4T4R
  - 2.4GHz MediaTek MT7615N bgn
  - 5GHz MediaTek MT7615N nac
- Switch: SoC integrated Gigabit Switch
- USB: 1x USB3 (Router only)
- BTN: Reset, WPS
- LED: single RGB
- UART:  through-hole on PCB.
   J1: pin1 (square pad, towards rear)=3.3V, pin2=RX,
   pin3=GND, pin4=TX.  Settings: 57600/8N1.

Note regarding dual system partitions
-------------------------------------

The vendor firmware and boot loader use a dual partition scheme.  The boot
partition is decided by the bootImage U-boot environment variable: 0 for
the 1st partition, 1 for the 2nd.

OpenWrt does not support this scheme and will always use the first OS
partition.  It will set bootImage to 0 during installation, making sure
the first partition is selected by the boot loader.

Also, because we can't be sure which partition is active to begin with, a
2-step flash process is used.  We first flash an initramfs image, then
follow with a regular sysupgrade.

Installation:

Router (ALLY-R1900K)
1) Install the flashable initramfs image via the OEM web-interface.
  (Alternatively, you can use the TFTP recovery method below.)
  You can use WiFi or Ethernet.
  The direct URL is:  http://192.168.3.1/07_06_00_firmware.html
  a. No login is needed, and you'll be in their setup wizard.
  b. You might get a warning about not being connected to the Internet.
  c. Towards the bottom of the page will be a section entitled "Or
  Manually Upgrade Firmware from a File:" where you can manually choose
  and upload a firmware file.
  d: Click "Choose File", select the OpenWRT "initramfs" image and click
  "Upload."
2) The Router will flash the OpenWrt initramfs image and reboot.  After
  booting, LuCI will be available on 192.168.1.1.
3) Log into LuCI as root; there is no password.
4) Optional (but recommended) is to backup the OEM firmware before
  continuing; see process below.
5) Complete the Installation by flashing a full OpenWRT image.  Note:
  you may use the sysupgrade command line tool in lieu of the UI if
  you prefer.
  a.  Choose System -> Backup/Flash Firmware.
  b.  Click "Flash Image..." under "Flash new firmware image"
  c.  Click "Browse..." and then select the sysupgrade file.
  d.  Click Upload to upload the sysupgrade file.
  e.  Important:  uncheck "Keep settings and retain the current
      configuration" for this initial installation.
  f.  Click "Continue" to flash the firmware.
  g.  The device will reboot and OpenWRT is installed.

Extender (ALLY-00X19K)
1) This device requires a TFTP recovery procedure to do an initial load
  of OpenWRT.  Start by configuring a computer as a TFTP client:
  a. Install a TFTP client (server not necessary)
  b. Configure an Ethernet interface to 192.168.1.x/24; don't use .1 or .6
  c. Connect the Ethernet to the sole Ethernet port on the X19K.
2) Put the ALLY Extender in TFTP recovery mode.
  a. Do this by pressing and holding the reset button on the bottom while
  connecting the power.
  b. As soon as the LED lights up green (roughly 2-3 seconds), release
  the button.
3) Start the TFTP transfer of the Initramfs image from your setup machine.
For example, from Linux:
tftp -v -m binary 192.168.1.6 69 -c put initramfs.bin
4) The Extender will flash the OpenWrt initramfs image and reboot.  After
booting, LuCI will be available on 192.168.1.1.
5) Log into LuCI as root; there is no password.
6) Optional (but recommended) is to backup the OEM firmware before
  continuing; see process below.
7) Complete the Installation by flashing a full OpenWRT image.  Note: you
may use the sysupgrade command line tool in lieu of the UI if you prefer.
  a.  Choose System -> Backup/Flash Firmware.
  b.  Click "Flash Image..." under "Flash new firmware image"
  c.  Click "Browse..." and then select the sysupgrade file.
  d.  Click Upload to upload the sysupgrade file.
  e.  Important:  uncheck "Keep settings and retain the current
      configuration" for this initial installation.
  f.  Click "Continue" to flash the firmware.
  g.  The device will reboot and OpenWRT is installed.

Backup the OEM Firmware:
-----------------------

There isn't any downloadable firmware for the ALLY devices on the Amped
Wireless web site. Reverting back to the OEM firmware is not possible
unless we have a backup of the original OEM firmware.

The OEM firmware may be stored on either /dev/mtd3 ("firmware") or
/dev/mtd6 ("oem").  We can't be sure which was overwritten with the
initramfs image, so backup both partitions to be safe.

  1) Once logged into LuCI, navigate to System -> Backup/Flash Firmware.
  2) Under "Save mtdblock contents," first select "firmware" and click
  "Save mtdblock" to download the image.
  3) Repeat the process, but select "oem" from the pull-down menu.

Revert to the OEM Firmware:
--------------------------
* U-boot TFTP:
  Follow the TFTP recovery steps for the Extender, and use the
  backup image.

* OpenWrt "Flash Firmware" interface:
  Upload the backup image and select "Force update"
  before continuing.

Signed-off-by: Jonathan Sturges <jsturges@redhat.com>
2021-06-06 23:25:05 +08:00
Aashish Kulkarni
2de59b2e1a ramips: add support for Linksys E5600
This submission relied heavily on the work of Linksys EA7300 v1/ v2.

Specifications:

* SoC: MediaTek MT7621A (880 MHz 2c/4t)
* RAM: 128M DDR3-1600
* Flash: 128M NAND
* Eth: MediaTek MT7621A (10/100/1000 Mbps x5)
* Radio: MT7603E/MT7613BE (2.4 GHz & 5 GHz)
* Antennae: 2 internal fixed in the casing and 2 on the PCB
* LEDs: Blue (x4 Ethernet)
  Blue+Orange (x2 Power + WPS and Internet)
* Buttons: Reset (x1)
  WPS (x1)

Installation:

Flash factory image through GUI.

This device has 2 partitions for the firmware called firmware and
alt_firmware. To successfully flash and boot the device, the device
should have been running from alt_firmware partition. To get the device
booted through alt_firmware partition, download the OEM firmware from
Linksys website and upgrade the firmware from web GUI. Once this is done,
flash the OpenWrt Factory firmware from web GUI.

Reverting to factory firmware:

1. Boot to 'alt_firmware'(where stock firmware resides) by doing one of
   the following:
   Press the "wps" button as soon as power LED turns on when booting.
   (OR) Hard-reset the router consecutively three times to force it to
   boot from 'alt_firmware'.
2. To remove any traces of OpenWRT from your router simply flash the OEM
   image at this point.

Signed-off-by: Aashish Kulkarni <aashishkul@gmail.com>

[fix hanging indents and wrap to 74 characters per line,
 add kmod-mt7663-firmware-sta package for 5GHz STA mode to work,
 remove sysupgrade.bin and concatenate IMAGES instead in mt7621.mk,
 set default-state "on" for power LED]
Signed-off-by: Sannihith Kinnera <digislayer@protonmail.com>

[move check-size before append-metadata, remove trailing whitespace]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-06 23:20:49 +08:00
Felix Fietkau
bf2e93ffe5 hostapd: configure inter-AP communication interface for 802.11r
In setups using VLAN bridge filtering, hostapd may need to communicate using
a VLAN interface on top of the bridge, instead of using the bridge directly

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-06 23:17:51 +08:00
Philipp Borgers
d440482491 ramips: enable additional UART on MikroTik RouterBOARD M33G
The RouterBOARD M33G has an additional UART that should be enabled
by default.

Signed-off-by: Philipp Borgers <borgers@mi.fu-berlin.de>
2021-06-06 23:17:31 +08:00
Zoltan HERPAI
cf2cd12c91 ath79: add support for Qualcomm AP143 reference boards
Specifications:

SoC:    QCA9533
DRAM:   32Mb DDR1
Flash:  8/16Mb SPI-NOR
LAN:    4x 10/100Mbps via AR8229 switch (integrated into SoC)
        on GMII
WAN:    1x 10/100Mbps via MII
WLAN:   QCA9530
USB:    1x 2.0
UART:   standard QCA UART header
JTAG:   yes
Button: 1x WPS, 1x reset
LEDs:   8x LEDs

A version with 4Mb flash is also available, but due to lack of
enough space it's not supported.

As the original flash layout does not provide enough space for
the kernel (1472k), the firmware uses OKLI and concat flash to
overcome the limitation without changing the boot address of the
bootloaders.

Installation:

1. Original bootloader

  Connect the board to ethernet
  Set up a server with an IP address of 192.168.1.10
  Make the openwrt-ath79-generic-qca_ap143-8m-squashfs-factory.bin
  available via TFTP

  tftpboot 0x80060000 openwrt-ath79-generic-qca_ap143-8m-squashfs-factory.bin
  erase 0x9f050000 +$filesize
  cp.b $fileaddr 0x9f050000 $filesize

  Reboot the board.

2. pepe2k's u-boot_mod

  Connect the board to ethernet
  Set up a server with an IP address of 192.168.1.10
  Make the openwrt-ath79-generic-qca_ap143-8m-squashfs-factory.bin
  available via TFTP, as "firmware.bin"

  run fw_upg

  Reboot the board.

For the 16M version of the board, please use
openwrt-ath79-generic-qca_ap143-16m-squashfs-factory.bin

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
[use fwconcatX names, drop redundant uart status, fix IMAGE_SIZE,
set up IMAGE/factory.bin without metadata]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-06-06 23:17:12 +08:00
Sven Eckelmann
039af73f4a ath79: Add support for OpenMesh A40
Device specifications:
======================

* Qualcomm/Atheros QCA9558 ver 1 rev 0
* 720/600/240 MHz (CPU/DDR/AHB)
* 128 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2T2R 2.4 GHz Wi-Fi (11n)
* 2T2R 5 GHz Wi-Fi (11ac)
* multi-color LED (controlled via red/green/blue GPIOs)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default))
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x ethernet
  - eth0
    + Label: Ethernet 1
    + AR8035 ethernet PHY (RGMII)
    + 10/100/1000 Mbps Ethernet
    + 802.3af POE
    + used as WAN interface
  - eth1
    + Label: Ethernet 2
    + AR8035 ethernet PHY (SGMII)
    + 10/100/1000 Mbps Ethernet
    + used as LAN interface
* 1x USB
* internal antennas

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to the
device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-06-06 23:16:29 +08:00
Sven Eckelmann
3d6aff6132 ath79: Add support for OpenMesh A60
Device specifications:
======================

* Qualcomm/Atheros QCA9558 ver 1 rev 0
* 720/600/240 MHz (CPU/DDR/AHB)
* 128 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 3T3R 2.4 GHz Wi-Fi (11n)
* 3T3R 5 GHz Wi-Fi (11ac)
* multi-color LED (controlled via red/green/blue GPIOs)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default))
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x ethernet
  - eth0
    + Label: Ethernet 1
    + AR8035 ethernet PHY (RGMII)
    + 10/100/1000 Mbps Ethernet
    + 802.3af POE
    + used as WAN interface
  - eth1
    + Label: Ethernet 2
    + AR8031 ethernet PHY (SGMII)
    + 10/100/1000 Mbps Ethernet
    + used as LAN interface
* 1x USB
* internal antennas

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to the
device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-06-06 23:16:01 +08:00
Ansuel Smith
a803926710 mac80211: split ath patch in dedicated subdir
The ath patch number is already large and adding other patch for ath11k
will add more confusion with the patch numbering.
Since the support of ath11k based device is imminent, prepare the mac80211
ath patch dir and split it in the dedicated ath5k, ath9k, ath10k and ath11k
(empty for now).

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-06-06 23:13:55 +08:00
Felix Fietkau
fa37d65353 hostapd: fix bringing up vlan interfaces with the no-bridge option
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-06 23:13:36 +08:00
Felix Fietkau
cb9cc416ec netifd: update to the latest version
61a71e5e49c3 bridge: dynamically create vlans for hotplug members
cb6ee9608e10 bridge: fix dynamic delete of hotplug vlans
7f199050f395 wireless: pass the real network ifname to the setup script
50381d0a2998 bridge: allow adding/removing VLANs to configured member ports via hotplug

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-06 23:13:16 +08:00
John Crispin
ee5057056c hostapd: fix radius problem due to invalid attributes
The offending commit caused the configuration file to contain:
  radius_auth_req_attr=
  radius_acct_req_attr=
which cause hostapd to add an ATTR of type 0 into the messages.

hostapd: RADIUS message: code=4 (Accounting-Request) identifier=0 length=93
hostapd:    Attribute 40 (Acct-Status-Type) length=6
hostapd:       Value: 7
hostapd:    Attribute 30 (Called-Station-Id) length=28
hostapd:       Value: 'C4-41-1E-F5-2D-55:OpenWifi'
hostapd:    Attribute 61 (NAS-Port-Type) length=6
hostapd:       Value: 19
hostapd:    Attribute 0 (?Unknown?) length=3    <----------------
hostapd:    Attribute 55 (Event-Timestamp) length=6
hostapd:       Value: 1622726457
hostapd:    Attribute 41 (Acct-Delay-Time) length=6
hostapd:       Value: 0
hostapd:    Attribute 44 (Acct-Session-Id) length=18
hostapd:       Value: '9B5961E7235AAEC6'

Fixes: 3bd6c8c728 (hostapd: add additional radius options)
Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-04 19:58:33 +08:00
Felix Fietkau
79467194c9 mac80211: fix typo
Remove stray parenthesis

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-03 12:09:32 +08:00
David Bauer
6ebe11b1df kernel: ar8216: remove soft_reset
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>
2021-06-03 12:09:15 +08:00
David Bauer
838f04d78d kernel: ar8216: add get_features method
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>
2021-06-03 12:09:01 +08:00
Felix Fietkau
a55e794a1d mt76: update to the latest version
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-02 23:14:29 +08:00
John Crispin
723e2733e9 hostapd: add eap_server support
This makes it possible to avoid using a RADIUS server for WPA enterprise authentication

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-02 23:13:49 +08:00
Felix Fietkau
80a8cf3dd8 hostapd: add default values for r0kh/r1kh
This allows WPA enterprise roaming in the same mobility domain without any
manual key configuration (aside from radius credentials)

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-02 23:13:39 +08:00
Felix Fietkau
0e652dae09 hostapd: add support for specifying the maxassoc parameter as a device option
It allows enforcing a limit on associated stations to be enforced for the
full device, e.g. in order to deal with hardware/driver limitations

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-02 23:13:12 +08:00
Felix Fietkau
251ee49bdb hostapd: add support for configuring proxy ARP
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-02 23:11:46 +08:00
Felix Fietkau
bf98648b1b hostapd: add configurable rssi thresholds for rejecting assoc/probe requests
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-02 23:11:10 +08:00
Felix Fietkau
06688f0951 hostapd: add support for configuring the beacon rate
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-02 23:09:34 +08:00
Felix Fietkau
42318303ea mac80211: do not enable VHT in the default config on 2.4 GHz
Some drivers advertise it, but it's not supported at the moment

Reported-by: John Thomson <git@johnthomson.fastmail.com.au>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-02 23:08:26 +08:00
Felix Fietkau
2b1ce908e9 mac80211: fix detecting VHT capabilities when generating the default config
The colon does not directly follow the "VHT Capabilities" string

Reported-by: John Thomson <git@johnthomson.fastmail.com.au>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-02 23:08:13 +08:00
Felix Fietkau
c077ea44ee kernel: backport fix for hang on napi_disable with threaded NAPI
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-06-02 23:08:07 +08:00
Tianling Shen
111ab1fd4c config: enable KERNEL_MIPS_FP_SUPPORT for mips by default
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 0110e26a00)
2021-05-31 19:23:42 +08:00
Tianling Shen
cb4554e221 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-31 18:55:44 +08:00
AmadeusGhost
3ff11b8cc8 ipq806x: sync upstream source code 2021-05-31 17:26:19 +08:00
Adrian Schmutzler
0344f9c0b0 layerscape: refresh kernel config
Run `make kernel_oldconfig CONFIG_TARGET=subtarget`

This mostly aims at getting rid of redundant/unneeded symbols.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 296aa0781b)
2021-05-30 22:28:43 +08:00
Yangbo Lu
b059d53bb3 kernel: add missing symbol CONFIG_AHCI_XGENE
Add missing symbol CONFIG_AHCI_XGENE.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[also add for 5.10, remove from layerscape target config]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 37b5f7c267)
2021-05-30 22:28:38 +08:00
John Audia
4ee6d7b89d kernel: bump 5.4 to 5.4.123
All patches automatically rebased.

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>
(cherry picked from commit 19bf164291)
2021-05-30 22:28:33 +08:00
John Audia
10ddddf5ba kernel: bump 5.4 to 5.4.122
All patches automatically rebased.

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>
(cherry picked from commit 03bd089950)
2021-05-30 22:28:26 +08:00
Kevin Darbyshire-Bryant
156673f0c9 kernel: bump 5.10 to 5.10.41
No patches needed refreshing.

Tested-on: X86_64 APU2

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-05-29 23:20:31 +08:00
Adrian Schmutzler
5b7b286708 hostapd: update to version 2021-05-22
This update only adds one commit:
b102f19bcc53 tests: Opportunistic Wireless Encryption - SA Query

The main reason for the bump is to have a newer PKG_SOURCE_DATE,
so we can reset PKG_RELEASE to 1 (this has not been done for the
most recent bump), and replace it with AUTORELEASE.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-05-29 23:20:17 +08:00
AmadeusGhost
4d9dca37d2 Revert "base-files: generate network config with "device" options"
This reverts commit 45fc103002.
2021-05-28 21:29:34 +08:00
Thomas Aldrian
2bc0318469 ramips: add support for Wavlink WL-WN578A2
This commit adds support for the Wavlink WL-WN578A2 dual-band wall-plug
wireless router. This device is also sold under the name SilverCrest
SWV 733 A2.

Device Specifications:

- CPU: MediaTek MT7628AN (580MHz)
- Flash: 8MB
- RAM: 64MB
- Bootloader: U-Boot
- Ethernet: 2x 10/100 Mbps
- 2.4 GHz: 802.11b/g/n SoC
- 5 GHz: 802.11a/n/ac MT7610E
- Antennas: internal
- 4 green LEDs: WPS/Power, LAN, WAN, wifi-low, wifi-med, wifi-high
- Buttons: Reset, WPS
- Sliding mode switch: AP, repeater, client
- Small sliding power switch

Flashing instructions:

U-Boot launches TFTP client if WPS button is pressed during power-on.
Configure as follows:

- Server IP: 192.168.10.100
- Filename (rename sysupgrade file to this): firmware.bin

Flashing should not take more than a minute, device will reboot
automatically.

Signed-off-by: Thomas Aldrian <dev.aldrian@gmail.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-28 15:29:39 +08:00
Ewan Parker
a2565f0192 ramips: add support for Hi-Link HLK-7688A
Specifications:

  - SoC: MediaTek MT7688AN
  - RAM: 128 MB
  - Flash: 32 MB
  - Ethernet: 5x 10/100 (1x WAN, 4x LAN)
  - Wireless: built in 2.4GHz (bgn)
  - USB: 1x USB 2.0 port
  - Buttons: 1x Reset
  - LEDs: 1x (WiFi)

Flash instructions:

  - Configure TFTP server with IP address 10.10.10.3
  - Name the firmware file as firmware.bin
  - Connect any Ethernet port to the TFTP server's LAN
  - Choose option 2 in U-Boot
  - Alternatively choose option 7 to upload firmware to the built-in
    web server

MAC addresses as verified by OEM firmware:

  use   address   source
  2g    *:XX      factory 0x4
  LAN   *:XX+1    factory 0x28
  WAN   *:XX+1    factory 0x2e

Notes:

This board is ostensibly a module containing the MediaTek MT7688AN SoC,
128 MB DDR2 SDRAM and 32 MB flash storage.  The SoC can be operated in
IoT Gateway Mode or IoT Device Mode.

From some vendors the U-Boot that comes installed operates on UART 2
which is inaccessible in gateway mode and operates unreliably in the
Linux kernel when using more than 64 MB of RAM.  For those, updating
U-Boot is recommended.

Signed-off-by: Ewan Parker <ewan@ewan.cc>
[add WLAN to 01_leds]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-28 15:29:28 +08:00
Rui Salvaterra
6e99b93efc kernel: bump 5.10 to 5.10.40
Automatically refreshed:
generic/hack-5.10/902-debloat_proc.patch
generic/pending-5.10/110-perf-jevents-fix-getting-maximum-number-of-fds.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Signed-off-by: Beginner <70857188+Beginner-Go@users.noreply.github.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-28 15:27:57 +08:00
Rafał Miłecki
45fc103002 base-files: generate network config with "device" options
Replace "ifname" with "device" as netifd has been recently patches to
used the later one. It's more clear and accurate.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-05-27 23:25:28 +08:00
Leon M. George
5fd5c966db ramips: add support for Cudy WR2100
Specifications

  SoC:       MT7621
  CPU:       880 MHz
  Flash:     16 MiB
  RAM:       128 MiB
  WLAN:      2.4 GHz b/g/n, 5 GHz a/n/ac
             MT7603E / MT7615E
  Ethernet:  5x Gbit ports

Installation

There are two known options:
1) The Luci-based UI.
2) Press and hold the reset button during power up.
   The router will request 'recovery.bin' from a TFTP server at
   192.168.1.88.

Both options require a signed firmware binary.
The openwrt image supplied by cudy is signed and can be used to
install unsigned images.

R4 & R5 need to be shorted (0-100Ω) for the UART to work.

Signed-off-by: Leon M. George <leon@georgemail.eu>
[remove non-required switch-port node - remove trgmii phy-mode]
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-27 23:24:56 +08:00
Georgi Vlaev
7aacb0841c ramips: add support for TP-Link Archer C6U v1 (EU)
This patch adds support for TP-Link Archer C6U v1 (EU).
The device is also known in some market as Archer C6 v3.
This patch supports only Archer C6U v1 (EU).

Specifications:
--------------

* SoC: Mediatek MT7621AT 2C2T, 880MHz
* RAM: 128MB DDR3
* Flash: 16MB SPI NOR flash (Winbond 25Q128)
* WiFi 5GHz: Mediatek MT7613BEN (2x2:2)
* WiFi 2.4GHz: Mediatek MT7603EN (2x2:2)
* Ethernet: MT7630, 5x 1000Base-T.
* LED: Power, WAN, LAN, WiFi 2GHz and 5GHz, USB
* Buttons: Reset, WPS.
* UART: Serial console (115200 8n1), J1(GND:3)
* USB: One USB2 port.

Installation:
------------

Install the OpenWrt factory image for C6U is from the
TP-Link web interface.

1) Go to "Advanced/System Tools/Firmware Update".
2) Click "Browse" and upload the OpenWrt factory image:
openwrt-ramips-mt7621-tplink_archer-c6u-v1-squashfs-factory.bin.
3) Click the "Upgrade" button, and select "Yes" when prompted.

Recovery to stock firmware:
--------------------------

The C6U bootloader has a failsafe mode that provides a web
interface (running at 192.168.0.1) for reverting back to the
stock TP-Link firmware. The failsafe interface is triggered
from the serial console or on failed kernel boot. Unfortunately,
there's no key combination that enables the failsafe mode. This
gives us two options for recovery:

1) Recover using the serial console (J1 header).
The recovery interface can be selected by hitting 'x' when
prompted on boot.

2) Trigger the bootloader failsafe mode.
A more dangerous option is force the bootloader into
recovery mode by erasing the OpenWrt partition from the
OpenWrt's shell - e.g "mtd erase firmware". Please be
careful, since erasing the wrong partition can brick
your device.

MAC addresses:
-------------

OEM firmware configuration:
D8:07:B6:xx:xx:83 : 5G
D8:07:B6:xx:xx:84 : LAN (label)
D8:07:B6:xx:xx:84 : 2.4G
D8:07:B6:xx:xx:85 : WAN

Signed-off-by: Georgi Vlaev <georgi.vlaev@konsulko.com>
2021-05-27 23:23:17 +08:00
Vinay Patil
1dd3ad705e ramips: add support for TP-Link Archer A6 v3
The patch adds support for the TP-Link Archer A6 v3
The router is sold in US and India with FCC ID TE7A6V3

Specification
-------------
MediaTek MT7621 SOC
RAM:         128MB DDR3
SPI Flash:   W25Q128 (16MB)
Ethernet:    MT7530 5x 1000Base-T
WiFi 5GHz:   Mediatek MT7613BE
WiFi 2.4GHz: Mediatek MT7603E
UART/Serial: 115200 8n1

Device Configuration & Serial Port Pins
---------------------------------------
ETH Ports:    LAN4 LAN3 LAN2 LAN1 WAN
             _______________________
             |                     |
Serial Pins: |   VCC GND TXD RXD   |
             |_____________________|

LEDs:         Power Wifi2G Wifi5G LAN WAN

Build Output
------------
The build will generate following set of files
[1] openwrt-ramips-mt7621-tplink_archer-a6-v3-initramfs-kernel.bin
[2] openwrt-ramips-mt7621-tplink_archer-a6-v3-squashfs-factory.bin
[3] openwrt-ramips-mt7621-tplink_archer-a6-v3-squashfs-sysupgrade.bin

How to Use - Flashing from TP-Link Web Interface
------------------------------------------------
* Go to "Advanced/System Tools/Firmware Update".
* Click "Browse" and upload the OpenWrt factory image: factory.bin[2]
* Click the "Upgrade" button, and select "Yes" when prompted.

TFTP Booting
------------
Setup a TFTP boot server with address 192.168.0.5.
While starting U-boot press '4' key to stop autoboot.
Copy the initramfs-kernel.bin[1] to TFTP server folder, rename as test.bin
From u-boot command prompt run tftpboot followed by bootm.

Recovery
--------
Archer A6 V3 has recovery page activated if SPI booting from flash fails.
Recovery page can be activated from serial console only.
Press 'x' while u-boot is starting
Note: TFTP boot can be activated only from u-boot serial console.
Device recovery address: 192.168.0.1

Thanks to: Frankis for Randmon MAC address fix.

Signed-off-by: Vinay Patil <post2vinay@gmail.com>
[remove superfluous factory image definition, whitespacing]
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-27 23:19:34 +08:00
David Bauer
a9508640f2 hostapd: ACS: fix channel 100 frequency
Channel 100 is a valid channel to choose for 80MHz operation. However,
it's assigned to 5500 MHz, not 5550MHz. In fact, there is no channel
assigned to this frequency.

Fix this obbvious typo to allow ACS to select channel 100 for 80 MHz
operation again.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-27 23:17:22 +08:00
David Bauer
8371087e83 ath79: add missing v5.4 SPI chipselect patch
The patch was not applied to the v5.4 target, thus breaking Kernel 5.4
on devices with multiple flash chips attache to the SPI bus.

Fixes commit bd54e73954 ("ath79: set number of chipselect lines")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-27 23:16:22 +08:00
Felix Fietkau
514040a508 mac80211: sync nl80211.h with upstream and backport a WPA3 related commit
Fixes compatibility issues with the latest hostapd update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-27 23:12:26 +08:00
Tianling Shen
ae7e394924 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-27 21:32:11 +08:00
Piotr Dymacz
cb8d9d12e4 imx6: image: drop BOOT_SCRIPT and fix DEVICE_NAME
This fixes Gateworks Ventana 'DEVICE_NAME' variable which value wasn't
adjusted during migration to common 'vendor_model' image naming scheme
(fixes: FS#3825).

Furthermore, drop unused 'Build/boot-scr' recipe, get rid of redundant
'BOOT_SCRIPT' variable (use already provided 'DEVICE_NAME' instead) and
drop custom 'DEVICE_NAME' variable from SolidRun CuBox-i image recipe
(use default one instead).

Fixes: cbc8bcfbaa ("imx6: image: use vendor_model scheme")
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-05-26 23:32:41 +08:00
Felix Fietkau
427fa52a07 mac80211: add more HE capabilities
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:32:16 +08:00
Felix Fietkau
08fad0e611 mac80211: fix center freq selection for 6 GHz
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:31:52 +08:00
Felix Fietkau
eb0281c159 hostapd: fix adding back stations after a missed deauth/disassoc
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:31:23 +08:00
Felix Fietkau
6081650a6b hostapd: update to version 2021-05-21
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:31:01 +08:00
Felix Fietkau
f2b3d91186 mac80211: set hostapd op_class for 6 GHz
This is needed to disambiguate it from 5 GHz channels

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:30:33 +08:00
Felix Fietkau
6cfc35f9ff mac80211: rework default config script
Emit the new band option instead of hwmode
Support 6 GHz band and HE options

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:30:05 +08:00
Felix Fietkau
76a343ab9f mac80211: make use of the new 'band' option
Use it to look up frequencies only in the configured band to better deal
with channel number overlap

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:26:59 +08:00
Felix Fietkau
1cd95a6eef mac80211: add 6 GHz support to mac80211_hwsim
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:26:28 +08:00
Felix Fietkau
d2dc213235 wireless-regdb: update to version 2021.04.21
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:26:11 +08:00
Andre Heider
8d900ceffb iw: update to 8fab0c9e
This fixes `iw dev wlan0-mesh station dump`.

8fab0c9 iw: fix ftm_request missing arguments segfault
e816fbc iw: fix mgmt dump missing arguments segfault
5d9d1b8 iw: Fix timestamp output on 32-bit architectures
4b25ae3 iw: fix pointer arithmetic in __print_he_capa
c3df363 iw: add option to print human readable event time
cd64525 iw: print ctrl port tx status event
0ba98b9 iw: use correct type in policy check for mesh
9e38dee iw: scan: fixup HE caps whitespace
17e8564 iw: scan: parse HE capabilities
5735e58 iw: util: factor out HE capability parser
6d8d507 iw: scan: add extension tag parsing
b4e1ec4 man: update wikipage URL, reformat SEE ALSO section
c56036a iw: enable 80MHz support for 6GHz band 11s mesh
fa72728 iw: handle positive error codes gracefully
7ba9093 iw: scan: add flag for scanning colocated ap
5ec60ed iw: Add 'coloc' and 'flush' options to sched_scan
f8ade75 iw: update wikipage URL
b6f2dac iw: Add support for specifying the 160MHz bandwidth when setting the channel/frequency

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-05-26 23:25:43 +08:00
Felix Fietkau
196e7810fd hostapd: add support for configuring rts threshold
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:25:07 +08:00
Felix Fietkau
0a7d2a8a48 hostapd: fix max_oper_chwidth setting for HE
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:22:05 +08:00
John Crispin
35fda3128f hostapd: add additional radius options
- add functionality to configure RADIUS NAS-Id and Operator-Name
- add functionality to configure RADIUS accounting interval
- enable RADIUS "Chargeable User Identity"

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:21:38 +08:00
Felix Fietkau
79b9f18704 hostapd: add extra options for hotspot 2.0 / interworking
Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:20:44 +08:00
Felix Fietkau
6a753418fb hostapd: report radar detected events via ubus
Events are reported on all BSS interfaces

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:20:17 +08:00
Felix Fietkau
fad65ee569 hostapd: improve channel switch support
Instead of requiring the user to call it on each BSS individually,
run it on all BSSs internally.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:19:03 +08:00
Felix Fietkau
1bf5fa7fe7 hostapd: add missing inline stubs for ubus vlan event support
Only used when building without ubus support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-26 23:18:34 +08:00
John Crispin
4eb9be22c8 hostapd: fix civic location option
Signed-off-by: John Crispin <john@phrozen.org>
2021-05-26 23:18:13 +08:00
ElonH
c8924355df sdk: generate correct base feed
immortalwrt default branch is not master
2021-05-26 22:34:13 +08:00
Tianling Shen
1a38b98e32 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-26 17:14:27 +08:00
Rafał Miłecki
eb5dffead4 netifd: update to the latest master
899c2a4 interface: support "device" attribute and deprecate "ifname"
62e3cb5 scripts/netifd-wireless.sh: add support for specifying the operating band

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-26 17:11:48 +08:00
Sebastian Kemper
0fca27a2af build: fix regression for kernels < 5.10
This fixes a regression introduced with commit
5ed1e5140a ("build: build kernel image
before building modules/packages").

Before this commit the make target would always include "modules",
resulting in a MODPOST and a complete Module.symvers file. Since this
commit a MODPOST of the kernel modules is not guaranteed for kernels <
5.10. This results in some broken SDKs in which external packages that
depend on exported symbols from kernel modules fail to compile.

Adding "modules" back to the calls to the CompileImage defines fixes the
regression. For kernels > 5.10 this is not needed, but it doesn't cause
any harm either.

Tested with kernels 5.4.x and 5.10.x.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-26 17:11:37 +08:00
Felix Fietkau
0dbcbdbfb3 kernel: fix a perf build error
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-26 17:11:35 +08:00
AmadeusGhost
7f6624aaa0 ramips: jcg q20: improve support with upstream review
Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-05-24 23:40:10 +08:00
INAGAKI Hiroshi
9e711faa54 base-files: fix configuration generation of network if "bridge" exists
After the commit 43fc720657
("base-files: generate "device UCI type section for bridge"), the wrong
network configuration is generated for the devices that already have the
bridge device section for VLAN, such as the devices in realtek target.

As a result, the bridge device by additional "device" section is
specified to the "ports" option in the "bridge-vlan" section and netifd
shuts down the switch and the ethernet when the network service started.

Fixes: 43fc720657 ("base-files: generate "device" UCI type section for bridge")
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[rmilecki: use $ports for generate_bridge_vlan argument]
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-05-24 23:35:18 +08:00
Rafał Miłecki
ddd9b9c557 base-files: support setting bridge MAC address
Fixes: 43fc720657 ("base-files: generate "device" UCI type section for bridge")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-05-24 23:35:06 +08:00
Hauke Mehrtens
3c8d88893f treewide: Mark packages nonshared if they depend on @TARGET_
This marks all packages which depend on a target with @TARGET nonshared.
If they are not marked nonshared they would be build by the SDK build
and if this happens with a different SDK, then the SDK from the target
the package depends on, the package would not be added to the index.

This should fix the image builder for some of these packages.

This should fix the image builder at least for bcm27xx/bcm2710 and
bcm4908/generic.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-24 23:34:52 +08:00
Hauke Mehrtens
b1c19812c4 mediatek: update mtd parser patches
This updates the patches to match the versions included in the mtd
subsystem for the next Linux kernel version.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-24 23:31:13 +08:00
Tianling Shen
329714b778 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-24 00:19:38 +08:00
Daniel González Cabanelas
ad9c1f7445 kernel: backport "mvmdio avoid error message for optional IRQ"
Rid of kernel error message:
  [    0.780828] orion-mdio d0072004.mdio: IRQ index 0 not found

on Marvell targets backporting the kernel commit fa2632f74e57

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2021-05-23 23:31:24 +08:00
DENG Qingfang
63fdcde19e generic: mt7530: fix EEE patch
The higher 16-bit of EEE register was overwritten by mistake, fix that.

Fixes: 5b9ba4a93e ("generic: mt7530: support adjusting EEE")
Signed-off-by: DENG Qingfang <dqfext@gmail.com>
2021-05-23 23:30:43 +08:00
Robert Marko
0466a491f5 mac80211: fix ATH_REG_DYNAMIC_USER_REG_HINTS
ATH_REG_DYNAMIC_USER_REG_HINTS is currently not being set as mac80211
tries to set it as m which is not possible as its boolean only.

Since its used alongside user regulatory, move it to USER_REGD.

This is required for ath11k to accept regulatory changes, otherwise
it wont accept any changes and will simply force US.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2021-05-23 23:30:13 +08:00
Robert Marko
8972c71594 mvebu: 5.10 fix DVFS caused random boot crashes
5.10.37 and 5.4.119 introduced a lot of DVFS changes for Armada 37xx from 5.13 kernel.

Unfortunately commit:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/cpufreq/armada-37xx-cpufreq.c?h=v5.10.37&id=a13b110e7c9e0dc2edcc7a19d4255fc88abd83cc

This patch actually corrects the things so that 1 or 1.2GHz models would actually get scaled to their native frequency.

However, due to a AVS setting voltages too low this will cause random crashes on 1.2GHz models.

So, until a new safe for everybody voltage is agreed on
lets revert the patch.

Fixes: d337731 ("kernel: bump 5.10 to 5.10.37")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-05-23 23:29:37 +08:00
Matt Merhar
aad2f91ab2 kernel-defaults: fix external kernel build when user_headers is missing
Use an 'if' so the absence of $(LINUX_DIR)/user_headers doesn't make the
line evaluate to false and cause the build to fail.

Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
2021-05-23 23:29:15 +08:00
Alexander Egorenkov
806a06a9d4 kexec-tools: add patch to fix issue with appended DTB and zImage on ARM
This patch fixes a recently found problem when a zImage passed to
kexec-tools contains an appended DTB. In that case kexec boot fails because
the decompressor wrongly tries to use the non-existing appended DTB instaed
of the one passed in the register r2.

- http://lists.infradead.org/pipermail/kexec/2021-April/022353.html

Signed-off-by: Alexander Egorenkov <egorenar-dev@posteo.net>
2021-05-23 23:28:54 +08:00
Aleksander Jan Bajkowski
4c6938e6b9 kernel: limit crypto-hw-talitos to the mpc85xx and layerscape
CONFIG_CRYPTO_DEV_TALITOS depends on FSL_SOC. This driver only makes sense
on Freescale(NXP) SoCs.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-05-23 23:28:35 +08:00
Aleksander Jan Bajkowski
ce80e99dce kernel: limit crypto-hw-geode to the x86/geode
CONFIG_CRYPTO_DEV_GEODE depends on X86_32. This driver only makes sense
on X86\geode.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-05-23 23:28:06 +08:00
Aleksander Jan Bajkowski
4471337e7c kernel: crypto: drop kmod-crypto-pcompress
CONFIG_CRYPTO_PCOMP and CONFIG_CRYPTO_PCOMP2 have been removed in upstream commit[1].
This symbol doesn't exist since kernel 4.6 and this package is empty.

1. [ crypto: compress - remove unused pcomp interface ]
(110492183c)

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-05-23 23:27:23 +08:00
Aleksander Jan Bajkowski
acc67afb01 kernel: crypto: drop kmod-crypto-wq
CONFIG_CRYPTO_WORKQUEUE was removed in upstream commit[1]. This symbol doesn't
exist since kernel 5.3 and this package is empty.

1. [ crypto: cryptd - move kcrypto_wq into cryptd ]
(3e56e16863)

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-05-23 23:27:06 +08:00
Tan Zien
21b5de281e apm821xx: MR24: Change default config of WLAN LED
The previous config will only show 2.4G radio activity status

This change mr24:green:wifi4 and mr24:green:wifi2 to
show 2.4G and 5G radio on and off status

change mr24:green:wifi3 and mr24:green:wifi1 to
show 2.4G and 5G radio activity status

Signed-off-by: Tan Zien <nabsdh9@gmail.com>
2021-05-23 23:26:37 +08:00
Ansuel Smith
d751f31974 ipq806x: fix warning about tsens debugfs already registered
Backport a pending patch already reviewed that fix some warning about tsens debugs already registered.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-23 23:14:48 +08:00
Ansuel Smith
7d154ef98c ipq806x: reduce pci IO space to 64k
With some talk with the ARM maintainer, it was notice that enlarging the limit
to the current value is VERY wrong and clash with other memory.
A better solution would be to reduce the IO space from 1MB to 64K as probably
it's a long lasting typo and even x86 arch doesn't have a IO space that big.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-23 23:14:17 +08:00
John Audia
455047f3a7 kernel: bump 5.4 to 5.4.121
All patches automatically rebased.

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>
2021-05-23 23:14:00 +08:00
John Audia
6166bd7a22 kernel: bump 5.4 to 5.4.120
Removed upstreamed:
  generic/pending-5.4/770-02-net-ethernet-mtk_eth_soc-fix-rx-vlan-offload.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800

Note that since I rebased the previous commit, I removed my Run-tested line
although I confirm building the image successfully.

Signed-off-by: John Audia <graysky@archlinux.us>
2021-05-23 23:13:45 +08:00
John Audia
9206a11c32 kernel: bump 5.4 to 5.4.119
Removed upstreamed:
  generic/backport-5.4/050-gro-fix-napi_gro_frags-Fast-GRO-breakage-due-to-IP-a.patch
  bcm63xx/patches-5.4/434-nand-brcmnand-fix-OOB-R-W-with-Hamming-ECC.patch*

Removed/code was included upstream and therefore redundant:
  ramips/patches-5.4/999-fix-pci-init-mt7620.patch

All other patches automatically rebased.

* update_kernel.sh did not flag this yet it was included in 5.4.119[1], as a
  result of the rebase, I removed my testing lines since I did not go back to
  test built or to run test 5.4.119 with the removed patch present.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.4.119&id=e5b3e69eb36ac1178a7a2392616fd29afd288c4e

Signed-off-by: John Audia <graysky@archlinux.us>
2021-05-23 23:13:20 +08:00
John Audia
cccbbec3a8 kernel: bump 5.4 to 5.4.118
Manually rebased:
  ath79/patches-5.4/0033-spi-ath79-drop-pdata-support.patch

Removed uneeded patch:
  ath79/patches-5.4/0050-spi-ath79-remove-spi-master-setup-and-cleanup-assign.patch

All other patches automatically rebased.

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>
2021-05-23 23:13:02 +08:00
Kevin Darbyshire-Bryant
46b738facd kernel: bump 5.10 to 5.10.39
Automatically refreshed:

generic/pending-5.10/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-05-23 11:20:20 +08:00
Rui Salvaterra
6ed919a38c kernel: bump 5.10 to 5.10.38
Automatically refreshed:
apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch
generic/backport-5.10/610-v5.13-31-net-ethernet-mtk_eth_soc-fix-parsing-packets-in-GDM.patch
generic/backport-5.10/610-v5.13-32-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch
generic/backport-5.10/610-v5.13-33-net-ethernet-mtk_eth_soc-add-flow-offloading-support.patch
generic/hack-5.10/204-module_strip.patch
generic/hack-5.10/911-kobject_add_broadcast_uevent.patch
ipq806x/patches-5.10/104-1-drivers-thermal-tsens-Add-VER_0-tsens-version.patch
ipq806x/patches-5.10/104-8-drivers-thermal-tsens-Add-support-for-ipq8064-tsens.patch

Deleted (reverse-appliable):
generic/backport-5.10/610-v5.13-37-net-ethernet-mtk_eth_soc-fix-RX-VLAN-offload.patch
ipq806x/patches-5.10/106-5.13-net-stmmac-Set-FIFO-sizes-for-ipq806x.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-05-23 11:20:08 +08:00
David Bauer
068cac8385 hostapd: wolfssl: add RNG to EC key
Since upstream commit 6467de5a8840 ("Randomize z ordinates in
scalar mult when timing resistant") WolfSSL requires a RNG for
the EC key when built hardened which is the default.

Set the RNG for the EC key to fix connections for OWE clients.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-22 17:08:52 +08:00
David Bauer
c63e9cd7df wolfssl: always export wc_ecc_set_rng
Since commit 6467de5a8840 ("Randomize z ordinates in scalar
mult when timing resistant") wolfssl requires a RNG for an EC
key when the hardened built option is selected.

wc_ecc_set_rng is only available when built hardened, so there
is no safe way to install the RNG to the key regardless whether
or not wolfssl is compiled hardened.

Always export wc_ecc_set_rng so tools such as hostapd can install
RNG regardless of the built settings for wolfssl.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-22 17:07:46 +08:00
Piotr Dymacz
8dd1089ee4 uboot-envtools: support uci-default config also per subtargets
The current version of 'uboot-envtools' package generates dedicated
uci-default file only per target. This change makes it possible to
use subtarget-specific files, with name pattern: 'target_subtarget'
(example: 'ath79_nand'). The subtarget-specific files will take
precedence over target-specific one.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-05-20 23:20:01 +08:00
Piotr Dymacz
c1aa7654b0 imx6: image: cleanup variables order within device's defines
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-05-20 23:19:33 +08:00
Piotr Dymacz
2d15a92a22 imx6: image: keep devices in alphabetical order
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-05-20 23:19:18 +08:00
Piotr Dymacz
17adc815a0 uboot-imx6: update BUILD_DEVICES values
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-05-20 23:18:50 +08:00
Piotr Dymacz
f92dd68c78 uboot-imx6: drop 'HIDDEN' flag from 'mx6cuboxi' define
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-05-20 23:18:34 +08:00
Piotr Dymacz
e0ee6f1c0e imx6: image: use vendor_model scheme
This switches device names to the common 'vendor_model' approach as in
most of other targets in OpenWrt.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-05-20 23:18:00 +08:00
Piotr Dymacz
e709e3e6b1 imx6: image: cleanup image recipes
- drop unused 'UBOOT' variable from 'Device/apalis' recipe
- fix 'KERNEL_SUFFIX' for 'Device/cubox-i' (should be '-zImage')
- drop redundant 'DEVICE_{VENDOR,MODEL}' from 'Device/ventana-large'
- other, minor fixes

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-05-20 23:17:31 +08:00
Piotr Dymacz
5f8d67e373 imx6: rename Freescale to NXP in BOARDNAME and profiles
Freescale no longer exists, it was acquired by NXP in 2015.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-05-20 23:17:05 +08:00
Kevin Darbyshire-Bryant
979a7cb16a firmware-utils: fix coverity zytrx.c resource leak
fix coverity resource leak warning:

    	*len = stat.st_size;
    	mapped = mmap(NULL, stat.st_size, PROT_READ, MAP_SHARED, fd, 0);
    	if (close(fd) < 0)
CID 1484880:  Resource leaks  (RESOURCE_LEAK)
Variable "mapped" going out of scope leaks the storage it points to.
    		return NULL;
    	return mapped;
    }

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-05-20 23:16:44 +08:00
Rafał Miłecki
542f8002aa netifd: update to the latest master
config: fix ifname->ports compat rename

Fixes: 829b5c2ba3 ("netifd: update to the latest version")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-05-20 23:16:12 +08:00
Rafał Miłecki
1968408511 base-files: generate bridge device sections with br- name prefix
Missing br- prefix could result in name conflict between DSA port
interface and bridge interface. Some devices with just one LAN port use
"lan" interface name for DSA port. Trying to create bridge with the same
"lan" name was failing.

Reported-by: David Bauer <mail@david-bauer.net>
Fixes: 43fc720657 ("base-files: generate "device" UCI type section for bridge")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-05-20 23:15:33 +08:00
Rafał Miłecki
0a4ff99091 base-files: generate "device" UCI type section for bridge
This switches from the old way of defining bridges in an "interface" UCI
section type (that should be used for layer 3 only). From now a defualt
board switch will have its own "device" UCI section type. It's a new &
preferred way of defining L2 devices.

Before:

config interface 'lan'
        option type 'bridge'
        option ifname 'lan1 lan2 lan3 lan4'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

After:

config device
        option name 'lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

config interface 'lan'
        option ifname 'lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-05-20 23:15:10 +08:00
Tianling Shen
bc73a96336 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-20 17:11:27 +08:00
AmadeusGhost
5a958c5c11 libubox: backport upstream commit
Backport: b8abed749423 utils.h: add fallthrough macro
Fixes: #381
2021-05-19 13:00:33 +08:00
David Bauer
99733c2909 rpcd: fix PKG_MIRROR_HASH
Fixes commit 97e820c6d6 ("rpcd: update to latest HEAD")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-19 12:56:11 +08:00
Daniel Golle
2066b223ba rpcd: set correct PKG_SOURCE_DATE
The previous commit bumped the source commit level without reflecting
that in PKG_SOURCE_DATA. Bump PKG_SOURCE_DATA as well.

Fixes: 97e820c6d6 ("rpcd: update to latest HEAD")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-05-19 00:03:32 +08:00
David Bauer
c9c54fb8a6 rpcd: update to latest HEAD
7a560a1 iwinfo: add 802.11ax HE support

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-19 00:03:09 +08:00
Daniel Golle
5c6ab9771a rpcd: update to git HEAD
d3f2041 uci: manually clear uci_ptr flags after uci_delete() operations
 ccb7517 sys: packagelist: drop ABI version from package name

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-05-19 00:02:31 +08:00
Felix Fietkau
a45dd1e73a netifd: update to the latest version
02dd2f2df7cb fix unannotated fall-through warnings
3052f2f67686 extdev: remove unused function
2a97fd006c3b device: add support for configuring devices with external auth handler
87e469be0c08 wireless: fix memory corruption bug when using vlans/station entries in the config
7277764bf817 bridge: rename "ifname" attribute to "ports"

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-18 23:54:13 +08:00
Felix Fietkau
e193e57dfe hostapd: add patch for disabling automatic bridging of vlan interfaces
netifd is responsible for handling that, except if the vlan bridge
was provided by the config

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-18 23:52:30 +08:00
Felix Fietkau
c318b39abd hostapd: add ubus notifications for adding/removing vlan interfaces
This can be used to handle network configuration of dynamically created vlan
interfaces in a more flexible way

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-18 23:52:06 +08:00
Rafał Miłecki
9e7d6a44fd base-files: use "ports" array in board.json network for bridges
Bridge aggregates multiple ports so use a more accurate name ("ports")
and format (array) for storing them in board.json.

Example:

"network": {
	"lan": {
		"ports": [
			"lan1",
			"lan2",
			"lan3",
			"lan4"
		],
		"protocol": "static"
	},
	"wan": {
		"ifname": "wan",
		"protocol": "dhcp"
	}
}

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-05-18 23:50:09 +08:00
Álvaro Fernández Rojas
094a03d579 bmips: remove duplicated brcmnand patch
brcmnand patch was applied upstream on 5.10.37 update.

Fixes: d337731f85 ("kernel: bump 5.10 to 5.10.37")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-05-17 23:51:26 +08:00
Adrian Schmutzler
2e3a8f408e octeon: use shared function for platform_copy_config()
This reduces redundant instructions.

The solution is inspired by a different implemention of
Roman Kuzmitskii.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-05-17 23:51:15 +08:00
Giulio Lorenzo
f1adcc1f8a ath79: add support for ZiKing CPE46B
ZiKing CPE46B is a POE outdoor 2.4ghz device with an integrated directional
antenna. It is low cost and mostly available via Aliexpress, references can
be found at:
- https://forum.openwrt.org/t/anddear-ziking-cpe46b-ar9331-ap121/60383
- https://git.lsd.cat/g/openwrt-cpe46b

Specifications:

- Atheros AR9330
- 32MB of RAM
- 8MB of flash (SPI NOR)
- 1 * 2.4ghz integrated antenna
- 2 * 10/100/1000 ethernet ports (1 POE)
- 3 * Green LEDs controlled by the SoC
- 3 * Green LEDs controlled via GPIO
- 1 * Reset Button controlled via GPIO
- 1 * 4 pin serial header on the PCB
- Outdoor packaging

Flashing instruction:

You can use sysupgrade image directly in vendor firmware which is based
on OpenWrt/LEDE. In case of issues with the vendor GUI, the vendor
Telnet console is vulnerable to command injection and can be used to gain
a shell directly on the OEM OpenWrt distribution.

Signed-off-by: Giulio Lorenzo <salveenee@mortemale.org>
[fix whitespaces, drop redundant uart status and serial0, drop
num-chipselects, drop 0x1002 MAC address for wmac]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-05-17 23:47:41 +08:00
Adrian Schmutzler
92184b1015 ath79: fix leading whitespaces in generic 01_leds
Use tabs consistently.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-05-17 23:47:19 +08:00
Joao Henrique Albuquerque
47f583402e ath79: add support for COMFAST CF-E375AC
COMFAST CF-E375AC is a ceiling mount AP with PoE support,
based on Qualcomm/Atheros QCA9563 + QCA9886 + QCA8337.

Short specification:

    2x 10/100/1000 Mbps Ethernet, with PoE support
    128MB of RAM (DDR2)
    16 MB of FLASH
    3T3R 2.4 GHz, 802.11b/g/n
    2T2R 5 GHz, 802.11ac/n/a, wave 2
    built-in 5x 3 dBi antennas
    output power (max): 500 mW (27 dBm)
    1x RGB LED, 1x button
    built-in watchdog chipset

Flash instruction:
1) Original firmware is based on OpenWrt.
Use sysupgrade image directly in vendor GUI.

2) TFTP
2.1) Set a tftp server on your machine with a fixed IP address of
     192.168.1.10. A place the sysupgrade as firmware_auto.bin.
2.2) boot the device with an ethernet connection on fixed ip route
2.3) wait a few seconds and try to login via ssh

3) TFTP trough Bootloader
3.1) open the device case and get a uart connection working
3.2) stop the autoboot process and test connection with serverip
3.3) name the sysupgrade image firmware.bin and run firmware_upg

MAC addresses:
Though the OEM firmware has four adresses in the usual locations,
it appears that the assigned addresses are just incremented in a
different way:

interface    address    location
LAN:          *:DC      0x0
WAN           *:DD      0x1002
WLAN 2.4g     *:E6      n/a (0x0 + 10)
WLAN 5g       *:DE      0x6
unused        *:DF      0x5006

The MAC address pointed at the label is the one assign to the LAN
interface.

Signed-off-by: Joao Henrique Albuquerque <joaohccalbu@gmail.com>
[add label-mac-device, remove redundant uart status, fix whitespace
issues, fix commit message wrapping, remove x bit on DTS file]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-05-17 23:46:51 +08:00
Dan Brown
b74740115f octeon: add new target and support for Ubiquiti EdgeRouter 6P
Ubiquiti EdgeRouter 6P is 6 port router with similar
specifications as the EdgeRouter 4, support for which was added
in commit dd651e54cc

There are five 10/100/1000 Mbps RJ/Copper ports and
one 1000 Mbps SFP port.

SoC: Octeon Cavium 7130 (Cavium 3) at 1000MHz
Memory: 1GiB DDR3
Flash: 2x2M chips with uboots (chainloaded) + 512K eeprom
LEDs: 1x for power status (white/blue, controllable)
  and 6x for ethernet and SFP ports (no control over them)
Buttons: 1x Reset
Serial: 1x RJ45 port on front panel. 115200 baud, 8N1
USB: 1x USB3.0 on front panel
MII: 1x QSGMII from SoC
PHY: 1x Vitesse VSC8504 of which 4 ports are used (phys 4-7)
     1x Vitesse VSC8514 of which 2 ports are used (phys 8-9)

Network port mapping
 - eth0 on device maps to lan0 and phy5
 - eth1 on device maps to lan1 and phy6
 - eth2 on device maps to lan2 and phy7
 - eth3 on device maps to lan3 and phy8
 - eth4 on device maps to lan4 and phy9
 - eth5 (SFP) on device maps to lan5 and phy4

What is not working:
 - There is no port status available before it goes up
 - SFP have no additional status and presented as no different from eth
 - Power-over-ethernet (passive) support has not been tested

How to flash the firmware:
  - copy openwrt-octeon-ubnt_edgerouter-6p-initramfs-kernel.bin and
    openwrt-octeon-ubnt_edgerouter-6p-squashfs-sysupgrade.tar to
    USB flash drive that is formatted to vfat/fat32
  - connect USB flash drive to EdgeRouter 6P front USB port
  - connect serial cable using front RJ45 port (115200 baud, 8N1)
  - connect power to cable to EdgeRouter 6P
  - connect terminal to the console to see uboot boot process
  - interrupt boot by pressing button(s) on your keyboard to log
    in to the uboot
  - detect usb connected flash drives by typing to the console:
    usb start
  - after drive is detected load initramfs+kernel to the memory by typing:
    fatload usb 0:1 0x20000000 openwrt-octeon-ubnt_edgerouter-6p-initramfs-kernel.bin
  - after initramfs+kernel is loaded to the memory load it by typing:
    bootoctlinux 0 numcores=4 endbootargs mem=0
  - boot process should finish and you will be greeted with console
    after pressing enter
  - create directory to mount usb flash drive to by typing:
    mkdir /tmp/sda
  - mount flash drive to that directory by typing:
    mount /dev/sda1 /tmp/sda
  - flash firmware to router internal storage by typing:
    sysupgrade /tmp/sda/openwrt-octeon-ubnt_edgerouter-6p-squashfs-sysupgrade.tar
  - device will reboot and after it gets up you will have
    edgerouter 6p running openwrt

Signed-off-by: Dan Brown <danbrown@gmail.com>
[reorder/squash patches, move ethernet@0 to DTS, share image setup]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-05-17 23:46:25 +08:00
Dan Brown
b2c6d4634e octeon: create shared DTSI for Ubiquiti E300 platform
EdgeRouter 4 and upcoming EdgeRouter 6P and 12 have similar setup,
so create a shared DTSI to prevent duplicate code.

Signed-off-by: Dan Brown <danbrown@gmail.com>
[reorder/squash commits, add description, move ethernet@0 to DTS]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-05-17 23:46:00 +08:00
Piotr Dymacz
e45fcf8c51 ramips: fix SUPPORTED_DEVICES for ALFA Network devices
Vendor firmware expects model name without manufacturer name inside
'supported_devices' part of metadata. This allows direct upgrade to
OpenWrt from vendor's GUI.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-05-17 23:45:31 +08:00
Michael Pratt
82421b4e64 ath79: set lzma-loader variables to null by default
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: 1b8bd17c2d ("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>
2021-05-16 23:25:23 +08:00
Tianling Shen
0934b343c5 package lean: remove
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-16 22:12:41 +08:00
AmadeusGhost
272fe95263 ramips: add support for JCG Q20
JCG Q20 is an AX 1800M router.

Hardware specs:
  SoC: MediaTek MT7621AT
  Flash: Winbond W29N01HV 128 MiB
  RAM: Winbond W632GU6NB-11 256 MiB
  WiFi: MT7915 2.4/5 GHz 2T2R
  Ethernet: 10/100/1000 Mbps x3
  LED: Status (red / blue)
  Button: Reset, WPS
  Power: DC 12V,1A

Flash instructions:
  Upload factory.bin in stock firmware's upgrade page.

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-05-15 23:55:32 +08:00
Felix Fietkau
76701e700e mt76: update to the latest version
28b162366d09 mt76: fix calling mt76_get_of_eeprom with an offset for pre-cal data
9d736545bb5a mt76: mt7915: disable pre-calibration support for now

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-05-15 23:54:08 +08:00
Rui Salvaterra
08dbd0861f kernel: bump 5.10 to 5.10.37
Automatically refreshed:
ath79/patches-5.10/0032-MIPS-ath79-sanitize-symbols.patch
bcm63xx/patches-5.10/322-MIPS-BCM63XX-switch-to-IRQ_DOMAIN.patch
bcm63xx/patches-5.10/434-nand-brcmnand-fix-OOB-R-W-with-Hamming-ECC.patch
bmips/patches-5.10/001-v5.11-mips-bmips-select-ARCH_HAS_RESET_CONTROLLER.patch
bmips/patches-5.10/041-v5.13-mtd-rawnand-brcmnand-fix-OOB-R-W-with-Hamming-ECC.patch
bmips/patches-5.10/202-mips-bmips-disable-ARCH_HAS_SYNC_DMA_FOR_CPU_ALL.patch
bmips/patches-5.10/600-mips-bmips-add-pci-support.patch
generic/backport-5.10/103-v5.13-MIPS-select-CPU_MIPS64-for-remaining-MIPS64-CPUs.patch
generic/hack-5.10/301-mips_image_cmdline_hack.patch
generic/hack-5.10/402-mtd-blktrans-call-add-disks-after-mtd-device.patch
generic/hack-5.10/902-debloat_proc.patch
generic/pending-5.10/300-mips_expose_boot_raw.patch
generic/pending-5.10/495-mtd-core-add-get_mtd_device_by_node.patch
generic/pending-5.10/630-packet_socket_type.patch
ipq806x/patches-5.10/0072-add-ipq806x-with-no-clocks.patch
ipq806x/patches-5.10/099-1-mtd-nand-raw-qcom_nandc-add-boot_layout_mode-support.patch
lantiq/patches-5.10/0001-MIPS-lantiq-add-pcie-driver.patch
lantiq/patches-5.10/0023-NET-PHY-add-led-support-for-intel-xway.patch
lantiq/patches-5.10/0152-lantiq-VPE.patch

Deleted (reverse-appliable):
bmips/patches-5.10/052-v5.13-gpio-guard-gpiochip_irqchip_add_domain-with-GPIOLIB_.patch
generic/backport-5.10/499-v5.13-mtd-don-t-lock-when-recursively-deleting-partitions.patch

Deleted (alternative upstream fix):
ramips/patches-5.10/330-fix-pci-init-mt7620.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-15 02:24:18 +08:00
Rui Salvaterra
c09ce49239 kernel: bump 5.10 to 5.10.36
Automatically refreshed:
apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch
ath79/patches-5.10/410-spi-ath79-Implement-the-spi_mem-interface.patch
bcm63xx/patches-5.10/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
generic/pending-5.10/465-m25p80-mx-disable-software-protection.patch
ipq806x/patches-5.10/0069-arm-boot-add-dts-files.patch
ipq806x/patches-5.10/101-dwmac-ipq806x-qsgmii-pcs-all-ch-ctl.patch
ipq806x/patches-5.10/106-5.13-net-stmmac-Set-FIFO-sizes-for-ipq806x.patch

Deleted (empty or reverse-appliable):
ath79/patches-5.10/411-spi-ath79-add-SPI_MASTER_GPIO_SS-flag.patch
ath79/patches-5.10/0050-spi-ath79-remove-spi-master-setup-and-cleanup-assign.patch
ath79/patches-5.10/0054-spi-sync-up-initial-chipselect-state.patch

Manually refreshed:
ath79/patches-5.10/0033-spi-ath79-drop-pdata-support.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-15 02:23:51 +08:00
Adrian Schmutzler
ecf8fc6609 ath79: fix sorting in generic 02_network
The two device strings were not ordered properly.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-15 02:22:58 +08:00
Tianling Shen
1fb5af6de4 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-15 02:09:05 +08:00
Tianling Shen
90750ff528 kernel: remove useless depends in kmod-leds-uleds
There's no kernel 4.9 support on this branch.

Reported-by: AmadeusGhost <amadeus@immortalwrt.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-13 23:19:43 +08:00
Tianling Shen
d22b2ce758 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-13 23:01:12 +08:00
Felix Fietkau
c522a504e7 mt76: update to the latest version
Includes fix for CVE-2020-24588

c7dd54a22e30 mt76: connac: skip wtbl reset on sta disconnect
3511fd430356 mt76: validate rx A-MSDU subframes
aedc3145de6e mt76: fix possible NULL pointer dereference in mt76_tx
5c2baab92cd0 mt76: mt7615: fix NULL pointer dereference in tx_prepare_skb()
af21659ee834 mt76: mt76x0: use dev_debug instead of dev_err for hw_rf_ctrl
e423c16f16f7 mt76: mt7615: free irq if mt7615_mmio_probe fails
f2d0da8da9b7 mt76: mt7663: enable hw rx header translation
d2713a5d9de9 mt76: mt7921: fix mt7921_wfsys_reset sequence
ce5f32d84f33 mt76: mt7921: Don't alter Rx path classifier
8ab8c7747197 mt76: connac: fw_own rely on all packet memory all being free
a747b0bb4956 mt76: mt7921: enable deep sleep at runtime
2e6e999509b1 mt76: mt7921: add deep sleep control to runtime-pm knob
30bcb2338ce2 mt76: connac: fix WoW with disconnetion and bitmap pattern
56518f4a126e mt76: mt7921: consider the invalid value for to_rssi
e969ab10a034 mt76: mt7921: add back connection monitor support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-13 22:52:33 +08:00
Felix Fietkau
44ffec16ef mac80211: backport upstream fixes for FragAttacks
From the patch series description:

Several security issues in the 802.11 implementations were found by
Mathy Vanhoef (New York University Abu Dhabi), who has published all
the details at

	https://papers.mathyvanhoef.com/usenix2021.pdf

Specifically, the following CVEs were assigned:

 * CVE-2020-24586 - Fragmentation cache not cleared on reconnection
 * CVE-2020-24587 - Reassembling fragments encrypted under different
                    keys
 * CVE-2020-24588 - Accepting non-SPP A-MSDU frames, which leads to
                    payload being parsed as an L2 frame under an
                    A-MSDU bit toggling attack
 * CVE-2020-26139 - Forwarding EAPOL from unauthenticated sender
 * CVE-2020-26140 - Accepting plaintext data frames in protected
                    networks
 * CVE-2020-26141 - Not verifying TKIP MIC of fragmented frames
 * CVE-2020-26142 - Processing fragmented frames as full frames
 * CVE-2020-26143 - Accepting fragmented plaintext frames in
                    protected networks
 * CVE-2020-26144 - Always accepting unencrypted A-MSDU frames that
                    start with RFC1042 header with EAPOL ethertype
 * CVE-2020-26145 - Accepting plaintext broadcast fragments as full
                    frames
 * CVE-2020-26146 - Reassembling encrypted fragments with non-consecutive
                    packet numbers
 * CVE-2020-26147 - Reassembling mixed encrypted/plaintext fragments

In general, the scope of these attacks is that they may allow an
attacker to
 * inject L2 frames that they can more or less control (depending on the
   vulnerability and attack method) into an otherwise protected network;
 * exfiltrate (some) network data under certain conditions, this is
   specific to the fragmentation issues.

A subset of these issues is known to apply to the Linux IEEE 802.11
implementation (mac80211). Where it is affected, the attached patches
fix the issues, even if not all of them reference the exact CVE IDs.

In addition, driver and/or firmware updates may be necessary, as well
as potentially more fixes to mac80211, depending on how drivers are
using it.

Specifically, for Intel devices, firmware needs to be updated to the
most recently released versions (which was done without any reference
to the security issues) to address some of the vulnerabilities.

To have a single set of patches, I'm also including patches for the
ath10k and ath11k drivers here.

We currently don't have information about how other drivers are, if
at all, affected.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-13 22:52:29 +08:00
Thibaut VARÈNE
e607d151b5 generic: platform/mikrotik: release mtd device after use
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>
2021-05-12 23:13:09 +08:00
Kevin Darbyshire-Bryant
1106f2123f kernel: bump 5.10 to 5.10.35
Refresh kernel patches.

Built under MacOS

Run tested: x86_64 (apu2)

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-12 04:09:19 +08:00
AmadeusGhost
f5f1ca3835 ipq806x/5.10: refresh patches 2021-05-11 23:45:38 +08:00
Daniel Golle
a8838c0f7f kernel: move three accepted patches from pending to backports
311-MIPS-zboot-put-appended-dtb-into-a-section.patch
commit d2e850e96183 in kernel, part of v5.11

499-mtd-don-t-lock-when-recursively-deleting-partitions.patch
commit cb4543054c5c in kernel, part of v5.13

103-MIPS-select-CPU_MIPS64-for-remaining-MIPS64-CPUs.patch
commit 5a4fa44f5e1b in kernel, part of v5.13

Move them to backports folder to make maintainance easier.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-05-11 23:37:03 +08:00
Mark Mentovai
bae5e8fffe ipq806x: Bring missing patches from 5.4 to 5.10
Kernel 5.10 support for ipq806x was added at the same time that these
patches were developed for kernel 5.4. This carries the patches forward
to kernel 5.10.

fa731838c5 ipq806x: dwmac: clear forced speed during probe
75ca641f1b ipq806x: Add "snps,dwmac" to all gmac compatible=
d62825dd77 ipq806x: dwmac: set forced speed when using fixed-link

Signed-off-by: Mark Mentovai <mark@moxienet.com>
Run-tested: ipq806x/ubnt,unifi-ac-hd
Cc: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:35:38 +08:00
Mark Mentovai
c86b286542 ipq806x: Add mising devices to kernel 5.10
d53be2a2e9 migrated 0069-arm-boot-add-dts-files.patch from patches-5.4
to patches-5.10, but a subsequent patch in that set, 1e25423be8,
erroneously removed several devices:

ipq8062/nec,wg2600hp3 from 3bb1618573
ipq8064/asrock,g10 from 98b86296e6
ipq8064/ubnt,unifi-ac-hd from 4e46beb313

Signed-off-by: Mark Mentovai <mark@moxienet.com>
Run-tested: ipq806x/ubnt,unifi-ac-hd
Cc: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:35:20 +08:00
John Audia
833c7b3529 kernel: bump 5.4 to 5.4.117
All patches automatically rebased.

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>
2021-05-11 23:34:53 +08:00
Stefan Lippers-Hollmann
3992cbd346 ipq806x: nbg6817: case-insensitive qcom-smem partitions
The out-of-tree qcom-smem patches traditionally displayed mtd partition names
in upper case, starting with the new mainline qcom-smem support in kernel v5.10,
it switches to normalizing the partition names to lower case.

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
2021-05-11 23:32:29 +08:00
Mark Mentovai
63e8f6fc68 ipq806x: dwmac: fix GMACs connected via SGMII fixed-link
fa731838c5 cleared the forced speed in the QSGMII PCS_ALL_CH_CTL
register during probe, but this is only correct for GMACs that are not
configured with fixed-link. This prevented GMACs configured with both
phy-mode = "sgmii" and fixed-link from working properly, as discussed at
https://github.com/openwrt/openwrt/pull/3954#issuecomment-834625090 and
the comments that follow. Notably, this prevented all communication
between gmac2 and the switch on the Netgear R7800.

The correct behavior is to set the QSGMII PCS_ALL_CH_CTL register by
considering the gmac's fixed-link child, setting the speed as directed by
fixed-link if present, and otherwise clearing it as was done previously.

Fixes: fa731838c5 ("ipq806x: dwmac: clear forced speed during probe")
Signed-off-by: Mark Mentovai <mark@moxienet.com>
Tested-by: Hannu Nyman <hannu.nyman@iki.fi>
Run-tested: ipq806x/ubnt,unifi-ac-hd, ipq806x/netgear,r7800
Cc: Petr Štetiar <ynezz@true.cz>
Cc: Ansuel Smith <ansuelsmth@gmail.com>
Tested-by:  Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:31:59 +08:00
Ansuel Smith
05f0d46966 ipq806x: add missing wakeup-source for gpio keys
wakeup-source is required for gpio keys to fix error
genirq: irq_chip msmgpio did not update eff. affinity mask

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:31:13 +08:00
Ansuel Smith
c4af2a219e ipq806x: apply correct voltage tolerance
Voltage tolerance was 5%, not 5000. Update min and max voltage of the target opp.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:27:11 +08:00
Ansuel Smith
8ed7e0eac8 ipq806x: fix missing tx/rx fifo depth gmac configuration
tx/rx-fifo-depth is required to set mtu to the gmac. Backport upstream patch.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:26:51 +08:00
Ansuel Smith
734080c347 ipq806x: refresh 5.10 patches
make target/linux/kernel refresh

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:26:34 +08:00
Ansuel Smith
1cca7457b3 ipq806x: set boot layout for nandc compatible
Set boot layout size to fix io error on block scan.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:24:57 +08:00
Ansuel Smith
607de9d774 ipq806x: add kernel 5.10 as testing kernel
Add kernel 5.10 as testing kernel

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:22:32 +08:00
Ansuel Smith
26c8643aad ipq806x: refresh config 5.10
Refresh config for kernel 5.10.
- Added new symbol.
- Refreshed with make kernel_oldconfig

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:21:19 +08:00
Ansuel Smith
a0c634afb0 ipq806x: refresh dtsi patches
- Add new tsens node
- Add new cpufreq required nodes
- Drop arm cpuidle compatible
- Fix duplicate node set upstream
- Add voltage tolerance value for cpu opp

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:20:47 +08:00
Ansuel Smith
f6caeb7932 ipq806x: introduce nandc boot layout mode
ipq806x have different ecc configuration for boot partition and rootfs partition. Add support for this to fix IO error on mtd block scan.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:19:28 +08:00
Ansuel Smith
5e1b0b7214 ipq806x: fix broken pci2 and pci3
pci2 and pci3 has a too big io address space. Enlarge the IO_SPACE_LIMIT define for the arm arch.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:18:52 +08:00
Ansuel Smith
dced21dbd1 ipq806x: backport cpufreq changes to 5.4
The new cpufreq driver requires different dts bindings.
Backport the new driver to kernel 5.4

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:18:17 +08:00
Ansuel Smith
d6742c16d9 ipq806x: introduce dedicated krait cpufreq
- Drop cpufreq patchs that tweak the cpufreq-dt driver
- Add dedicated krait cpufreq driver

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:17:52 +08:00
Ansuel Smith
aedf0f3dcb ipq806x: drop upstream patch
Drop upstream patch already included in the kernel 5.10

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:17:31 +08:00
Ansuel Smith
92cc50d1a4 ipq806x: drop cpuidle generic support from QCOM
The spm driver now has dedicated support for krait cpu idle state. We don't need to add generic arm cpuidle support for qcom.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:16:52 +08:00
Ansuel Smith
b0055eba05 ipq806x: backport mtd adm and smem driver
- Backport mtd adm driver from kernel 5.12
- Backport mtd parser smem from kernel 5.11
- Fix mtd rootfs patch
- Update qcom,smem compatible to qcom,smem-parts

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:16:16 +08:00
Ansuel Smith
7527b9bc2a ipq806x: fix missing clk and reset
Patch 0030 wrongly disables gsbi1 instead of gsbi4.
Fix the wrong patch and also include other fix from the original qsdk source.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:14:09 +08:00
Ansuel Smith
00574abba8 ipq806x: use newer tsens patch
Use improved tsens patch proposed upstream.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:13:24 +08:00
Ansuel Smith
a7e0873eae ipq806x: copy kernel 5.4 patches to 5.10
Copy kernel 5.4 patches and config to 5.10

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2021-05-11 23:13:04 +08:00
Mark Mentovai
13d2925be7 ipq806x: Add "snps,dwmac" to all gmac compatible=
This was introduced to gmac2 and gmac3 in 57ea767a53 without fanfare.
There's no indication of why it was added to those devices, but not to
gmac0 or gmac1. It was probably an unintentional omission. It should be
present on all four gmac devices.

This property is considered by
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
stmmac_probe_config_dt.

Signed-off-by: Mark Mentovai <mark@moxienet.com>
Build-tested: ipq806x/ubnt,unifi-ac-hd
Run-tested: ipq806x/ubnt,unifi-ac-hd
2021-05-11 23:12:36 +08:00
Mark Mentovai
f5221dd3e6 ipq806x: dwmac: clear forced speed during probe
On a Ubiquiti UniFi AC HD (ubnt,unifi-ac-hd, UAP-AC-HD, UAP301), a
forced speed on gmac1 is set in the QSGMII PCS_ALL_CH_CTL register,
presumably by the bootloader (4.3.28), preventing the interface from
being usable. The QSDK NSS GMAC driver takes care to clear the forced
speed in nss_gmac_qsgmii_dev_init
(https://source.codeaurora.org/quic/qsdk/oss/lklm/nss-gmac/tree/ipq806x/nss_gmac_init.c?h=nss
at d5bb14925861).

gmac1 is connected to the port on the device labeled SECONDARY, and is
currently eth0 but will be switched to eth1 by a subsequent patch. By
clearing the QSGMII PCS forced speed during dwmac initialization when
SGMII is in use, this port becomes usable.

This patch is upstreamable, and will be sent upstream after successful
testing in OpenWrt.

Signed-off-by: Mark Mentovai <mark@moxienet.com>
Build-tested: ipq806x/ubnt,unifi-ac-hd
Run-tested: ipq806x/ubnt,unifi-ac-hd
2021-05-11 23:11:19 +08:00
Birger Koblitz
b7a6c8e953 realtek: Fix VLAN issues introduced by multicast patches
This adds the CPU port to the unknown multicast flooding port mask,
which fixes the VLAN issues introduced by the multicast group patches

Tested-by: Russell Senior <russell@personaltelco.net> [Netgear GS108Tv3]
Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no> [whitespace fix]
Signed-off-by: Petr Štetiar <ynezz@true.cz> [unknwon typo fix]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-11 01:03:26 +08:00
Adrian Schmutzler
68ad685ae9 ramips: use standard naming scheme for Zyxel NR7101 LED nodes
Make naming and DT label consistent with other devices at this
target.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-11 01:03:08 +08:00
Felix Fietkau
04d94f1364 mt76: update to the latest version
186af01047b2 mt76: mt7921: introduce MCU_EVENT_LP_INFO event parsing
93b5c28c97d5 mt76: mt7921: add rcu section in mt7921_mcu_tx_rate_report
a8e89c5a1d1f mt76: testmode: add support to send larger packet
a0cc9a9e3877 mt76: mt7915: rework mt7915_tm_set_tx_len()
c8b96630324e mt76: mt7915: fix rate setting of tx descriptor in testmode
22fd2958c42a mt76: mt7615: fix memleak when mt7615_unregister_device()
7401e0db3143 mt76: mt7915: fix memleak when mt7915_unregister_device()
c3656268b3f6 mt76: mt7915: only free skbs after mt7915_dma_reset() when reset happens
0ce955b04ba8 mt76: mt7615: only free skbs after mt7615_dma_reset() when reset happens
b03d1e62acf7 mt76: mt7615: use ieee80211_free_txskb() in mt7615_tx_token_put()
5ac02e22fb03 mt76: flush tx status queue on DMA reset
c71f609b398a mt76: sync with upstream changes
23ecadd4af77 mt76: mt7615: fix hardware error recovery for mt7663
57a899ee3c3c mt76: mt7615: fix entering driver-own state on mt7663
42a2dddb706b mt76: mt7615: load ROM patch before checking patch semaphore status
cf0e406af84a mt76: mt7915: add support for applying pre-calibration data
459940ccbc58 mt76: mt7921: move hw configuration in mt7921_register_device
0a094b11f3c0 mt76: improve mcu error logging
bf536832e37d mt76: mt7921: run mt7921_mcu_fw_log_2_host holding mt76 mutex
7616f4f78163 mt76: mt7921: add wifisys reset support in debugfs
e620bd881ef5 mt76: mt7921: abort uncompleted scan by wifi reset
e8dacf59ab1c mt76: mt7915: rework the flow of txpower setting
c8c78e577236 mt76: mt7915: directly read per-rate tx power from registers
1622bf4f8705 mt76: mt7921: add mt7921_dma_cleanup in mt7921_unregister_device
ef96fafad8a9 mt76: Convert to DEFINE_SHOW_ATTRIBUTE
90e4bfea2948 mt76: mt7921: do not use 0 as NULL pointer
0a139d7f5966 mt76: connac: move mcu_update_arp_filter in mt76_connac module
de26c73ce3c2 mt76: mt7921: remove leftover function declaration
1c0b6cb4f942 mt76: mt7921: fix a race between mt7921_mcu_drv_pmctrl and mt7921_mcu_fw_pmctrl
2923e3e2b8e4 mt76: mt7663: fix a race between mt7615_mcu_drv_pmctrl and mt7615_mcu_fw_pmctrl
74d0fdaa7a99 mt76: connac: introduce wake counter for fw_pmctrl synchronization
28c87e09a5ea mt76: mt7921: rely on mt76_connac_pm_ref/mt76_connac_pm_unref in tx path
36f664edc7db mt76: mt7663: rely on mt76_connac_pm_ref/mt76_connac_pm_unref in tx path
51b3d1a9a2b7 mt76: dma: add the capability to define a custom rx napi poll routine
4f1339c9fb72 mt76: mt7921: rely on mt76_connac_pm_ref/mt76_connac_pm_unref in tx/rx napi
1bc5e67a60be mt76: mt7663: rely on mt76_connac_pm_ref/mt76_connac_pm_unref in tx/rx napi
325f7b451c03 mt76: connac: unschedule ps_work in mt76_connac_pm_wake
12115052a02f mt76: connac: check wake refcount in mcu_fw_pmctrl
e5d28e3cef66 mt76: connac: remove MT76_STATE_PM in mac_tx_free
475112a3cdcc mt76: mt7921: get rid of useless MT76_STATE_PM in mt7921_mac_work
112998f32d85 mt76: connac: alaways wake the device before scanning
4334f3e2fc43 mt76: mt7615: rely on pm refcounting in mt7615_led_set_config
0562380659ad mt76: connac: do not run mt76_txq_schedule_all directly
acfa78df5708 mt76: connac: use waitqueue for runtime-pm
ca74a4cd0722 mt76: remove MT76_STATE_PM in tx path
0c2d3e74852e mt76: mt7921: add awake and doze time accounting
45e0eefffe9f mt76: mt7921: enable sw interrupts
fd2ff641166f mt76: mt7615: Fix a dereference of pointer sta before it is null checked
7e2521468767 mt76: mt7921: move mt7921_dma_reset in dma.c
c9dd6b1fa171 mt76: mt7921: introduce mt7921_wpdma_reset utility routine
2ac7c7e9c568 mt76: mt7921: introduce mt7921_dma_{enable,disable} utilities
662a89f2b9d1 mt76: mt7921: introduce mt7921_wpdma_reinit_cond utility routine
614efe9e9180 mt76: connac: introduce mt76_connac_mcu_set_deep_sleep utility
0dbb16ef39d8 mt76: mt7921: enable deep sleep when the device suspends
3c19f569cc70 mt76: mt7921: fix possible invalid register access
ade1f5aad4c6 mt76: move token_lock, token and token_count in mt76_dev
8d5c456be1ff mt76: move token utilities in mt76 common module
fb04d9df5e52 mt76: mt7915: do not read rf value from efuse in flash mode
2126b2176336 mt76: mt7921: get rid of mcu_reset function pointer
d325b7eff1b1 mt76: mt7921: improve doze opportunity
2ae25c7e547e mt76: mt7663: add awake and doze time accounting
349bbb9d6f13 mt76: connac: unschedule mac_work before going to sleep
98a235004dea mt76: mt7921: mt7921_stop should put device in fw_own state
63d80b9ab251 mt76: mt7921: introduce mt7921_mcu_sta_add routine
3c5bf837fdbd mt76: mt7615: fix a precision vs width bug in printk
ded14da5eacc mt76: mt7915: fix a precision vs width bug in printk
aaf0d254f9ea mt76: mt7921: fix a precision vs width bug in printk
757af5c67d32 mt76: move mt76_token_init in mt76_alloc_device
ed41ed73a495 mt76: mt7921: reinit wpdma during drv_own if necessary
92fb81e085c6 mt76: mt7921: fix possible AOOB issue in mt7921_mcu_tx_rate_report
53d915a23bc9 mt76: connac: do not schedule wake_work if the runtime-pm is disabled
23fe1bdcf15a mt76: connac: do not schedule mac_work if the device is not running
e5b19336c58e mt76: mt7615: do not set MT76_STATE_PM at bootstrap
0fc2136a61dd mt76_connac_mcu: move mt76_connac_mcu_update_arp_filter outside of CONFIG_PM
e693f3e23e06 mt76: mt7915: add MSI support
5231e7300fa4 mt7915: disable ASPM
554b50dabf54 mt76: connac: fix uninitialized HT A-MPDU setting field in STA_REC_PHY
43b9c0a838bb mt76: mt7921: fix max aggregation subframes setting
5a387a0a3004 mt76: mt7921: enable rx hw de-amsdu
c8cbcb87be07 mt76: connac: add missing configuration in mt76_connac_mcu_wtbl_hdr_trans_tlv
55921e57b380 mt76: mt7921: enable rx header traslation offload
01441f67d8b2 mt76: mt7921: enable rx csum offload
c9ab76dd93a0 mt76: mt7915: move mt7915_queue_rx_skb to mac.c
caedb4c4ee41 mt76: mt7615: fix fixed-rate tx status reporting
c6ae95d43e6d mt76: improve tx status codepath
27d468d094e6 mt76: mt7915: rework tx rate reporting
3b4ca5b09e2c mt76: mt7615: avoid use of ieee80211_tx_info_clear_status
e1f07d7f1cb9 mt76: mt7603: avoid use of ieee80211_tx_info_clear_status
18513ba5fbc2 mt76: mt7915: add support for tx status reporting
35f189cf81b2 mt76: mt7915: fix uninitialized variable in MSI error handling
9e928ac1ea9b mt76: dma: use ieee80211_tx_status_ext to free packets when tx fails
628eee9c386c mt76: fill queue entry wcid for all skbs with a station
a9bc4d94b7a1 mt76: intialize tx queue entry wcid to 0xffff by default
998ca8af7d17 mt76: mt7915: fix tssi indication field of DBDC NICs
7dd24b3cfacf mt76: mt7915: fix a signedness bug in mt7915_mcu_apply_tx_dpd()
535025d65d8d mt76: mt7915: cleanup mt7915_mcu_sta_rate_ctrl_tlv()
ff8bbe22dd87 mt76: mt7915: add .set_bitrate_mask() callback

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-11 01:03:04 +08:00
David Bauer
3644920122 ath79: ag71xx: fix error handling for of_get_phy_mode
Errors are not indicated by the phy_mode value but returned separately
from the function.

Signed-off-by: David Bauer <mail@david-bauer.net>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-11 01:03:00 +08:00
Tianling Shen
a1ea063877 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-10 02:59:08 +08:00
Tianling Shen
1a0a6abf98 kernel: video: add multimedia-input module
Removed by accident in merge commit.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-09 22:03:45 +08:00
Tianling Shen
b3be7ef94b Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-09 22:02:09 +08:00
Kevin Darbyshire-Bryant
4680094bc2 kernel: bump 5.10 to 5.10.34
Nothing required refreshing, simplest kernel bump you've ever seen.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-09 20:57:08 +08:00
Bjørn Mork
96d8613967 ramips: mt7621: Add support for ZyXEL NR7101
The ZyXEL NR7101 is an 802.3at PoE powered 5G outdoor (IP68) CPE
with integrated directional 5G/LTE antennas.

Specifications:

 - SoC: MediaTek MT7621AT
 - RAM: 256 MB
 - Flash: 128 MB MB NAND (MX30LF1G18AC)
 - WiFi: MediaTek MT7603E
 - Switch: 1 LAN port (Gigabiti)
 - 5G/LTE: Quectel RG502Q-EA connected by USB3 to SoC
 - SIM: 2 micro-SIM slots under transparent cover
 - Buttons: Reset, WLAN under same cover
 - LEDs: Multicolour green/red/yellow under same cover (visible)
 - Power: 802.3at PoE via LAN port

The device is built as an outdoor ethernet to 5G/LTE bridge or
router. The Wifi interface is intended for installation and/or
temporary management purposes only.

UART Serial:

57600N1
Located on populated 5 pin header J5:

 [o] GND
 [ ] key - no pin
 [o] RX
 [o] TX
 [o] 3.3V Vcc

Remove the SIM/button/LED cover, the WLAN button and 12 screws
holding the back plate and antenna cover together. The GPS antenna
is fixed to the cover, so be careful with the cable.  Remove 4
screws fixing the antenna board to the main board, again being
careful with the cables.

A bluetooth TTL adapter is recommended for permanent console
access, to keep the router water and dustproof. The 3.3V pin is
able to power such an adapter.

MAC addresses:

OpenWrt OEM   Address          Found as
lan     eth2  08:26:97:*:*:BC  Factory 0xe000 (hex), label
wlan0   ra0   08:26:97:*:*:BD  Factory 0x4 (hex)
wwan0   usb0  random

WARNING!!

ISP managed firmware might at any time update itself to a version
where all known workarounds have been disabled.  Never boot an ISP
managed firmware with a SIM in any of the slots if you intend to use
the router with OpenWrt. The bootloader lock can only be disabled with
root access to running firmware. The flash chip is physically
inaccessible without soldering.

Installation from OEM web GUI:

- Log in as "supervisor" on https://172.17.1.1/
- Upload OpenWrt initramfs-recovery.bin image on the
  Maintenance -> Firmware page
- Wait for OpenWrt to boot and ssh to root@192.168.1.1
- (optional) Copy OpenWrt to the recovery partition. See below
- Sysupgrade to the OpenWrt sysupgrade image and reboot

Installation from OEM ssh:

- Log in as "root" on 172.17.1.1 port 22022
- scp OpenWrt initramfs-recovery.bin image to 172.17.1.1:/tmp
- Prepare bootloader config by running:
    nvram setro uboot DebugFlag 0x1
    nvram setro uboot CheckBypass 0
    nvram commit
- Run "mtd_write -w write initramfs-recovery.bin Kernel" and reboot
- Wait for OpenWrt to boot and ssh to root@192.168.1.1
- (optional) Copy OpenWrt to the recovery partition. See below
- Sysupgrade to the OpenWrt sysupgrade image and reboot

Copying OpenWrt to the recovery partition:

- Verify that you are running a working OpenWrt recovery image
  from flash
- ssh to root@192.168.1.1 and run:
    fw_setenv CheckBypass 0
    mtd -r erase Kernel2
- Wait while the bootloader mirrors Image1 to Image2

NOTE: This should only be done after successfully booting the OpenWrt
  recovery image from the primary partition during installation.  Do
  not do this after having sysupgraded OpenWrt!  Reinstalling the
  recovery image on normal upgrades is not required or recommended.

Installation from Z-Loader:

- Halt boot by pressing Escape on console
- Set up a tftp server to serve the OpenWrt initramfs-recovery.bin
  image at 10.10.10.3
- Type "ATNR 1,initramfs-recovery.bin" at the "ZLB>" prompt
- Wait for OpenWrt to boot and ssh to root@192.168.1.1
- Sysupgrade to the OpenWrt sysupgrade image

NOTE: ATNR will write the recovery image to both primary and recovery
  partitions in one go.

Booting from RAM:

- Halt boot by pressing Escape on console
- Type "ATGU" at the "ZLB>" prompt to enter the U-Boot menu
- Press "4" to select "4: Entr boot command line interface."
- Set up a tftp server to serve the OpenWrt initramfs-recovery.bin
  image at 10.10.10.3
- Load it using "tftpboot 0x88000000 initramfs-recovery.bin"
- Boot with "bootm  0x8800017C" to skip the 380 (0x17C) bytes ZyXEL
  header

This method can also be used to RAM boot OEM firmware. The warning
regarding OEM applies!  Never boot an unknown OEM firmware, or any OEM
firmware with a SIM in any slot.

NOTE: U-Boot configuration is incomplete (on some devices?). You may
  have to configure a working mac address before running tftp using
   "setenv eth0addr <mac>"

Unlocking the bootloader:

If you are unebale to halt boot, then the bootloader is locked.

The OEM firmware locks the bootloader on every boot by setting
DebugFlag to 0.  Setting it to 1 is therefore only temporary
when OEM firmware is installed.

- Run "nvram setro uboot DebugFlag 0x1; nvram commit" in OEM firmware
- Run "fw_setenv DebugFlag 0x1" in OpenWrt

  NOTE:
    OpenWrt does this automatically on first boot if necessary

  NOTE2:
    Setting the flag to 0x1 avoids the reset to 0 in known OEM
    versions, but this might change.

  WARNING:
    Writing anything to flash while the bootloader is locked is
    considered extremely risky. Errors might cause a permanent
    brick!

Enabling management access from LAN:

Temporary workaround to allow installing OpenWrt if OEM firmware
has disabled LAN management:

- Connect to console
- Log in as "root"
- Run "iptables -I INPUT -i br0 -j ACCEPT"

Notes on the OEM/bootloader dual partition scheme

The dual partition scheme on this device uses Image2 as a recovery
image only. The device will always boot from Image1, but the
bootloader might copy Image2 to Image1 under specific conditions. This
scheme prevents repurposing of the space occupied by Image2 in any
useful way.

Validation of primary and recovery images is controlled by the
variables CheckBypass, Image1Stable, and Image1Try.

The bootloader sets CheckBypass to 0 and reboots if Image1 fails
validation.

If CheckBypass is 0 and Image1 is invalid then Image2 is copied to
Image1.

If CheckBypass is 0 and Image2 is invalid, then Image1 is copied to
Image2.

If CheckBypass is 1 then all tests are skipped and Image1 is booted
unconditionally.  CheckBypass is set to 1 after each successful
validation of Image1.

Image1Try is incremented if Image1Stable is 0, and Image2 is copied to
Image1 if Image1Try is 3 or larger.  But the bootloader only tests
Image1Try if CheckBypass is 0, which is impossible unless the booted
image sets it to 0 before failing.

The system is therefore not resilient against runtime errors like
failure to mount the rootfs, unless the kernel image sets CheckBypass
to 0 before failing. This is not yet implemented in OpenWrt.

Setting Image1Stable to 1 prevents the bootloader from updating
Image1Try on every boot, saving unnecessary writes to the environment
partition.

Keeping an OpenWrt initramfs recovery as Image2 is recommended
primarily to avoid unwanted OEM firmware boots on failure. Ref the
warning above. It enables console-less recovery in case of some
failures to boot from Image1.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-09 20:56:25 +08:00
Bjørn Mork
4c16daabbb firmware-utils: zytrx: Add util for ZyXEL specific header
The ZyXEL NR7101 prepend an additional header to U-Boot images. This
header use the TRX magic 0x30524448 (HDR0), but is incompatible with
TRX images.

This code is reverse-engineered based on matching 32 bit numbers
found in the header with lengths and different checksum
calculations of the vendor images found on the device.  The result
was matched against the validation output produced by the
bootloader to name the associated header fields.

Example bootloader validation output:

 Zyxel TRX Image 1 --> Found!  Header Checksum OK
 ============ZyXEL header information==================
         chipId             : MT7621A
         boardId            : NR7101
         modelId            : 07 01 00 01
         kernel_len         : (14177560)
         kernelChksum       : (0x8DD31F69)
         swVersionInt       : 1.00(ABUV.0)D1
         swVersionExt       : 1.00(ABUV.0)D1

 Zyxel TRX Image 2 --> Found!  Header Checksum OK
 ============ZyXEL header information==================
         chipId             : MT7621A
         boardId            : NR7101
         modelId            : 07 01 00 01
         kernel_len         : (14176660)
         kernelChksum       : (0x951A7637)
         swVersionInt       : 1.00(ABUV.0)D0
         swVersionExt       : 1.00(ABUV.0)D0

 =================================================
 Check image validation:
 Image1 Header Magic Number --> OK
 Image2 Header Magic Number --> OK
 Image1 Header Checksum --> OK
 Image2 Header Checksum --> OK
 Image1 Data Checksum --> OK
 Image2 Data Checksum --> OK
 Image1 Stable Flag --> Stable
 Image1 Try Counter --> 0
 Image1: OK
 Image2: OK

The coverage and algorithm for the kernelChksum field is unknown.
This field is not validated by the bootloader or the OEM firmware
upgrade tool. It is therefore set to a static value for now.

The swVersion fields contain free form string values.  The OEM firmware
use ZyXEL structured version numbers as shown above.  The strings are
not interpreted or validated on boot, so they can be repurposed for
anything we want the bootloader to display to the user.  But the OEM
web GUI fails to flash images with freeform strings.

The purpose of the other strings in the header is not known.  The
values appear to be static.  We assume they are fixed for now, until
we have other examples.  One of these strings is the platform name,
which is taken as an input parameter for support other members of
the device family.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-09 20:53:39 +08:00
Ilya Lipnitskiy
65fb9e4ce5 treewide: consolidate named GPIO patch into hack-5.10
ath79, lantiq, ipq40xx, ramips all use the OpenWrt-specific gpio-export
functionality. Consolidate the patch that adds it under hack-5.10 since
this logic is obviously not target-specific. For those who want to
disable it, unsetting CONFIG_GPIO_SYSFS symbol will disable this code.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-09 20:53:30 +08:00
Daniel Golle
5c792799b0 mediatek: reserve memory for ramoops and enable PSTORE
Reserve 64KiB of memory for crashlogs and enable PSTORE feature in
kernel config for MT7622.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-09 20:50:01 +08:00
Daniel Golle
7f8c874201 uboot-mediaktek: add support for PSTORE and check it on boot
Add support for pstore/ramoops now that DRAM content is preserved
over reboot on MT7622. On each boot, check pstore and boot to recovery
image in case there are records stored in it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-09 20:49:56 +08:00
Daniel Golle
16b83fcdc0 arm-trusted-firmware-mediatek: update to git HEAD
Most notably this enabled use of pstore/ramoops on MT7622 as DRAM
content is now preserved over reboot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-09 20:49:53 +08:00
Daniel Golle
07e6bf6e97 uboot-envtools: change size for unifi-6-lr
The previous commit increased the U-Boot environment size of the
UniFi 6 LR to 0x4000. Also change it uboot-envtools accordingly.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-05-09 00:31:37 +08:00
Daniel Golle
c40b4a5778 uboot-mediatek: unifi-6-lr: fix erase of production parition
mtd erase needs to be aligned with erase blocks. Use padded image size
for erasing the production volume.
As the environment grew above the current size of 0x1000 bytes by
introducing the new padding function, increase the env size to 0x4000.
While at it, clean up reset button function to work to more reliable on
that board.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-05-09 00:31:19 +08:00
Tianling Shen
3deef966fc Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-08 01:58:03 +08:00
Birger Koblitz
1c0edc72b1 realtek: Add support for Layer 2 Multicast
Adds support for Layer 2 multicast by implementing the DSA port_mdb_*
callbacks. The Kernel bridge listens to IGMP/MLD messages trapped to
the CPU-port, and calls the Multicast Forwarding Database updates.
The updates manage the L2 forwarding entries and the multicast
port-maps.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-05-08 00:20:50 +08:00
Birger Koblitz
22e76aa3ba realtek: Setup all VLANs with default configurations
This sets up all VLANs with a default configuration on reset:
 - forward based on VLAN-ID and not the FID/MSTI
 - forward based on the inner VLAN-ID (not outer)

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-05-08 00:20:40 +08:00
Birger Koblitz
508544e531 realtek: Add SoC-specific VLAN setup routine
This adds SoC specific VLAN configuration routines, which
alsoe sets up the portmask table entries that are referred to
in the vlan profiles registers for unknown multicast flooding.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-05-08 00:20:29 +08:00
Birger Koblitz
5bd0358c12 realtek: Add support for clause45 PHYs
This adds support for the MMD access registers the RTL-SoCs use to access clause 45
PHYs via mdio.
This new interface is used to add EEE-support for the RTL8226

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-05-08 00:20:20 +08:00
Birger Koblitz
63ef176334 realtek: improve EEE support for RTL8380/8390/9300
Clean up and fix bugs in the EEE support for RTL8380/90
Adds EEE support for RTL9300

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-05-08 00:20:10 +08:00
Birger Koblitz
4fbb64d030 realtek: Add L2 hash bucket size
Adds a hash-bucket size attribute for the different SoCs, in order to
accomodate the buckets with 8 entries of the L2-forwarding tables
on RTL93XX in contrast to only 4 on RTL83XX.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-05-08 00:19:57 +08:00
Birger Koblitz
eff89d4b2f realtek: remove unused FDB print routing
remove fdb_dump debugging function

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-05-08 00:19:28 +08:00
Birger Koblitz
0d5aadff64 realtek: add IGMP/MLD snooping support
This adds snooping support for IGMP and MLD on RTL8380/90/9300
by trapping IGMP and MLD packets to the CPU.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-05-08 00:17:33 +08:00
Birger Koblitz
a16fecfe38 realtek: enable CRC offloading
Enables CRC calculation offloading on RTL8380/8390/9300.

Tested on Zyxel XGS1210-10 (RTL9302)/GS1900-48 (RTL8390)/GS1900-10HP (RTL8382)
On the Zyxel GS1900-10HP, an increase of 5% in iperf3 send throughput
and 11% in receive throughput is seen.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-05-08 00:17:21 +08:00
INAGAKI Hiroshi
ae76b70d26 realtek: add support for INABA Abaniact AML2-17GP
INABA Abaniact AML2-17GP is a 17 port gigabit switch, based on RTL8382.

Specification:

- SoC		: Realtek RTL8382
- RAM		: DDR3 128 MiB (SK hynix H5TQ1G63EFR)
- Flash		: SPI-NOR 32 MiB (Macronix MX25L25635FZ2I-10G)
- Ethernet	: 10/100/1000 Mbps x17
  - port 1-8	: RTL8218B (SoC)
  - port 8-16	: RTL8218D
  - port wan	: RTL8214FC
- LEDs/Keys	: 1x, 1x
- UART		: pin header on PCB (Molex 530470410 compatible)
  - J14: 3.3V, GND, RX, TX from rear side
  - 115200n8
- Power		: 100-240 VAC, 50/60 Hz, 0.21 A
  - Plug	: IEC 60320-C13

Flash instruction using initramfs image:

1.  Boot AML2-17GP normally
2.  Set the IP address of computer to the range of 192.168.1.0/24, other
    than 192.168.1.248 and connect computer to "WAN/CONSOLE" port of
    AML2-17GP
3.  Access to "http://192.168.1.248" and open firmware setting page

    -- UI Language: 日本語 --
    "メンテナンス" -> "デュアルイメージ"

    -- UI Language: ENGLISH --
    "Maintenance" -> "Dual Image"

4.  Check "イメージ情報 (en: "Images Information")" and set the first
    image to active by choosing "アクティブイメージ" (en: "Active
    Image") in the partition "0"
5.  open firmware upgrade page

    -- UI Language: 日本語 --
    "メンテナンス" -> "アップグレードマネージャー"

    -- UI Language: ENGLISH --
    "Maintenance" -> "Upgrade Manager"

6.  Set the properties as follows

    -- UI Language: 日本語 --
    "アップグレード方式"	: "HTTP"
    "アップグレードタイプ"	: "イメージ"
    "イメージ"			: "アクティブ"
    "ブラウズファイル"		: (select the OpenWrt initramfs image)

    -- UI Language: ENGLISH --
    "Upgrade Method"		: "HTTP"
    "Upgrade Type"		: "Image"
    "Image"			: "(Active)"
    "Browse file"		: (select the OpenWrt initramfs image)

7.  Press "アップグレード" (en: "Upgrade") button and perform upgrade
8.  Wait ~150 seconds to complete flashing
9.  After the flashing, the following message is showed and press "OK"
    button to reboot

    -- UI Language: 日本語 --
    "成功!! 今すぐリブートしますか?"

    -- UI Language: ENGLISH --
    "Success!! Do you want to reboot now?"

10. After the rebooting, reconnect the cable to other port (1-16) and
    open the SSH connection, download the sysupgrade image to the device
    and perform sysupgrade with it
11. Wait ~120 seconds to complete sysupgrade

Note:

- The uploaded image via WebUI will only be written with the length
  embedded in the uImage header. If the sysupgrade image is specified,
  only the kernel is flashed and lacks the rootfs, this causes a kernel
  panic while booting and bootloops.
  To avoid this issue, initramfs image is required for flashing on WebUI
  of stock firmware.

- This device has 1x LED named as "POWER", but it's not connected to the
  GPIO of SoC and cannot be controlled.

- port 17 is named as "WAN/CONSOLE". This port is for the upstream
  connection and console access (telnet/WebUI) on stock firmware.

Back to stock firmware:

1. Set "bootpartition" variable in u-boot-env2 partition to "1" by
   fw_setsys

   fw_setsys bootpartition 1

2. Reboot AML2-17GP

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-05-08 00:17:03 +08:00
Raylynn Knight
11e5a1d8d4 realtek: Add support for Netgear S350 series switches GS308T and GS310TP
The Netgear GS308T v1 is an 8 port gigabit switch.  The GS310TP v1 is an 8
port POE+ gigabit switch with 2 SFP Ports (currently untested).

The GS308T v1 and GS310TP v1 are quite similar to the Netgear GS1xx
devices already supported.  Theses two devices use the same Netgear
firmware and are very similar to there corresponding GS1xx devices. For
this reason they share a large portion of the device tree with the GS108T
and GS110TP with exception of the uimage magic and model and compatible
values.

All of the above feature a dual firmware layout, referred to as Image0
and Image1 in the Netgear firmware.

In order to manipulate the PoE+ on the GS310TP v1 , one needs the
rtl83xx-poe package

Specifications (GS308T)
----------------------

 * RTL8380M SoC, 1 MIPS 4KEc core @ 500MHz
 * 128MB DDR3-1600 DRAM (Winbond W631GG8MB-12)
 * 32MB 3v NOR SPI Flash (Winbond W25Q256JVFQ)
 * RTL8231 GPIO extender to control the LEDs and the reset button
 * 8 x 10/100/1000BASE-T ports, internal PHY (RTL8218B)
 * UART (115200 8N1) via unpopulated standard 0.1" pin header marked J1
 * Power is supplied via a 12V 1A barrel connector

Specifications (GS310TP)
----------------------

 * RTL8380M SoC, 1 MIPS 4KEc core @ 500MHz
 * Nuvoton M0516LDN for controlling PoE
 * 128MB DDR3-1600 DRAM (Winbond W631GG8MB-12)
 * 32MB 3v NOR SPI Flash (Winbond W25Q256JVFQ)
 * RTL8231 GPIO extender to control the LEDs and the reset button
 * 8 x 10/100/1000BASE-T PoE+ ports, 2 x Gigabit SFP ports,
 internal PHY (RTL8218B)
 * UART (115200 8N1) via unpopulated standard 0.1" pin header marked J1
 * Power is supplied via a 54V 1.25A barrel connector

Both devices have UART pinout
-----------

J1 | [o]ooo
      ^ ||`------ GND
      | |`------- RX         [TX out of the serial adapter]
      | `-------- TX         [RX into the serial adapter]
      `---------- Vcc (3V3)  [the square pin]

The through holes are filled with PB-free solder which melts at 375C.
They can also be drilled using a 0.9mm bit.

Installation
------------
Instructions are identical to those for the similar Negear devices
and apply both to the GS308T v1 and GS310TP v1 as well.
-------------------
Boot initramfs image from U-Boot
--------------------------------

 1. Press the Escape key at the `Hit Esc key to stop autoboot` prompt
 2. Init network with `rtk network on` command
 3. Load image with `tftpboot 0x8f000000
openwrt-realtek-generic-netgear_gs308t-v1-initramfs-kernel.bin` command
 4. Boot the image with `bootm` command

The switch defaults to IP 192.168.1.1 and tries to fetch the image via
TFTP from 192.168.1.111.

Updating the installed firmware
-------------------------------

The OpenWRT ramdisk image can be flashed directly from the Netgear UI.
The Image0 slot should be used in order to enable sysupgrade.

As with similar switches, changing the active boot partition can be
accomplished in U-Boot as follows:

 1. Press the Escape key at the `Hit Esc key to stop autoboot` prompt
 2. Run `setsys bootpartition {0|1}` to select the boot partition
 3. Run `savesys` followed by `boota` to proceed with the boot process

Signed-off-by: Raylynn Knight <rayknight@me.com>
2021-05-08 00:16:32 +08:00
Rafał Miłecki
c213227d13 kernel: fix parsing fixed subpartitions
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-05-08 00:16:07 +08:00
John Audia
d6d3f07d94 kernel: bump 5.4 to 5.4.116
All patches automatically rebased.

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>
2021-05-08 00:15:19 +08:00
Hauke Mehrtens
8d813699de ltq-dsl-base: Make package nonshared to fix image builder
This package depends on the lantiq target and is only build for that
target. A normal package would be build by the SDK builder probably
under a different target and then this package will not be selected.
Mark it as nonshared to build it when the lantiq target gets build.

Fixes: FS#3773, FS#3774
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-05 12:01:57 +08:00
Hauke Mehrtens
73606609e0 mac80211: Update to version 5.10.34-1
The removed patches were applied upstream and are not needed anymore.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-05 12:01:18 +08:00
Tianling Shen
b0f7ca7cd2 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-03 17:20:04 +08:00
kuma
45a2a98fe0 luci-app-ssr-plus: bug fixes
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-03 17:18:19 +08:00
AmadeusGhost
b8ec046701 sunxi: nanopi-r1s-h5: remove non-existent usb node
Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-05-02 23:13:10 +08:00
Hauke Mehrtens
1a64ba83b7 ath79: Deactivate ZyXEL NBG6716 by default
The kernel image is too big now and the build fails.

WARNING: Image file zyxel_nbg6716-kernel.bin is too big: 4205404 > 4194304

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-02 23:10:17 +08:00
David Bauer
0f5811c2b5 iwinfo: update to latest Git HEAD
c45f0b5 iwinfo: add 802.11ax HE rate information

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-02 11:35:27 +08:00
Daniel Golle
11e5dffa4a uboot-mediatek: bpi-r64: add TFTP update options to eMMC bootmenu
Just like on SPI-NAND, also allow updating the bootloader comfortably
on eMMC installations.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-05-02 11:35:07 +08:00
Daniel Golle
1c95a9a967 mediatek: bpi-r64: add eMMC bootloader artifacts
In order to allow easily updating the bootloader on eMMC also provide
artifacts for that. Support for updating bootloader via TFTP will be
added to the loader CLI menu in a follow-up commit.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-05-02 11:34:49 +08:00
Hauke Mehrtens
2bf3adbe24 kernel: add missing kernel config option
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-02 11:34:28 +08:00
Hauke Mehrtens
4889583203 mediatek: Add missing config options
It is possible to select CONFIG_MTD_PARSER_TRX on the mediatek now. Add
this option to the kernel configuration file.

Fixes: 58c5e25664 ("mediatek: support non standard trx magic values")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-02 11:33:43 +08:00
Hauke Mehrtens
81b437a93e kernel: Reorder kernel configuration options
Reorder the options and remove double entries.
This was generated by running this:
$ ./scripts/kconfig.pl '+' target/linux/generic/config-5.10 /dev/null > target/linux/generic/config-5.10.new
$ mv target/linux/generic/config-5.10.new target/linux/generic/config-5.10
$ ./scripts/kconfig.pl '+' target/linux/generic/config-5.4 /dev/null > target/linux/generic/config-5.4.new
$ mv target/linux/generic/config-5.4.new target/linux/generic/config-5.4

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-02 11:33:18 +08:00
Hauke Mehrtens
8e71be8a0e kernel: partly revert: update mt7530 EEE patch from upstream
This partly reverts commit 20a924d2ae.

This commit broke the build of the Mediatek target with kernel 5.4, for
kernel 5.10 it is fine.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-02 11:31:43 +08:00
David Bauer
85191bbfb8 mediatek: correct address of ethernet PHY
We still have no driver for the PHY, however we can fix it's
address.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-02 11:29:44 +08:00
David Bauer
53bafaf2ca ath79: drop cs-gpios property
The spi-ath79 driver performs the chipselect by writing to dedicated
register in the SPI register block. So the GPIO numbers were not used.

Tested-on: Enterasys WS-AP3705i

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-02 11:28:52 +08:00
David Bauer
eea095adcb ath79: set number of chipselect lines
All chipsets from AR7100 up to QCA9563 have three dedicated chipselect
lines for the integrated SPI controller. Remove the number of
chipselects from the platform data, as there is no need to manually set
this to a different value.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-02 11:28:14 +08:00
David Bauer
de9dba5e9c ath79: add SPI_MASTER_GPIO_SS flag
Add the SPI_MASTER_GPIO_SS flag for the spi-ath79 driver. Otherwise,
the custom chipselect function is never called. This breaks hardware,
where the three dedicated chipselect lines are used instead of generic
GPIO pins.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-02 11:27:22 +08:00
Christian Lamparter
9986ef7900 apm821xx: MBL: correct phy-mode delay settings
This came up in an upstream commit: "
b1dd9bf688b0 "net: phy: broadcom: Fix RGMII delays for BCM50160 and BCM50610M"

The PHY driver entry for BCM50160 and BCM50610M calls
bcm54xx_config_init() but does not call bcm54xx_config_clock_delay() in
order to configuration appropriate clock delays on the PHY, fix that."

So the "rgmii" phy-mode has always been wrong, but went unnoticed since
the broadcom phy driver didn't push the delay settings to the chip.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-05-02 11:26:47 +08:00
Hauke Mehrtens
45fd3935c7 kernel: qlcnic: add dependency to kmod-hwmon-core
QLCNIC_HWMON was activated when hwmon was set, but the dependency was
missing. This broke the build bot builds. Fix this by explicitly
activating HWMON support and adding a dependency.

Fixes: f88c64d28c ("kernel: netdev: add qlcnic")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-02 11:26:28 +08:00
AmadeusGhost
1e18c2be1d Merge Mainline 2021-05-01 11:50:45 +08:00
Rui Salvaterra
cabfc24e1e mac80211/rtl: backport a rtl8192cu AP mode fix
Running USB devices in AP mode is never a good idea. That said, fix the TIM
issue in rtl8192cu [1], allowing these devices to "work" in AP mode.

[1] https://patchwork.kernel.org/project/linux-wireless/patch/20210419065956.6085-1-pkshih@realtek.com/

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-05-01 11:38:54 +08:00
Daniel González Cabanelas
ddd3c99ca1 mvebu: LS421DE: improve pin configuration
The CLK125 output pin at the ethernet PHY is connected via capacitor to
GND and nowhere else. Disable it. Also tune the LED masks.

The MPP56 and MPP60 pins at the SoC are conected to the μPD720202 USB3.0
chip:
  - MPP56: wired to PCIe CLKREQ# (out)
  - MPP60: wired to PCIe RESET# (in)
Configure the pcie pinmux for these pins.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2021-05-01 11:37:11 +08:00
Rui Salvaterra
5327e6d2ad netfilter: remove no-op kconfig symbols
These have long been obsolete. For reference, here's the Linux version where
each symbol has been dropped:

CONFIG_IP6_NF_QUEUE - 3.5
CONFIG_IP6_NF_TARGET_LOG - 3.4
CONFIG_IP_NF_MATCH_DSCP - 2.6.19
CONFIG_NF_CONNTRACK_IPV4 - 4.19
CONFIG_NF_CONNTRACK_IPV6 - 4.19
CONFIG_NF_CONNTRACK_RTCACHE - out-of-tree, superseded by flow offloading

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-05-01 11:36:47 +08:00
Roger Pueyo Centelles
7c97165707 ath79: mikrotik: swap RB922UAGS-5HPaCD eth0/1 MACs
Since support for SFP on the MikroTik RouterBOARD 922UAGS-5HPacD was
added by 4387fe00cb, the MAC addresses for eth0 (Ethernet) and eth1
(SFP) were swapped. This patch fixes the 02_network script to assign MAC
addresses correctly, so they match the label and the vendor's OS.

Tested on a RouterBOARD 922UAGS-5HPacD board.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2021-05-01 11:13:47 +08:00
Mauri Sandberg
e389aa53da uboot-envtools: add support for Buffalo WZR-HP-G300NH
This adds an entries for wzr-hp-g300nh-rb and wzr-hp-g300nh-s.

Signed-off-by: Mauri Sandberg <sandberg@mailfence.com>
2021-05-01 11:12:54 +08:00
Hauke Mehrtens
cfbe24c91c kernel: Activate FORTIFY_SOURCE for MIPS kernel 5.4
CONFIG_FORTIFY_SOURCE=y is already set in the generic kernel
configuration, but it is not working for MIPS on kernel 5.4, support for
MIPS was only added with kernel 5.5, other architectures like aarch64
support FORTIFY_SOURCE already since some time.

This patch adds support for FORTIFY_SOURCE to MIPS with kernel 5.4,
kernel 5.10 already supports this and needs no changes.

This backports one patch from kernel 5.5 and one fix from 5.8 to make
fortify source also work on our kernel 5.4.

The changes are not compatible with the
306-mips_mem_functions_performance.patch patch which was also removed
with kernel 5.10, probably because of the same problems. I think it is
not needed anyway as the compiler should automatically optimize the
calls to memset(), memcpy() and memmove() even when not explicitly
telling the compiler to use the build in variant.

This increases the size of an uncompressed kernel by less than 1 KB.

Acked-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-01 11:12:26 +08:00
DENG Qingfang
b6a1e4d919 kernel: update mt7530 EEE patch from upstream
The new EEE patch is accepted upstream, so backport it and replace the
current one.

Cc: René van Dorst <opensource@vdorst.com>
Signed-off-by: DENG Qingfang <dqfext@gmail.com>
2021-05-01 11:11:49 +08:00
Ilya Lipnitskiy
58de32b4f4 kernel: backport mtk_soc_eth fixes from v5.13
Fixes logic that leads to this error when booting mt7621 and other
devices that use the mediatek ethernet driver:
  [   23.144378] mtk_soc_eth 1e100000.ethernet: PPE table busy

The rest are mostly moved from pending-5.10 to backport-5.10 with a
couple of cleanups and improvements from upstream.

Refresh patches.

Links:
    https://git.kernel.org/netdev/net-next/c/c5d66587b890
    https://git.kernel.org/netdev/net-next/c/3f57d8c40fea
    https://git.kernel.org/netdev/net-next/c/5196c4178549
    https://git.kernel.org/netdev/net-next/c/787082ab9f7b
    https://git.kernel.org/netdev/net-next/c/c30c4a827390
    https://git.kernel.org/netdev/net-next/c/3630d519d7c3
    https://git.kernel.org/netdev/net-next/c/16ef670789b2
    https://git.kernel.org/netdev/net-next/c/59555a8d0dd3
    https://git.kernel.org/netdev/net-next/c/6b4423b258b9
    https://git.kernel.org/netdev/net-next/c/e9229ffd550b
    https://git.kernel.org/netdev/net-next/c/4e6bf609569c
    https://git.kernel.org/netdev/net-next/c/816ac3e6e67b
    https://git.kernel.org/netdev/net-next/c/16769a8923fa
    https://git.kernel.org/netdev/net-next/c/db2c7b353db3
    https://git.kernel.org/netdev/net-next/c/fa817272c37e
    https://git.kernel.org/netdev/net-next/c/3bc8e0aff23b

Fixes: f07fe36f22 ("kernel: update flow offload patches to upstream version")
Cc: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-05-01 11:11:10 +08:00
Mauri Sandberg
ec7502eb11 kernel: Move an upstreamed patch under backports
This CFI patch was accepted upstream for 5.13. Move it away from under
ath79 and place under backports to be removed in due time.

Signed-off-by: Mauri Sandberg <sandberg@mailfence.com>
2021-05-01 11:10:45 +08:00
John Audia
eda4db45c3 kernel: bump 5.4 to 5.4.115
All patches automatically rebased.

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>
2021-05-01 11:08:48 +08:00
John Audia
30131d016a kernel: bump 5.4 to 5.4.114
Manually rebased*
  generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch

Added new backport*
  generic/backport-5.4/050-gro-fix-napi_gro_frags-Fast-GRO-breakage-due-to-IP-a.patch

All others updated automatically.

The new backport was included based on this[1] upstream commit that will be
mainlined soon.  This change is needed because Eric Dumazet's check for
NET_IP_ALIGN (landed in 5.4.114) causes huge slowdowns on drivers which use
napi_gro_frags().

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

*Credit to Alexander Lobakin
1. https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=7ad18ff6449cbd6beb26b53128ddf56d2685aa93

Signed-off-by: John Audia <graysky@archlinux.us>
2021-05-01 11:08:14 +08:00
Rui Salvaterra
67e1867005 kernel: bump 5.10 to 5.10.33
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-04-29 23:10:16 +08:00
Ilya Lipnitskiy
9459c97318 kernel: backport mtk_ppe busy-wait loop fix
Fixes logic that leads to this error when booting mt7621 and other
devices that use the mediatek ethernet driver:
  [   23.144378] mtk_soc_eth 1e100000.ethernet: PPE table busy

Link: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=c5d66587b8900201e1530b7c18d41e87bd5812f4
Fixes: f07fe36f22 ("kernel: update flow offload patches to upstream version")
Cc: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-04-29 23:09:45 +08:00
Chen Minqiang
ef582d34b8 uboot-mediatek: unifi6lr: mtd erase before write to flash
Erase firmware ereas before writing to recovery or production partition
when updating them via the bootloader menu.

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-29 13:58:36 +08:00
Daniel Golle
ac3d610142 arm-trusted-firmware-mediatek: fix boot hang on unifi-6-lr
The Ubiquiti Networks UniFi 6 LR access point comes with a total of
512 MB RAM provided by 2x 8-bit DDR3 SDRAM. This combination lead to
problems with the DDR calibration on boot resulting in occasional hang
on boot. Use updated calibration binary provided by MediaTek to make
boot on that device more reliable.
The binary has also been tested on the BananaPi BPi-R64 board and that
also works just fine with the new binary.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-29 13:58:28 +08:00
David Bauer
40c344cf77 iwinfo: update to latest Git HEAD
50b64a6 iwinfo: add basic IEEE 802.11ax support
70d2136 iwinfo: nl80211: perform split wiphy dump
cd23727 iwinfo: cli: fix hwmode formatting

Signed-off-by: David Bauer <mail@david-bauer.net>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-29 13:58:23 +08:00
Felix Fietkau
dd846e4e0f mac80211: minstrel_ht: fix issue in calculating success probability
Missing braces in a macro were leading to badly working rates sometimes
getting a success probabilty of 1.0

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-29 13:58:16 +08:00
AmadeusGhost
189844d71c rockchip: add OF node for pcie eth on NanoPi R4S
This adds the OF node for the pcie ethernet adapter on the FriendlyARM
NanoPi R4S. Add the correct value for the r8168 driver LED configuration
register to match the blink behavior of the other port on the device.

Run-tested-by: zcracker
Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-29 00:10:10 +08:00
AmadeusGhost
66b00bed22 r8168: add LED configuration from OF
This adds the ability to configure the LED configuration register using
OF. This way, the correct value for board specific LED configuration can
be determined.

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-04-29 00:05:09 +08:00
AmadeusGhost
ba0fa79800 Merge Mainline 2021-04-29 00:01:08 +08:00
Stijn Tintel
fe46f64b92 ath79: add missing kernel config symbol
Commit f724a583dc updated the nand-rb4xx driver to the 5.10 testing
kernel, but forgot to add the new kernel config symbol it introduces to
the 5.10 config.

Fixes: f724a583dc ("ath79: mikrotik: update nand-rb4xx driver")
Reported-by: Russell Senior <russell@personaltelco.net>
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-04-25 23:16:23 +08:00
Daniel Golle
6127ec55e1 mediatek: mt7622: build AHCI driver as module
Build the driver for the in-SoC AHCI SATA host as module, just like for
the other subtargets. No board requires booting off SATA, so we don't
need to have it built-in. All boards with SATA support already select
kmod-ata-ahci-mtk which provides the module.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-25 23:11:21 +08:00
Rui Salvaterra
58ebdf41fc kernel: bump 5.10 to 5.10.32
Deleted (reverse-appliable):
mediatek/patches-5.10/360-mtd-rawnand-mtk-Fix-WAITRDY-break-condition-and-time.patch

Automatically refreshed:
ath79/patches-5.10/0036-GPIO-add-named-gpio-exports.patch
generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch
generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch
generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch
generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch
generic/pending-5.10/600-netfilter_conntrack_flush.patch
generic/pending-5.10/613-netfilter_optional_tcp_window_check.patch
generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
generic/pending-5.10/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch
lantiq/patches-5.10/0030-GPIO-add-named-gpio-exports.patch
ramips/patches-5.10/800-GPIO-add-named-gpio-exports.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-04-22 23:14:44 +08:00
Rui Salvaterra
13eeabade3 kernel: drop the conntrack rtcache patch
It's in backports-5.4, but it wasn't ever merged. Upstream followed another
approach, with flow offloading, which has much better performance. Drop this
obsolete patch and refresh the kernel patches.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Acked-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Felix Fietkau <nbd@nbd.name>
2021-04-22 23:14:24 +08:00
Rui Salvaterra
edb4a919c2 treewide: switch the timer frequency to 100 Hz
Some targets select HZ=100, others HZ=250. There's no reason to select a higher
timer frequency (and 100 Hz are available in every architecture), so change all
targets to 100 Hz.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-04-22 23:12:24 +08:00
Rui Salvaterra
3f9b8cabd0 treewide: remove redundant ubifs kconfig symbols
For the targets which enable ubifs, these symbols are already part of the
generic kconfigs. Drop them from the target kconfigs.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-04-22 23:09:52 +08:00
Rui Salvaterra
579632eeb2 kernel: enable lzo, zlib and zstd in ubifs
Make sure all compression algorithms are enabled, for the time being, in order
not to break sysupgrade. In the future, we'd like to disable all except zstd, as
it's the best all-around performer.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-04-22 23:09:30 +08:00
Rui Salvaterra
fe24c8cb75 kernel: default to zstd compression in ubifs
Compared to both lzo and zlib, zstd is the best all-around performer. Backport
a kernel patch [1] (to both 5.4 and 5.10), in order to set it as default for
ubifs, if available.

[1] https://lore.kernel.org/linux-mtd/CAFLxGvwhtRY-6kT-sN=AgjvyssHb5qdTS6WQHkhKu3YrPuTkdw@mail.gmail.com/

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-04-22 23:09:00 +08:00
Rafał Miłecki
ec6000fc76 bcm53xx: fix Luxul XWR-3150 LAN ports numbering
Port numbers were reverted.

Fixes: c459a6bf48 ("bcm53xx: add support for Luxul FullMAC WiFi devices")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-22 23:08:11 +08:00
Tianling Shen
e44cad5a20 uboot-rockchip: nanopi4: move new files out of patch
Since these files could never go to upstream, it's meaningless to
keep them in a single patch.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-21 14:44:19 +08:00
Tianling Shen
f1e564e7c1 uboot-rockchip: nanopi4: rename DM_GET_DRIVER to DM_DRIVER_GET
Upstream commit: u-boot/u-boot@65e25bea59 ("dm: Rename DM_GET_DRIVER() to DM_DRIVER_GET()")

Fixes: #364

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-21 14:32:00 +08:00
Tianling Shen
5e4d6e8c8e scripts/download.pl: correct mirrors path for current branch
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-21 14:21:21 +08:00
AmadeusGhost
5680bfc347 Merge Mainline 2021-04-21 10:50:08 +08:00
AmadeusGhost
9d8bca43cc uboot-rockchip: refresh patches
Fix: #364
2021-04-21 10:39:45 +08:00
AmadeusGhost
835553d659 rtl8189es: update to latest git HEAD 2021-04-20 23:21:24 +08:00
AmadeusGhost
7ab7adf75c uboot-sunxi: add missing atf variable for h5 devices 2021-04-20 23:19:58 +08:00
David Bauer
b9b82157cd uboot-rockchip: update to v2021.04
Update the uboot-rockchip to the latest upstream release.
Remove upstreamed patches.

Tested-on: FriendlyElec NanoPi R2S

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-20 23:15:38 +08:00
Ilya Lipnitskiy
f5dc28b42c kernel: move patch to backport after upstreaming
The patch is now in net-next so keep it in backport-5.10 to keep things
more organized.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=6ecaf81d4ac6365f9284f9d68d74f7c209e74f98
Cc: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-04-20 23:08:42 +08:00
Stijn Tintel
9dc384bab6 kernel/generic: add missing config symbol
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-20 18:03:08 +08:00
Linus Walleij
63249078f7 gemini: Bump to kernel v5.10
Only two patches against mainline remains. Switch to v5.10
which works very nicely with all Gemini devices.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
[backported don't disable option CONFIG_BPF_SYSCAL]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-04-18 23:52:56 +08:00
Stijn Tintel
1655d5581f octeon: add 5.10 as testing kernel
Remove upstreamed parts from 100-ubnt_edgerouter2_support.patch.
Compile and runtime tested on Ubiquiti EdgeRouter Lite.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-04-18 23:52:26 +08:00
David Bauer
fd79b14f16 ramips: fix at803x patch
This patch broke while refreshing on a kernel bump. It adds the
config_aneg function twice to the AR8035 PHY now.

Restore the old behavior to restore the patches original intent.

Fixes commit 57e32650ef ("kernel: bump 5.10 to 5.10.31")
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:51:34 +08:00
David Bauer
065ee6f9c2 rockchip: use alternative CID path
Use an alternative path to access the CID of the SD card in MMC0, used
for the generation of MAC addresses. With Kernel 5.10, the device name
of the MMC controller changed, breaking MAC address generation.

The new path is compatible with Kernel 5.4 as well as Kernel 5.10.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:51:13 +08:00
David Bauer
6ecda7f811 rockchip: add missing config symbols
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:50:55 +08:00
David Bauer
f729063a1d rockchip: fix kernel 5.10 built for RockPi 4
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:48:17 +08:00
David Bauer
8e83ae9ce2 generic: add missing config symbols
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:47:54 +08:00
David Bauer
c758b36569 kernel: select kmod-backlight as dependency for kmod-drm
Select kmod-backlight as dependency for kmod-drm in case kmod-backlight
is compiled.

This fixes kernel 5.10 build issues on x86-geode with all kmods
enabled:

Package kmod-drm is missing dependencies for the following libraries:
backlight.ko

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:47:29 +08:00
David Bauer
76ebf3148e kernel: netdev: make kmod-of-mdio conflict with x86
CONFIG_MDIO_OF depends on CONFIG_OF which is not enabled for x86.

Fixes builds of x86 with Kernel 5.10 due to unresolved dependencies.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:47:04 +08:00
Daniel González Cabanelas
b90ba3809a uboot-envtools: mvebu: add Buffalo LS421DE
The Buffalo Linkstation LS421DE NAS lacks an uboot env config file.

Create it via scripts.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2021-04-18 23:46:39 +08:00
Chuanhong Guo
6b4f20e563 x86: amd-xgbe: add missing dependencies on 5.10
fix the following build error when building with test kernel:

Package kmod-amd-xgbe is missing dependencies for the following libraries:
mdio_devres.ko

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2021-04-18 23:46:19 +08:00
Zheng Bao
b57c060efb x86/64: Add support for AMD SOC Ethernet controller
This feature is already supported in kernel. Add definition
and configuration in Makefile of OpenWRT.
It is tested on board Dibbler with processor V1605B.
Dmesg is as below.
--------------------------------------------
[    0.317122] smpboot: CPU0: AMD Ryzen Embedded V1605B with Radeon
Vega Gfx (family: 0x17, model: 0x11, stepping: 0x0)

[    8.227270] libphy: amd-xgbe-mii: probed
[    8.228189] amd-xgbe 0000:02:00.1 eth0: net device enabled
[    8.228999] libphy: amd-xgbe-mii: probed
[    8.229921] amd-xgbe 0000:02:00.2 eth1: net device enabled
.....
[   11.760869] br-lan: port 1(eth0) entered blocking state
[   11.761365] br-lan: port 1(eth0) entered disabled state
[   11.762019] device eth0 entered promiscuous mode
[   11.785285] 8021q: adding VLAN 0 to HW filter on device eth1
[   16.881431] amd-xgbe 0000:02:00.1 eth0: Link is Up - 1Gbps/Full -
flow control off
[   16.882108] br-lan: port 1(eth0) entered blocking state
[   16.882583] br-lan: port 1(eth0) entered forwarding state
[   16.883249] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
-----------------------------------------------

Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
2021-04-18 23:46:00 +08:00
Roger Pueyo Centelles
829f41c458 ath79: mikrotik: update nand-rb4xx driver
This updates the NAND driver for MikroTik RB4XX series to work with
kernel 5.10, similarly to the ar934x-nand driver (fb64e2c3).

Support for kernel 5.10 was added to all ath79 subtargets except for the
mikrotik one by commit d6b785d, since patch 920-mikrotik-rb4xx.patch
needed to be reworked. Later, commit f8512661 enabled kernel 5.10 for
the mikrotik subtarget with the nand-rb4xx driver still pending, which
is updated and added back by this patch.

Compile-tested only.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2021-04-18 23:44:38 +08:00
Sven Eckelmann
a893e04f21 mvebu: Fix sysupgrade for GL.iNet GL-MV1000
The GL.iNet GL-MV1000 is booting from eMMC and the images for it are in
theory sysupgrade compatible. But the platform upgrade scripts were not
adjusted to select the mmcblock device as upgrade target. This resulted in
a failed sysupgrade because the mtd device (NOR flash) was instead tried to
be modified by the sysupgrade script.

Fixes: 050c24f05c ("mvebu: add support for GL.iNet GL-MV1000")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-04-18 23:44:18 +08:00
Daniel González Cabanelas
a1a63dd01c mvebu: armada 370: dts: fix the crypto engine
The crypto engine in Armada 370 SoCs is currently broken. It can be
checked installing the required packages for testing openssl with hw
acceleration:

  opkg install openssl-util
  opkg install kmod-cryptodev
  opkg install libopenssl-devcrypto

After configuring /etc/ssl/openssl.cnf to let openssl use the crypto
engine for digest operations, and performing some checksums..

  md5sum 10M-file.bin
  openssl md5 10M-file.bin

...we can see they don't match.

There might be an alignment or size constraint issue caused by the
idle-sram area.

Use the whole crypto sram and disable the idle-sram area to fix it. Also
disable the idle support by adding the broken-idle property to prevent
accessing the disabled idle-sram.

We don't care about disabling the idle support since it is already broken
in Armada 370 causing a huge performance loss because it disables
permanently the L2 cache. This was reported in the Openwrt forum and
elsewhere by Debian users with different board models.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2021-04-18 23:43:57 +08:00
Ilya Lipnitskiy
30c6762d98 ramips: replace mt7621s hack with upstream patch
Refresh patches.

Tested on a dual-core MT7621 device (Ubiquiti ER-X) and a single-core
MT7621 device (Netgear R6220).

This change will make future kernel upgrades easier (avoids conflicts
with upstream).

Link: https://lore.kernel.org/lkml/20210407200738.149207-1-ilya.lipnitskiy@gmail.com/
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Cc: Chuanhong Guo <gch981213@gmail.com>
2021-04-18 23:42:50 +08:00
Moritz Warning
243a9b9f1e archs38: set device vendor and model variables
This fixes the profiles.json output.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2021-04-18 23:41:50 +08:00
Moritz Warning
707949a4e1 arc770: set device vendor and model variables
This fixes the profiles.json output.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
2021-04-18 23:41:18 +08:00
Josef Schlehofer
504697bf1f linux-firmware: ath10k: add support for Qualcomm Atheros QCA9377
Add firmware and board file for Qualcomm Atheros QCA9377 802.11ac Wireless
Network Adapter (rev 31) recognized as [168c:0042].

This card supports standard 1x1 802.11ac Wave2, BT5, and MU-MIMO.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2021-04-18 23:39:17 +08:00
Florian Eckert
7f030c9912 ltq-vdsl-app: extent dsl metrics with state_num and power_state_num
With the old ubus dsl API, the numbers for the individual line_states and
power_states were also returned. These were not ported to the new DSL
C-API. This commit adds the missing information.

For this the internal values are mapped to numbers.

* additional JSON output for state_num:
"state_num": <map_state_number>

Since not all values are meaningful only the following values are
implemented, this can be extended if the future.

* LSTATE_MAP_NOT_INITIALIZED
* LSTATE_MAP_EXCEPTION
* LSTATE_MAP_IDLE
* LSTATE_MAP_SILENT
* LSTATE_MAP_HANDSHAKE
* LSTATE_MAP_FULL_INIT
* LSTATE_MAP_SHOWTIME_NO_SYNC
* LSTATE_MAP_SHOWTIME_TC_SYNC
* LSTATE_MAP_RESYNC

* additinal JSON output for power_level:
"power_state_num": <map_power_satte_number>,

Since there are not so many here, all are mapped.

* PSTATE_MAP_NA,
* PSTATE_MAP_L0,
* PSTATE_MAP_L1,
* PSTATE_MAP_L2,
* PSTATE_MAP_L3,

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
v6:
Add state LSTATE_MAP_NOT_INITILIZED at the beginning of the list
Start the list LSTATE_MAP with -1
Reviewed-by: Andre Heider <a.heider@gmail.com>
2021-04-18 23:35:39 +08:00
Linus Walleij
a1a226770e kernel: Disable IXP4xx physmap by default
This makes no sense on anything but the IXP4xx platform
that we do not even support anymore. If we bring it back,
it can be selectively enabled for that platform only.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2021-04-18 23:34:59 +08:00
Linus Walleij
46431cbb61 kernel: Disable CPU_THERMAL by default
This config is for platforms that have:
A) CONFIG_THERMAL set (we disable it by default)
B) Has thermal zones that need to control cpufreq

This is not suitable for default config, it needs to be enabled
on a per-target basis in individual configs.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2021-04-18 23:34:40 +08:00
Linus Walleij
cf560647da kernel: Disable GPIO_CDEV_V1 by default
We do not enable GPIO_CDEV so do not enable CDEV_V1
either. As we rebuild the whole userspace and kernel
in OpenWRT it doesn't make any sense to support the
old ABI anyway: the new one should be used by default.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2021-04-18 23:34:21 +08:00
Linus Walleij
04c0fe5324 kernel: Disable CONFIG_DMA_PERNUMA_CMA by default
This CMA memory allocation option only applies to NUMA
(Non-Uniform Memory Access) systems which are seldom
the kind of systems that OpenWRT address.

It is safe to assume that any system that need this
option would turn it on locally.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2021-04-18 23:33:22 +08:00
Linus Walleij
fde0abe1e1 kernel: Remove dead scheduler options
The non-MQ CFQ, deadline and noop IO schedulers are
deleted from the Linux kernel
since commit f382fb0bcef4c37dc049e9f6963e3baf204d815c
"block: remove legacy IO schedulers".

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2021-04-18 23:33:01 +08:00
John Audia
d0915162d6 kernel: bump 5.4 to 5.4.113
Ran update_kernel.sh in a fresh clone without any existing toolchains.  No
manual intervention needed.

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>
2021-04-18 23:32:43 +08:00
John Audia
190a92b2fe kernel: bump 5.4 to 5.4.112
Ran update_kernel.sh in a fresh clone without any existing toolchains.

Removed upstreamed:
  mvebu/patches-5.4/319-ARM-dts-turris-omnia-configure-LED-2--INTn-pin-as-interrupt-pin.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>
2021-04-18 23:32:26 +08:00
John Audia
ca0973c955 kernel: bump 5.4 to 5.4.111
Refreshed with update_kernel.sh. No manual tweaks needed.

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>
2021-04-18 23:32:06 +08:00
Rui Salvaterra
f79d930ecc kernel: bump 5.10 to 5.10.31
Automatically refreshed:
ramips/patches-5.10/710-at803x.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-04-18 23:31:48 +08:00
David Bauer
151d9be5c1 ath79: update spi-nor patches
Update the 4 bit BP patches for Ubiquiti boards with the second
iteration sent upstream.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:31:17 +08:00
David Bauer
b0153fd23e ath79: remove unused patch
This patch ist not required, as it only has an effect in case the GPIO
descriptors supplied to num-cs are valid.

As this is not the case for ath79, this patch can safely be omitted. The
issue it tried to fix is actually fixed with
0054-spi-sync-up-initial-chipselect-state.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:31:01 +08:00
David Bauer
2909990012 mediatek: fix Ubiquiti UniFi 6 LR LED
When adding Kernel 5.10 support, the kernel configuration did not
include the LED driver required for the UniFi 6 LR. Also the actual
driver source went missing.

Fixes commit c46ccb69d1 ("mediatek: mt7622: add Linux 5.10 support")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:30:45 +08:00
Tianling Shen
e46eaffee2 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-17 00:17:46 +08:00
Rui Salvaterra
361e33b865 kernel: bump 5.10 to 5.10.30
Deleted (reverse-applicable):
mvebu/patches-5.10/101-ARM-dts-turris-omnia-configure-LED-2--INTn-pin-as-interrupt-pin.patch

Automatically refreshed:
bcm63xx/patches-5.10/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
generic/backport-5.10/610-v5.13-02-netfilter-Fix-fall-through-warnings-for-Clang.patch
generic/backport-5.10/610-v5.13-10-netfilter-nftables-update-table-flags-from-the-commi.patch
generic/hack-5.10/204-module_strip.patch
generic/hack-5.10/902-debloat_proc.patch
generic/pending-5.10/203-kallsyms_uncompressed.patch
generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
generic/pending-5.10/920-mangle_bootargs.patch
mediatek/patches-5.10/115-dts-bpi64-add-snand-support.patch
mediatek/patches-5.10/602-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch
mediatek/patches-5.10/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch
ramips/patches-5.10/323-mt7621-memory-detect.patch

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-04-17 00:09:25 +08:00
Roger Pueyo Centelles
34221e8fb9 ath79: mikrotik: enable SFP on RB922UAGS-5HPaCD
This patch enables the SFP cage on the MikroTik RouterBOARD 922UAGS-5HPacD.

GPIO16 (tx-disable-gpios) should be governed by the SFP driver to enable
or disable transmission, but no change is observed. Therefore, it is
left as output high to ensure the SFP module is forced to transmit.

Tested on a RouterBOARD 922UAGS-5HPacD board, with a CISCO GLC-LH-SMD
1310nm module and an unbranded GLC-T RJ45 Gigabit module. PC=>router
iperf3 tests deliver 440/300 Mbps up/down, both via regular eth0 port
or SFP port with RJ45 module. Bridge between eth0 and eth1 delivers
950 Mbps symmetric.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2021-04-17 00:09:06 +08:00
Tony Ambardar
5cccb8c056 gemini,layerscape,oxnas: don't disable option CONFIG_BPF_SYSCALL
Respect the generic kernel config setting, which is "enabled" tree-wide, as
previously done for sunxi.

Ref: 247ef4d98b ("sunxi: enable CONFIG_BPF_SYSCALL and CONFIG_EMBEDDED")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-04-17 00:08:27 +08:00
AmadeusGhost
6d4d236449 uboot-sunxi: update ATF dependencies for h5 devices 2021-04-16 12:27:40 +08:00
David Bauer
935ff67ecb ath79: fix 10 Mbit PLL data for TP-Link EAP2xx
Fix the PLL register value for 10 Mbit/s link modes on TP-Link EAP
boards using a AR8033 SGMII PHY.

Otherwise, 10 Mbit/s links do not transfer data.

Reported-by: Tom Herbers <freifunk@tomherbers.de>
Tested-by: Tom Herbers <freifunk@tomherbers.de>
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-16 12:24:27 +08:00
David Bauer
f0bb22a2bd ath79: fix 10 Mbit PLL data for UniFi AC
Fix the PLL register value for 10 Mbit/s link modes on the UniFi AC Lite
/ Mesh / LR. Otherwise, 10 Mbit/s links do not transfer data.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-16 12:24:03 +08:00
David Bauer
df7993ca56 ath79: fix link mode support list on UniFi AC
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>
2021-04-16 12:23:42 +08:00
Daniel Golle
8c26622dad ramips/mediatek: import a patch fixing bug in flow-offloading
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>
2021-04-16 12:23:01 +08:00
Zoltan HERPAI
67f8b9c7fb uboot-sunxi: update ATF dependencies for 3 boards
Fix 3 board definitions that were missed in the process of moving
to the a64/h6 ATF blobs.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2021-04-15 23:21:12 +08:00
Zoltan HERPAI
1da7eabe9a sunxi: add support for H6 boards and OrangePiOnePlus
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>
2021-04-15 23:20:38 +08:00
Zoltan HERPAI
0acf7d0e95 arm-trusted-firmware-sunxi: move to use the common tf-a build code and bump to latest version
Create a -a64 package for now. Moving to the latest ATF was tested on a
SoPine A64 board.

U-Boot SPL 2020.04 (Feb 19 2021 - 11:28:19 +0000)
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE:  BL31: v2.4(release):reboot-15854-g42b39a13d2
NOTICE:  BL31: Built : 22:45:53, Feb 22 2021
NOTICE:  BL31: Detected Allwinner A64/H64/R18 SoC (1689)
NOTICE:  BL31: Found U-Boot DTB at 0x4090a28, model: SoPine with baseboard
NOTICE:  PSCI: System suspend is unavailable

U-Boot 2020.04 (Feb 19 2021 - 11:28:19 +0000) Allwinner Technology

CPU:   Allwinner A64 (SUN50I)
Model: SoPine with baseboard
DRAM:  2 GiB

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2021-04-15 23:19:55 +08:00
Zoltan HERPAI
d15d2b0b6f uboot-sunxi: add ATF variable for specifying which flavour to use
In preparation for H6 support (which requires a separate ATF blob), add
an envvar to the A64 boards specifying which ATF blob to use.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2021-04-15 23:19:36 +08:00
Ilya Lipnitskiy
1e87ae16ff ramips: gpio-ralink: use ngpios, not ralink,num-gpios
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>
2021-04-15 23:15:49 +08:00
Ilya Lipnitskiy
edb5996e00 ramips: rt288x: replace hack with a kconfig change
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>
2021-04-15 23:15:27 +08:00
Ilya Lipnitskiy
bb50a0465c ramips: drop obsolete arcs_cmdline override patch
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>
2021-04-15 23:15:11 +08:00
Rafał Miłecki
365ba1d9c4 firmware-utils: tplink-safeloader: support displaying fw info
Add "-i" option for reading & displaying firmware info. First it lists
in-firmware partitions ("fwup-ptn"). Then it checks for human
understandable partitions and prints data found in each of them.

This new feature is meant for development & debug purposes.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-14 23:13:33 +08:00
Rafał Miłecki
d10fe7b23c bcm53xx: add pending TRX patch for "firmware" partition
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>
2021-04-14 23:13:07 +08:00
Rafał Miłecki
8a58ab4f0f firmware-utils: mkmylofw: fix blocks padding
The old code didn't make sense as it was using "len" variable which was
guaranteed to be always 0. Loop right above broken code is:
while (len > 0) { }

With this recent ALIGN macro fix this resulted in subtracting block size
from 0 and calling write_out_padding() with a negative length.

To calculate amount of bytes needed for padding & alignment it should be
enough to use % 4.

Fixes: a2f6622945 ("firmware-utils: fix few random warnings")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-13 23:30:45 +08:00
Rafał Miłecki
60ce9d6479 firmware-utils: zyimage: drop POSIX SOURCE defines
This fixes:
src/zyimage.c:10:0: warning: "_POSIX_SOURCE" redefined
src/zyimage.c:11:0: warning: "_POSIX_C_SOURCE" redefined

This change has been tested on Linux with -Wextra and on Mac OS.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-13 23:30:26 +08:00
Petr Štetiar
a81204b3c2 tplink-safeloader: fix C7v5 factory flashing from vendor fw > v1.1.x
Currently it's not possible to flash factory images on devices shipped
with vendor firmware versions 1.1.0 Build 20201120 rel. 50406 (published
2020-12-22):

 (curFw_ver, newFw_ver) == (1.1, 1.0) [NM_Error](nm_checkSoftVer) 00848: Firmwave not supports, check failed.
 [NM_Error](nm_checkUpdateContent) 01084: software version dismatched
 [NM_Error](nm_buildUpgradeStruct) 01188: checkUpdateContent failed.

They've even following note in release notes:

 Note: You will be unable to downgrade to the previous firmware version
       after updating this firmware.

This version check in vendor firmware is implemented in
/usr/bin/nvrammanager binary likely as following C code[1]:

 sscanf(buf, "%d.%d.%*s",&upd_fw_major, &upd_fw_minor);
 ...
 if (((int)upd_fw_major < (int)cur_fw_major) ||
     ((ret = 1, cur_fw_major == upd_fw_major && (upd_fw_minor < (int)cur_fw_minor)))) {
       ret = 0;
       printf("[NM_Error](%s) %05d: Firmwave not supports, check failed.\r\n\r\n","nm_checkSoftVer" ,0x350);
 }
 ...
 return ret;

So in order to fix this and make it future proof it should be enough to
ship our factory firmware images with major version 7 (lucky number).

Tested on latest firmware version 1.1.2 Build 20210125 rel.37999:

 Firmwave supports, check OK.
  (curFw_ver, newFw_ver) == (1.1, 7.0) check firmware ok!

Flashing back to vendor firmware
c7v5_us-up-ver1-1-2-P1[20210125-rel37999]_2021-01-25_10.33.55.bin works
as well:

 U-Boot 1.1.4-gbec22107-dirty (Nov 18 2020 - 18:19:12)
 ...
 Firmware downloaded... filesize = 0xeeae77 fileaddr = 0x80060000.
 Firmware Recovery file length : 15642231
 Firmware process id 2.
 handle_fw_cloud 146
 Image verify OK!
 Firmware file Verify ok!
 product-info:product_name:Archer C7
 product_ver:5.0.0
 special_id:55530000
 [Error]sysmgr_cfg_checkSupportList(): 1023 @ specialId 45550000 NOT Match.
 Firmware supports, check OK.
 Firmware Recovery check ok!

1. https://gist.github.com/ynezz/2e0583647d863386a66c3d231541b6d1

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-04-13 23:30:08 +08:00
David Bauer
6f025719be ath79: add missing patch for kernel 5.10
When adding the patch for the missing register, the patch file for the
testing kernel 5.10 was not included.

Fixes commit fbbad9a9a6 ("ath79: force SGMII SerDes
mode to MAC operation")
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-13 23:29:49 +08:00
David Bauer
7fae25ad5b ath79: force SGMII SerDes mode to MAC operation
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>
2021-04-13 23:29:30 +08:00
Mathias Kresin
83890be627 lantiq: kernel 5.10: disable ltq-deu
For linux 5.10, kmod-ltq-deu need to be migrated to the new crypto
API/framework.

Leave it in tree for now and enable it only for Kernel 5.4. Maybe
someone picks up the work to migrate the package.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-04-13 23:29:10 +08:00
Mathias Kresin
b1196db82a lantiq: add Linux 5.10 support as testing kernel
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>
2021-04-13 23:28:38 +08:00
Mathias Kresin
74be15ec51 lantiq: copy target to kernel 5.10
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>
2021-04-13 23:28:08 +08:00
Mathias Kresin
90712a47b2 lantiq: dts: mark PCI bridges as such
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>
2021-04-13 23:27:45 +08:00
Mathias Kresin
6a5c2f57c4 lantiq: ltq-adsl: add kernel 5.10 compatiblity
The pgprot argument to __vmalloc is always PAGE_KERNEL now and was
removed.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-04-13 23:27:22 +08:00
Mathias Kresin
ba71bc57f2 lantiq: ltq-vdsl: add kernel 5.10 compatiblity
The pgprot argument to __vmalloc is always PAGE_KERNEL now and was
removed.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-04-13 23:27:01 +08:00
Mathias Kresin
772e71f8a0 ltq-atm/ltq-ptm: add kernel 5.10 compatiblity
The callback handling of the tasklet API was redesigned and the macros
using the old syntax renamed to _OLD.

The stuck queue is now passed to ndo_tx_timeout callback but not used so
far.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-04-13 23:26:37 +08:00
Mathias Kresin
78d0ec37d7 lantiq: ltq-tapi: add kernel 5.10 compatiblity
Due to SCHED_FIFO being a broken scheduler model, all users of
sched_setscheduler() are converted to sched_set_fifo_low() upstream and
sched_setscheduler() is no longer exported.

The callback handling of the tasklet API was redesigned and the macros
using the old syntax renamed to _OLD.

Signed-off-by: Mathias Kresin <dev@kresin.me>

ltq tapi
2021-04-13 23:26:16 +08:00
Mathias Kresin
884b5fdc23 lantiq: ltq-vdsl-mei: add kernel 5.10 compatiblity
proc_create_data() expects a struct of type proc_ops.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-04-13 23:25:55 +08:00
Mathias Kresin
e856ecb3e3 lantiq: ltq-ifxos: add kernel 5.10 compatiblity
ioremap has provided non-cached semantics by default since the Linux 2.6
days and was removed with kernel version 5.6.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-04-13 23:25:16 +08:00
Daniel Golle
d000ccc360 kernel: fix deferred mtdblock registration
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: 2809d00007 ("kernel: support FIT partition parser on mtdblock devices")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-13 23:24:49 +08:00
Zoltan HERPAI
d9308a512e sunxi: add support for Banana Pi M2 Berry
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>
2021-04-13 23:24:23 +08:00
Koen Vandeputte
1a561fb755 ath79: mikrotik: enable 2nd USB on RouterBOARD 922UAGS-5HPacD
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>
2021-04-13 23:24:03 +08:00
Tianling Shen
e636a2fb6f [HOTFIX] Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-13 14:05:58 +08:00
Daniel Golle
cd224054cf uboot-mediatek: minor fixes for bpi-r64 spi-nand default env
* check image checksums before writing to flash
 * only bootmenu_0...9 are working, remove bootmenu_a entry

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:48:09 +08:00
Tianling Shen
60665e82a4 mediatek: sync with upstram source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:40:15 +08:00
Daniel Golle
6df023ae9e uboot-envtools: support environment in spi-nand on bpi-r64
Default to U-Boot env in UBI if root device is not mmc block device.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:32:36 +08:00
Oskari Lemmela
86e3ac05e6 mediatek: mt7622: add spi-nand support for bananapi bpi-r64
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>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:30:56 +08:00
Daniel Golle
3336147335 uboot-mediatek: add spi-nand build for bananapi bpi-r64
Some of bpi-r64 boards have serial NAND attached to SPI bus.
Build U-Boot for booting from SPI-NAND.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:27:17 +08:00
Oskari Lemmela
14f546b329 mediatek: bpi-r64: use separate partition for emmc bootloader
eMMC booloader is stored to separate partition.
FIP size is increased to 2MB.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:26:56 +08:00
Daniel Golle
c2080410a7 mediatek: generate complete sdcard image for BPi-R64
Populate the recovery and production partitions of the generated sdcard
image for the Bananapi BPi-R64.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:26:51 +08:00
Felix Fietkau
faf58bac22 mt76: add missing file
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:25:42 +08:00
Felix Fietkau
31c220e051 mt76: update to the latest version
028b7152b1a9 mt76: mt7921: remove 80+80 MHz support capabilities
7714dc914df6 mt76: report Rx timestamp
ffd4cf15fa0e mt76: mt7915: add mmio.c
fe8717dd573a mt76: mt7615: add missing SPDX tag in mmio.c
6b293c411d22 mt76: mt7615: always add rx header translation tlv when adding stations

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:25:38 +08:00
Felix Fietkau
1c4f51c5fc mac80211: add client mode connection monitor fix
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:25:34 +08:00
Felix Fietkau
8310a3af2b mac80211: support rx timestamps for HE rates
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:25:29 +08:00
Zoltan HERPAI
811c9b211b mxs: add support for 5.10 as testing kernel
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>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:25:20 +08:00
Tianling Shen
21d72c6953 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:23:17 +08:00
AmadeusGhost
7a8af2599f sunxi: disable LPAE on cortexa7
It seems that this option will take up 64 MB of memory.
Ref: https://github.com/coolsnowwolf/lede/issues/6667
2021-04-11 23:40:35 +08:00
AmadeusGhost
7686e88d07 sunxi: disable RTC on h3/h5
The in-SoC RTC is more disruptive than useful
without a battery connected.
2021-04-11 23:37:56 +08:00
Oskari Lemmela
9c03f8b1e7 mediatek: fix writing bananapi bpi-r64 env
Use generic functions to get env partition.

Fixes: 7043e4334f ("mediatek: mt7622: improve sysupgrade on MMC")
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
2021-04-11 23:31:01 +08:00
Hauke Mehrtens
9566d2acd8 kernel: Adapt renamed can-dev.ko
The can-dev.ko kernel module was moved in kernel 5.4.110 and 5.10.28.

Fixes: a1311df95587 ("kernel: bump 5.10 to 5.10.28")
Fixes: b0a34e886d ("kernel: bump 5.4 to 5.4.110")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-04-11 23:28:45 +08:00
Zoltan HERPAI
bb43311043 sunxi: disable LPAE on cortexa8
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>
2021-04-11 23:28:23 +08:00
Jan Forman
f580754255 ath79: increase max SPI clock for DIR-859 A1
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>
2021-04-11 23:28:04 +08:00
Shiji Yang
492492d196 ramips: improve pinctrl for Youku YK-L1
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>
2021-04-11 23:27:47 +08:00
Rui Salvaterra
8d2f460b36 kernel: bump 5.10 to 5.10.28
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>
2021-04-11 23:27:18 +08:00
John Audia
f084cb0f4c kernel: bump 5.4 to 5.4.110
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>
2021-04-11 23:26:59 +08:00
Adrian Schmutzler
916d59111a mediatek: remove duplicate dts-v1 statement for UniFi 6 LR
/dts-v1/; must only be specified once.

Fixes: e887049fbb ("mediatek: add alternative bootchain variant
for UniFi 6 LR")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-04-11 23:26:31 +08:00
Adrian Schmutzler
668fe8fb0d ath79: consolidate testing kernel
All subtargets have the same testing kernel set, so move it to the
target definition.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-04-11 23:26:07 +08:00
Felix Fietkau
106526d409 kernel: fix mtd squashfs root regression on targets with CONFIG_FIT_PARTITION
Move 480-mtd-set-rootfs-to-be-root-dev.patch to hack-5.10 and fix assumption
about the block device index.

Fixes: 2809d00007 ("kernel: support FIT partition parser on mtdblock devices")
Acked-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-04-11 23:18:17 +08:00
Felix Fietkau
4141aceb24 kernel: update flow offload patches to upstream version
Move patches to backport-5.10, since the series was accepted upstream

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-04-11 23:17:50 +08:00
Piotr Dymacz
8a4ec92880 uboot-envtools: oxnas: drop redundant space after case keywords
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-04-11 23:17:14 +08:00
Piotr Dymacz
024f3ead96 uboot-envtools: layerscape: drop redundant space after case keywords
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-04-11 23:16:54 +08:00
Piotr Dymacz
edb0c3bcf2 uboot-envtools: ipq806x: drop redundant space after case keywords
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-04-11 23:16:14 +08:00
Piotr Dymacz
1cfb07a8f1 uboot-envtools: ipq40xx: drop redundant space after case keywords
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-04-11 23:14:32 +08:00
Piotr Dymacz
c192c38efd uboot-envtools: imx6: drop redundant space after case keywords
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-04-11 23:12:31 +08:00
Piotr Dymacz
7cfb2bf76e uboot-envtools: drop shebang from uci-defaults and lib files
These files are sourced and non-executable, a shebang is redundant.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-04-11 23:12:20 +08:00
Piotr Dymacz
1223d497f7 uboot-imx6: define 'BUILD_DEVICES' for Toradex Apalis
Without 'BUILD_DEVICES' defined, the U-Boot related package won't be
automatically selected when building for Toradex Apalis device.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-04-11 23:12:10 +08:00
Piotr Dymacz
14f69b2198 uboot-imx6: align indent size in Makefile
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2021-04-11 23:11:59 +08:00
Piotr Dymacz
67f1d43123 uboot-imx6: drop support for Nitrogen6x/SABRE devices
These devices never got officially supported in the tree thus it doesn't
make much sense to waste our infrastructure resources and keep building
dedicated U-Boot images for them.

CC: Petr Štetiar <ynezz@true.cz>
CC: Luka Perkov <luka.perkov@sartura.hr>
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
Acked-by: Petr Štetiar <ynezz@true.cz>
2021-04-11 23:11:46 +08:00
Tianling Shen
03c8db5bf6 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-10 14:38:11 +08:00
Daniel Golle
d234662052 mediatek: add alternative bootchain variant for UniFi 6 LR
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>
2021-04-09 23:58:04 +08:00
Daniel Golle
7699622af2 uboot-envtools: add env settings for ubnt,unifi-6-lr-ubootmod
Add settings for fw_printenv/fw_setenv for the Ubiquiti UniFi 6 LR
when running OpenWrt's version of U-Boot. The settings should work
equally with the unmodified version, but that has not yet been
tested.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-09 23:57:12 +08:00
Daniel Golle
74d1a3bee0 uboot-mediatek: add build for Ubiquiti Networks UniFi 6 LR
Add U-Boot build for the Ubiquiti Networks UniFi 6 LR access point.
This allows updating the bootchain to modern ARM Trusted Firmware 2.4
and U-Boot 2021.04 while keeping as much of the existing flash layout
as possible (u-boot-env, factory and eeprom partitions are retained),
gaining robust recovery vs. production dual-boot mechanism.
Add info for the Winbond W25Q512JV SPI NOR flash used in the device
and wait for GPIOs to settle after reset before checking for reset
button.
I2C connected LED controller is not supported yet.
Writing large amounts of data to SPI flash currently doesn't work due
to watchdog timeout causing reset before data write completes.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-09 23:56:46 +08:00
Daniel Golle
8ee879c39e arm-trusted-firmware-mediatek: increase NOR bl3 size
Use bl3 size of 0xa0000 instead of 0x80000 in NOR flash.
This results in bl3 ending at 0xc0000 which is where the legacy
bootchain typically puts U-Boot environment.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-09 23:56:15 +08:00
Daniel Golle
c1fad6e0a1 kernel: support FIT partition parser on mtdblock devices
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>
2021-04-09 23:55:40 +08:00
Daniel Golle
f84d12327f kernel: mtdsplit_fit: support FIT with external data
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>
2021-04-09 23:55:16 +08:00
Daniel Golle
d4cd9b67eb uboot-mediatek: bpi-r64: erase eMMC environment on installation
Erase U-Boot environment partition on eMMC on installation to make sure
chages are applied.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-09 23:54:54 +08:00
Rafał Miłecki
eacaf71070 firmware-utils: add -Wall to most tools
This helps spotting possible problems

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-09 23:53:06 +08:00
Rafał Miłecki
c7f4fe2d95 firmware-utils: fix -Wpointer-sign warnings
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-09 23:52:30 +08:00
Rafał Miłecki
859b4ad365 firmware-utils: fix -Wmaybe-uninitialized warnings
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-09 23:52:02 +08:00
Rafał Miłecki
ea07efe6a6 firmware-utils: fix few random warnings
1. -Wunused-label
2. -Wparentheses
3. -Wmisleading-indentation
4. -Wformat-overflow

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-09 23:51:38 +08:00
Rafał Miłecki
24f1425066 firmware-utils: fix unused variable warnings
This fixes warnings from the:
1. -Wunused-variable
2. -Wunused-but-set-variable

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-09 23:51:09 +08:00
Rafał Miłecki
fe1d75758e firmware-utils: fix all -Wformat warnings
1. Use %hhu for uint8_t
2. Use %z for size_t

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-09 23:50:44 +08:00
Rafał Miłecki
6fc2317f16 bcm4908: enable Netgear R8000P bootloader image
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>
2021-04-08 23:18:46 +08:00
Rafał Miłecki
6b0854955b bcm4908: enable target & Asus GT-AC5300 image
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>
2021-04-08 23:16:16 +08:00
Rafał Miłecki
a9276c7e9e firmware-utils: bcm4908img: convert into a package
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>
2021-04-08 23:15:54 +08:00
Rafał Miłecki
f534d0417e firmware-utils: bcm4908img: fix uninitialized var usage
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-08 23:15:22 +08:00
Szabolcs Hubai
a6b1386edf ramips: rt305x: use lzma-loader for ZyXEL Keenetic Lite rev.B
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] fea232ae8f (commitcomment-45016560)

Fixes: 4dc9ad4af8 ("ramips: add support for ZyXEL Keenetic Lite Rev.B")
Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
2021-04-08 23:14:59 +08:00
Michael Pratt
908c15d3b9 ath79: move pcie node to DTSI for qca955x Senao APs
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>
2021-04-08 23:14:30 +08:00
Michael Pratt
b0fd25683e ath79: cleanup DTS for ALLNET ALL-WAP02860AC
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>
2021-04-08 23:13:40 +08:00
Michael Pratt
3b193c63c1 ath79: add factory.bin for ALLNET ALL-WAP02860AC
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>
2021-04-08 23:13:15 +08:00
Michael Pratt
cac20a9c21 ath79: add Senao 'failsafe' sysupgrade procedure
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>
2021-04-08 23:12:55 +08:00
Michael Pratt
1c18720840 ath79: adjust ath79/tiny Senao APs to 4k blocksize
ath79/tiny kernel config has
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
from commit
05d35403b2

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>
2021-04-08 23:12:34 +08:00
Michael Pratt
981ca670b8 ath79: remove 'fakeroot' for Senao devices
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>
2021-04-08 23:12:14 +08:00
Michael Pratt
4b06045272 ath79: lzma-loader: allow setting custom kernel magic
...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>
2021-04-08 23:11:52 +08:00
Bjørn Mork
cbee16ce90 realtek: allow writing to "u-boot-env2"
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>
2021-04-08 23:11:25 +08:00
Bjørn Mork
589924ae81 uboot-envtools: add wrapper scripts for alternate config
Now that we can create an alternate configuration file, add two
wrapper scripts for simple access to it using the alternate
alternate application names `fw_printsys' and `fw_setsys'.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-04-08 23:10:44 +08:00
Bjørn Mork
5aec93b148 uboot-envtools: add support for multiple config partitions
Most (all?) of the realtek devices have two u-boot config partitions
with a different set of variables in each. The U-Boot shell provides
two sets of apps to manipulate these:

 printenv- print environment variables
 printsys- printsys - print system information variables
 saveenv - save environment variables to persistent storage
 savesys - savesys - save system information variables to persistent storage
 setenv  - set environment variables
 setsys  - setsys  - set system information variables

Add support for multiple ubootenv configuration types, allowing
more than one configuration file.

Section names are not suitable for naming the different
configurations since each file can be the result of multiple sections
in case of backup partitions.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-04-08 23:10:18 +08:00
AmadeusGhost
c7fb16903d rockchip: orangepi-r1-plus: typo fixes
This affects nothing, just correct the format.
2021-04-07 23:20:37 +08:00
Felix Fietkau
427188fc46 mt76: update to the latest version
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-04-07 23:15:34 +08:00
Rafał Miłecki
2d175babef bcm4908: fix Netgear R8000P image
Use vendor format to allow flashing using Negear UI.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-07 23:14:58 +08:00
Rafał Miłecki
a433bd7123 bcm4908: add sysupgrade support
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>
2021-04-07 23:14:25 +08:00
Rafał Miłecki
d5c129e60e bcm4908: pad firmware image bootfs JFFS2 partition to 8 MiB
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>
2021-04-07 23:13:54 +08:00
Rafał Miłecki
2e784c69d2 firmware-utils: bcm4908img: extract bootfs without padding
JFFS2 bootfs partition in a BCM4908 image usually includes some padding.
For flashing it individually (writing to designed MTD partition) we want
just JFFS2 data.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-07 23:13:25 +08:00
Rafał Miłecki
16a83001bd firmware-utils: bcm4908img: fix extracting cferom
Fix offset to extract proper data when image contains vendor header.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-07 23:12:53 +08:00
Rafał Miłecki
19f4bd6a38 firmware-utils: bcm4908img: support extracting bootfs & rootfs
It's required for upgrading firmware using single partitions instead of
just blindly writing whole image.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-07 23:12:10 +08:00
Rafał Miłecki
4bbd169e67 firmware-utils: bcm4908img: replace size with offset
It's much easier to operate on BCM4908 image data with absolute offset
of each section stored. It doesn't require summing sizes over and over.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-07 23:11:46 +08:00
Koen Vandeputte
d1de305d4f ath79: ar934x-nand: fix broken nand on kernel 5.10
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>
2021-04-07 23:10:36 +08:00
Tianling Shen
c0708f5054 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-06 20:50:55 +08:00
Rafał Miłecki
923bbdf0d4 bcm4908: rename bootfs dummy file to the 1-openwrt
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>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-06 20:50:45 +08:00
Daniel Golle
799fed6b8f uboot-mediatek: update to v2021.04
Remove patches merged upstream and refresh the remaining ones.
Runtime tested on
 * Bananapi BPi-R64 (eMMC and SD Card)
 * Linksys E8450 (SPI-NAND)
 * Ubiquiti UniFi 6 LR (SPI-NOR)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-06 20:50:41 +08:00
Tianling Shen
c67ca43017 Revert "rockchip: backport upstream usbdrd3 patches"
This reverts commit 2d6e43739c.

This is not stable yet, and has some issues when detects USB devices.

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-04-06 19:56:35 +08:00
Rafał Miłecki
e50cb7ef9c bcm4908: enable JFFS2 support
It's needed for accessing JFFS2 bootfs partition.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-04-05 19:44:50 +08:00
Rafał Miłecki
ec67b12f15 firmware-utils: bcm4908img: add bootfs support
This adds support for accessing bootfs JFFS2 partition in the BCM4908
image. Support includes:
1. Listing files
2. Renaming file (requires unchanged name length)

Above commands are useful for flashing BCM4908 images which by defualt
come with cferom.000 file and require renaming it.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-04-05 19:44:46 +08:00
Rafał Miłecki
ca935fa36e firmware-utils: bcm4908img: support extracting image data
It's useful for upgrading cferom, firmware, etc.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-04-05 19:44:42 +08:00
Rafał Miłecki
c41d829267 firmware-utils: bcm4908img: find cferom size
It's important for modifying / extracting firmware content. cferom is
optional image content at the file beginning.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-04-05 19:44:39 +08:00
Rafał Miłecki
daefd4b832 firmware-utils: bcm4908img: use "info" command displaying file info
BCM4908 image format contains some info that may be useful for info /
debugging purposes.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-04-05 19:44:36 +08:00
Rafał Miłecki
55f6193385 firmware-utils: bcm4908img: support reading from stdin
1. Don't allow pipe stdin as we need to fseek()
2. Don't alow TTY as it doesn't make sense for binary input

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-04-05 19:44:32 +08:00
Rafał Miłecki
bcd993924e firmware-utils: bcm4908img: detect Netgear vendor firmware
Netgear uses CHK header which needs to be skipped when validating
BCM4908 image. Detect it directly in the bcm4908img tool. Dealing with
binary structs and endianess is way simpler in C.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-04-05 19:44:28 +08:00
Rafał Miłecki
9fd08f6e71 firmware-utils: bcm4908img: extract parsing code
Move code parsing existing firmware file to separated function. This
cleans up existing code and allows reusing parsing code for other
commands.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-04-05 19:44:25 +08:00
Tianling Shen
2d6e43739c rockchip: backport upstream usbdrd3 patches
Link: https://lore.kernel.org/linux-rockchip/20210205114011.10381-1-jbx6244@gmail.com/
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-05 15:16:42 +08:00
Daniel Golle
6c78243c4d uboot-mediatek: bpi-r64: no longer force recovery on first-boot
Now that sdcard.gz image contains everything needed to boot straight
into production image, no longer force booting into recovery image on
first boot by removing the logic which implemented that.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-05 11:02:25 +08:00
Felix Fietkau
234cf9927b mt76: update to the latest version
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-04-05 11:01:58 +08:00
Tianling Shen
b5a3340a9b Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-04 23:24:08 +08:00
Tianling Shen
bbceea5763 rockchip: nanopi-r4s: fix patch offset
Fixes: #343

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-04 14:10:07 +08:00
Yousong Zhou
b0f7e37091 generic/5.10: support mtd-mac-address-ascii
It supports formats of both 001122334455 and 00:11:22:33:44:55

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2021-04-04 12:25:01 +08:00
Kevin Darbyshire-Bryant
258e647d6b kernel: bump 5.10 to 5.10.27
Use update_kernel to refresh all patches, required manual updates to:

610-netfilter_match_bypass_default_checks.patch
611-netfilter_match_bypass_default_table.patch
762-net-bridge-switchdev-Refactor-br_switchdev_fdb_notif.patch
764-net-bridge-switchdev-Send-FDB-notifications-for-host.patch

Run-tested: x86_64

Nothing screamed out but any funny business with linux bridging should
suspect this update first.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-04-04 12:23:06 +08:00
John Audia
27f4500268 kernel: bump 5.4 to 5.4.109
Ran update_kernel.sh in a fresh clone without any existing toolchains.

Manually rebased:
  pending-5.4/611-netfilter_match_bypass_default_table.patch

The upstream change affecting this patch is the revert of an earlier
kernel commit. Therefore, we just revert our corresponding changes
in [1].

Build system: x86_64
Build-tested: ipq806x/R7800

[1] 9b1b89229f ("kernel: bump 5.4 to 5.4.86")

Signed-off-by: John Audia <graysky@archlinux.us>
[adjust manually rebased patch, add explanation]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-04-04 12:22:41 +08:00
Hauke Mehrtens
11c0a9806a uclient: update to Git version 2021-04-03
83efca2 tests: fix possibly longer start of HTTP server
64e00d6 uclient-fetch: document missing options

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-04-04 12:22:19 +08:00
Hauke Mehrtens
03e20c0727 netifd: update to Git version 2021-04-03
f8899b9 netifd: bridge: set default value for igmp_snoop
327da98 netifd: add possibility to switch off route config

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-04-04 12:22:05 +08:00
Daniel Golle
d4d1bccf35 netifd: update to git HEAD
09632d4 device: remove left-over comment
 b22f83d handler: add mechanism to generate external device handler stubs
 80bf9d7 extdev: add support for external device handlers
 44c0f40 system-linux: reorder sysctl functions
 c84f3b0 system-linux: add device options used by wpad

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-04 12:21:45 +08:00
Stijn Segers
03112f7533 realtek: rename partitions in Netgear DTSI
Switch the Netgear DTSI for the Realtek target from the OEM partition
naming scheme to accepted OpenWrt naming practices. A quick git grep for
'u-boot-env' e.g. in the OpenWrt tree turns up almost 500 hits whereas
grepping for 'bdinfo' (the OEM equivalent) returns a meagre 14.

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
2021-04-04 12:20:18 +08:00
Rui Salvaterra
c6f99549dc hostapd: enable airtime policy for the -basic variants
Airtime policy configuration is extremely useful in multiple BSS scenarios.
Since nowadays most people configure both private and guest networks (at
least), it makes sense to enable it by default, except for the most limited
of the variants.

Size of the hostapd-basic-openssl binary (mipsel 24Kc -O2):
543944 bytes (airtime policy disabled)
548040 bytes (airtime policy enabled)

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Acked-by: Daniel Golle <daniel@makrotopia.org>
2021-04-04 12:19:59 +08:00
Andreas Böhler
b109214f91 lantiq: add basic support for AVM FRITZ!Box 3390
The FRITZ!Box 3390 actually contains two SoCs, one Lantiq with a
5GHz WiFi and one AR9342 with a 2.4GHz WiFi. Only the Lantiq
has access to the flash memory, the Atheros runs fully from RAM.

Specifications
--------------

  - Lantiq 500 MHz
  - 128MiB RAM
  - 128MiB NAND
  - 256k Flash
  - AR9580 5GHz WiFi
  - AR9342 560 MHz
  - 64MiB RAM
  - AR9328 2.4GHz WiFi

Remarks
-------

This commit only adds support for the Lantiq side of things and
prepares the drivers for communication with the Atheros SoC. Thus,
only 5GHz WiFi works by default, the 2.4GHz WiFi will be added via
another target.

Some kernel patches will be required to add support for the Atheros SoC.

Installation
------------

Use the eva_ramboot.py script to boot the initramfs image. Then, transfer
the sysupgrade image to the device and run sysupgrade to flash it to the
NAND.

Signed-off-by: Andreas Böhler <dev@aboehler.at>
Acked-by: Aleksander Jan Bajkowski A.Bajkowski@stud.elka.pw.edu.pl
Signed-off-by: Joachim Cerny <cocktail_yogi@web.de>
2021-04-04 12:17:44 +08:00
Joachim Cerny
b98136d5a4 lantiq: VR9: fix gpio-hog by defining the GPIO ranges
defined gpio-ranges according to Reference: https://github.com/torvalds/linux/blob/master/drivers/pinctrl/pinctrl-xway.c#L864
This change is needed by gpio-hog on Fritzbox 3390
thx to @abajk

Acked-by: Aleksander Jan Bajkowski A.Bajkowski@stud.elka.pw.edu.pl
Signed-off-by: Andreas Böhler <dev@aboehler.at>
Signed-off-by: Joachim Cerny <cocktail_yogi@web.de>
2021-04-04 12:17:10 +08:00
Jeroen Peelaerts
76dad6eae5 lantiq: use ActualNetDataRate for speed reporting
Switch to Actual Net Data Rate (ACTNDR) for speed reporting on lantiq VDSL modems

Refer to ITU-T G.997.1 chapter 7.5.2.8

Independent whether retransmission is used or not in a given transmit direction:
-   In L0 state, this parameter reports the Net Data Rate (as specified in G.992.3, G.992.5 or G.993.2) at which the bearer channel is operating.
-   In  L2 state, the parameter contains the Net Data Rate (as specified in G.992.3, G.992.5 or G.993.2) in the previous L0 state.

Signed-off-by: Jeroen Peelaerts <jeroen.peelaerts@gmail.com>
Reviewed-by: Andre Heider <a.heider@gmail.com>
2021-04-04 12:16:41 +08:00
Jeroen Peelaerts
fb161e425e lantiq: enable G.INP retransmission counters
This commit adds monitoring for a couple of DSL line features that are
present in the lantiq firmware blobs.

* G.INP ON/OFF
* Trellis encoding ON/OFF
* Virtaul Noise ON/OFF
* Bitswap ON/OFF

Difference in size for ltq-vdsl-app = 1k
Difference in size for kmod-ltq-vdsl-vr9 < 1k

Reviewed-by: Andre Heider <a.heider@gmail.com>
Signed-off-by: Jeroen Peelaerts <jeroen.peelaerts@gmail.com>
2021-04-04 12:16:22 +08:00
Shiji Yang
89969817f5 ramips: fix IMAGE_SIZE of HC5x6: fix image size of HC5x61
"firmware" partition size defined in the device tree file is 0xf70000,
so the right IMAGE_SIZE is 15808k

Fixes: df1e5d6463 ("ramips: fix partition layout of hiwifi hc5x61")
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2021-04-04 12:16:04 +08:00
Daniel Engberg
1999685611 ramips: Fix booting on MQmaker WiTi board
This fixes the dreaded "lzma error 1" also reported on similar devices
Ref: https://bugs.openwrt.org/index.php?do=details&task_id=3057

Fixes: FS#3057
Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2021-04-04 12:15:38 +08:00
René van Dorst
176dfa4f0f ramips: Fix booting on MTC WR1201
This fixes the dreaded "lzma error 1" also reported on similar devices
Ref: https://bugs.openwrt.org/index.php?do=details&task_id=3057

Fixes: FS#3057
Signed-off-by: René van Dorst <opensource@vdorst.com>
2021-04-04 12:14:41 +08:00
Aleksander Jan Bajkowski
fddc324ad2 armvirt: add 5.10 testing kernel
Add 5.10 as testing kernel. Builds successfully with
CONFIG_ALL_KMODS=y enabled.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-04-04 12:13:35 +08:00
Aleksander Jan Bajkowski
a7da427100 armvirt: refresh 5.10 config
This was done by executing these commands:
$ make kernel_oldconfig CONFIG_TARGET=subtarget
$ make kernel_oldconfig CONFIG_TARGET=subtarget_platform

Some common symbols have been moved to target config.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-04-04 12:13:16 +08:00
Aleksander Jan Bajkowski
184109b71c armvirt: copy config files for 5.10
Copy config and patches for 5.10.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-04-04 12:11:59 +08:00
Aleksander Jan Bajkowski
5547354015 armvirt: refresh 5.4 config
This was done by executing these commands:
$ make kernel_oldconfig CONFIG_TARGET=subtarget
$ make kernel_oldconfig CONFIG_TARGET=subtarget_platform

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-04-04 12:11:41 +08:00
QiuSimons
75f2e29fc4 rockchip: nanopi-r4s: adjust cpu-voltage table
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-04 01:41:51 +08:00
Tianling Shen
dee4f72e1a Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-02 17:56:33 +08:00
Rafał Miłecki
6a8f3952c3 bcm53xx: use upstream Linksys EA9500 fixes
One fix was accepted, one was added.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-01 23:18:58 +08:00
Daniel Golle
900a731f31 uboot-mediatek: adapt root= cmdline arg for bpi-r64
Adapt to FIT partition parser changes.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-01 23:18:37 +08:00
Daniel Golle
4f959d1927 kernel: fix FIT partition parser compatibility issues
The uImage.FIT partition parser used to squeeze in FIT partitions in
the range where partition editor tools (fdisk and such) expect the
regular partition. This is confusing people and tools when adding
additional partitions on top of the partition used for OpenWrt's
uImage.FIT.
Instead of squeezing in the additional partitions, rather start with
all uImage.FIT partitions at offset 64.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-01 23:17:54 +08:00
Rafał Miłecki
1533621edb bcm4908: backport DT patch adding Ethernet MAC address
This tells OS (Linux) where from MAC should be read (bootloader MTD
partition).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-04-01 23:17:27 +08:00
Álvaro Fernández Rojas
0823e8dec9 bmips: backport pinctrl fixes
Backport some minor upstream fixes for the pinctrl drivers.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-04-01 23:16:37 +08:00
QiuSimons
c07a8ceb87 rockchip: nanopi-r4s: fix read macaddr from Ethernet
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-01 19:46:09 +08:00
Tianling Shen
777d50797e Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-31 23:30:18 +08:00
Ilya Lipnitskiy
7bf1691e63 ramips: mt7620: ralink-i2s: fix modpost error
Fixes the following error when building without CONFIG_MODULE_STRIPPED:
  FATAL: modpost: sound/soc/ralink/snd-soc-ralink-i2s: struct
  of_device_id is not terminated with a NULL entry!

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-03-31 23:09:28 +08:00
Rui Salvaterra
96922a2ff7 ramips/mt7621: enable support for cpuidle
MIPS Coherent Processor Systems (CPS), which include the MT7621 SoC, support
deep sleep idle states and have a specific cpuidle driver for them.
Enable support for it, while also switching from constant timer ticks to the
idle dynticks model, with the TEO governor.

Run-tested on a Redmi AC2100.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-03-31 23:08:57 +08:00
Rui Salvaterra
28067f82b9 ramips/mt7621: drop the timer recalibration patch
We've been carrying this patch for many years [1], in order to fix a timer
calibration issue on MT7621. Turns out, after retesting with a recent kernel
(Linux 5.10), the system works perfectly fine without it (no rcu_sched stalls
or inconsistent BogoMIPS values across CPUs).

Manually refreshed:
322-mt7621-fix-cpu-clk-add-clkdev.patch
323-mt7621-memory-detect.patch

[1] https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=6f4a903533361a2906a4d94ac6f597cd9c6c47bc

Suggested-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Tested-by: Donald Hoskins <grommish@gmail.com>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-03-31 23:08:36 +08:00
Rui Salvaterra
71b99141de ramips/mt7621: drop the weak reordering patch
In order to fix random hangs on MT7621, we've been selecting
WEAK_REORDERING_BEYOND_LLSC for years [1]. However, these random hangs have been
most likely caused by an oversight in the MIPS implementation of the kernel
memory consistency model, which has already been fixed for some time (and
backported to stable) [2].

Manually refreshed:
321-mt7621-timer.patch

[1] https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=5c971cd6fdd7298a2017bdb6bea870088eddb8b9
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/mips?h=linux-5.4.y&id=42344113ba7a1ed7b5654cd5270af0d5698d8521

Suggested-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Tested-by: Donald Hoskins <grommish@gmail.com>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-03-31 23:08:06 +08:00
Zoltan HERPAI
6ec43e6372 sunxi: enable wifi module on Pine64 boards
The Pine64(+) and the SoPine64 baseboard has an optional BT+WiFi
module, carrying an RTL8723BS. The wifi part is connected via
SDIO, the BT part is connected via UART. The BT part requires
additional code changes in the drivers so we'll skip that until 5.10.
Aside from a DTS patch to enable the wifi module, add the required
packages into the device definitions.

[    8.996970] RTL8723BS: module init start
[    9.000922] RTL8723BS: rtl8723bs v4.3.5.5_12290.20140916_BTCOEX20140507-4E40
[    9.007965] RTL8723BS: rtl8723bs BT-Coex version = BTCOEX20140507-4E40
[    9.014785] pnetdev = 000000009bdd5000
[    9.047780] RTL8723BS: rtw_ndev_init(wlan0)
[    9.053349] RTL8723BS: module init ret =0

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2021-03-30 23:13:04 +08:00
Zoltan HERPAI
bb80b5a02d sunxi: enable MUSB in A53 subtarget
The Pine64(+) and the SoPine64 baseboard has two USB ports. One of
these (the lower) is connected directly to a USB host, the other
one's (upper) PHY is shared with the separate OTG controller. In
order to get it working, MUSB support needs to be enabled.

As there are other targets which compile MUSB support into the kernel
and not package it into modules, the same is done here.

[    1.348760] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[    1.357029] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.364250] usb usb5: Product: MUSB HDRC host driver
[    1.369219] usb usb5: Manufacturer: Linux 5.4.99 musb-hcd
[    1.374617] usb usb5: SerialNumber: musb-hdrc.1.auto
[    1.379891] hub 5-0:1.0: USB hub found
[    1.383677] hub 5-0:1.0: 1 port detected
[...]
[  697.299440] usb 1-1: new high-speed USB device number 2 using ehci-platform
[  697.461855] usb 1-1: New USB device found, idVendor=090c, idProduct=1000, bcdDevice=11.00
[  697.470038] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  697.477180] usb 1-1: Product: USB Flash Disk

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2021-03-30 23:12:35 +08:00
Álvaro Fernández Rojas
bfd23f56e7 bmips: dts: align LEDs
Align all bmips devices LED configurations.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-30 23:12:16 +08:00
Álvaro Fernández Rojas
230487a69b bmips: backport accepted pinctrl patches
These patches have been accepted for linux v5.13.
External interrupts not supported for now.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-30 23:11:48 +08:00
Álvaro Fernández Rojas
04ef5bfecf bmips: vr-3032u: fix gpio keys
These GPIO keys were assigned to incorrect pins.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-30 23:11:21 +08:00
Álvaro Fernández Rojas
ca5636e63f bmips: dgnd3700-v2: fix gpio keys
These GPIO keys were assigned to incorrect pins.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-30 23:10:54 +08:00
Tianling Shen
d1b6b74f52 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-30 03:37:03 +08:00
AmadeusGhost
52470b2bd0 rockchip: add support for OrangePi R1 Plus
Hardware Specification:
  CPU: RockChip RK3328 (4 cores)
  RAM: 1GB DDR4
  Ethernet: 2x 1000 Base-T
  Flash: SPI-NOR 16 MB (mx25l12835f)
  LED: SYS, LAN, WAN
  MicroSD Slot x 1
  Button: Reset
  USB:1x 2.0
  Serial1: 13 Pin pin-header
  Serial2: 3 Pin debug port
  Type-C: for power input
  Power Supply: DC 5V/2A

Installation:
  Write the image to SD Card with dd.

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-03-29 23:29:18 +08:00
Rafał Miłecki
b78154327e bcm53xx: fix Linksys EA9500 partitions
Use proper DT binding.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-29 23:22:35 +08:00
Rafał Miłecki
f61cca5529 kernel: backport 5.13 mtd partitioning changes
1. Use upstream accepted NVMEM patches
2. Minor fix for BCM4908 partitioning
3. Support for Linksys firmware partitions on Northstar

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-29 23:21:56 +08:00
Felix Fietkau
ce47e231df mac80211: merge a few pending tx related fixes
Improve performance and fix potential mgmt tx hangs/warnings

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-29 23:21:17 +08:00
John Doe
4e84824d42 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-29 18:08:36 +08:00
Lucian Cristian
c10101fc0c rockchip: add drm and lima gpu driver
Pack the drivers needed for enabling the drm and gpu driver
for rk3328 and rk3399. Fix: #304

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
[rebase commit, apply review recommendations]
Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-03-28 23:54:59 +08:00
Tianling Shen
604ec3d037 rockchip: nanopi-r4s: fix read mac address
The valid mac address only exists on ETH1.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-28 21:26:50 +08:00
John Audia
75e20710af kernel: bump 5.4 to 5.4.108
All modifications made by by update_kernel.sh.

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800 [only 5.4.107]
No dmesg regressions, everything functional

Run-tested by @timocapa:
 - ramips/mt7621/{Xiaomi R3G, Redmi 2100}
 - Lantiq/XWAY/Fritz!Box 7320/7330

Signed-off-by: John Audia <graysky@archlinux.us>
[squash, edit commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-28 11:22:56 +08:00
Sven Eckelmann
4a9c8227d3 mvebu: Fix mac addresses for GL.iNet GL-MV1000
The original GL.iNet firmware has two different mac addresses in the
factory/art partition. The first one is for the WAN interface only and the
second one is for both lan0 and lan1.

But the original submission for OpenWrt didn't initialize the mac
addresses of the LAN ports for the DSA device at all. The ethernet mac
address was then used for all DSA ports.

Fixes: 050c24f05c ("mvebu: add support for GL.iNet GL-MV1000")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-03-28 11:22:22 +08:00
Sven Eckelmann
9516ac9147 mvebu: Add button support for GL.iNet GL-MV1000
The original patch to support this device advertised support for the reset
button and the "switch" in the commit message. But neither were actually
integrated in the device tree or documented anywere.

The button itself is now used to trigger a reset (as described in the
official GL.iNet documentation). The switch itself is registered as BTN_0
like other devices from GL.iNet in ath79.

Fixes: 050c24f05c ("mvebu: add support for GL.iNet GL-MV1000")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2021-03-28 11:21:55 +08:00
Shiji Yang
b0a7357ba1 ramips: correct switch config of Youku yk1
There are only two lan ports and one wan port on Youku yk1

Fixes: e9baf8265b ("ramips: add support for Youku YK1")

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[add Fixes:]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-28 11:21:27 +08:00
INAGAKI Hiroshi
e446c75224 ath79: fix label_mac for NEC Aterm WG1200CR
On NEC Aterm WG1200CR, the MAC address for WAN is printed in the label
on the case, not LAN.
This patch fixes this issue.

Fixes: 50fdc0374b ("ath79: provide label MAC address")

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-03-28 11:18:16 +08:00
Hauke Mehrtens
2596175750 kernel: Move CONFIG_USERIO to generic config
The CONFIG_USERIO option is unset in multiple target configurations. On
the sunxi target it is activated. Move the kernel configuration option
to the generic kernel configuration.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-28 11:17:21 +08:00
Hauke Mehrtens
e723e1d4b1 kernel: Deactivate CONFIG_VFIO in generic kernel config
Instead of deactivating this in every target config, deactivate it once
in the generic kernel config. I was asked for this config option in a
x86 64 build in OpenWrt 21.02.

Fixes: 87046e87e2 ("kernel: add missing kernel config symbol")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-28 11:16:57 +08:00
Kevin Darbyshire-Bryant
43a8b167dd kernel: add missing kernel config symbol
Bump to 5.10.26 reversed dependencies on IOMMU for CONFIG_VFIO thus
malta (at least) prompted for this new symbol.

Set it to 'false' in the default config.  rockchip & X86 enable it in
target specific configs.

Thanks to Tony Ambardar for falling over this one

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-03-28 11:16:35 +08:00
Felix Fietkau
666852252d mt76: update to the latest version
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-27 11:22:43 +08:00
Stan Grishin
245a9c2429 x86/base-files: add support for Sophos SG/XG-105
This adds detection of the Sophos SG-105 and Sophos XG-105 models
and assignment of ethernet ports these models have to LAN/WAN.

Signed-off-by: Stan Grishin <stangri@melmac.net>
2021-03-27 11:22:12 +08:00
Tianling Shen
8cb43623b1 scripts/download.pl: correct branch name of self-hosted mirror
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-26 21:33:50 +08:00
AmadeusGhost
b9ae8b7c93 Merge Mainline 2021-03-26 20:28:03 +08:00
Rui Salvaterra
a04b028dc1 kernel: bump 5.10 to 5.10.26
Automatically refreshed:
ath79/patches-5.10/471-mtd-cfi_cmdset_0002-AMD-chip-0x2201-write-words.patch
bcm63xx/patches-5.10/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
generic/hack-5.10/204-module_strip.patch

Run-tested:
ath79 (TL-WDR3600)
x86_64 (APU2 - ldir)

Tested-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-03-26 20:01:50 +08:00
Rafał Miłecki
7f55973676 firmware-utils: bcm4908kernel: name struct fields
Less magic names / values.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-25 23:36:17 +08:00
Rafał Miłecki
960c86ba3f kernel: create bootfs partition when parsing on BCM4908
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>
2021-03-25 23:35:57 +08:00
Rafał Miłecki
368ee9e4cb firmware-utils: bcm4908img: name fields & values
Less magic numbers

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-25 23:35:36 +08:00
Kevin Darbyshire-Bryant
da4b3463f0 kernel: drop apu2 reboot patch
This patch really annoys me, either it needs to go upstream or be
dropped, so it's going to be dropped here.

Checking drivers/platform/x86/pcengines-apuv2.c it also appears to be
incomplete since it mentions different dmi board names depending on bios
version.

/* APU2 w/ legacy BIOS < 4.0.8 */ is 'APU2'
/* APU2 w/ legacy BIOS >= 4.0.8 */ is 'apu2'
/* APU2 w/ mainline BIOS */ is 'PC Engines apu2'

So the patch, if applicable at all, only 'works' for legacy BIOS >=
4.0.8

My APU2 on mainline BIOS reboots fine without this patch.  So let's see
if anyone screams and when they do question why legacy bios.  If patch
DOES need to be re-introduced then it needs to go upstream first.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-03-24 23:13:40 +08:00
Kevin Darbyshire-Bryant
934ee538bc kernel: bump 5.10 to 5.10.25
Straightforward refresh of patches using update_kernel.

Removed (reverse-applicable):
bmips/patches-5.10/010-v5.11-net-dsa-implement-a-central-TX-reallocation-procedur.patch

Run tested: x86_64 (apu2)

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-03-24 23:13:11 +08:00
Kevin Darbyshire-Bryant
4ec429223d kernel: bump 5.10 to 5.10.24
Straightforward refresh of patches using update_kernel.

Run tested: x86_64 (apu2)

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-03-24 23:12:50 +08:00
Álvaro Fernández Rojas
e7019c46be bmips: reorganize patches
Reorder kernel patches after recent backports.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-24 23:12:20 +08:00
Álvaro Fernández Rojas
a6057fb69e bmips: switch to upstream ehci overcurrent flag
After backporting upstream ehci overcurrent patches we need to use spurious-oc
instead of ignore-oc.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-24 23:12:06 +08:00
Álvaro Fernández Rojas
e12121ef17 kernel: backport ehci overcurrent patches
These patches have been accepted for v5.13.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-24 23:11:46 +08:00
Álvaro Fernández Rojas
3ab2aa5b91 bmips: add wifi packages for supported devices
Netgear DGND3700v2 / Comtrend VR-3032u internal wireless not supported.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-24 23:11:16 +08:00
Álvaro Fernández Rojas
fc3d7b1733 bmips: add ATH9K PCI fixups
Add support for registering ATH9K PCI fixups needed to bring up wifi on some
devices.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-24 23:11:00 +08:00
Álvaro Fernández Rojas
a7cad6c04e bmips: add B43 SPROM PCI fixups
Add support for registering fallback BCMA/SSB B43 SPROMs.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-24 23:10:34 +08:00
Álvaro Fernández Rojas
d6e0c2fdd0 bmips: add experimental PCI/PCIe support
These PCI drivers are a bit hacky and definitely not suitable for upstreaming,
but hopefully we can use them as a base for developing proper upstream PCI
drivers.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-24 23:10:14 +08:00
Tianling Shen
1a8c4210ee Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-23 18:11:53 +08:00
Adrian Schmutzler
e37e8b8815 realtek: add ZYXEL_VERS to DEVICE_VARS
Otherwise, the last defined value will be set for all devices.

Fixes: c6c8d597e1 ("realtek: Add generic zyxel_gs1900 image definition")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-23 11:36:35 +08:00
Rafał Miłecki
2fa2432fa9 bcm4908: backport the latest bcm_sf2 commits
1. CFP support for BCM4908
2. Upstream RGMII regs fix

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-23 11:36:27 +08:00
Rafał Miłecki
e92e1c92f4 bcm4908: backport recent bcm_sf2 changes
One 5.12 link fix and 5.13 crossbar support.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-23 11:36:03 +08:00
Rafał Miłecki
266ba945a8 bcm4908: backport DTS patch with Ethernet TX IRQ
It allows bcm4908_enet Linux driver to work more efficiently.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-23 11:28:52 +08:00
Rafał Miłecki
5b51cc7b80 bcm4908: add MTD support for repartitioning
It's required for sysupgrade which requires:
1. Flashing new firmware
2. Finding updated bootfs partition
3. Updating bootfs content

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-23 11:28:30 +08:00
Mauri Sandberg
1809dbf78f ath79: Add support for Buffalo WZR-HP-G300NH
This device is a wireless router working on 2.4GHz band based on
Qualcom/Atheros AR9132 rev 2 SoC and is accompanied by Atheros AR9103
wireless chip and Realtek RTL8366RB/S switches. Due to two different
switches being used also two different devices are provided.

  Specification:
  - 400 MHz CPU
  - 64 MB of RAM
  - 32 MB of FLASH (NOR)
  - 3x3:2 2.4 GHz 802.11bgn
  - 5x 10/100/1000 Mbps Ethernet
  - 4x LED, 3x button, On/Off slider, Auto/On/Off slider
  - 1x USB 2.0
  - bare UART header place on PCB

  Flash instruction:
  - NOTE: Pay attention to the switch variant and choose the image to
    flash accordingly. (dmesg / kernel logs can tell it)
  - Methods for flashing
    - Apply factory image in OEM firmware web-gui.
    - Sysupgrade on top of existing OpenWRT image
    - U-Boot TFPT recovery for both stock or OpenWRT images:
      The device U-boot contains a TFTP server that by default has
      an address 192.168.11.1 (MAC 02:AA:BB:CC:DD:1A). During the boot
      there is a time window, during which the device allows an image to
      be uploaded from a client with address 192.168.11.2. The image will
      be written on flash automatically.

      1) Have a computer with static IP address 192.168.11.2 and the
         router device switched off.
      2) Connect the LAN port next to the WAN port in the device and the
         computer using a network switch.
      3) Assign IP 192.168.11.1 the MAC address 02:AA:BB:CC:DD:1A
         arp -s 192.168.11.1 02:AA:BB:CC:DD:1A
      4) Initiate an upload using TFTP image variant
         curl -T <imagename> tftp://192.168.11.1
      5) Switch on the device. The image will be uploaded subsequently.
         You can keep an eye on the diag light on the device, it should
         keep on blinking for a while indicating the writing of the image.

  General notes:
  - In the stock firmware the MAC address is the same among all
    interfaces so it is left here that way too.

  Recovery:
  - TFTP method
  - U-boot serial console

  Differences to ar71xx platform
  - This device is split in two different targets now due to hardware
    being a bit different under the hood. Dynamic solution within the same
    image is left for later time.
  - GPIOs for a sliding On/Off switch, marked 'Movie engine' on the device
    cover, were the wrong way around and were renamed qos_on -> movie_off,
    qos_off -> movie_on. Associated key codes remained the same they were.

  The device tree source code is mostly based on musashino's work

Signed-off-by: Mauri Sandberg <sandberg@mailfence.com>
2021-03-23 11:27:42 +08:00
Mauri Sandberg
7e9d297cbf ath79: copy cfi patch from 5.4 over to 5.10
Add the same patch to 5.10 too. The patch is in process of being
upstreamed.

Fixes: 8cc0fa8fac ("ath79: cfi: cmdset_0002: amd chip
0x2201 - write words")

Signed-off-by: Mauri Sandberg <sandberg@mailfence.com>
[add Fixes:]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-23 11:27:15 +08:00
Mauri Sandberg
34f1e1a26c ath79: cfi: cmdset_0002: amd chip 0x2201 - write words
Generally, in upstream CFI flash memory driver uses buffers for write
operations. That does not work with AMD chip with id 0x2201 and we must
resort to writing word sized chunks only. That is, to not apply general
buffer write functionality for this given chip.

Without the patch kernel logs will be flooded with entries like below:

MTD do_erase_oneblock(): ERASE 0x01fa0000
MTD do_write_buffer(): WRITE 0x01fa0000(0x00001985)
MTD do_erase_oneblock(): ERASE 0x01f80000
MTD do_write_buffer(): WRITE 0x01f80000(0x00001985)
MTD do_write_buffer_wait(): software timeout, address:0x01f8000a.
jffs2: Write clean marker to block at 0x01a60000 failed: -5
MTD do_erase_oneblock(): ERASE 0x01f60000
MTD do_write_buffer(): WRITE 0x01f60000(0x00001985)
MTD do_write_buffer_wait(): software timeout, address:0x01f6000a.
jffs2: Write clean marker to block at 0x01a40000 failed: -5

References: http://patchwork.ozlabs.org/project/linux-mtd/patch/20210309174859.362060-1-sandberg@mailfence.com/
Signed-off-by: Mauri Sandberg <sandberg@mailfence.com>
[added link to usptream fix submission]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-03-23 11:26:49 +08:00
Walter Sonius
cb1bbaf00f ath79: fix lan port display order for sitecom wlr-7100
Physical port order watched from the back of the device is:
4 / 3 / 2 / 1 / WAN which also matches corresponding leds.
This patch corrects LuCI switch webpage LAN port order.

Signed-off-by: Walter Sonius <walterav1984@gmail.com>
[improve commit title, fix sorting in 02_network]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-23 11:24:22 +08:00
John Audia
7f40ee954e kernel: bump 5.4 to 5.4.106
Ran update_kernel.sh in a fresh clone without any existing toolchains.

Manually rebased:
  bcm27xx/950-0993-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
  layerscape/701-net-0231-enetc-Use-DT-protocol-information-to-set-up-the-port.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>
[remove accidental whitespace edit]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-23 11:22:55 +08:00
INAGAKI Hiroshi
890a6b66cb ramips: add support for ELECOM WRC-1750GST2
ELECOM WRC-1750GST2 is a 2.4/5 GHz band 11ac (Wi-Fi 5) router, based on
MT7621A.

Specification:

- SoC		: MediaTek MT7621A
- RAM		: DDR3 256 MiB (NT5CC128M16JR-EK)
- Flash		: SPI-NOR 32 MiB (MX25L25645GMI-08G)
- WLAN		: 2.4/5 GHz 3T3R (2x MediaTek MT7615)
- Ethernet	: 10/100/1000 Mbps x5
  - Switch	: MediaTek MT7530 (SoC)
- LEDs/Keys	: 4x/6x (2x buttons, 1x slide-switch)
- UART		: through-hole on PCB
  - J4: 3.3V, GND, TX, RX, from ethernet port side
  - 57600n8
- Power		: 12 VDC, 1.5 A

Flash instruction using factory image:

1. Boot WRC-1750GST2 normally with "Router" mode
2. Access to "http://192.168.2.1/" and open firmware update page
   ("ファームウェア更新")
3. Select the OpenWrt factory image and click apply ("適用") button
4. Wait ~120 seconds to complete flashing

MAC addresses:

LAN	: 04:AB:18:xx:xx:23 (Factory, 0xE000 (hex))
WAN	: 04:AB:18:xx:xx:24 (Factory, 0xE006 (hex))
2.4GHz	: 04:AB:18:xx:xx:25 (Factory, 0x4    (hex))
5GHz	: 04:AB:18:xx:xx:26 (Factory, 0x8004 (hex))

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-03-23 11:20:58 +08:00
Shiji Yang
6f7963249e ramips: speed up spi frequency for Youku YK-L1
Youku YK-L1 has a huge storage space up to 32 MB. It is better to
use a higher spi clock to read or write serial nor flash chips.
Youku YK-L1 has Winbond w25q256fvfg on board that can support
104 MHz spi clock so 48 MHz is safe enough.
The real frequency can only be sysclk(580MHz ) /3 /(2^n) so 80 MHz
defined in dts file will set only 48 MHz in spi bus.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2021-03-23 11:18:14 +08:00
Shiji Yang
f7c891a66b ramips: create shared DTSI for MT7620 Phicomm K2x series devices
Improve compatibility of the device tree include file. Now a new .dtsi
file will support both PSG1218A, PSG1218B and K2G.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[improve commit title, rebase]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-23 11:16:57 +08:00
Shiji Yang
939394831a ramips: increase SPI frequency for Phicomm series devices
From many teardown image in the internet, I find Phicomm K1/k2 series use
Winbond W25Q64/W25Q128 or GigaDevice GD25Q64/GD25Q128 Flash chips. both of
them support 100+ MHz clock spi operate and fast-read instruction. PSG1218
with W25x or GD25x has been tested and it can run well in OpenWrt v19.07.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[improve commit title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-23 11:16:28 +08:00
Shiji Yang
fc393eb103 ramips: increase SPI frequency for HIWIFI HC5x61 devices
HIWIFI HC5x61 devices support high speed spi clock up to 100+ MHz.
So set spi frequency to 80 MHz here (Due to frequency division the
real clock is 48 MHz).
I have tested HC5661 and it can run well in OpenWrt v19.07.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[adjust commit title and wrap message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-23 11:16:06 +08:00
Tianling Shen
c1f500e1bd Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-23 09:29:58 +08:00
Tianling Shen
46991afe7c Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-22 22:06:22 +08:00
Tianling Shen
c12fc6205c rockchip: nanopi-r4s: refresh latest patches accepted by upstream
Link: https://lore.kernel.org/r/20210319051627.814-2-cnsztl@gmail.com
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-22 19:55:38 +08:00
Tianling Shen
8b7824a7fd kernel: 5.10: refresh patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-22 18:54:08 +08:00
Tianling Shen
99870c306d exFAT: add conflict mark
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-22 16:39:40 +08:00
Tianling Shen
4a7221f108 exFAT: use out-of-tree module for kernel 5.4
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-22 16:37:52 +08:00
Daniel Golle
e31f9e5abc mediatek: linksys-e8450: remove left-overs from dtsi
There is an ASMedia ASM1480 PCIe switch found on mt7622-rfb1 and the
BPi-R64, allowing the user to switch between SATA and PCIe1 which share
the same pins on the SoC.
This chip is not present on the Linksys E8450, it doesn't have SATA.
Remove definitions for GPIO90 from DTSI to prevent it from being
copy&pasted or otherwise causing confusion.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-21 23:38:19 +08:00
Álvaro Fernández Rojas
ce433fedec bcm27xx: bcm2711: correctly disable HW_RANDOM_BCM2835
It was removed in bac74aff5e, but it should have been disabled.
More info: https://forum.openwrt.org/t/make-image-stops-at-random-number-generator-bcm27xx/91429/7

Fixes: bac74aff5e ("bcm27xx: bcm2711: disable HW_RANDOM_BCM2835")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-21 23:37:57 +08:00
Tony Ambardar
41d99a9800 kernel: robustify dependencies in kmod-sound-hda-core
Dependency tracking for kmod-sound-hda-core is fragile. Enabling some sound
codecs (Realtek, Conexant, Sigmatel) implicitly adds a kmod-ledtrig-audio
dependency, while an enabled kmod-ledtrig-audio can be picked up through
enabling others (e.g. kmod-sound-hda-intel), and the behaviour can change
across kernel versions.

As kmod-ledtrig-audio is under 2KB, make it an unconditional dependency.

Fixes: a374b8f190 ("kernel: 5.10: update sound modules")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-21 23:37:36 +08:00
Hauke Mehrtens
38866efc75 kernel: Add missing kernel config options
These two options are missing when building the x86 target.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-20 11:51:52 +08:00
Hauke Mehrtens
c96fc0fe14 kernel: Reorder kernel configuration options
Reorder the options and remove double entries.
This was generated by running this:
$ ./scripts/kconfig.pl '+' target/linux/generic/config-5.10 /dev/null > target/linux/generic/config-5.10.new
$ mv target/linux/generic/config-5.10.new target/linux/generic/config-5.10
$ ./scripts/kconfig.pl '+' target/linux/generic/config-5.4 /dev/null > target/linux/generic/config-5.4.new
$ mv target/linux/generic/config-5.4.new target/linux/generic/config-5.4

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-20 11:51:27 +08:00
Hauke Mehrtens
b0e110a54a archs38: Add CONFIG_HZ=100
This kernel config option was missing and resulted in a question when
building.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-20 11:51:01 +08:00
Rosen Penev
7f435c23c2 kernel: add exfat again
With kernel 5.10, exfat is out of staging and in tree.

Added small hack to make it work with kernel 5.4 as well.

Added removed config options for 5.4 to generic config.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
[Set CONFIG_EXFAT_ config options to default values]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-20 11:50:27 +08:00
Rosen Penev
8b52c6fdc7 package/exfat: remove
Now that kernel 5.10 is in tree, this can be removed.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-20 11:48:13 +08:00
Tad Davanzo
9c15bcd711 mvebu: enable WRT1900AC v1 and WRT32X for buildbots
Kernel size limits have been dealt with.
Effective revert of a1eb2c46 and ac9730c4.

Signed-off-by: Tad Davanzo <tad@spotco.us>
2021-03-20 11:47:12 +08:00
Tad Davanzo
96fc55f0c4 mvebu: venom resize kernel to 6MB
venom has a 3MB kernel partition as specified by the DTS.
3MB is not sufficient for building with many kernel modules or newer
kernel versions.

venom uboot however as set from factory will load up to 6MB.
This can be observed by looking a uboot log:
	NAND read: device 0 offset 0x900000, size 0x600000
	6291456 bytes read: OK
and from uboot environment variables:
	$ fw_printenv | grep "priKernSize";
	priKernSize=0x0600000

Resize the root partitions from 120MB to 117MB to let kernel expand
into it another 3MB.
And set kernel target size to 6MB.

Lastly set the kernel-size-migration compatibility version on venom to
prevent sysupgrading without first reinstalling from a factory image.

Signed-off-by: Tad Davanzo <tad@spotco.us>
2021-03-20 11:46:49 +08:00
Tad Davanzo
b5fbd9dca0 mvebu: mamba resize kernel to 4MB
mamba has a 3MB kernel partition as specified by the DTS.
3MB is not sufficient for building with many kernel modules or newer
kernel versions.

mamba uboot however as set from factory will load up to 4MB.
This can be observed by looking a uboot log:
	NAND read: device 0 offset 0xa00000, size 0x400000
	4194304 bytes read: OK
and from uboot environment variables:
	$ fw_printenv | grep "pri_kern_size";
	pri_kern_size=0x400000

Resize the root partitions from 37MB to 36MB to let kernel expand
into it another 1MB.
And set kernel target size to 4MB.

Lastly add a compatibility version message: kernel-size-migration.
And set it on mamba to prevent sysupgrading without first reinstalling from
a factory image.

Signed-off-by: Tad Davanzo <tad@spotco.us>
2021-03-20 11:45:04 +08:00
Tony Ambardar
432ddd383a kernel: add missing config symbols, fix typos
Update 5.10 generic config to add missing options prompting during builds,
when setting CONFIG_ALL_KMODS. Refresh the x86 subtargets to drop symbols
added to the generic config.

Also fix a typo in 5.4/5.10 generic configs: "CONFIG_CONFIG_KVM_AMD_SEV".

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-20 11:32:11 +08:00
Tony Ambardar
3518d19efb kernel: 5.10: update sound modules
Update file paths for kmod-sound-hda-intel and reflect new dependency of
kmod-sound-hda-core on kmod-ledtrig-audio.

Reported-by: Javier Marcet <javier@marcet.info>
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-20 11:31:50 +08:00
Tony Ambardar
c34112f6e9 kernel: add kmod-ledtrig-audio
This allows LEDs to be controlled by audio drivers.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-20 11:31:29 +08:00
Tony Ambardar
c77415bd8b kernel: 5.10: add missing dependency in kmod-mdio-devres
Add conditional dependency on kmod-of-mdio due to mdio_devres.c code:
  #if IS_ENABLED(CONFIG_OF_MDIO)
  ...
  EXPORT_SYMBOL(devm_of_mdiobus_register);
  #endif /* CONFIG_OF_MDIO */

Fixes: 95a3741d17 ("kernel: support new mdio_devres.ko module in 5.10")
Reported-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-20 11:30:41 +08:00
Tony Ambardar
59a2f7face kernel: 5.10: update kmod-usb-net-smsc95xx
Add kmod-libphy dependency.

Signed-off-by: Javier Marcet <javier@marcet.info>
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-20 11:30:15 +08:00
Álvaro Fernández Rojas
640cfff387 bmips: backport b53 mmap device tree support
This patch has been accepted upstream for linux v5.13.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-20 11:28:53 +08:00
Álvaro Fernández Rojas
2f1707f67e bmips: backport b53 legacy tags support
These patches have been accepted upstream for linux 5.13.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-20 11:28:22 +08:00
Álvaro Fernández Rojas
d239bde899 bmips: backport upstream dsa b53 is63xx patch
This patch has been accepted for linux v5.13.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-20 11:27:57 +08:00
Rosen Penev
c19bcc5be6 kexec-tools: update to 2.0.21
kdump was removed in 7acd257ae67b4ca94f8c23cb8bda0ee0709b9216

gdb can be used as an alternative.

Remove autoreconf. It's not needed as the configure files are already
generated.

Remove upstreamed patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-20 11:27:50 +08:00
Ilya Lipnitskiy
4d37e9af29 ramips: move spi-nor-add-gd25q512 patch to generic
A SPI NOR flash should not be target-specific, so move it to generic in
case another platform needs to use it.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-03-20 11:25:45 +08:00
Rui Salvaterra
6a36b1c2e2 mac80211: rtl: update RTL8821AE PHY/RF parameters
Create a new directory for Realtek patches and backport the updated PHY and RF
parameters patch. Improves the connectivity in the 5 GHz band [1].

[1] https://patchwork.kernel.org/project/linux-wireless/patch/20210219052607.7323-1-pkshih@realtek.com/#23988567

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-03-20 11:25:24 +08:00
Supriya Mane
2837223966 x86/64: Iptables seems to lack support for cgroup v2
FS#3574
Adding cgroup support enables adding rules on processes
to limit resources in terms of iptable policies

Signed-off-by: Supriya Mane <sm.supriya@globaledgesoft.com>
2021-03-20 11:25:02 +08:00
Lech Perczak
958d7f3269 rampis: use lzma-loader for ZTE MF283+
Without that, after merging support to master, the device fails to boot
due to LZMA decompression error:

3: System Boot system code via Flash.
## Booting image at bc080000 ...
raspi_read: from:80000 len:40
.   Image Name:   MIPS OpenWrt Linux-5.4.99
   Created:      2021-02-25  23:35:00 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    1786664 Bytes =  1.7 MB
   Load Address: 80000000
   Entry Point:  80000000
raspi_read: from:80040 len:1b4328
............................   Verifying Checksum ... OK
   Uncompressing Kernel Image ... LZMA ERROR 1 - must RESET board to recover

Use lzma-loader to fix it.

Fixes: 59d065c9f8 ("ramips: add support for ZTE MF283+")
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2021-03-20 11:23:49 +08:00
Shiji Yang
853874ba52 ramips: improve GPIO pin control for HC5x61
HC5661 does not have USB port, remove usb power control pin.
HC5x61 do not have LAN LEDs, remove ethernet LED control pin.
Only HC5861 has PA in 2.4G channel.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2021-03-20 11:23:11 +08:00
Aleksander Jan Bajkowski
762bdbf498 kernel: move some disabled symbols to generic
Move some disabled symbols found in armvirt target to generic.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-03-20 11:19:57 +08:00
Aleksander Jan Bajkowski
e7e93ef693 lantiq: set maximum kernel size for ARV7519RW22
Some users report that current snapshot producies non-bootable images.
Stock uboot can boot images if the kernel is smaller than 2MB.

Set maximum kernel size and disable image building for this board.

Ref: https://forum.openwrt.org/t/astoria-arv7519rw22-bootloops-after-upgrade/89843
Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-03-20 11:18:09 +08:00
Tianling Shen
e541e2a0ca Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-19 18:01:27 +08:00
Tianling Shen
bca6199163 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-19 17:31:52 +08:00
Felix Fietkau
bf001b775f build: use -nostdinc and -isystem in NOSTDINC_FLAGS for out-of-tree kernel modules
This resolves issues uncovered by musl updates

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-18 23:33:25 +08:00
Felix Fietkau
06cf53900f mt76: update to the latest version
0b6c9a043f78 mt76: move de-amsdu buffer per-phy
48a905e23791 mt76: mt7615: fix CSA event format
fbef8bba038f mt76: mt7921: remove duplicated macros in mcu.h

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-18 23:33:08 +08:00
Felix Fietkau
02fb815d11 kernel: replace threaded NAPI implementation in 5.10 with upstream backport
This uses a kthread per NAPI instance instead of the workqueue approach

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-18 23:32:29 +08:00
Felix Fietkau
165b4b837f mt76: update to the latest version
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-18 23:32:10 +08:00
Felix Fietkau
6d87ebed58 mac80211: backport upstream patches for driver disconnect
Needed for an mt76 update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-18 23:31:44 +08:00
Daniel Golle
19acf4e272 uboot-mediatek: don't rely in 'lzma' cmdline
Use 'xz --format=lzma' instead.
Fixes build for mt7629.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-18 23:30:40 +08:00
David Bauer
5bc7ba26a1 mediatek: fix broken UniFi 6 LR image
Ubiquiti's own bootloader expects the configuration mode to be present
with a "@" instead of a "-" for the sperator character. Otherwise
booting of the image fails.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-03-18 23:30:19 +08:00
Hauke Mehrtens
ab20619a72 mediatek: Fix writing U-Boot env on Buffalo WSR-2533DHP2
This fixes writing to the U-Boot environment by making the partition
writable and setting the correct flash sector size of 128K.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-18 23:27:46 +08:00
Daniel Golle
60a3471382 uboot-mediatek: fix default environment of bpi-r64 emmc
The emmc variant used the default environment of the sdmmc variant.
Fix that.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-18 23:27:10 +08:00
Daniel Golle
126ffcb500 uboot-mediatek: bpi-r64: make use of FIT configuration selection
Allow selecting either SATA or PCIE functionality using uImage.FIT
configurations and device-tree overlays.
By default, PCIE1 is selected (as it has been before this change).
To select SATA instead, you can do this now:

fw_setenv bootconf config-mt7622-bananapi-bpi-r64-sata

and reboot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-18 23:24:59 +08:00
Daniel Golle
a119869453 mediatek: bpi-r64: use dt-overlay to select SATA or PCIE1
The Bananapi BPi-R64 got a SATA interface which cannot be used at the
same time as the second mPCIe slot. The decission is made by hogging
GPIO 90.
Embed two addtional DT overlay blobs into the image to allow bootloader
selection of either SATA or PCIE1 feature.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-18 23:24:22 +08:00
Daniel Golle
d6476932fa include/image*: add support for device-tree overlays
Add new target feature 'dt-overlay' which makes DTC keep the symbol
names in the generated dtb.
Make sure additional DT overlay sources specified by the new device
variable DEVICE_DTS_OVERLAY get compiled together with the main DTS
(currently overlays got to be in the same folder). Let Build/fit pass
the generated DT overlay blobs to mkits.sh.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-18 23:23:45 +08:00
Daniel Golle
82546f9d06 scripts/mkits.sh: add support for adding DT overlay blobs to image
Allow adding multiple device tree overlay blobs to an image and
generate configurations for each of them.
This is useful on boards with modern U-Boot which allow e.g. user-
configurable peripherals ("shields") in that way.
Note that currently, each generated configuration adds exactly one
overlay on top of the base image, ie. adding multiple overlays at the
same time is not yet supported.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-18 23:18:54 +08:00
Daniel Golle
f846dd0436 ath79: fix RS-485 on Teltonika RUT-955
DTR GPIO isn't actually needed and triggers boot warning.
TX pin was off by one (GPIO 19 instead of GPIO 18).

Reported-by: @tophirsch
Fixes: d1130ad265 ("ath79: add support for Teltonika RUT955")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-18 23:16:27 +08:00
Tony Ambardar
6714430664 malta: prune subtarget configs
Drop autogenerated kernel config options. These aren't needed to build and
can obscure options relevant to the subtarget.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-17 23:30:46 +08:00
Tony Ambardar
8abb433b2b malta: update kernel 5.10 configs
Update generic config to add missing options that prompt during builds. Run
"make kernel_oldconfig" to refresh malta target config.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-17 23:30:09 +08:00
Tony Ambardar
21c111dba6 malta: support kernel 5.10
Add linux 5.10 as testing kernel and copy generic config from 5.4.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-17 23:29:46 +08:00
Bjørn Mork
641ceecd19 realtek: enable SerDes NWAY and SGMII negotiation
This allows copper SFPs to negotiate speeds lower than 1gig.

Acked-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-03-17 23:29:05 +08:00
Bjørn Mork
5e52f2d86b realtek: enabled Marvell and Realtek PHYs
The rtl83xx-phy driver is necessary for proper configuration of the
PHYs if U-Boot hasn't done that.

1000Base-T SFPs often contains a Marvell 88E1111 and will not work
without this driver. Include it by default to support copper SFPs.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-03-17 23:28:46 +08:00
Bjørn Mork
45b0e5a4f8 realtek: enable HWMON for SFP sensors
This adds SFP sensors as a hwmon device, allowing readout of
temperatures, DOM and other sensor readings available from the
SFP.

Tested-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-03-17 23:28:25 +08:00
Bjørn Mork
845ab5885e realtek: re-enable sfp driver for ZyXEL GS1900-10HP
There is no need to define a static link or a phy for the sfp
ports.  Using phy-mode and managed properties to  describe the
link to the sfp phy.

We have to keep the now unconnected virtual "phys" because the
switch  driver uses their "phy-is-integrated" property to figure
out which ports to enable as fibre ports.

Acked-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-03-17 23:27:48 +08:00
Bjørn Mork
d63fd74ae6 realtek: need to handle PHY_INTERFACE_MODE_NA for sfps
From the validate docs in include/linux/phylink.h:

 When state->interface is PHY_INTERFACE_MODE_NA, phylink expects the
 MAC driver to return all supported link modes.

Tested-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-03-17 23:27:22 +08:00
Bjørn Mork
a0e963bd8a realtek: fix link-state interrupt
This bug was the root cause for the failing sfp driver.

Acked-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-03-17 23:27:03 +08:00
Álvaro Fernández Rojas
455967ecbf bmips: backport bcm6368-mdio-mux support
This patch has been accepted for linux v5.13.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-17 11:28:28 +08:00
Álvaro Fernández Rojas
3a90b8528a bmips: enable CONFIG_B53_MDIO_DRIVER
Some devices have external switches connected by MDIO.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-17 11:28:06 +08:00
Álvaro Fernández Rojas
d80eb50196 bmips: backport b53 spi device tree patch
This patch has been accepted for linux v5.13.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-17 11:27:42 +08:00
Álvaro Fernández Rojas
175d1e5fd9 bmips: dgnd3700-v2: fix ethernet
This is a temporary workaround to get the ethernet working, since external
switch is connected by MDIO and it needs additional work.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-17 11:27:21 +08:00
Ilya Lipnitskiy
fa3e594246 kernel: backports: mt7530: fix TRGMII mode after reset
Backport upstream patch that fixes TRGMII mode now that mt7530 is
actually resetting the switch on ramips devices.

Patches apply to both Linux 5.4 and 5.10, since TRGMII is broken on both.

Fixes: 69551a2442 ("ramips: manage low reset lines")
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-03-17 11:27:00 +08:00
Tony Ambardar
708ba4f37b x86/legacy: fix subtarget CPU for kernel 5.10
The 5.10 target config defined a baseline i686 CPU aligned to the 32-bit
generic subtarget. However, the legacy subtarget arch wasn't set to the
older 586MMX, defaulting instead to the i686.

Explicitly set the subtarget arch and refresh the subtarget config, as done
already with the old geode subtarget.

Fixes: 8391781389 ("x86: support kernel 5.10")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-17 11:26:27 +08:00
Rafał Miłecki
4deda6d752 bcm4908: backport first PHY 5.13 patches
1. Upstream accepted version of Kconfig change
2. Documentation binding fix

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-16 11:22:37 +08:00
Daniel Golle
09f3a2ba78 mediatek: mt7622: drop duplicate DEVICE_PACKAGES
kmod-mt7615e kmod-mt7615-firmware and uboot-envtools are already part
of the target's default package set. No need to add them again for
buffalo_wsr-2533dhp2.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-16 11:22:07 +08:00
INAGAKI Hiroshi
d71e1cc0cc mediatek: add support for Buffalo WSR-2533DHP2
This adds support for the Buffalo WSR-2533DHP2.

The device uses the Broadcom TRX image format with a special magic. To
be able to boot the images or load them they have to be wrapped with
different headers depending how it is loaded.

There are multiple ways to install OpenWrt on this device.
Boot ramdisk from U-Boot
----------------------------
This will load the image and not write it into the flash.

1. Stop boot menu with "space" key
2. Select "System Load Linux to SDRAM via TFTP."
3. Load this image:
   openwrt-mediatek-mt7622-buffalo_wsr-2533dhp2-initramfs-kernel.bin
4. The system boots the image

Write to flash from U-Boot
-----------------------------
This will load the image over tftp and directly write it into the flash.

1. Stop boot menu with "space" key
2. Select "System Load Linux Kernel then write to Flash via TFTP."
3. Load this image:
   openwrt-mediatek-mt7622-buffalo_wsr-2533dhp2-squashfs-factory-uboot.bin
4. The system writes this image into the flash and boots into it.

Write to flash from Web UI
-----------------------------
This will load the image over over the Web UI and write it into the flash

1. Open the Web UI
2. Go to "管理" -> "ファームウェア更新"
3. Select "ローカルファイル指定" and click "更新実行"
4. Load this image:
   openwrt-mediatek-mt7622-buffalo_wsr-2533dhp2-squashfs-factory.bin
5. The system writes this image into the flash and boots into it.

Specifications
-------------------
* SoC:       MT7622 (4x4 2.4 GHz Wifi)
* Wifi:      MT7615 (4x4 5 GHz Wifi)
* Flash:     Winbond W29N01HZ 128MB SLC NAND
* RAM        256MB
* Ethernet:  Realtek RTL8367S (5 x 1GBit/s, SoC via 2.5GBit/s)

Co-Developed-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-16 11:21:32 +08:00
Hauke Mehrtens
3750c7f2c9 mediatek: support non standard trx magic values
Buffalo uses the TRX format with a different magic, add support for
this.

It is planned to send these patches upstream.

Cc: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-16 11:18:48 +08:00
Hauke Mehrtens
3a62d11536 mediatek: fix mtk parallel nand driver
This fixes some bugs in the mtk parallel nand driver introduced in 5.10.

This patch was send upstream.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-16 11:16:06 +08:00
Tianling Shen
1934e98da6 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-03-15 17:51:31 +08:00
Daniel Golle
e56c3816bf uboot-mediatek: also install production image to eMMC
Make installation to eMMC more convenient on the BPi-R64 by also
copying the production image (if valid) from SD Card to eMMC.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-15 11:37:36 +08:00
Daniel Golle
03dfe9340b mediatek: mt7622: clean up image build
* clean up whitespace to make GPT partitioning more readable
 * don't select packages already part of the target default selection
 * don't select U-Boot variants (breaks ImageBuilder)
 * don't select AHCI on boards without SATA
 * don't select kmod-usb2 and kmod-ohci, USB 1.x and USB 2.0 devices
   work fine with the in-SoC XHCI host having just kmod-usb3 installed.
 * select kmod-btmtkuart for devices with Bluetooth support
 * sort DEVICE_PACKAGES

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-15 11:37:02 +08:00
Daniel Golle
0b98c616fa uboot-mediatek: select matching U-Boot for board
Instead of building all U-Boot variants by default, build only those
needed by the selected board(s).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-15 11:36:37 +08:00
Daniel Golle
f2828a6d4c firmware-utils/ptgen: remove unused variable assignment
Discovered by coverty:

 CID 1473630:  Code maintainability issues  (UNUSED_VALUE)

 Assigning value from "type_to_guid_and_name(type, &name)" to
 "part_guid" here, but that stored value is overwritten before it can
 be used.

Remove the now redundant assignment of part_guid which is also set
conditionally later on.

Fixes: 4a078bd135 ("firmware-utils/ptgen: fix partition guid and name")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-15 11:36:13 +08:00
Rafał Miłecki
35e43ea827 bcm4908: use accepted 5.13 DTS patches
Some patches were slightly cleaned up. One things worth mentioning is
that adding:
phy-mode = "rgmii"
broke SF2 driver. It made it access random register breaking switch
setup.

That's why this commit also adds a quick sf2 fix.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-15 11:35:34 +08:00
Rafał Miłecki
d8c3fbd8c4 bcm53xx: backport first 5.13 DTS changes
This adds NVMEM bindings that are needed for proper booting on Linksys
devices.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-15 11:35:02 +08:00
Tony Ambardar
8bba104e38 x86: support kernel 5.10
Add linux 5.10 as testing kernel, copy generic/subtarget configs and target
patches from 5.4.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>

x86: update target patches for kernel 5.10

Refresh all patches while also dropping:
    800-hwmon-w83627ehf-dont-claim-nct677x.patch

which is now upstreamed as:
    3207408ab4cb ("hwmon: (w83627ehf) remove nct6775 and nct6776 support")

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>

x86: refresh 5.10 target config

Refresh config using "make kernel_oldconfig".

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>

x86: refresh and test all subtarget configs

Refresh configs using "make kernel_oldconfig CONFIG_TARGET=subtarget".

Build and run-tested using QEMU: x86/64, x86/legacy, x86/generic.
Build-tested only: x86/geode.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
[squashed commits]
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2021-03-15 11:34:11 +08:00
Tony Ambardar
9b6ec4b9fb kernel: support new mdio_devres.ko module in 5.10
Add kmod-mdio-devres package and kernel config symbol, and update related
kmod-r8169 and kmod-ixgbe package dependencies.

Build tested module dependencies on x86/64 with CONFIG_ALL_KMODS=y.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-15 11:33:11 +08:00
Tony Ambardar
82e098adbe kernel: add missing config symbols for 5.10
Update generic config to add missing options that prompt during builds.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-03-15 11:32:10 +08:00
Álvaro Fernández Rojas
e4dc91a362 bmips: minor ethernet driver cleanups and fixes
Add some minor ethernet driver cleanups and fixes to improve code quality.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-15 11:31:43 +08:00
Álvaro Fernández Rojas
916820843a bmips: reorganize patches
Rename and reorganize backported patches.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-15 11:31:24 +08:00
Hauke Mehrtens
acb48a75e2 realtek: Add ZyXEL GS1900-8
The ZyXEL GS1900-8 is a 8 port switch without any PoE functionality or
SFP ports, but otherwise similar to the other GS1900 switches.

Specifications
--------------
* Device:    ZyXEL GS1900-8 v1.2
* SoC:       Realtek RTL8380M 500 MHz MIPS 4KEc
* Flash:     Macronix MX25L12835F 16 MiB
* RAM:       Nanya NT5TU128M8GE-AC 128 MiB DDR2 SDRAM
* Ethernet:  8x 10/100/1000 Mbit
* LEDs:      1 PWR LED (green, not configurable)
             1 SYS LED (green, configurable)
             8 ethernet port status LEDs (green, SoC controlled)
* Buttons:   1 on-off glide switch at the back (not configurable)
             1 reset button at the right side, behind the air-vent
               (not configurable)
             1 reset button on front panel (configurable)
* Power      12V 1A barrel connector
* UART:      1 serial header (JP2) with populated standard pin connector on
             the left side of the PCB, towards the back. Pins are labelled:
             + VCC (3.3V)
             + TX (really RX)
             + RX (really TX)
             + GND
             the labelling is done from the usb2serial connector's point of
             view, so RX/ TX are mixed up.

Serial connection parameters for both devices: 115200 8N1.

Installation
------------
Instructions are identical to those for the GS1900-10HP and GS1900-8HP.

* Configure your client with a static 192.168.1.x IP (e.g. 192.168.1.10).
* Set up a TFTP server on your client and make it serve the initramfs
  image.
* Connect serial, power up the switch, interrupt U-boot by hitting the
  space bar, and enable the network:
  > rtk network on
* Since the GS1900-10HP is a dual-partition device, you want to keep the
  OEM firmware on the backup partition for the time being. OpenWrt can
  only boot off the first partition anyway (hardcoded in the DTS). To
  make sure we are manipulating the first partition, issue the following
  commands:
  > setsys bootpartition 0
  > savesys
* Download the image onto the device and boot from it:
  > tftpboot 0x84f00000 192.168.1.10:openwrt-realtek-generic-zyxel_gs1900-8-initramfs-kernel.bin
  > bootm
* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:
  > sysupgrade /tmp/openwrt-realtek-generic-zyxel_gs1900-8-squashfs-sysupgrade.bin

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-15 11:30:59 +08:00
Hauke Mehrtens
afcfa24e7b realtek: Add generic zyxel_gs1900 image definition
Add a new common device definition for the Zyxel GS1900 line of
switches.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-15 11:30:26 +08:00
Álvaro Fernández Rojas
fb19d31d3d bmips: add experimental ethernet support
This adds experimental ethernet support for BCM6318, BCM6328, BCM6362, BCM6368
and BCM63268.
BCM6358 needs a different driver, so there's no support for now.

Working devices:
- Comtrend AR-5315u
- Comtrend AR-5387un
- Comtrend VR-3025u
- Comtrend VR-3032u

Not working devices:
- Netgear DGND3700 v2 (no idea on how the external switch is connected)
- Huawei HG556a ver B (BCM6358 needs a separate driveer)

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-15 11:28:57 +08:00
Tianling Shen
6c186eafb0 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-14 23:47:44 +08:00
Tianling Shen
c9ba4a6854 rockchip: refresh patches for k5.4
Fixes: 8dae2b8 ("kernel: bump 5.4 to 5.4.105")

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-14 11:36:29 +08:00
Daniel Golle
ffad4fa8b0 uboot-mediatek: import fix for AHCI and enable SATA
Import patch form Frank Wunderlich <frank-w@public-files.de> to fix
build of MediaTek AHCI SATA driver.
Enable that driver on Bananapi BPi-R64.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-14 11:24:14 +08:00
Daniel González Cabanelas
2f14ce68f7 mvebu: LS421DE: make cosmetics changes in dts file
Make some cosmetic changes in the Buffalo LinkStation LS421DE NAS:
  - Delete pointless #xxx-cells
  - bootargs: replace earlyprintk with earlycon and remove unneeded args.
  - Separate pinmux nodes with empty lines.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2021-03-14 11:23:53 +08:00
Kabuli Chana
c9aa842cab kernel: bump 5.10 to 5.10.23
update kernel to 5.10.23, rebase patches, deleted upstreamed patch:

target/linux/generic/backport-5.10/830-v5.12-0001-net-usb-qmi_wwan-support-ZTE-P685M-modem.patch

compile / test - mvebu / mamba, rango

Signed-off-by: Kabuli Chana <newtownBuild@gmail.com>
[refresh again]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-14 11:21:35 +08:00
John Audia
8dae2b8ea0 kernel: bump 5.4 to 5.4.105
Ran update_kernel.sh in a fresh clone without any existing toolchains.

Removed upstreamed generic-backports:
  830-v5.12-0001-net-usb-qmi_wwan-support-ZTE-P685M-modem.patch
  831-v5.9-usbip-tools-fix-build-error-for-multiple-definition.patch
  755-v5.8-net-dsa-add-GRO-support-via-gro_cells.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>
Tested-by: Curtis Deptuck <curtdept@me.com> [x86/64]
[squash patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-14 11:21:14 +08:00
Daniel Golle
ecb4f2e8db mediatek: image: don't use 'M' unit as dd may not support that
dd on Mac OS X apparently fails when using 'M' unit for bs.
dd: bs: illegal numeric value
Use 'k' unit instead for 'pad-to' to fix that.

Reported-by: Georgi Valkov <gvalkov@abv.bg>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-14 11:20:52 +08:00
Daniel Golle
3a566cb738 uboot-mediatek: fix build on Mac OS X
Copy patch added to uboot-sunxi by commit 3cc57ba462
("uboot-sunxi: add missing type __u64") also to uboot-mediatek.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-14 11:20:22 +08:00
Felix Fietkau
1b8f0b0070 kernel: add compatibility with upstream threaded NAPI patch
Enable threading if dev->threaded is set. This will be used to bring mt76 back
in sync with upstream

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-13 12:06:15 +08:00
Felix Fietkau
005fa9eec1 kernel: update 5.10 flow offload patches
Includes PPPoE support and VLAN related fixes

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-13 12:05:49 +08:00
Rafał Miłecki
8272eedd92 bcm47xx: make WGT634U NVRAM patch apply again
Fixes: 1c48eee5b2 ("kernel: backport Broadcom NVRAM driver cleanups")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-13 12:05:27 +08:00
Rafał Miłecki
4f9b93c44c kernel: add pending mtd patches adding NVMEM support
It's meant to provide upstream support for mtd & NVMEM. It's required
e.g. for reading MAC address from mtd partition content. It seems to be
in a final shape so it's worth testing.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-13 12:04:54 +08:00
Rafał Miłecki
8e12c2eb1c kernel: move mtd ofpart accepted patch
Move upstream patch to the backport directory.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-13 12:04:07 +08:00
Rafał Miłecki
c31f1d2dbc kernel: add two more missed 5.10 backports
Those were added to 5.4 but missed while introducing 5.10 kernel.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-13 12:03:45 +08:00
Rafał Miłecki
4a02b36aa7 bcm53xx: initialize NVRAM from NVMEM driver
NVRAM access may be needed early in boot process. Reading it using mtd
happens quite late in the init process. Add NVRAM initialization to the
NVMEM driver which comes up early and depends on IO mapping only.

This is required by Linksys devices which use NVRAM content for proper
partitioning (detecting current firmware partition).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-13 12:03:17 +08:00
Rafał Miłecki
bad0b5b855 kernel: backport Broadcom NVRAM driver cleanups
Refactoring of bcm47xx_nvram driver. It's used by bcm47xx and bcm53xx.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-13 12:02:43 +08:00
Álvaro Fernández Rojas
a75e3fc783 bmips: switch to upstream bcm2835-rng reset patch
This patch has been accepted upstream.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-13 12:02:00 +08:00
Tianling Shen
6c805220cf target/rockchip: rockpi4: fix typo err
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-13 01:43:52 +08:00
Tianling Shen
fbbdf92ffb Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-12 23:28:32 +08:00
Bjørn Mork
deec6a304c realtek: drop ethtool log noise
Demote a number of debugging printk's to pr_debug to avoid log
nosie.  Several of these functions are called as a result of
userspace activity.  This can cause a lot of log noise when
userspace does periodic polling.

Most of this could probably be removed completely, but let's
keep it for now since these drivers are still in development.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
2021-03-12 12:02:39 +08:00
Daniel Golle
3a83df88ac uboot-mediatek: update configs for MT7622 devies
* make sure USB 2.0 works (useful for UEFI-booting eg. memtest86)
 * include more useful U-Boot config options on BPi-R64.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-12 12:02:04 +08:00
Daniel Golle
cfb2940432 uboot-mediatek: update to 2021.04-rc3 with MediaTek's patches
MediaTek published their current U-Boot patchset on github:
https://github.com/mtk-openwrt/u-boot/commits/mtksoc

Import the platform patches from there (`00-mtk-*.patch`), arrange,
them nicely, drop no longer needed local patches and rebase on top of
U-Boot 2021.04-rc3.

Tested and works well on Linksys E8450 (snand-1ddr) as well as
Bananapi BPi-R64 (sdmmc-2ddr, emmc-2ddr).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-12 12:01:28 +08:00
Daniel Golle
08cf9d97d5 arm-trusted-firmware-mediatek: update to 2021-03-10
Most prominently this adds changes which allow replacing the binary-
only 'bromimage' tool by U-Boot's 'mkimage' (see previous commit).
This fixes build on non-Linux and/or non-x86 platforms.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-12 12:01:06 +08:00
Daniel Golle
b90872914c tools: mkimage: add patches for 64-bit MediaTek BootROM
Add patches for mkimage to allow using it instead of the binary-only
'bromimage' tool to generate bl2 for MT7622.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-12 12:00:34 +08:00
Rafał Miłecki
9b8cac5ac2 bcm53xx: backport NVMEM NVRAM driver
It supports NVRAM access described using DT binding. Right now NVRAM
data is exposed using /sys/bus/nvmem/ only.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-11 12:02:31 +08:00
Rafał Miłecki
d28a801a43 Revert "bcm53xx: add support for reading NVRAM based on DT mapping"
This reverts commit b0376462c1. Those
changes were rejected and were replaced with an NVMEM driver.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-11 12:02:05 +08:00
Tianling Shen
eee03e63b0 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-10 02:54:10 +08:00
Tianling Shen
44cbe50f17 Revert "rockchip: rk3328: refresh usb3 nodes"
This reverts commit 1f2b46cbb5.

We found some issues with the usb3 inno driver, however it's good enough
to use generic usb3 driver for R2S, so revert it here and wait for fixes.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-10 00:51:41 +08:00
Daniel Golle
4f7ac637df arm-trusted-firmware-mediatek: fix typo SPI-SNAND -> SPI-NAND
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-09 12:13:57 +08:00
Álvaro Fernández Rojas
43eb82e03e bmips: automatically detect RAM size
Introduce new patch for automatically detecting RAM size.
Some boards have a different amount of RAM depending on the HW revision.
Therefore, automatically detecting the RAM size instead of hard-coding it will
reduce the number of device definitions.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-09 12:08:15 +08:00
Álvaro Fernández Rojas
83f638ad2b bmips: improve CPU frequency patch
Fixes BCM6358 address and calculations.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-09 12:07:42 +08:00
Daniel González Cabanelas
2185304e4f bcm63xx: AD1018-nor: add NAND flash
The Sercomm AD1018 has a NAND flash. We recently added support for NANDs
in this target.

Use the internal NAND as additional storage.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2021-03-09 12:07:07 +08:00
Álvaro Fernández Rojas
17d9896bb0 bmips: dts: comestic changes
Improve and refactor device tree files.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-09 12:06:41 +08:00
Álvaro Fernández Rojas
900ebb6d0c bmips: remove unneeded console from bootargs
console parameter is no longer needed after latest procd update.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-09 12:06:12 +08:00
Álvaro Fernández Rojas
4618fd5d7d bmips: automatically detect CPU frequency
Some BCM63xx SoCs support multiple CPU frequencies depending on HW
configuration.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-09 12:05:48 +08:00
Tianling Shen
1f2b46cbb5 rockchip: rk3328: refresh usb3 nodes
Reference:
- e93adaa8e9

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-09 00:37:49 +08:00
Tianling Shen
201dc3506a rockchip: introduce vendor USB3 inno driver
Reference: faa767a9d0

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-09 00:37:49 +08:00
Tianling Shen
9bd1268ad6 mbedtls: fix dependencies of arch
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-08 19:58:38 +08:00
AmadeusGhost
c536e20c61 rockchip/image: update note for pine64-bin
Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
2021-03-08 12:00:17 +08:00
Tianling Shen
4d5114f6e4 arm-trusted-firmware-rk3328: drop incorrect copyright
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-07 23:02:06 +08:00
Tianling Shen
f47b7449c0 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-07 21:01:37 +08:00
Tianling Shen
4b8c9b83f3 uboot-rockchip: fix build with rkbin
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-07 19:45:25 +08:00
AmadeusGhost
959b033fc3 rockchip: nanopi-r2s: add dmc controller nodes
Rererred to: f9ae6e992d

Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
[separated new files from patches, rename dtsi]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-07 17:05:22 +08:00
AmadeusGhost
a07adcaeea rorkchip: rk3328: introduce dmc driver from vendor
Referred to:
- a0e009a73e
- fcd9629c05

Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
[separated new files from patches]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-07 17:05:22 +08:00
AmadeusGhost
effa994f43 uboot-rockchip: add support for building with rockchip ddrloader
Referred to http://opensource.rock-chips.com/wiki_Boot_option#Boot_flow.

Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
[fixed format issue]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-07 17:05:22 +08:00
AmadeusGhost
b326964007 arm-trusted-firmware-rk3328: add new package
This introduces rockchip ddrloader firmware, which allows
users to control the memory frequency runtime.

Signed-off-by: AmadeusGhost <amadeus@immortalwrt.org>
[fixed binary output and format issues]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-07 17:05:22 +08:00
Tianling Shen
6401fca74d rockchip: use native mac address for NanoPi R4S
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-07 15:43:46 +08:00
Daniel Golle
72e7d9cf49 ipq806x: work-around borked QCA SDK bootloader
The bootloader of many ipq806x boards seems to require the config node
of the FIT image to be 'config@1' (or a secific different value).
This requirement used to be implicitely satisfied because OpenWrt used
to also call the configuration node inside a FIT image 'config@1'.
However, as recent U-Boot now prohibits the use of the '@' symbol as
part of node names, this was changed by
commit 5ec60cbe9d ("scripts: mkits.sh: replace @ with - in nodes")
Explicitely restore the default name of the configuration node to
'config@1' on ipq806x.
(ipq807x is unaffected as DEVICE_DTS_CONFIG default is set
"config@hk01" in target/linux/ipq807x/image/Makefile)

Reported-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-07 12:06:39 +08:00
Daniel Golle
9dd082225e ipq40xx: work-around borked QCA SDK bootloader
The bootloader of many ipq40xx boards seems to require the config node
of the FIT image to be 'config@1' (or a secific different value).
This requirement used to be implicitely satisfied because OpenWrt used
to also call the configuration node inside a FIT image 'config@1'.
However, as recent U-Boot now prohibits the use of the '@' symbol as
part of node names, this was changed by
commit 5ec60cbe9d ("scripts: mkits.sh: replace @ with - in nodes")
Explicitely restore the default name of the configuration node to
'config@1' on ipq40xx.

Reported-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-07 12:05:05 +08:00
Adrian Schmutzler
7b99ec636d treewide: make AddDepends/usb-serial selective
Make packages depending on usb-serial selective, so we do not have
to add kmod-usb-serial manually for every device.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-07 11:50:15 +08:00
Tianling Shen
2ec58a906c Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-07 11:41:06 +08:00
Daniel Golle
5d6655dc6f kernel: fix kmod-usb3 on platforms without PCI
Partially restore the wild-card matching for kmod-usb3 modules to fix
build on platforms without PCI which otherwise file, as seen on
buildbot:

ERROR: module '[...]/linux-5.4.102/drivers/usb/host/xhci-pci.ko' is missing.
modules/usb.mk:1675: recipe for target '[...]/kmod-usb3_5.4.102-1_mips_mips32.ipk' failed

Fixes: 7bda2e9aba ("kernel: fix kmod-usb3 dependencies")
Fixes: be23f9818a ("apm821xx: add support for kernel 5.10")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-06 18:06:27 +08:00
Ilya Lipnitskiy
7387a3a03d apm821xx, mt7621, oxnas, rockchip, zynq: remove PLUGIN_HOSTCC
This config symbol should not be defined in target configs.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-03-06 18:06:08 +08:00
Ilya Lipnitskiy
e778e7c90e kernel: generic: filter out CONFIG_PLUGIN_HOSTCC
It appears to be an automatic Kconfig symbol that varies depending on
the host platform. There is no need to define it in target configs, so
filter it out.

Also sort config-filter entries alphabetically.

Cc: Adrian Schmutzler <mail@adrianschmutzler.de>
Cc: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-03-06 18:05:44 +08:00
Daniel Golle
479c4a85c4 arm-trusted-firmware-mediatek: prune now uneeded declarations
Remove unneeded delcarations form package Makefile now that everything
comes from github.com/mtk-openwrt upstream.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-06 12:31:44 +08:00
Daniel Golle
5c01e4859c arm-trusted-firmware-mediatek: don't select DDR3_FLYBY for 1ddr
DDR3_FLYBY has accidentally been set also for the 1-chip variant which
lead to broken, unbootable images. Fix that.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-06 12:31:23 +08:00
Ilya Lipnitskiy
fab91a8793 kernel: fix kmod-usb3 dependencies
Adding CONFIG_USB_XHCI_PCI_RENESAS to KCONFIG made it so it was set
for all targets that included kmod-usb3, not just the intended
apm821xx/nand. xhci-pci has a dependency on xhci-pci-renesas if
CONFIG_USB_XHCI_PCI_RENESAS is set, breaking kmod-usb3 builds on
Linux 5.10 on all other targets.

Rework the dependencies by breaking out xhci-hcd, xhci-mtk, and
xhci-pci-renesas into new hidden kernel modules and setting kmod-usb3
dependencies properly.

Tested by building mt7621 and apm821xx/nand with kmod-usb3 on Linux 5.10

Fixes: be23f981 ("apm821xx: add support for kernel 5.10")
Cc: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-03-06 12:31:01 +08:00
Ilya Lipnitskiy
b997b1886b ramips: add support for kernel 5.10
Enable testing kernel.

Delete upstreamed patches:
 0098-disable_cm.patch can be dropped, upstream fixed CM handling.

Fix compile errors by using new kernel APIs.

Fix fuzz by manually editing patches to ensure the code goes in the
right place.

For 721-NET-no-auto-carrier-off-support.patch, revert upstream commit
a307593a6 to keep the OpenWrt ralink driver operational.

Add mt7621-pci-phy patch to select REGMAP_MMIO as discussed in PR #3693
and #3952.

Rename patches to follow the 3-digit classification from the OpenWrt
Developer Guide.

Run automatic quilt refresh.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-03-06 12:30:21 +08:00
Ilya Lipnitskiy
9e8195792f ramips: 5.4: refresh configs
Automatic refresh by running make kernel_oldconfig on each target.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-03-06 12:28:24 +08:00
Christian Lamparter
0db612c80d apm821xx: add support for kernel 5.10 for testing
This patch copies over refreshed patches from 5.4.

 - dropped crypto patches (they got upstreamed)

 - dropped renesas USB 3 firmware loader (they got upstreamed)

 - NAND now needs extra device-properties for ECC settings.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2021-03-06 12:22:37 +08:00
Daniel Golle
10e5f4e4ec uboot-mediatek: improve BPi-R64 support
* allow MAC address from U-Boot env to be inhertied
 * allow eMMC installation to succeed also without recovery present
   on the SD Card.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-06 12:22:05 +08:00
Rui Salvaterra
eeb082bd80 kernel: bump 5.10 to 5.10.20
Also add a new kconfig symbol (CONFIG_KCMP) to the generic config,
disabling the SYS_kcmp syscall (it was split from
CONFIG_CHECKPOINT_RESTORE, which is disabled by default, so the
previous behaviour is kept).

Removed (upstreamed) patches:
  070-net-icmp-pass-zeroed-opts-from-icmp-v6-_ndo_send-bef.patch
  081-wireguard-device-do-not-generate-ICMP-for-non-IP-pac.patch
  082-wireguard-queueing-get-rid-of-per-peer-ring-buffers.patch
  083-wireguard-kconfig-use-arm-chacha-even-with-no-neon.patch
  830-v5.12-0002-usb-serial-option-update-interface-mapping-for-ZTE-P685M.patch

Manually rebased patches:
  313-helios4-dts-status-led-alias.patch
  104-powerpc-mpc85xx-change-P2020RDB-dts-file-for-OpenWRT.patch

Run tested:
  ath79 (TL-WDR3600)
  mvebu (Turris Omnia)

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-03-06 12:21:43 +08:00
Daniel Golle
71ad0525e3 arm-trusted-firmware-mediatek: update to ATF 2.4 (2021-02-25)
All necessary blobs are now contained in the upstream repository, no
more wild replacing of blobs needed.
This new version also contains new storage drivers for (SPI-)NAND which
already comes with support for FM35Q1GA, so that patch can be dropped
as well.
Tested on:
 * Bananapi BPi-R64
   - sdmmc-2ddr
   - emmc-2ddr
 * Linksys E8450
   - snand-1ddr

All works fine (booting Bananapi BPi-R64 from SD Card does NOT require
a signed image, so patch arm-trusted-firmware-mediatek to allow doing
that).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-06 12:21:18 +08:00
Daniel Golle
71eb88a414 arm-trusted-firmware-mediatek: add patch for Fidelix SPI NAND
The Linksys E8450 aka. Belkin RT3200 comes with a rather fresh brand
of SPI NAND storage. Add support for it to the nandx driver in
arm-trusted-firmware-mediatek, so we can boot from that chip.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-06 12:21:07 +08:00
Robert Marko
ad8c018838 build: use config-1 instead of config@1 as default
U-boot will reject all nodes with @ since commit:
79af75f777

This will cause the OpenWrt images to fail booting,
to rectify use the config-1 as default.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-03-06 12:19:45 +08:00
Robert Marko
5e646f442d scripts: mkits.sh: replace @ with - in nodes
U-boot will reject the nodes with @ for the address since
commit:
79af75f777

This in turn will cause the failure to boot with OpenWrt
generated images.

So, to rectify that simply replace @ with -.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cover also newly added rootfs@1 and initrd@1 nodes)
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-03-06 12:19:26 +08:00
Rafał Miłecki
f32e94275d bcm4908: prepare to support TP-Link Archer C2300 V1
It's a BCM4906 based device (2 CPU cores). It has 512 MiB of RAM, 4 LAN
ports, 1 WAN port, 2 USB ports, NAND flash. WiFi unknown at this point.

Flashing is possible using CFE only, proper image will be worked on
later.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-06 12:19:06 +08:00
Rafał Miłecki
1f27ed87cc bcm63xx-cfe: update to the latest master
d035016 tp-link: rename to tplink to match DT vendor prefix

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-06 12:18:40 +08:00
Rui Salvaterra
1cc87ce8e5 kernel/modules: fix CDC NCM dependencies
CDC NCM support only depends on CDC Ethernet with Linux 5.10. Fix thusly.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-03-06 12:18:20 +08:00
Ilya Lipnitskiy
c5c1c46554 generic: config-5.10: add missing symbols
Add symbols missing after latest crypto.mk and WireGuard changes.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-03-06 12:17:53 +08:00
Rui Salvaterra
83fb4e45ea kernel: backport GCC 10 usbip build fix for 5.4
From the original commit message:

"With GCC 10, building usbip triggers error for multiple definition
of 'udev_context', in:
- libsrc/vhci_driver.c:18 and
- libsrc/usbip_host_common.c:27.

Declare as extern the definition in libsrc/usbip_host_common.c."

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-03-06 12:17:31 +08:00
Luis Araneda
ea8c9a2c16 kernel: remove symbols from 5.10 no longer present on upstream
REFCOUNT_FULL was removed for linux 5.5:
commit fb041bb7c0a9 (locking/refcount: Consolidate implementations of refcount_t)

COMMON_CLK_VERSATILE was removed on linux 5.8:
commit 5f55f1fb187d (clk: versatile: Fix kconfig dependency on COMMON_CLK_VERSATILE)

Signed-off-by: Luis Araneda <luaraneda@gmail.com>
2021-03-06 12:16:59 +08:00
Sieng Piaw Liew
d82bde7c3d bcm63xx: rename upstreamed patch
Patch to fix kernel panic was recently accepted upstream so rename patch
and add acked lines to reflect that.

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
(add the same patch for v5.10)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-06 12:16:32 +08:00
Daniel González Cabanelas
8cb2963d00 kernel: b53: update the BCM5365 UID in the fixup
The BCM5365 UID was updated in the driver, but we should also update it in the
fixup.

Fixes: cbcac4fde8 ("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>
2021-03-06 12:16:10 +08:00
Álvaro Fernández Rojas
90d977693f bcm27xx: bcm2711: disable HW_RANDOM_BCM2835
This driver is only present on BCM2708, BCM2709 and BCM2710.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-06 12:15:52 +08:00
Ilya Lipnitskiy
7a6e18f1ca ramips: rename mtk-hsdma to hsdma-mt7621
Follows upstream rename:
https://lore.kernel.org/driverdev-devel/20210130034507.2115280-1-ilya.lipnitskiy@gmail.com/

Fixes ramips builds on 5.4.102

Cc: John Audia <graysky@archlinux.us>
Cc: David Bauer <mail@david-bauer.net>
Cc: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-03-06 12:13:11 +08:00
Rafał Miłecki
b994baa951 bcm63xx-cfe: update to the latest master
3fb6f1c tp-link: c2300-v1: add cferam file
79f9578 sercomm: vox-2.5: add cferam file

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-06 12:08:43 +08:00
David Bauer
676dcdcec6 ath79: enable AT803X PHY for kernel 5.10
The config symbol for the AT803x device driver was lost when adding
kernel 5.10.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-03-06 12:08:04 +08:00
Tianling Shen
7fe6f5b9fa kernel: 5.10: refresh generic and rockchip patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-05 16:32:13 +08:00
Robert Marko
4e103584ce ipq40xx: net: phy: qca807x: fix GPIO driver
While rebasing into setting bits instead of magic values,
I accidentally forgot to actually set the force bit.

Without it using the pins as GPIO-s did not actually work.

Fixes: b5c93ed ("ipq40xx: add Qualcomm QCA807x driver")

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2021-03-05 12:09:19 +08:00
David Bauer
977c94ad33 ath79: replace chipselect workaround with a proper patch
Debugging the SPI CS issue with kernel 5.10 resulted in a better
understanding for the root cause and a proper patch with a better
explanation.

Exchange the old hack patch with a more efficient (and upstreamable)
solution.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-03-05 12:08:46 +08:00
Daniel Golle
6ccf0c4fe7 arm-trusted-firmware-mediatek: don't try to install absent files
Don't try to install files which no longer exist
Since {e,sd}mmc are now produced by ptgen they have been removed.

Fixes: 5a3562cd1d ("arm-trusted-firmware-mediatek: remove {e,sd}mmc headers")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-05 12:08:22 +08:00
Jason A. Donenfeld
f0ef17aa8c kernel-5.4: bump to 5.4.102 and refresh patches
5.4.102 backported a lot of stuff that our WireGuard backport already
did, in addition to other patches we had, so those patches were
removed from that part of the series. In the process other patches were
refreshed or reworked to account for upstream changes.

This commit involved `update_kernel.sh -v -u 5.4`.

Cc: John Audia <graysky@archlinux.us>
Cc: David Bauer <mail@david-bauer.net>
Cc: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-03-05 12:07:01 +08:00
Daniel Golle
af5bc062f8 mediatek: mt7622: check firmware metadata
All mt7622 devices except for the UBI-variant of the mt7622-rfb1 carry
metadata appended to the sysupgrade image.
Add it for the mt7622-rfb1-ubi as well and check it on sysupgrade to
avoid accidentally flashing firmware for the wrong device (or variant
or future DEVICE_COMPAT_VERSION).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-04 12:14:01 +08:00
Petr Štetiar
0dd94ffc90 kernel: generic: add further missing symbols
Compile testing i.mx6 with ALL_KMODS=y, PACKAGE_perf=y and bunch of
tracing/probing symbols has unveiled bunch of missing config options so
add them.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-03-04 12:09:26 +08:00
Petr Štetiar
f37300fede imx6: add 5.10 as testing kernel
So anyone interested can help with testing.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-03-04 12:09:02 +08:00
Petr Štetiar
c9cc16f2d6 imx6: refresh kernel config with 5.10 symbols
Just by running `make kernel_oldconfig` and unsetting following options
manually as those cores are cortex-a7 based and thus irrelevant for the
currently default cortex-a9 used cores.

 CONFIG_CLK_IMX6SL is not set
 CONFIG_CLK_IMX6SX is not set
 CONFIG_CLK_IMX6UL is not set

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-03-04 12:07:30 +08:00
Petr Štetiar
1527248306 imx6: copy kernel 5.4 config and patches to 5.10
So the changes are visible in the next step. Removed upstreamed patches.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-03-04 12:07:07 +08:00
Tianling Shen
ddc247b45e Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-03 18:08:50 +08:00
Tianling Shen
7dfa051ec6 r81xx: do not build for kernel 5.10
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-03 13:25:11 +08:00
David Bauer
257bfd266c mediatek: add missing 5.10 patches
These patches are required for the Ubiquiti UniFi 6 LR to work. They
were already present for kernel 5.4 but got lost when adding 5.10
support.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-03-03 12:48:44 +08:00
Felix Fietkau
04eb4f1ffa mediatek: add support for configuring BMT table size via device tree
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-03 12:48:21 +08:00
Felix Fietkau
fcc1cfc966 mediatek: implement bad-block management table support
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-03 12:48:02 +08:00
Daniel Golle
ed3b9ebd8b mediatek: mt7622: enable CONFIG_SPI_MTK_NOR
Somehow this got disabled in the transition to 5.10.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-03 12:32:38 +08:00
Daniel Golle
9eafacaade image: extend FIT partition parser for use on eMMC/SDcard
Introduce a magic GUID_PARTITION_LINUX_FIT_GUID to designate a GPT
partition to be interpreted by the FIT partition parser.
In that way, sub-partitions for (external-data) uImage.FIT stored
directly in a partition can be split, similar like we do for devices
with raw flash storage.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-03 12:29:27 +08:00
Daniel Golle
ad2936d4df sysupgrade-nand: allow limiting rootfs_data by setting env variable
Check if firmware environment variable 'rootfs_data_max' exists and is
set to a numerical value greater than 0. If so, limit rootfs_data
volume to that size instead of using the maximum available size.

This is useful on devices with lots of flash where users may want to
have eg. a volume for persistent logs and statistics or for external
applications/containers. Persistence on rootfs overlay is limited by
the size of memory available during the sysugprade process as that
data needs to be copied to RAM while the volume is being recreated
during sysupgrade. Hence it is unsuitable for keeping larger amounts
of data accross upgrade which makes additional volume(s) for
application data desirable.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-03 12:28:52 +08:00
Tianling Shen
9923b33ffd kernel: 5.4: refresh hack patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-03 12:25:45 +08:00
Daniel Golle
a7fa015ed6 arm-trusted-firmware-mediatek: remove {e,sd}mmc headers
Turned out those are simply MBR with active boot partition. And not
needed at all on emmc. Remove them as ptgen can now generate hybrid
MBR sufficient to boot MT7622 from SD Card.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-03 12:09:13 +08:00
Oskari Lemmela
79f68a126e mediatek: mt7622: change image generation
- set only one EFI system partition
- use shorter path for DEVICE_DTS file

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
2021-03-03 12:08:50 +08:00
Oskari Lemmela
7f56726561 mediatek: mt7622: use ptgen generated MBR header
mt7622 uses MBR partition for booting from SD card.
Add hybrid MBR entry with boot flag after PMBR entry.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
2021-03-03 12:08:30 +08:00
AmadeusGhost
9e05beb9e5 firmware-utils/ptgen: sync upstream source code 2021-03-03 12:08:03 +08:00
Álvaro Fernández Rojas
57e5805759 bmips: switch to upstream brcmnand patch
This patch has been accepted upstream for v5.13.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-03 12:03:17 +08:00
Daniel Golle
04722cef6f uboot-mediatek: bpi-r64: make sure eMMC installation runs only once
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:30:27 +08:00
Daniel Golle
ec12a414ef mediatek: mt7622: make sure image generation can run in parallel
The previous approach of referencing artifacts in follow-up artifacts
can't work with parallel builds in the current way image.mk is built.
Refactor things so this is not needed.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:30:12 +08:00
Daniel Golle
710994dcf5 mediatek: mt7622: blue LED should be active high as well
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:28:36 +08:00
Daniel Golle
ca8e1514ee uboot-mediatek: bpi-r64: fix eMMC installation menu label
Change boot menu label for eMMC installation to tell what it does now.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:28:32 +08:00
Daniel Golle
3f6018d94b mediatek: mt7622: bpi-r64: simplify eMMC install procedure
Write everything needed for eMMC install into the gaps between
partitions on SD card. In that way, installation to eMMC only needs
the SD card, no additional files need to be loaded via TFTP any more.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:28:18 +08:00
Daniel Golle
ab28d07c3b treewide: fix spelling 'seperate' -> 'separate'
This popular spelling mistake was also introduced by myself lately.
Fix it everywhere.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:26:41 +08:00
Daniel Golle
087b50c272 image: improve Kconfig for seperate ramdisk option
* show only if target supports it (ie. seperate_ramdisk feature set)
* select XZ compression by default of ramdisk is seperate

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:26:33 +08:00
Daniel Golle
7274de920e mediatek: switch to use seperate ramdisk for initramfs images
MediaTek targets always use U-Boot's modern uImage.FIT format which
allows bundling several blobs into a single file including hashes,
descriptions and more. In fact, we are already using that to bundle
the Flattened Device Tree blob with the kernel on this and many
other targets.
In the same fashion, we can now make use of the newly introduced
support for building seperate ramdisk to uImage.FIT with a dedicated
initrd blob checked and loaded by U-Boot instead of embedding the
cpio archive into the kernel itself.
This allows for having larger ramdisks, choosing ramdisk compression
independently of kernel compression (while only kernel is decompressed
by the bootloader) and for more easily replacing or modifying the
filesystem contained in an initramfs image.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:26:17 +08:00
Daniel Golle
cd19008b4e image: remove bogus mkimage command
That was a left-over from testing and should not have made it into the
tree. Remove it.

Fixes: 330bd380e8 ("image: allow building FIT and uImage with ramdisk")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:25:15 +08:00
Daniel Golle
282d5852b6 image: allow building FIT and uImage with ramdisk
Instead of embedding the initrd cpio archive into the kernel, allow
for having an external ramdisk added to the FIT or uImage.
This is useful to overcome kernel size limitations present in many
stock bootloaders, as the ramdisk is then loaded seperately and doesn't
add to the kernel size. Hence we can have larger ramdisks to host ie.
installers with all binaries to flash included (or a web-based
firmware selector).
In terms of performance and total size the differences are neglectible.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:24:04 +08:00
Daniel Golle
36c74de2f5 image: add support for building FIT image with filesystem
Allow for single (external-data) FIT image to hold kernel, dtb and
squashfs. In that way, the bootloader verifies the system integrity
including the rootfs, because what's the point of checking that the
hash of the kernel is correct if it won't boot in case of squashfs
being corrupted? Better allow bootloader to check everything needed
to make it at least up to failsafe mode. As a positive side effect
this change also makes the sysupgrade process on nand potentially
much easier as it is now.
In short: mkimage has a parameter '-E' which allows generating FIT
images with 'external' data rather than embedding the data into the
device-tree blob itself. In this way, the FIT structure itself remains
small and can be parsed easily (rather than having to page around
megabytes of image content). This patch makes use of that and adds
support for adding sub-images of type 'filesystem' which are used to
store the squashfs. Now U-Boot can verify the whole OS and the new
partition parsers added in the Linux kernel can detect the filesystem
sub-images, create partitions for them, and select the active rootfs
volume based on the configuration in FIT (passing configuration via
device tree could be implemented easily at a later stage).

This new FIT partition parser works for NOR flash (on top of mtdblock),
NAND flash (on top of ubiblock) as well as classic block devices
(ie. eMMC, SDcard, SATA, NVME, ...).
It could even be used to mount such FIT images via `losetup -P` on a
user PC if this patch gets included in Linux upstream one day ;)

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:17:37 +08:00
Daniel Golle
baf851af5a mediatek: mt7622: bpi-r64: fix sysupgrade on empty disk
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:16:51 +08:00
Daniel Golle
8b2d93e8e5 mediatek: rework support for BananaPi BPi-R64
**What's new**

 * Bring support for the Bananapi BPi-R64 to the level desirable for
   a nice hackable routerboard.
 * Use ARM Trusted Firmware A from source. (goodbye binary preloader)
 * Use Das U-Boot from source. (see previous commit)
 * Assemble SD-card image using OpenWrt image-commands.
   (no gen_sd_cruz_foo.sh added, this is not Raspbian)
 * Updated kernel options to support root filesystem.
 * Updated DTS to match OpenWrt LAN ports, known LEDs, buttons, ...
 * Detect root device, handle sysupgrade, config restore, ...
 * Wire up (known) LEDs and buttons in OpenWrt-fashion.
 * Build one set of images from SD-card and eMMC.
 * Hopefully provide a good example of how things can be done right
   from scratch.

**Installation and images**

 * Have an empty SD-card at hand
 * Write stuff to the card, as root (card device is /dev/mmcblkX)
   - write header, gpt, bl2, atf, u-boot and recovery kernel:
     `cat *bpi-r64-boot-sdcard.img *bpi-r64-initramfs-recovery.fit > /dev/mmcblkX`
   - rescan partitions:
     `blockdev --rereadpt /dev/mmcblkX`
   - write main system to production partition:
     `cat *bpi-r64-squashfs-sysupgrade.fit > /dev/mmcblkXp5`

 * Installation to eMMC works using SD-card bootloader via TFTP
   When running OpenWrt of SD-card, issue this to trigger installation
   to eMMC:
   `fw_setenv bootcmd run emmc_init`
   Be prepared to serve the content of bin/targets/mediatek/mt7622 on
   TFTP server address 192.168.1.254.

**What's missing**

 * The red LED is always on, probably a hardware bug.
 * AHCI (probably needs DTS changes)
 * Ship SD-card image ready with every needed for eMMC install.
 * The eMMC has a second, currently unused boot partition. This would
   be ideal to store the WiFi EEPROM and Ethernet MAC address(es).
   @sinovoip ideas?

Thanks to Thomas Hühn @thuehn for providing the hardware!

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:16:38 +08:00
Daniel Golle
4857434c74 mediatek: add alternative UBI NAND layout for Linksys E8450
The vendor flash layout of the Linksys E8450 is problematic as it uses
the SPI-NAND chip without any wear-leveling while at the same time
wasting a lot of space for padding.
Use an all-UBI layout instead, storing the kernel+dtb+squashfs in
uImage.FIT standard format in UBI volume 'fit', the read-write
overlay in UBI volume 'rootfs_data' as well as reduntant U-Boot
environments 'ubootenv' and 'ubootenv2', and a 'recovery'
kernel+dtb+initramfs uImage.FIT for dual-boot.

** WARNING **
THIS PROCEDURE CAN EASILY BRICK YOUR DEVICE PERMANENTLY IF NOT CARRIED
OUT VERY CAREFULLY AND EXACTLY AS DESCRIBED!

Step 0

 * Configure your PC to have the static IPv4 address 192.168.1.254/24
 * Provide bin/targets/mediatek/mt7622 via TFTP

Now continue EITHER with step 1A or 1B, depending on your preference
(and on having serial console wired up or not).

Step 1A (Using the vendor web interface (or non-UBI OpenWrt install))

In order to update to the new bootloader and UBI-based firmware,
use the web browser of your choice to open the routers web-interface
accessible on http://192.168.1.1

 * Navigate to
   'Configuration' -> 'Administration' -> 'Firmware Upgrade'

 * Upload the file
    openwrt-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb
   and proceed with the upgrade.

 * Once OpenWrt comes up, use SCP to upload the new bootloader files to
   /tmp on the router:
    *-mt7622-linksys_e8450-ubi-preloader.bin
    *-mt7622-linksys_e8450-ubi-bl31-uboot.fip

 * Connect via SSH as you will now need to replace the bootloader in
   the Flash.

    ssh root@192.168.1.1
    (the usual warnings)

 * First of all, backup all the flash now:

    for mtd in /dev/mtdblock*; do
     dd if=$mtd of=/tmp/$(basename $mtd);
    done

 * Then use SCP to copy /tmp/mtdblock* from the router and keep them
   safe. You will need them should you ever want to return to the
   factory firmware!

 * Now flow the uploaded files:
    mtd -e /dev/mtd0 write /tmp/*linksys_e8450-ubi-preloader.bin /dev/mtd0
    mtd -e /dev/mtd1 write /tmp/*linksys_e8450-ubi-bl31-uboot.fip /dev/mtd1

   If and only if both writes look like the completed successfully
   reboot the router. Now continue with step 2.

Step 1B (Using the vendor bootloader serial console)

 * Use the serial to backup all /dev/mtd* devices before using the
   stock firmware (you got root shell when connected to serial).

 * Then reboot and select 'U-Boot Console' in the boot menu.

 * Copy the following lines, one by one:

tftpboot 0x40080000 openwrt-mediatek-mt7622-linksys_e8450-ubi-preloader.bin
tftpboot 0x40100000 openwrt-mediatek-mt7622-linksys_e8450-ubi-bl31-uboot.fip
nand erase 0x0 0x180000
nand write 0x40080000 0x0 0x180000
reset

Now continue with step 2

Step 2

Once the new bootchain comes up, the loader will initialize UBI and the
ubootenv volumes. It will then of course fail to find any bootable
volume and hence resort to load kernel via TFTP from server
192.168.1.254 while giving itself the address 192.168.1.1

The requested file is called
openwrt-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb
and your TFTP server should provide exactly that :)
It will be written to UBI as recovery image and booted.
You can then continue and flash the production OS image, either
by using sysupgrade in the booted initramfs recovery OS, or by using
the bootloader menu and TFTP.

That's it. Go ahead and mess around with a bootchain built almost
completely from source (only DRAM calibration blobs are fitted in bl2,
and the irreplacable on-chip ROM loader remains, of course).
And enjoy U-Boot built with many great features out-of-the-box.

You can access the bootloader environment from within OpenWrt using the
'fw_printenv' and 'fw_setenv' commands. Don't be afraid, once you got
the new bootchain installed the device should be fairly unbrickable
(holding reset button before and during power-on resets things and
allows reflashing recovery image via TFTP)

Special thanks to @dvn0 (Devan Carpenter) for providing amazingly fast
infra for test-builds, allowing for `make clean ; make -j$(nproc)` in
less than two minutes :)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:13:46 +08:00
John Crispin
c3f3bfae1b mediatek: add Linksys E8450 support
The Linksys E8450, also known as Belkin RT3200, is a dual-band
IEEE 802.11bgn/ac/ax router based on MediaTek MT7622BV and
MediaTek MT7915AN chips.

FCC: K7S-03571 and K7S-03572

Hardware highlights:
 - CPU: MediaTek MT7622BV (2x ARM Cortex-A53 @ 1350 MHz max.)
 - RAM: 512MB DDR3
 - Flash: 128MB SPI-NAND (2k+64)
 - Ethernet: MT7531BE switch with 5 1000Base-T ports
             CPU port connected with 2500Base-X
 - WiFi 2.4 GHz: 802.11bgn 4T4R built-in antennas
                 MT7622VB built-in
 - WiFi   5 GHz: 802.11ac/ax 4T4R built-in antennas
                 MT7915AN chip on-board via PCIe
                 MT7975AN front-end
 - Buttons: Reset and WPS
 - LEDS: 3 user controllable LEDs, 4 wired to switch
 - USB: USB2.0, single port
 - no Bluetooth (supported by SoC, not wired on board)
 - Serial: JST PH 2.0MM 6 Pin connector inside device
            ----_____________----
           [  GND RX - TX  -  -  ]
            ---------------------
 - JTAG:   unpopulated ARM JTAG 20-pin connector (works)

This commit adds support for the device in a way that is compatible
with the vendor firmware's bootloader and dual-boot flash layout, the
resulting image can directly be flashed using the vendor firmware.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:13:41 +08:00
Felix Fietkau
cbef7392eb mediatek: mt7622: add Linux 5.10 support
Switch mt7622 subtarget to Linux 5.10, it has been tested by many of us
on several devices for a couple of weeks already.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:13:25 +08:00
Daniel Golle
74a9d2bcc1 uboot-mediatek: rework support for Bananapi BPi-R64 board
Provide U-Boot variants for SD-card as well as eMMC boot, so we can
generate whole-disk images for the device.
While at it, rename 'mt7622' to 'mt7622-rfb1' to make it less confusing
now that more boards are being added.

Thanks to Frank Wunderlich (@frank-w) for making that nice SVG image
explaining the MMC boot process[1] and for providing the necessary
binary header blobs.

[1]: https://github.com/frank-w/BPI-R64-ATF
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:12:09 +08:00
Daniel Golle
18f733a0ea uboot-mediatek: add support for Linksys E8450
Build U-Boot for the Linksys E8450 in order to have support for UBI.
The loader has a default environment with scripts handling the reset
button as well as fall-back to recovery firmware. If the loader comes
up without a valid environment found in UBI, it will automatically
make sure UBI is formatted and create a new environment and proceed
to load recovery firmware (either from UBI or via TFTP if recovery is
corrupted or unavailable).

If the button is held down during power-on, the yellow status LED
turns on and the bootloader environment is reset to factory defaults.
If the button is released at this point, the recovery firmware (if
existing) is loaded from UBI and booted.
If the button is continously held down even beyond the point that
the yellow LED turned on, the loader will try to load the recovery
firmware via TFTP from server 192.168.1.254, write it to UBI and
boot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:12:04 +08:00
Daniel Golle
d87013be6e mediatek: mt7622: rename mt7622-ubi to mt7622-rfb1-ubi
This profile is meant to be used on MT7622 rfb1 AP, indicate that in
the name to make things less confusing.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:09:55 +08:00
Rafał Miłecki
963363fc05 bcm53xx: add support for reading NVRAM based on DT mapping
This is required for devices that use NVRAM data for detecting currently
used firmware partition (e.g. Linksys devices).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:08:17 +08:00
Jason A. Donenfeld
0f7a32a144 kernel-5.10: backport chacha non block size optimizations
These make a big difference when doing WireGuard with small armv7
routers, and the 5.4 backport already has it.

Suggested-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Cc: David Bauer <mail@david-bauer.net>
Cc: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:07:26 +08:00
Jason A. Donenfeld
4c39a03b65 kernel-5.4: backport fd16931a2f51 for chacha neon
Without this patch, the chacha block counter is not incremented on neon
rounds, resulting in incorrect calculations and corrupt packets.

This also switches to using `--no-numbered --zero-commit` so that future
diffs are smaller.

Reported-by: Hans Geiblinger <cybrnook2002@yahoo.com>
Reviewed-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Cc: David Bauer <mail@david-bauer.net>
Cc: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:07:00 +08:00
Tianling Shen
9a30cf122a Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 18:19:46 +08:00
Rafał Miłecki
1015eb648d kernel: add the latest mtd patch extending ofpart parser
This adds the latest version of ofpart commit. It hopefully
1. Doesn't break compilation
2. Doesn't break partitioning
(this time).

It's required to implement fixed partitioning with some quirks. It's
required by bcm53xx, bcm4908, kirkwood, lantiq and mvebu.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-02 12:25:09 +08:00
Álvaro Fernández Rojas
cad26f70e0 bmips: switch to upstream SMP CPU mappings patch
The patch has been accepted upstream with some minor modifications.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-02 12:24:41 +08:00
Álvaro Fernández Rojas
75576f0d98 bmips: fix SMP CPU mapping
SMP isn't supported on BCM6358 since it has a shared TLB. Some boards boot
with CPU #1 instead of CPU #0, and this is currently not supported do to a
smp-bmips bug.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-03-02 12:24:24 +08:00
Rafał Miłecki
f23bfb5290 bcm4908: backport Ethernet driver fixes from the 5.12
The most noticeable one is fix for RX stopping on high traffic.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-03-02 12:21:36 +08:00
Stefan Lippers-Hollmann
641694bfba hostapd: P2P: Fix a corner case in peer addition based on PD Request
p2p_add_device() may remove the oldest entry if there is no room in the
peer table for a new peer. This would result in any pointer to that
removed entry becoming stale. A corner case with an invalid PD Request
frame could result in such a case ending up using (read+write) freed
memory. This could only by triggered when the peer table has reached its
maximum size and the PD Request frame is received from the P2P Device
Address of the oldest remaining entry and the frame has incorrect P2P
Device Address in the payload.

Fix this by fetching the dev pointer again after having called
p2p_add_device() so that the stale pointer cannot be used.

This fixes the following security vulnerabilities/bugs:

- CVE-2021-27803 - A vulnerability was discovered in how p2p/p2p_pd.c
  in wpa_supplicant before 2.10 processes P2P (Wi-Fi Direct) provision
  discovery requests. It could result in denial of service or other
  impact (potentially execution of arbitrary code), for an attacker
  within radio range.

Fixes: 17bef1e97a50 ("P2P: Add peer entry based on Provision Discovery Request")
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
2021-03-02 12:21:04 +08:00
Pawel Dembicki
cf2d588569 mpc85xx: p2020: Fix nand driver probe
At this moment driver start fail with error:
[    3.771991] fsl,elbc-fcm-nand: probe of ffa00000.nand failed with error -22

elbc-fcm-nand driver use legacy method of ecc mode detection. It detect hw/sw
ecc mode when system configure it to "none". [1]

This patch adds 'nand-ecc-mode = "none"' propoerty to use generic driver
ecc mode detection.

[1] https://elixir.bootlin.com/linux/v5.10.18/source/drivers/mtd/nand/raw/fsl_elbc_nand.c#L730

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2021-03-02 12:20:45 +08:00
Pawel Dembicki
6344d5b4aa mpc85xx: add testing kernel 5.10
Subtargets p1010 and p1020 have already added.

Compile and run tested on: P2020RDB

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2021-03-02 12:20:17 +08:00
Pawel Dembicki
26fdae0a5c mpc85xx: p2020: fix cfi-nor detection
At this moment p2020rdb has broken images, because NOR memory connected
to eLBC bus isn't detected.

In 642b1e8dbed7 linux tree commit, config dependencies of MTD_PHYSMAP_OF
was changed and now MTD_PHYSMAP is required.

This patch adds MTD_PHYSMAP option to kernel config in p2020 subtarget
and fix booting of p2020rdb.

Fixes: 13b1db795f ("mpc85xx: add support for kernel 5.4")

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2021-03-02 12:19:49 +08:00
Alberto Bursi
6adf8abd88 x86: add support for AWS T3 instances
Amazon AWS T3 cloud instances require kernel support
for the Elastic Fabric Adapter to access storage
and for Elastic Network Adapter to use network
interfaces.

Since the Fabric Adapter is needed to access
root filesystem, enable in x86_64 kernel.

Elastic Network Adapter goes in a module,
and add this module to default list in x86_64.
The module is set to AutoLoad because AutoProbe does
not seem to load it.

Signed-off-by: Alberto Bursi <bobafetthotmail@gmail.com>
2021-03-02 12:19:23 +08:00
Georgi Valkov
f3608491bc uboot-sunxi: add missing type __u64
Non Linux systems e.g. macOS lack the __u64 type and produce build errors:
In file included from tools/aisimage.c:9:
In file included from include/image.h:19:
In file included from ./arch/arm/include/asm/byteorder.h:29:
In file included from include/linux/byteorder/little_endian.h:13:
include/linux/types.h:146:9: error: unknown type name '__u64'; did you mean '__s64'?
typedef __u64 __bitwise __le64;

Resolved by declaring __u64 in include/linux/types.h
Build tested on macOS and Ubuntu.

Signed-off-by: Georgi Valkov <gvalkov@abv.bg>
2021-03-02 12:17:59 +08:00
Shiji Yang
2e3c5e6820 ramips: fix partition layout of hiwifi hc5x61
Changes:
 * Increase "oem" partition size from 0x10000 to 0x20000
 * Correct partition lables, synchronize with official firmware

Evidence:
It should be the same as hiwifi hc5x61a and the fact indeed the
case. Here is part of dmesg boot log read from official firmware:
[    1.470000] Creating 7 MTD partitions on "raspi":
[    1.470000] 0x000000000000-0x000000030000 : "u-boot"
[    1.480000] 0x000000030000-0x000000040000 : "hw_panic"
[    1.490000] 0x000000040000-0x000000050000 : "Factory"
[    1.490000] 0x000000fc0000-0x000000fe0000 : "oem"
[    1.500000] 0x000000fe0000-0x000000ff0000 : "bdinfo"
[    1.510000] 0x000000ff0000-0x000001000000 : "backup"
[    1.510000] 0x000000050000-0x000000fc0000 : "firmware"

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2021-03-02 12:17:34 +08:00
Rui Salvaterra
b786ab6817 kernel/zram: remove obsolete symbol
Zsmalloc page table mappings are dead and gone [1]. Drop the respective kconfig
symbol.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.4.y&id=69dc72f058c9b98f9b66bed184cfab7c2e9f49b0

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-03-02 12:17:09 +08:00
Rui Salvaterra
ab06ea6af6 mvebu/omnia: fix the device tree
Backport [1] and fix [2] hardware buffer management. Also fix the IRQ storm
caused by a misconfiguration of the PCA9538 interrupt pin [3].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm/boot/dts/armada-385-turris-omnia.dts?id=018b88eee1a2efda26ed2f09aab33ccdc40ef18f
[2] https://lore.kernel.org/linux-arm-kernel/20210217153038.1068170-1-rsalvaterra@gmail.com/
[3] https://lore.kernel.org/linux-arm-kernel/20210220231144.32325-1-kabel@kernel.org/

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-03-02 12:16:48 +08:00
Ronny Kotzschmar
f77211ebfd uboot-envtools: adjust compile patch to version v2021.01
with u-boot v2020.07 some variables have been renamed so this patch needs to be adjusted
otherwise at least with macOS as build system there are build errors

Signed-off-by: Ronny Kotzschmar <ro.ok@me.com>
2021-03-02 12:16:22 +08:00
Mathias Kresin
9252b24f23 lantiq: vr9: set the usb led trigger via devicetree
Assign the usbdev trigger via devicetree and drop the userspace
handling of the usb leds.

Drop the now unused userspace helper code as well.

Signed-off-by: Mathias Kresin <dev@kresin.me>
Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-02 12:15:50 +08:00
Mathias Kresin
ab6ab9697f lantiq: ltq-tapi: disable KPI and QOS
The QOS feature depends on KPI2UDP which was removed from the tree with
commit a95775e4b2 ("drop unmaintained packages") in 2012.

Since QOS was the last user of the KPI, the feature can be disabled by
default.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-03-02 12:15:16 +08:00
Mathias Kresin
786e7386e0 ltq-vdsl-app: fix -Wundef warnings
The following warnings are shown during build:

/usr/include/vdsl/cmv_message_format.h:33:6: warning: "MEI_SUPPORT_DEBUG_STREAMS" is not defined, evaluates to 0 [-Wundef]
 #if (MEI_SUPPORT_DEBUG_STREAMS == 1)
      ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/vdsl/drv_mei_cpe_interface.h:2256:6: warning: "MEI_SUPPORT_OPTIMIZED_FW_DL" is not defined, evaluates to 0 [-Wundef]
 #if (MEI_SUPPORT_OPTIMIZED_FW_DL == 1)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~

The headers are provided by the MEI driver, but the defines are never
set by the vdsl app. While the struct with the
MEI_SUPPORT_OPTIMIZED_FW_DL conditional isn't used by the vdsl app,
however CMV_USED_PAYLOAD_8BIT_SIZE which value depends on
MEI_SUPPORT_DEBUG_STREAMS is.

Since the MEI driver doesn't provide an autogenerated header with
compile flags, the flags are hardcoded for the vdsl app.

Set them for the MEI driver as well, to indicate a relation to the
values used for the vdsl app and to be not surprised by a changed
default in case the MEI driver gets updated. Use the current default
values defined in the MEI driver.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-03-02 12:14:54 +08:00
Mathias Kresin
ff4894375c lantiq: set maximum kernel size
These boards have a fixed size kernel partition but do not limit the
kernel size during image building.

Disable image building for both boards as well, since the kernel of the
last release as well as master are to big to fit into the 2 MByte kernel
partition.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-03-02 12:14:20 +08:00
Mathias Kresin
6761e416da lantiq: ARV752DPW22: set the usb led trigger via devicetree
Assign the usbdev trigger via devicetree and drop the userspace
handling of the usb leds

Add the PCI attached usb controller as trigger sources for the usb led
as well.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-03-02 12:12:52 +08:00
Adrian Schmutzler
1fa6042b46 octeon: re-enable CONFIG_CAVIUM_CN63XXP1 and EdgeRouter image
The symbol CONFIG_CAVIUM_CN63XXP1 was disabled during the bump to
4.19 (see Fixes:) with the following reason:

  No supported hardware uses CN63XXP1 and it causes "slight decrease
  in performance"

However, it later turned out that the edgerouter image needed it,
which led to having the device disabled in [1].
Still, dropping support of a device seems a harsh action for just
removing a "slight" decrease in performance from the other devices.

Thus, this enables CONFIG_CAVIUM_CN63XXP1 again, and essentially
restores the situation present until (including) kernel 4.14 on
this target.

For OpenWrt as a platform, it seems more desirable to support all
devices (and have them tested regularly via the snapshots) in this
case.
Users interested in maximum performance might still just remove
the symbol again in their local build.

[1] 3824fa26d2 ("octeon: disable edgerouter image")

Fixes: 6c22545225 ("target/octeon: Add Linux 4.19 support")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-02 12:12:34 +08:00
Adrian Schmutzler
602bc515c9 octeon: refresh config for kernel 5.4
Simple run of 'make kernel_oldconfig'

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-03-02 12:12:06 +08:00
Felix Fietkau
6ae7dfe52d kernel: add support for enabling fit firmware partition parser via cmdline
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>
2021-03-02 12:11:33 +08:00
John Audia
3f966ae112 kernel: bump 5.4 to 5.4.101
Ran update_kernel.sh in a fresh clone without any existing toolchains.

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>
2021-02-28 12:02:10 +08:00
Jason A. Donenfeld
4ec13dfc43 kernel: backport pending fix to select CPU_MIPS64
The CPU_MIPS64 and CPU_MIPS32 variables are supposed to be able to
distinguish broadly between 64-bit and 32-bit MIPS CPUs. However, they
weren't selected by the specialty CPUs, Octeon and Loongson, which meant
it was possible to hit a weird state of:

   MIPS=y, CONFIG_64BIT=y, CPU_MIPS64=n

This commit rectifies the issue by having CPU_MIPS64 be selected when
the missing Octeon or Loongson models are selected.

In particular, this affects our octeonplus target.

It has been posted to LKML here:
https://lore.kernel.org/linux-mips/20210227122605.2680138-1-Jason@zx2c4.com/

Cc: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Cc: David Bauer <mail@david-bauer.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-28 12:01:47 +08:00
Aleksander Jan Bajkowski
b9457eb465 kernel: move some new symbols available on 5.10 to generic
Move some disabled config options found in sunxi target to generic.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-02-28 12:00:47 +08:00
Ilya Lipnitskiy
86415dfc07 kernel: no chacha-mips.ko on mips32 r1 targets
CHACHA_MIPS depends on CPU_MIPS32_R2. Therefore,
kmod-crypto-lib-chacha20 should not contain chacha-mips.ko on MIPS32 R1
targets. Enforce that in the target-specific definition.

Fixes bcm47xx, bcm63xx, lantiq/ase, ath25 builds.

Fixes: 06351f1 ("kernel: migrate wireguard into the kernel tree")
Cc: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Reviewed-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-27 18:05:19 +08:00
Daniel González Cabanelas
629193b2c9 kernel: b53: update the BCM5365 UID
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>
2021-02-27 12:20:13 +08:00
Ilya Lipnitskiy
382ec3d304 wireguard-tools: depend on kmod-wireguard
To the vast majority of the users, wireguard-tools are not useful
without the underlying kernel module. The cornercase of only generating
keys and not using the secure tunnel is something that won't be done on
an embedded OpenWrt system often. On the other hand, maintaining a
separate meta-package only for this use case introduces extra
complexity. WireGuard changes for Linux 5.10 remove the meta-package.
So let's make wireguard-tools depend on kmod-wireguard
to make WireGuard easier to use without having to install multiple
packages.

Fixes: ea980fb9 ("wireguard: bump to 20191226")
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-27 12:19:44 +08:00
Ilya Lipnitskiy
f481afed17 kernel: fix kmod-wireguard package fields
Use NETWORK_SUPPORT_MENU like all other modules in netsupport.mk. Drop
SECTION and CATEGORY fields as they are set by default and to match
other packages in netsupport.mk. Use better TITLE for kmod-wireguard
(taken from upstream drivers/net/Kconfig).

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-27 12:19:21 +08:00
Jason A. Donenfeld
861b3d9823 wireguard-tools: bump to 1.0.20210223
Simple version bump with accumulated fixes.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-27 12:18:37 +08:00
Ilya Lipnitskiy
5eaf0ea83d kernel: 5.4: generic: add missing symbols
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-27 12:18:03 +08:00
Ilya Lipnitskiy
7e6aa9faf0 kernel: migrate wireguard into the kernel tree
On Linux 5.4, build WireGuard from backports. Linux 5.10 contains
wireguard in-tree.

Add in-kernel crypto libraries required by WireGuard along with
arch-specific optimizations.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-27 12:17:29 +08:00
Ilya Lipnitskiy
fffc97d259 kernel: 5.4: fix patches after wireguard backport
No major problems, just a minor Kconfig fix and a refresh.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-27 12:14:16 +08:00
Jason A. Donenfeld
41a8427cc7 kernel: 5.4: import wireguard backport
Rather than using the clunky, old, slower wireguard-linux-compat out of
tree module, this commit does a patch-by-patch backport of upstream's
wireguard to 5.4. This specific backport is in widespread use, being
part of SUSE's enterprise kernel, Oracle's enterprise kernel, Google's
Android kernel, Gentoo's distro kernel, and probably more I've forgotten
about. It's definately the "more proper" way of adding wireguard to a
kernel than the ugly compat.h hell of the wireguard-linux-compat repo.
And most importantly for OpenWRT, it allows using the same module
configuration code for 5.10 as for 5.4, with no need for bifurcation.

These patches are from the backport tree which is maintained in the
open here: https://git.zx2c4.com/wireguard-linux/log/?h=backport-5.4.y
I'll be sending PRs to update this as needed.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-27 12:13:46 +08:00
Jason A. Donenfeld
3f28f374c5 kernel: 5.10: wireguard: backport 5.12-rc1 changes in net.git
These will eventually make their way to 5.10, but it could be a while.

https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=ee576c47db60432c37e54b1e2b43a8ca6d3a8dca
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=5a0598695634a6bb4126818902dd9140cd9df8b6
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=99fff5264e7ab06f45b0ad60243475be0a8d0559
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=8b5553ace83cced775eefd0f3f18b5c6214ccf7a
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=bce2473927af8de12ad131a743f55d69d358c0b9

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
[Rename 082-wireguard-kconfig... to 083-wireguard-kconfig...]
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-27 12:13:06 +08:00
Ilya Lipnitskiy
57403f6cac zynq: Enable CONFIG_KERNEL_MODE_NEON
This flag is set on all other platforms. And Zynq 7000 SoC does have
NEON support:
https://www.xilinx.com/support/documentation/application_notes/xapp1206-boost-sw-performance-zynq7soc-w-neon.pdf

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-27 12:12:38 +08:00
David Bauer
03c222492e mpc85xx: remove fdt.bin image
When converting the fdt binary to be created as an artifact, the image
receipt was dropped but the entry in the target images list was not.

Fixes commit 1e41de2f48 ("mpc85xx: convert TL-WDR4900 v1 to simpleImage")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-27 12:07:25 +08:00
Lech Perczak
b6f9315ebc ramips: add support for ZTE MF283+
ZTE MF283+ is a dual-antenna LTE category 4 router, based on Ralink
RT3352 SoC, and built-in ZTE P685M PCIe MiniCard LTE modem.

Hardware highlighs:
- CPU: MIPS24KEc at 400MHz,
- RAM: 64MB DDR2,
- Flash: 16MB SPI,
- Ethernet: 4 10/100M port switch with VLAN support,
- Wireless: Dual-stream 802.11n (RT2860), with two internal antennas,
- WWAN: Built-in ZTE P685M modem, with two internal antennas and two
  switching SMA connectors for external antennas,
- FXS: Single ATA, with two connectors marked PHONE1 and PHONE2,
  internally wired in parallel by 0-Ohm resistors, handled entirely by
  internal WWAN modem.
- USB: internal miniPCIe slot for modem,
  unpopulated USB A connector on PCB.
- SIM slot for the WWAN modem.
- UART connector for the console (unpopulated) at 3.3V,
  pinout: 1: VCC, 2: TXD, 3: RXD, 4: GND,
  settings: 57600-8-N-1.
- LEDs: Power (fixed), WLAN, WWAN (RGB),
  phone (bicolor, controlled by modem), Signal,
  4 link/act LEDs for LAN1-4.
- Buttons: WPS, reset.

Installation:
As the modem is, for most of the time, provided by carriers, there is no
possibility to flash through web interface, only built-in FOTA update
and TFTP recovery are supported.

There are two installation methods:
(1) Using serial console and initramfs-kernel - recommended, as it
allows you to back up original firmware, or
(2) Using TFTP recovery - does not require disassembly.

(1) Using serial console:
To install OpenWrt, one needs to disassemble the
router and flash it via TFTP by using serial console:
- Locate unpopulated 4-pin header on the top of the board, near buttons.
- Connect UART adapter to the connector. Use 3.3V voltage level only,
  omit VCC connection. Pin 1 (VCC) is marked by square pad.
- Put your initramfs-kernel image in TFTP server directory.
- Power-up the device.
- Press "1" to load initramfs image to RAM.
- Enter IP address chosen for the device (defaults to 192.168.0.1).
- Enter TFTP server IP address (defaults to 192.168.0.22).
- Enter image filename as put inside TFTP server - something short,
  like firmware.bin is recommended.
- Hit enter to load the image. U-boot will store above values in
  persistent environment for next installation.
- If you ever might want to return to vendor firmware,
  BACK UP CONTENTS OF YOUR FLASH NOW.
  For this router, commonly used by mobile networks,
  plain vendor images are not officially available.
  To do so, copy contents of each /dev/mtd[0-3], "firmware" - mtd3 being the
  most important, and copy them over network to your PC. But in case
  anything goes wrong, PLEASE do back up ALL OF THEM.
- From under OpenWrt just booted, load the sysupgrade image to tmpfs,
  and execute sysupgrade.

(2) Using TFTP recovery
- Set your host IP to 192.168.0.22 - for example using:
sudo ip addr add 192.168.0.22/24 dev <interface>
- Set up a TFTP server on your machine
- Put the sysupgrade image in TFTP server root named as 'root_uImage'
  (no quotes), for example using tftpd:
  cp openwrt-ramips-rt305x-zte_mf283plus-squashfs-sysupgrade.bin /srv/tftp/root_uImage
- Power on the router holding BOTH Reset and WPS buttons held for around
  5 seconds, until after WWAN and Signal LEDs blink.
- Wait for OpenWrt to start booting up, this should take around a
  minute.

Return to original firmware:
Here, again there are two possibilities are possible, just like for
installation:
(1) Using initramfs-kernel image and serial console
(2) Using TFTP recovery

(1) Using initramfs-kernel image and serial console
- Boot OpenWrt initramfs-kernel image via TFTP the same as for
  installation.
- Copy over the backed up "firmware.bin" image of "mtd3" to /tmp/
- Use "mtd write /tmp/firmware.bin /dev/mtd3", where firmware.bin is
  your backup taken before OpenWrt installation, and /dev/mtd3 is the
  "firmware" partition.

(2) Using TFTP recovery
- Follow the same steps as for installation, but replacing 'root_uImage'
  with firmware backup you took during installation, or by vendor
  firmware obtained elsewhere.

A few quirks of the device, noted from my instance:
- Wired and wireless MAC addresses written in flash are the same,
  despite being in separate locations.
- Power LED is hardwired to 3.3V, so there is no status LED per se, and
  WLAN LED is controlled by WLAN driver, so I had to hijack 3G/4G LED
  for status - original firmware also does this in bootup.
- FXS subsystem and its LED is controlled by the
  modem, so it work independently of OpenWrt.
  Tested to work even before OpenWrt booted.
  I managed to open up modem's shell via ADB,
  and found from its kernel logs, that FXS and its LED is indeed controlled
  by modem.
- While finding LEDs, I had no GPL source drop from ZTE, so I had to probe for
  each and every one of them manually, so this might not be complete -
  it looks like bicolor LED is used for FXS, possibly to support
  dual-ported variant in other device sharing the PCB.
- Flash performance is very low, despite enabling 50MHz clock and fast
  read command, due to using 4k sectors throughout the target. I decided
  to keep it at the moment, to avoid breaking existing devices - I
  identified one potentially affected, should this be limited to under
  4MB of Flash. The difference between sysupgrade durations is whopping
  3min vs 8min, so this is worth pursuing.

In vendor firmware, WWAN LED behaviour is as follows, citing the manual:
- red - no registration,
- green - 3G,
- blue - 4G.
Blinking indicates activity, so netdev trigger mapped from wwan0 to blue:wwan
looks reasonable at the moment, for full replacement, a script similar to
"rssileds" would need to be developed.

Behaviour of "Signal LED" in vendor firmware is as follows:
- Off - no signal,
- Blinking - poor coverage
- Solid - good coverage.

A few more details on the built-in LTE modem:
Modem is not fully supported upstream in Linux - only two CDC ports
(DIAG and one for QMI) probe. I sent patches upstream to add required device
IDs for full support.
The mapping of USB functions is as follows:
- CDC (QCDM) - dedicated to comunicating with proprietary Qualcomm tools.
- CDC (PCUI) - not supported by upstream 'option' driver yet. Patch
  submitted upstream.
- CDC (Modem) - Exactly the same as above
- QMI - A patch is sent upstream to add device ID, with that in place,
  uqmi did connect successfully, once I selected correct PDP context
  type for my SIM (IPv4-only, not default IPv4v6).
- ADB - self-explanatory, one can access the ADB shell with a device ID
  added to 51-android.rules like so:

SUBSYSTEM!="usb", GOTO="android_usb_rules_end"
LABEL="android_usb_rules_begin"
SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", ATTR{idProduct}=="1275", ENV{adb_user}="yes"
ENV{adb_user}=="yes", MODE="0660", GROUP="plugdev", TAG+="uaccess"
LABEL="android_usb_rules_end"

While not really needed in OpenWrt, it might come useful if one decides to
move the modem to their PC to hack it further, insides seem to be pretty
interesting. ADB also works well from within OpenWrt without that. O
course it isn't needed for normal operation, so I left it out of
DEVICE_PACKAGES.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
[remove kmod-usb-ledtrig-usbport, take merged upstream patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-27 12:06:37 +08:00
Jeff Collins
9da0917e54 mvebu: add LED support for GL.iNet GL-MV1000
This patch enables LED support for the GL.iNet GL-MV1000

Signed-off-by: Jeff Collins <jeffcollins9292@gmail.com>
[add SPDX identifier on new file, add aliases, minor cosmetic issues]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-27 12:03:51 +08:00
Tom Stöveken
c6c3da4b5f ath79: fix USB power on TP-Link TL-WR810N v1
Before: Kernel reported "usb_vbus: disabling" and the USB was not
        providing power
After:  USB power is switched on, peripheral is powered from the
        device

Signed-off-by: Tom Stöveken <tom@naaa.de>
[squash and tidy up]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-27 12:03:11 +08:00
Rafał Miłecki
a2299f1934 bcm53xx: backport more upstream dts stuff from kernel 5.11
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-26 12:15:53 +08:00
Vivek Unune
3d03da678a bcm53xx: backport Linksys Panamera (EA9500) patches
These patches have been already accepted.

302-ARM-dts-BCM5301X-Update-Northstar-pinctrl-binding.patch had to
be updated.

[rmilecki: use actual upstream accepted patches
           replace v5.10 with v5.11 to match actual upstream kernel
           recover dropped part of the pinctrl compatible patch
           update filenames
           refresh patches]

Signed-off-by: Vivek Unune <npcomplete13@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-26 12:15:17 +08:00
Rafał Miłecki
8c90bdc08a bcm53xx: group dts backports by upstream kernel version
It's a simple renaming thing.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-26 12:14:46 +08:00
Álvaro Fernández Rojas
753f315a91 bmips: dts: fix syscon-reboot nodes
Using regmap with phandles is deprecated.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-26 12:12:32 +08:00
Álvaro Fernández Rojas
7a70f3ff69 bmips: add BCM63268 timer clock and reset support
We need this to fix USB support on BCM63268.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-26 12:11:49 +08:00
Álvaro Fernández Rojas
1597a7cda0 bmips: rewrite pin controllers
This is needed in order to upstream them.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-26 12:11:22 +08:00
Daniel Golle
1323fe6334 oxnas: add experimental support for Linux 5.10
PCIe still reports link-down for some reason, RAID fails to assemble
despite SATA looking good (maybe a generic problem with RAID?)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-26 12:08:35 +08:00
Adrian Schmutzler
7f7de2cba7 ath79: enable UART node for GL-USB150
This was overlooked when adding support for this device.
(It has recently been discovered that this was the only device in
ath79 having &uart disabled.)

Fixes: acc62630132c ("ath79: add support for GL.iNet GL-USB150")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-26 12:07:28 +08:00
John Audia
cc8ff59b86 kernel: bump 5.4 to 5.4.100
Ran update_kernel.sh in a fresh clone without any existing toolchains.

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>
[refresh again]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-26 12:07:05 +08:00
ElonH
8d64ccd806 openwrt-dnsforwarder: removed 2021-02-25 21:22:40 +08:00
AmadeusGhost
40ae41824c Merge Mainline 2021-02-25 12:25:05 +08:00
David Bauer
5489589800 rtl8812au-ct: fix PKG_MIRROR_HASH
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-25 12:07:00 +08:00
Oskari Lemmela
8736a9baa8 mediatek: mt7622-bananapi-bpi-r64-rootdisk rebase to upstream dts
simplify maintaining mt7622-bananapi-bpi-r64-rootdisk.dts by
storing only differences between upstream dts

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
2021-02-25 12:06:32 +08:00
Oskari Lemmela
63bc4cbdbb mediatek: mt7622: fix bpi-r64 emmc f2fs overlay
f2fs tools are needed for generating f2fs overlay.
vfat modules are used for recovery mounting.

Fixes: f72a2b004c ("mediatek: add bpi-r64 emmc support")
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
2021-02-25 12:06:09 +08:00
Oskari Lemmela
d9cb0ae456 mediatek: mt7622: enable support for f2fs overlay
f2fs filesystem and loop device support are needed for f2fs
overlay over squashfs.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
2021-02-25 12:05:44 +08:00
Oskari Lemmela
0f3251fe35 mediatek: mt7622: add missing CONFIG_MMC_BLK
CONFIG_MMC_BLK enables block devices for SD/eMMC

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
2021-02-25 12:05:24 +08:00
Daniel Golle
76c4d9c754 arm-trusted-firmware-mediatek: correct location of PKG_LICENSE
As PKG_LICENSE is originally set by include/trusted-firmware-a.mk it
can only be appended after that. Hence move that line below the
include to actually make sense.
(cosmetical change, already slipped into openwrt-21.02 branch)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-25 12:05:01 +08:00
Kabuli Chana
9055339224 kernel: bump version 5.10 to 5.10.18
update kernel version, refresh current patchset

Signed-off-by: Kabuli Chana <newtownBuild@gmail.com>
[rebase/refresh]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-25 12:04:32 +08:00
Álvaro Fernández Rojas
f577bc1cfa bmips: add SPI accepted PM patches
These patches have been accepted upstream.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-25 12:03:16 +08:00
Adrian Schmutzler
2f28ec208c imx-bootlets: refresh patches
Tidy this up a little.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-25 12:02:55 +08:00
Adrian Schmutzler
fca0f7bcdc ath79: create common DTSI for Senao qca955x APs
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>
2021-02-25 12:02:35 +08:00
Michael Pratt
9446f56816 ath79: rename 'engenius' Makefile definitions to 'senao'
These recipes and definitions can apply
to devices from other vendors
with PCB boards or SDK produced by Senao
not only the brand Engenius

possible examples:
Extreme Networks, WatchGuard, OpenMesh,
Fortinet, ALLNET, OCEDO, Plasma Cloud, devolo, etc.

so rename all of these items
and move DEVICE_VENDOR from common to generic/tiny.mk

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-02-25 12:02:11 +08:00
Adrian Schmutzler
a3b0c3c7dd ath79: create common DTSI for Senao ar934x APs
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>
2021-02-24 12:30:08 +08:00
Adrian Schmutzler
6186fd518d ath79: create common DTSI for Senao ar724x APs
This creates a shared DTSI for ar724x Senao/Engenius APs:

 - ENH202 v1
 - EAP350 v1
 - ECB350 v1

Since ar7240/ar7242 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>
2021-02-24 12:29:54 +08:00
Adrian Schmutzler
795f220f34 ath79: enable UART in SoC DTSI files
The uart node is enabled on all devices except one (GL-USB150 *).
Thus, let's not have a few hundred nodes to enable it, but do not
disable it in the first place.

Where the majority of devices is using it, also move the serial0
alias to the DTSI.

*) Since GL-USB150 even defines serial0 alias, the missing uart
   is probably just a mistake. Anyway, disable it for now so this
   patch stays cosmetic.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-24 12:29:29 +08:00
Sungbo Eo
569bcaac54 kirkwood: set testing kernel version to 5.10
Tested on Pogoplug V4.

Linksys EA3500 will not build with buildbot settings and should be
disabled when the target is switched, unless the image size is
reduced again.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
[add EA3500 comment]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-24 12:28:44 +08:00
Sungbo Eo
9aa1289fef kirkwood: update config for kernel 5.10
Update config with make kernel_oldconfig.

CONFIG_SATA_PMP=y is added manually as done for 5.4.
This should be resolved properly in a separate issue.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
[add back CONFIG_SATA_PMP, rebase/refresh]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-24 12:28:26 +08:00
Sungbo Eo
77af9fdf91 kirkwood: refresh patches for kernel 5.10
Refresh patches to make them apply to kernel 5.10.
The removed patch has been merged upstream.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-02-24 12:28:11 +08:00
Sungbo Eo
46185211d7 kirkwood: copy files to kernel 5.10
Copy config and patches to kernel 5.10.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-02-24 12:27:45 +08:00
Adrian Schmutzler
2eca2c0ce3 kernel: add further missing symbols
CONFIG_NET_DSA_MV88E6XXX_PTP was simply missing in generic config.

CONFIG_I2C_PXA_SLAVE was previously enabled via i2c-pxa package,
but got removed there without moving the symbol to generic config.

Fixes: dd13add3ce ("kernel: i2c-pxa: remove slave")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-24 12:27:21 +08:00
DENG Qingfang
79ba3bedc0 ramips: remove obsolete mx25l25635f compatible hack
The kernel bump to 5.4 has removed the mx25l25635f hack, and the
mx25l25635f compatible is no longer required.

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
2021-02-24 12:25:52 +08:00
Stijn Segers
7b80a74e3a ramips: overwrite reset gpio properties in DIR-860L DTS
As suggested by Sergio, this adds GPIOs 19 and 8 explicitly into the
DIR-860L DTS, so the PCI-E ports get reset and the N radio (radio1)
on PCI-E port 1 comes up reliably.

Fixes the following error that popped up in dmesg:

    [    1.638942] mt7621-pci 1e140000.pcie: pcie1 no card, disable it (RST & CLK)

Suggested-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Signed-off-by: Stijn Segers <foss@volatilesystems.org>
Reviewed-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
2021-02-24 12:24:45 +08:00
Stijn Segers
ebb64dcaf2 uboot-envtools: add support for ZyXEL GS-1900-8HP v1 and v2
This adds the necessary nuts and bolts for the uboot settings for both the ZyXEL GS1900-8HP v1 and v2.

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
2021-02-24 12:24:25 +08:00
Sander Vanheule
e214a770e6 ramips: mt7621: enable SX150x driver
The Netgear R6800 and R6700v2 devices have a Semtech SX1503 GPIO
expander controlling the device LEDs. This expander was initially
supported on 4.14, but support was lost in the transition to 5.4.

Since this driver cannot be built as a kernel module, enable it in the
kernel config for all mt7621 devices.

Run-tested on a Netgear R6800.

Cc: Stijn Segers <foss@volatilesystems.org>
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: Stijn Segers <foss@volatilesystems.org>
2021-02-24 12:24:04 +08:00
DENG Qingfang
cc76e31536 kernel: DSA roaming fix for Marvell mv88e6xxx
Marvell mv88e6xxx switch series cannot perform MAC learning from
CPU-injected (FROM_CPU) DSA frames, which results in 2 issues.
- excessive flooding, due to the fact that DSA treats those addresses
as unknown
- the risk of stale routes, which can lead to temporary packet loss

Backport those patch series from netdev mailing list, which solve these
issues by adding and clearing static entries to the switch's FDB.

Add a hack patch to set default VID to 1 in port_fdb_{add,del}. Otherwise
the static entries will be added to the switch's private FDB if VLAN
filtering disabled, which will not work.

The switch may generate an "ATU violation" warning when a client moves
from the CPU port to a switch port because the static ATU entry added by
DSA core still points to the CPU port. DSA core will then clear the static
entry so it is not fatal. Disable the warning so it will not confuse users.

Link: https://lore.kernel.org/netdev/20210106095136.224739-1-olteanv@gmail.com/
Link: https://lore.kernel.org/netdev/20210116012515.3152-1-tobias@waldekranz.com/
Ref: https://gitlab.nic.cz/turris/turris-build/-/issues/165
Signed-off-by: DENG Qingfang <dqfext@gmail.com>
2021-02-24 12:21:16 +08:00
Adrian Schmutzler
e7dc255b4f kernel: add symbol CONFIG_POWER_RESET_LINKSTATION
Add symbol to generic config (this was added between 5.4 and 5.10),
and remove it from the targets where it was added by kernel_oldconfig
in the meantime.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-24 12:20:36 +08:00
David Bauer
ba15c95a04 generic: add missing symbols
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-24 12:20:05 +08:00
Ilya Lipnitskiy
b2d463dc5b wireguard: don't build on Linux 5.10
There are efforts underway to bring wireguard in-tree for Linux 5.4 and
to have a common build infrastructure for both 5.4 and 5.10 for
kmod-wireguard[0]. Until then, restrict kmod-wireguard to build only on
Linux 5.4, because the wireguard-compat package will not build on Linux
5.10.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-24 12:19:41 +08:00
Ilya Lipnitskiy
dc66dea36f kernel: 5.10: fix kmod build failures
Modify existing modules to reflect their new location in Linux 5.10. Add
missing dependenices.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
[enable CRYPTO_USER_API_ENABLE_OBSOLETE; add kmod-crypto-hash dependency
to usb-net-rtl8152]
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-24 12:19:13 +08:00
Ilya Lipnitskiy
ad1465050b kernel: 5.10: fix rtl8812au-ct build
Pull in upstream:
c8d243936f
1e9689c89f

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-24 12:18:38 +08:00
Daniel Golle
63239badb6 arm-trusted-firmware-mediatek: use @OPENWRT mirror for blobs
Now that mirrors have picked it up, switch to using the @OPENWRT
mirror instead of hosting those files on Github.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-24 12:18:16 +08:00
Shiji Yang
d1907d9a71 ramips: improve gpio control for Phicomm PSG1218
Description:
1. From key and led config setting, we can find only "uartf" and "i2c" are used
as gpio by check mt7620 datasheet. It's time to remove unused pin group.

2. PSG1218 only have three led, so we can remove ethernet led pinctrl. refer to
Phicomm K2G.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2021-02-24 12:17:53 +08:00
Rui Salvaterra
9d3dc719d8 mvebu: add 5.10 as a testing kernel
Keep 5.4 as stable until further validation.

Tested on Turris Omnia (Rui Salvaterra) and ESPRESSObin v5 (Tomasz
Maciej Nowak). Cortex-A{53,72} subtargets are only build-tested.

Reviewed-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Tested-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
[added comment about tests]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-24 12:17:02 +08:00
Rui Salvaterra
1094f157f1 mvebu: fix the Turris Omnia device tree
Enable and fix hardware buffer management. Also fix the IRQ storm caused by a
misconfiguration of the PCA9538 interrupt pin.

Reviewed-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Tested-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-02-24 12:16:44 +08:00
Rui Salvaterra
65ebda8d67 mvebu: fix the patch numbering
Make each logical patch group numbering contiguous.

Reviewed-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Tested-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
[add kernel version to backport]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-24 12:16:26 +08:00
Rui Salvaterra
c2da0a438a mvebu: refresh 5.10 kconfigs/patches
Also delete already upstreamed patches/changes.

Reviewed-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Tested-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-02-24 12:15:26 +08:00
Adrian Schmutzler
4be7a60865 mvebu: remove upstreamed DTS files in 5.10
Some armada-3720-espressobin-* files have been upstreamed, move
these to files-5.4.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-24 12:15:07 +08:00
Rui Salvaterra
b2fe95f411 mvebu: copy 5.4 patches/kconfigs to 5.10
Just a simple copy, no refresh yet.

Reviewed-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Tested-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
[do not duplicate files]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-24 12:14:51 +08:00
Rui Salvaterra
5cfb378f37 mvebu: refresh the 5.4 kernel configs
Remove the implicit/inherited symbols. While not strictly necessary, this will
make reviewing the diff between 5.4 and 5.10 easier.

Reviewed-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Tested-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-02-24 12:14:32 +08:00
Rui Salvaterra
926c462767 kernel: 5.10: add further generic kconfig symbols
This will make the specific kconfig smaller.

Reviewed-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Tested-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
[improved commit title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-24 12:13:58 +08:00
Álvaro Fernández Rojas
885c35322d bmips: switch to accepted upstream patch
This patch has been accepted and is going to be in linux v5.12.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-24 12:13:38 +08:00
Álvaro Fernández Rojas
54e0c70d6e bmips: rename upstream patches
These patches were applied in linux v5.11, not v5.12.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-24 12:13:06 +08:00
Daniel Golle
8fa0a10f68 arm-trusted-firmware-mediatek: bring back package
* use binary provided by MediaTek to work-around 'bromimage' issue
 * refactor Makefile
 * add mt7622 1c variants (using binaries provided by MTK)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-24 12:12:40 +08:00
Álvaro Fernández Rojas
8cdb729c49 bmips: bcm6358: add watchdog
Watchdog node was missing in commit 029093a302.

Fixes: 029093a302 ("bmips: add new target")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-24 12:12:17 +08:00
Álvaro Fernández Rojas
88789f01b5 bmips: remove unneeded downstream serial patch
Disabling CONFIG_SERIAL_8250 makes the upstream serial driver work OOB.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-24 12:11:45 +08:00
Daniel González Cabanelas
149e7d04fa bcm63xx: pinctrl: fix BCM6348 groups
The current driver has some troubles:
 - Some groupings are wrong.
 - The pinctrl group0 owns pins never used (at least in Openwrt) for any
   pinmux. The driver hijacks all the pins on the group avoiding any other
   use, spite they're free. I.e. for buttons, causing this kernel error:
   [  4.735928] gpio-keys-polled keys: unable to claim gpio 479, err=-22
   [  4.742642] gpio-keys-polled: probe of keys failed with error -22
 - Minor errors about groupings on the documentation
 - Missing "diag" grouping in dtsi
 - Wrong groupings in dtsi

Fix it by setting the correct groups.
And relax the pin capturing, letting the gpios belonging to any group to
be used for other purposes like buttons. This was the behavior with stock
firmwares and old OpenWrt versions which never caused any trouble.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2021-02-24 12:11:16 +08:00
Álvaro Fernández Rojas
e70704b43b bmips: bcm6358: fix EHCI/OHCI kernel panics
ARCH_HAS_SYNC_DMA_FOR_CPU_ALL is causing kernel panics when EHCI or OHCI are
enabled.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-24 12:10:55 +08:00
Adrian Schmutzler
55d533fb56 imx6: remove redundant IMAGE_NAME
IMAGE_NAME is set twice for ventana, and the second value
actually matches the default in image.mk. Remove both.

Fixes: ded905ce43 ("imx6: extend cubox support to hummingboard,
add support for building full images")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-23 12:19:52 +08:00
Shiji Yang
51a5de5197 ramips: fix Phicomm PSG1218A switch port labels
The lan port sequence was reversed compared to the labels.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[improve commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-23 12:19:01 +08:00
Adrian Schmutzler
13773ebb4b ramips: move aliases to the top in SoC DTSI files
The aliases node is expected as one of the first entries, and
having it there matches alphabetic sorting as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-23 12:18:25 +08:00
Adrian Schmutzler
d4082f496f ramips: drop redundant definitions of serial0 in aliases
These were redefines of the same value already set in the SoC dtsi
files.

Reported-by: Shiji Yang <yangshiji66@qq.com>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-23 12:15:12 +08:00
Shiji Yang
59227ebc97 ramips: correct/add Phicomm K2x WAN/label MAC address
Phicomm K2G:
add missing label_mac

Phicomm PSG1218A & PSG1218B:
The previous wan mac was set as factory@0x28 +1 (originally based
on the default case for the ramips target), but the correct wan mac
is factory@0x28 -1, being equal to factory@0x2e.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[minor commit title/message adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-23 12:14:15 +08:00
Adrian Schmutzler
3b2c0c750d bmips: split base-files into subtargets
Like done for several targets already, splitting base-files into
subtarget will provide smaller images due to more specific
distribution of files per subtarget and allow to use default cases
more effectively.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-23 12:11:00 +08:00
Álvaro Fernández Rojas
9c65ac7371 bmips: add JFFS2 unaligned access patch
This patch is also needed on bmips if SMP is enabled.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-23 12:10:36 +08:00
Álvaro Fernández Rojas
4906dbe0a0 bmips: bcm6368: fix bcm2835-rng
IPSEC needs a reset before using its HW RNG.
Otherwise, the numbers generated won't be random at all.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-23 12:10:08 +08:00
Álvaro Fernández Rojas
e3f392084d bmips: add new target
This target has full device tree support, thus reducing the number of
patches needed for bcm63xx, in which there's a patch for every board.

The intention is to start with a minimal amount of downstream patches and
start upstreaming all of them.

Current status:
 - Enabling EHCI/OHCI on BCM6358 causes a kernel panic.
 - BCM63268 lacks Timer Clocks/Reset support.
 - No PCI/PCIe drivers.
 - No ethernet drivers.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-23 12:09:42 +08:00
Álvaro Fernández Rojas
b9111515aa bcm63xx: limit name metadata to model name
Since there are only 16 characters available, on most cases the vendor name
will fit in the metadata, but the model name won't fit.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-23 12:09:05 +08:00
Álvaro Fernández Rojas
20ba1c4d02 image: add ModelNameLimit16
This script returns the model name limited to 16 characters.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-23 12:08:45 +08:00
Álvaro Fernández Rojas
464ccfdfc9 bcm63xx-cferam: select for bmips target
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-23 12:08:21 +08:00
Álvaro Fernández Rojas
b4adb9f7d3 mtd: fixtrx: support CFE imagetag on bmips target
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-23 12:07:48 +08:00
Álvaro Fernández Rojas
64ce30afd5 kernel: mtdsplit: add support for BCM63XX CFE firmware
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>
2021-02-23 12:07:18 +08:00
Álvaro Fernández Rojas
c737230050 bcm63xx: bcm63268: fix GPIO interrupts
pinctrl should rely on external interrupt controller for GPIO interrupts.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-23 12:06:47 +08:00
David Bauer
a62def6f24 generic: add missing symbol
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-22 12:05:55 +08:00
David Bauer
eaa066ab10 ath79: enable Regulator support for target
Regulator support was enabled on all subtargets except for ath79-nand.
With Kernel 5.10, AT803x requires Regulator support, thus enabling on
the complete target, as ath79-nand requires AT803x.

While this is only required on Kernel 5.10, enable it also on 5.4. We
have no major size-constraint, so enabling it on 5.4 allows us to clean
up the occurences in the subtarget configuration.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-22 12:05:31 +08:00
David Bauer
f54444f9e6 mpc85xx: add testing kernel for p1020
CONFIG_REGULATOR is required for the p1020 subtarget, as the AT803X
driver depends on it.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-22 12:04:58 +08:00
David Bauer
bae90f2b6f ath79: use ioremap kernel version independent
As mangix pointed out on IRC, ioremap and ioremap_nocache are
functionally equivalent on kenrel 5.4 and 5.10.

Therefore we can use ioremap regardless of the kernel the driver
gets compiled for.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-22 12:04:23 +08:00
Aleksander Jan Bajkowski
f9420a6439 kernel: sort config
This was done by executing this script:

find . -name "config-*"  > ../configs.txt
for config in $(cat ../configs.txt); do
	./scripts/kconfig.pl '+' $config /dev/null > $config-new
	mv $config-new $config
done
rm ../configs.txt

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-02-22 12:03:39 +08:00
CN_SZTL
887eddeb07 rockchip: add missing Kconfig
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-21 16:00:59 +08:00
CN_SZTL
dfd0342804 Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-21 15:57:16 +08:00
CN_SZTL
0ade988ff1 rockchip: remove urngd package for rk3399
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-21 15:45:19 +08:00
CN_SZTL
c7b200b8a2 rockchip: re-order patches
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-21 15:37:10 +08:00
Adrian Schmutzler
2250345d51 tfa-layerscape: build fiptool again
The ls-ddr-phy package needs fiptool options that are not
available via the version from arm-trusted-firmware-tools.
This breaks build for layerscape with the recently added LX2160a:

  create: unrecognized option '--ddr-immem-udimm-1d'

Use the tfa-layerscape variant again for now, but rename it to
fiptool-layerscape to indicate that it's a specific variant.

This reverts 84bc7d31e0 ("tfa-layerscape: don't build fiptool").

Fixes: f59d7aab2a ("layerscape: add ddr-phy package")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-21 12:09:07 +08:00
Álvaro Fernández Rojas
1995f2bb1a bcm27xx: remove urngd package
Now that khwrngd is working on all subtargets we can remove urgnd.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-21 12:08:46 +08:00
Álvaro Fernández Rojas
defb8b69c1 bcm27xx: enable bcm2711 HW RNG
Also add a patch setting its quality, which should make it usable by khwrngd.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-21 12:08:00 +08:00
Álvaro Fernández Rojas
29e997aac5 generic: add bcm2835-rng quality patch
This patch allows devices without a high resolution timer to boot up faster.
It should speed up boots for bcm2708 and bcm63xx.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-21 12:07:38 +08:00
Andreas Eberlein
280aa06a33 x86: add led driver for PC Engines APU1
This driver adds the LED support for the PC Engines APU1.
This integrates the Linux kernel driver and includes a patch to support
 newer firmware versions. Also the default LED configuration is updated
 to use the correct devices.

Signed-off-by: Andreas Eberlein <foodeas@aeberlein.de>
2021-02-21 12:06:55 +08:00
Raphaël Mélotte
11d0d358c2 hostapd: backport ignoring 4addr mode enabling error
This is a backport of the upstream commit 58bbbb598144 ("nl80211: Ignore
4addr mode enabling error if it was already enabled") which fixes same
issue as in the current fix contained in '130-wpa_supplicant-multi_ap_roam.patch',
but in a different way:

 nl80211_set_4addr_mode() could fail when trying to enable 4addr mode on
 an interface that is in a bridge and has 4addr mode already enabled.
 This operation would not have been necessary in the first place and this
 failure results in disconnecting, e.g., when roaming from one backhaul
 BSS to another BSS with Multi AP.

 Avoid this issue by ignoring the nl80211 command failure in the case
 where 4addr mode is being enabled while it has already been enabled.

Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
[bump PKG_RELEASE, more verbose commit description]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-02-20 18:15:27 +08:00
AmadeusGhost
f663a1d756 rtl_wifi: fix build after mac80211 update to 5.8 2021-02-20 18:13:36 +08:00
Felix Fietkau
1d9492423d treewide: select kmod-mt7615-firmware where kmod-mt7615e is selected
The new mt76 version splits out the firmware, because the driver can also be
used for MT7663/MT7613

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-02-20 18:06:07 +08:00
AmadeusGhost
3576fb8313 treewide: sync all related packages with mac80211 2021-02-20 18:01:21 +08:00
AmadeusGhost
cc5be40bab mac80211: bump to 5.10.16-1 2021-02-20 18:00:04 +08:00
Stijn Segers
7e21f6ddd0 ramips: overwrite reset gpio properties in EX6150 DTS
The Netgear EX6150 can, just like the D-Link DIR-860L rev B1, fail to
initialise both radios in some cases. Add the reset GPIOs explicitly
so the PCI-E devices get re-initialised properly. See also FS #3632.

Error shows up in dmesg as follows:

  [    1.560764] mt7621-pci 1e140000.pcie: pcie1 no card, disable it (RST & CLK)

Tested-by: Kurt Roeckx <kurt@roeckx.be>
Signed-off-by: Stijn Segers <foss@volatilesystems.org>
[removed period from commit title]
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-20 12:27:20 +08:00
David Bauer
6e7b4bd6e4 ath79: add kernel 5.10 support
This adds Kernel 5.10 support for the generic, nand and tiny subtargets.

The following patch is not contained, as it needs to be reworked:
platform/920-mikrotik-rb4xx.patch

Tested-on:
 - Siemens WS-AP3610
 - Enterasys WS-AP3710
 - Aerohive HiveAP 121
 - TP-Link TL-WA901 v2
 - TP-Link TL-WR741 v1

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-20 12:25:58 +08:00
David Bauer
f0c4f12c53 ath79: ar934x-nand: add kernel 5.10 compatibility
Adapt the driver to make it work with the NAND subsystem changes between
kernel 5.4 and 5.10.

Tested-on: Aerohive HiveAP121

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-20 12:25:40 +08:00
David Bauer
8a0b6cd8c9 ath79: specify device-type for PCI controllers
Specify the device_type property for PCI as well as PCIe controllers.
Otherwise, the PCI range parser will not be selected when using kernel
5.10.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-20 12:24:59 +08:00
David Bauer
84fe849b0c ath79: ag71xx: make kernel 5.10 compatible
Add the necessary kernel version ifdef switches in order to support the
kernel version 5.10.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-20 12:24:29 +08:00
David Bauer
3d9edfd954 mpc85xx-p1010: add Kernel 5.10 support
Tested on: Sophos RED 15W

The TP-Link WL-WDR4900 needs to be disabled when 5.10 becomes the
default kernel.

When building with all kmods enabled, the resulting kernel image
exceeds the maximum size the bootloader reads from the flash.

For more information, see GitHub issue #1773

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-20 12:24:04 +08:00
Sungbo Eo
2bedc30d14 kirkwood: rename files-5.4 to files
Move local DTS files from "files-5.4" to "files" directory so kernel 5.10
can use it.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-02-20 12:23:27 +08:00
Yangbo Lu
9cf35d103d layerscape: add new devices in README and clean up
Support new devices LS1046AFRWY and LX2160ARDB in README.
Clean up README, and add missing LS1021ATWR deploy guide.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[adjust set of devices added, update commit message/title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-20 12:23:06 +08:00
Yangbo Lu
7a4c1283f9 layerscape: add LX2160ARDB (Rev2.0 silicon) board support
The QorIQ LX2160A reference design board provides a comprehensive platform
that enables design and evaluation of the LX2160A processor.

- Enables network intelligence with the next generation Datapath (DPPA2)
  which provides differentiated offload and a rich set of IO, including
  10GE, 25GE, 40GE, and PCIe Gen4

- Delivers unprecedented efficiency and new virtualized networks

- Supports designs in 5G packet processing, network function
  virtualization, storage controller, white box switching, network
  interface cards, and mobile edge computing

- Supports all three LX2 family members (16-core LX2160A; 12-core LX2120A;
  and 8-core LX2080A)

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[use AUTORELEASE, add dtb to firmware part]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-20 12:22:42 +08:00
Yangbo Lu
af9035b934 layerscape: add ddr-phy package
Add ddr-phy package for layerscape. Currently only LX2160ARDB
requires the package.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-20 12:21:48 +08:00
Yangbo Lu
5c28db25da layerscape: add FRWY-LS1046A board support
The LS1046A Freeway board (FRWY) is a high-performance computing,
evaluation, and development platform that supports the QorIQ
LS1046A architecture processor capable of support more than 32,000
CoreMark performance. The FRWY-LS1046A board supports the QorIQ
LS1046A processor, onboard DDR4 memory, multiple Gigabit Ethernet,
USB3.0 and M2_Type_E interfaces for Wi-Fi.

The FRWY-LS1046A-TP includes the Coral Tensor Flow Processing Unit
that offloads AI/ML inferencing from the CPU to provide significant
boost for AI/ML applications. The FRWY-LS1046A-TP includes one M.2
TPU module and more modules can easily be added including USB
versions of the module to scale the AI/ML performance.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[rebase, use AUTORELEASE, fix sorting, add dtb to firmware part]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-20 12:20:58 +08:00
Adrian Schmutzler
7297814a27 layerscape: move rework-sdcard-images out of fsl-sdboot
Upcoming devices will not need the migration setup, so let's move
it out of the common definition.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-20 12:20:07 +08:00
Seo Suchan
398096efb0 ramips: use lzma-loader for Wevo devices
As kernel size increased it start to fail to load squishfs image,
using lzma-loader fixed it.
wevo_11acnas is almost same device as w2914ns-v2 except ram size,
so I expect same thing would've happen in that device too.

Signed-off-by: Seo Suchan <abnoeh@mail.com>
Reviewed-by: Sungbo Eo <mans0n@gorani.run>
2021-02-20 12:19:28 +08:00
Sander Vanheule
1cb7281434 ramips: mt7621: add TP-Link EAP235-Wall support
The TP-Link EAP235-Wall is a wall-mounted, PoE-powered AC1200 access
point with four gigabit ethernet ports.

When connecting to the device's serial port, it is strongly advised to
use an isolated UART adapter. This prevents linking different power
domains created by the PoE power supply, which may damage your devices.

The device's U-Boot supports saving modified environments with
`saveenv`. However, there is no u-boot-env partition, and saving
modifications will cause the partition table to be overwritten. This is
not an issue for running OpenWrt, but will prevent the vendor FW from
functioning properly.

Device specifications:
* SoC: MT7621DAT
* RAM: 128MiB
* Flash: 16MiB SPI-NOR
* Wireless 2.4GHz (MT7603EN): b/g/n, 2x2
* Wireless 5GHz (MT7613BEN): a/n/ac, 2x2
* Ethernet: 4× GbE
  * Back side: ETH0, PoE PD port
  * Bottom side: ETH1, ETH2, ETH3
* Single white device LED
* LED button, reset button (available for failsafe)
* PoE pass-through on port ETH3 (enabled with GPIO)

Datasheet of the flash chip specifies a maximum frequency of 33MHz, but
that didn't work. 20MHz gives no errors with reading (flash dump) or
writing (sysupgrade).

Device mac addresses:
Stock firmware uses the same MAC address for ethernet (on device label)
and 2.4GHz wireless. The 5GHz wireless address is incremented by one.
This address is stored in the 'info' ('default-mac') partition at an
offset of 8 bytes.
From OEM ifconfig:
    eth     a4:2b:b0:...:88
    ra0     a4:2b:b0:...:88
    rai0    a4:2b:b0:...:89

Flashing instructions:
* Enable SSH in the web interface, and SSH into the target device
* run `cliclientd stopcs`, this should return "success"
* upload the factory image via the web interface

Debricking:
U-boot can be interrupted during boot, serial console is 57600 baud, 8n1
This allows installing a sysupgrade image, or fixing the device in
another way.
* Access serial header from the side of the board, close to ETH3,
  pin-out is (1:TX, 2:RX, 3:GND, 4:3.3V), with pin 1 closest to ETH3.
* Interrupt bootloader by holding '4' during boot, which drops the
  bootloader into its shell
* Change default 'serverip' and 'ipaddr' variables (optional)
* Download initramfs with `tftpboot`, and boot image with `bootm`
    # tftpboot 84000000 openwrt-initramfs.bin
    # bootm

Revert to stock:
Using the tplink-safeloader utility from the firmware-utils package,
TP-Link's firmware image can be converted to an OpenWrt-compatible
sysupgrade image:
  $ ./staging_dir/host/bin/tplink-safeloader -B EAP235-WALL-V1 \
      -z EAP235-WALLv1_XXX_up_signed.bin -o eap235-sysupgrade.bin

This can then be flashed using the OpenWrt sysupgrade interface. The
image will appear to be incompatible and must be force flashed, without
keeping the current configuration.

Known issues:
- DFS support is incomplete (known issue with MT7613)
- MT7613 radio may stop responding when idling, reboot required.
  This was an issue with the ddc75ff704 version of mt76, but appears to
  have improved/disappeared with bc3963764d.
  Error notice example:
  [ 7099.554067] mt7615e 0000:02:00.0: Message 73 (seq 1) timeout

Hardware was kindly provided for porting by Stijn Segers.

Tested-by: Stijn Segers <foss@volatilesystems.org>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2021-02-20 12:18:08 +08:00
Stijn Segers
b2b4bd80f0 ramips: remove factory image for TP-Link Archer C20 v1
Similarly to the Archer C2 v1, the Archer C20 v1 will brick when one
tries to flash an OpenWrt factory image through the TP-Link web UI.
The wiki page contains an explicit warning about this [1].

Disable the factory image altogether since it serves no purpose.

[1] https://openwrt.org/toh/tp-link/tp-link_archer_c20_v1#installation

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
2021-02-20 12:13:35 +08:00
Adrian Schmutzler
c065cae6f8 ath79: fix position of SPDX license identifier
Strictly, the identifier needs to be in the line directly after the
shebang.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-20 12:13:14 +08:00
Adrian Schmutzler
a2ad268b87 mediatek: fix SPDX license identifier on local DTS files
The SPDX license identifier must be in the first line of a file,
unless there is a shebang (then it's the second line).

Fix this for the local files, do not care about the upstream patches.

While at it, update the identifiers where necessary.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-20 12:12:51 +08:00
Álvaro Fernández Rojas
2400060e30 bcm63xx: update ethernet kernel panics fix
Use new patch from Sieng Piaw Liew.

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-20 12:12:25 +08:00
DENG Qingfang
c52fc6a6a3 ramips: remove obsolete mx25l25635f compatible hack
The kernel bump to 5.4 has removed the mx25l25635f hack, and the
mx25l25635f compatible is no longer required.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-19 23:57:16 +08:00
Álvaro Fernández Rojas
c960750fdf cypress-firmware: fix PKG_SOURCE_URL
Download link has been moved.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-19 18:30:42 +08:00
Daniel Golle
4594f633fd mediatek: move mt7623a-unielec-u7623*.dts* out of patch
Instead of adding those device tree sources using a patch, simply move
them to the newly created dts folder.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-19 18:30:20 +08:00
Álvaro Fernández Rojas
703e0c22bd bcm27xx: add diag LEDs
We can now use the power LED for diag in more devices thanks to the latest
patches from the RPi foundation.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-19 17:14:47 +08:00
Álvaro Fernández Rojas
e69035aae4 bcm27xx: bcm2708: add missing RPi B DTS file
RPI 1B DTS has been splitted into 2 files:
 - bcm2708-rpi-b.dts: Newest (rev2) RPI 1B
 - bcm2708-rpi-b-rev1.dts: Old (rev1) RPI 1B

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-19 17:14:35 +08:00
CN_SZTL
1dc0308506 mediatek: sync with upstream source
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-19 17:12:30 +08:00
Álvaro Fernández Rojas
e933ce02a0 bcm27xx: add support for RPI CM4 and RPI 400
Support added to bcm2709 (32 bits) and bcm2711 (64 bits).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-19 12:07:21 +08:00
Álvaro Fernández Rojas
adcf558e11 bcm27xx-userland: update to latest version
Adds some fixes and removes upstreamed patch.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-19 12:06:55 +08:00
Álvaro Fernández Rojas
0c502d60d1 bcm27xx-gpu-fw: update to latest version
This is needed to add support for CM4 and RPI 400.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-19 12:06:33 +08:00
Álvaro Fernández Rojas
a8dd8b6965 bcm27xx: import latest patches from the RPi foundation
bcm2708: boot tested on RPi B+ v1.2
bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G
bcm2710: boot tested on RPi 3B v1.2
bcm2711: boot tested on RPi 4B v1.1 4G

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-19 12:05:02 +08:00
CN_SZTL
dd4b03a705 Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-19 03:30:19 +08:00
John Audia
edc53cccbe kernel: bump 5.4 to 5.4.99
Ran update_kernel.sh in a fresh clone without any existing toolchains.
No manual changes needed.

Build system: x86_64
Build-tested: bcm27xx/bcm2711

Signed-off-by: John Audia <graysky@archlinux.us>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-19 03:30:02 +08:00
CN_SZTL
4320db8586 Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 19:21:50 +08:00
Mathias Kresin
371c4ea855 kernel: lantiq: fix Module.symvers handling
If an external module uses exported symbols from another external
module, Kbuild needs to have full knowledge of all symbols to
avoid spitting out warnings about undefined symbols.

Use PKG_EXTMOD_SUBDIRS to point to the build directory which contains
the Module.symvers.

Pass KERNEL_MAKE_FLAGS to the external module build, to inject
KBUILD_EXTRA_SYMBOLS. KBUILD_EXTRA_SYMBOLS holds a space separated list
of Module.symvers, which list all exported symbols.

Signed-off-by: Mathias Kresin <dev@kresin.me>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 17:18:07 +08:00
Mathias Kresin
5221cec71c lantiq: fritz7320: enable USB power supply
The USB ports if a FRIZZ!Box 7320 do not supply power to connected
devices.

Add the GPIOs enabling USB power as regulator, to enable USB power
supply as soon as the USB driver is loaded.

Fixes FS#3624

Signed-off-by: Mathias Kresin <dev@kresin.me>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 17:18:01 +08:00
CN_SZTL
9a30f65efb rockchip: apply own patches
Included:
 - Hack for support MTWiFi
 - HWRNG driver for RK3328 & RK3399
 - Fix for hot reboot
 - I2C screen support for NanoPi R2S
 - Overclocking support for RK3328 and NanoPi4 series
 - Ethernet compat node for NanoPi R2S
 - Support for NanoPi R4S

Minor adjustments:
 - Used r8169 driver for NanoPi R4S by default as r8168 is broken on newer kernel

Refreshed all patches.

Reviewed-by: AmadeusGhost <amadeus@project-openwrt.eu.org>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 13:39:19 +08:00
David Bauer
d53ae8c4d1 rockchip: add Kernel 5.10 support
Remove all upstreamed patches and add the kernel configuration for
version 5.10.

The Rock Pi 4 was split in multiple versions. Add a DTS with the old
name in order to keep compatibility while having kernel 5.4 and 5.10 in
parallel. Switch to the Rock Pi 4A DTS once Kernel 5.4 support is
removed.

Tested-on: Nanoi R2S

Signed-off-by: David Bauer <mail@david-bauer.net>

Reviewed-by: AmadeusGhost <amadeus@project-openwrt.eu.org>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 13:39:19 +08:00
David Bauer
3c87962495 generic: don't lock when recursively deleting partitions
When recursively deleting partitions, don't acquire the masters
partition lock twice. Otherwise the process endy up in a deadlocked
state.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-18 12:07:33 +08:00
David Bauer
ff24cef6bc generic: add various kernel 5.10 config symbols
These symbols were unset when configuring for ath79.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-18 12:07:08 +08:00
David Bauer
d90624d341 mediatek: add support for Ubiquiti UniFi 6 LR
Hardware
--------

MediaTek MT7622
512MB DDR3 RAM
64M SPI-NOR Flash (Winbond W25Q512JV)
MediaTek MT7622 802.11bgn 4T4R WMAC
MediaTek MT7915 802.11ax 4T4R
Marvell AQR1112 100/1000/2500 NBase-T PHY
Holtek HT32F52241 LED controller
Reset Switch

UART
----

CPU UART0 at the pinout next to the Holtek MCU.

Pinout (first pin next to SoC / MCU)

0 3V3
1 RX
2 TX
3 GND

Settings are 115200 8N1.

Opening the case
----------------

Opening the case is not a nice task, as itis glued together. Insert a
flat knife between the front and back casing below the ethernet port.
Open up a gap this way and insert a flat scredriver, remove the knife.

Work your way around the casing by applying force to seperate the front
and back casing. This losens the glue and opens the plastic clips. Be
gentle, as these clips are very cheap and break quickly.

Installation
------------

1. Connect to the booted device at 192.168.1.20 using username/password
   "ubnt".

2. Transfer the OpenWrt sysupgrade image to the device using SCP.

3. Check the mtd partition number for bs / kernel0 / kernel1

   $ cat /proc/mtd

4. Set the bootselect flag to boot from kernel0

   $ dd if=/dev/zero bs=1 count=1 of=/dev/mtdblock6

5. Write the OpenWrt sysupgrade image to both kernel0 as well as kernel1

   $ dd if=openwrt.bin of=/dev/mtdblock8
   $ dd if=openwrt.bin of=/dev/mtdblock9

6. Reboot the device. It should boot into OpenWrt.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-18 12:06:40 +08:00
David Bauer
bc08e342ad mediatek: add Ubiquiti LED driver
Add a driver for controlling the RGB LED via Ubiquitis own "LEDBAR" LED
controller based on the Holtek HT32F52241 MCU.

This driver is initially used by the Ubiquiti UniFi 6 LR, however
judging from FCC pictures the MCU is also found on the U6-Mesh as well
as the U6-Extender.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-18 12:05:28 +08:00
Álvaro Fernández Rojas
ed2ec11555 bcm63xx: add kernel 5.10 support
Runtime-tested on Comtrend AR-5387un.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-18 12:05:04 +08:00
CN_SZTL
157305bedc r8168: do not build for kernel 5.10
It seems to be broken on 5.10.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 04:46:11 +08:00
CN_SZTL
5304b20b60 linux: usb: r8152: add device-specific firmware
This is needed by newer kernel.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 04:45:04 +08:00
CN_SZTL
90196fec9d cryptodev-linux: bump to 1.12
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:47:18 +08:00
CN_SZTL
4c0f04048a kernel: apply hacks on kernel 5.10
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:46:19 +08:00
Daniel Golle
8312c31531 kernel: update kernel 5.10 to 5.10.16
Compile and runtime-tested on mediatek/mt7622

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:44:38 +08:00
Adrian Schmutzler
827f5aa66a generic: ar8216: update version switch for of_get_phy_mode fix
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>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:37:14 +08:00
David Bauer
d06c0fd662 generic: ar8216: fix kernel 5.10 compile error
Signed-off-by: David Bauer <mail@david-bauer.net>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:37:10 +08:00
Adrian Schmutzler
ba15dd014b kernel: 5.10: refresh patches
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:37:07 +08:00
Adrian Schmutzler
190f92a235 kernel: 5.10: add missing partitions doc syntax commit
This patch has been added to 5.4, but not been copied to 5.10:
7495acb555 ("kernel: backport mtd commit converting partitions doc syntax")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:36:59 +08:00
Adrian Schmutzler
2170046cf8 kernel: 5.10: fix busy wait loop in mediatek PPE code
Reapply changes added to 5.4 but not copied to 5.10:
3da4acaa7b ("kernel: fix busy wait loop in mediatek PPE code")

The intention is for the loop to timeout if the body does not succeed.
The current logic calls time_is_before_jiffies(timeout) which is false
until after the timeout, so the loop body never executes.

time_is_after_jiffies(timeout) will return true until timeout is less
than jiffies, which is the intended behavior here.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:36:56 +08:00
Adrian Schmutzler
e0bd64f228 kernel: hack-5.10: make UDP tunneling user-selectable
This applies another patch from 5.4 to 5.10 as well:
de09355f74 ("kernel/hack-5.4: make UDP tunneling user-selectable")

UDP tunneling support isn't user-selectable, but it's required by WireGuard
which is, for the time being, an out-of-tree module. We currently work around
this issue by selecting an unrelated module which depends on UDP tunnelling
(VXLAN). This is inconvenient, as it implies this unrelated module needs to be
built-in when doing a monolithic build.

Fix this inconvenience by making UDP tunneling user-selectable in the kernel
configuration.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:36:52 +08:00
Felix Fietkau
e00ab26ec5 kernel: add linux 5.10 support
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:36:38 +08:00
Felix Fietkau
df1a7c9b04 build: fix build with CONFIG_STRIP_KERNEL_EXPORTS
Only use symtab.h on the final kernel link

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:36:24 +08:00
Felix Fietkau
e61c43d57e build: build kernel image before building modules/packages
This is needed for linux 5.10, where modules.builtin is generated from
vmlinux.o

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@project-openwrt.eu.org>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-18 00:36:19 +08:00
CN_SZTL
60e043ab40 Revert "rockchip: use LZMA compressed FIT image for NanoPi R2S"
This reverts commit 0f57324f48.
Prepare for the upcoming kernel 5.10 support.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-17 21:58:38 +08:00
CN_SZTL
55488f5108 generic: move arm64 model name patch to hack
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-17 21:35:44 +08:00
CN_SZTL
842881e337 sunxi: add r8152 patches for customized LEDs
Move these patches out of generic and put into specific targets for easy maintaince.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-17 19:38:52 +08:00
CN_SZTL
23ec23c34a [HOTFIX] Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-17 14:55:12 +08:00
Tianling Shen
baaed4efd5 [HOTFIX] Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@project-openwrt.eu.org>
2021-02-16 19:33:12 +08:00
Tianling Shen
6049f2576e Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@project-openwrt.eu.org>
2021-02-16 14:50:17 +08:00
Rafał Miłecki
75e545df14 bcm4908: add bcm_sf2 fixes for the 5th GPHY
This allows using the last integrated PHY (and so e.g. WAN port on the
ASUS GT-AC5300).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Tianling Shen <cnsztl@project-openwrt.eu.org>
2021-02-16 14:47:37 +08:00
Rafał Miłecki
40b1daadb5 bcm4908: fix GPIOs support by limiting them to 64
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-16 12:17:13 +08:00
Rafał Miłecki
8a3b5eb9de bcm4908: use DTS patches sent upstream
There are 2 new patches:
1. Netgear R8000P switch ports
2. Netgear R8000P LEDs

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-16 12:16:52 +08:00
Rafał Miłecki
63540e35c7 bcm4908: add USB packages to the DEFAULT_PACKAGES
All known 41 BCM4908 devices have USB ports so it makes sense to include
those packages by default.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-16 12:11:33 +08:00
Rafał Miłecki
9103e76cdd bcm4908: fix backport of PMB driver
Missing Makefile change was preventing kernel from actually compiling
the driver.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-16 12:11:05 +08:00
Rafał Miłecki
55d40842d7 kernel: drop ofpart patch dropped from upstream mtd tree
It stopped ofpart_parser_init() from being called

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-16 12:10:46 +08:00
Rafał Miłecki
1dd2e92f6f kernel: backport "ofpart" mtd parser upstream quirks support
This adds quirks support to the "ofpart" parser. It's required to
support fixed partitions that require some extra logic.

Right now only BCM4908 binding is supported (BCM4908 requires detecting
currently used "firmware" partition).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-16 12:10:25 +08:00
Ilya Lipnitskiy
66f183dc4b kernel: fix busy wait loop in mediatek PPE code
The intention is for the loop to timeout if the body does not succeed.
The current logic calls time_is_before_jiffies(timeout) which is false
until after the timeout, so the loop body never executes.

time_is_after_jiffies(timeout) will return true until timeout is less
than jiffies, which is the intended behavior here.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-16 12:09:44 +08:00
Kurt Roeckx
a6bade74bf ramips: mark toggle input on EX6150 as a switch
The Netgear EX6150 has an Access Point/Extender switch. Set it as
an EV_SW. Otherwise when it's set to Access Point, it will trigger
failsafe mode during boot.

Fixes: FS#3590
Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
2021-02-15 12:08:59 +08:00
John Audia
63ba2a002b kernel: bump 5.4 to 5.4.98
Ran update_kernel.sh in a fresh clone without any existing toolchains.
No manual changes needed.

Build system:       x86_64
Build-tested:       bcm27xx/bcm2711, ipq806x/R7800
Run-tested:         ipq806x/R7800
Compile-tested [*]: ath79/{generic,tiny}, ipq40xx, octeon, realtek,
                    ramips/{mt7620,mt7621}, x86/64
Run-tested [*]:     ath79/{generic,tiny}: WNDR3700v2 / TL-WR841N v7
                    octeon: EdgeRouter Lite
                    ramips/{mt7620,mt7621}: Archer C2 v1 / DIR-878 A1,
                                      EAP235-Wall, R6800, RT-AC57U v1

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
2021-02-15 12:08:31 +08:00
Paul Fertser
64517ecccc ath79: fix factory image generation for Netgear and Zyxel boards
The factory images need to embed specific IDs to pass verification with
the OEM firmware (including TFTP recovery), so they need to be
per-device variables.

Fixes: ab1584a797 ("ath79: netgear: trim down uImage customisations")
Fixes: 459c8c9ef8 ("ath79: add support for ZyXEL NBG6616")
Reported-by: Marcin Juszkiewicz <marcin-openwrt@juszkiewicz.com.pl>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
[minor commit message adjustments, sort DEVICE_VARS]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-15 12:08:08 +08:00
Tomasz Maciej Nowak
95e3f819d8 mvebu: espressobin: drop COMPHY removement patch
There are proper workarounds merged to 5.4 stable tree for ESPRESSObin
boards with older bootloader:
4e1a23779bde ("ata: ahci: mvebu: Make SATA PHY optional for Armada 3720")
40af962eb1d4 ("usb: host: xhci: mvebu: make USB 3.0 PHY optional for
Armada 3720")

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-02-15 12:06:59 +08:00
Sander Vanheule
a67a04ffbb ramips: manage low reset lines
The bootloader of a number of recent TP-Link devices does not properly
initialise the MT7621's internal switch when booting from flash. To
enable the mt7530 driver to clear the reset on the switch, the ramips
reset controller must be allowed to toggle these.

Backport upstream commit 3f9ef7785a9c from mips-next to allow control of
the "mcm" reset line.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2021-02-15 12:06:27 +08:00
Adrian Schmutzler
961d3e03af bcm4908: refresh patches
Our patch refresh tool creates quite a big diff for these patches,
as it does not use rename syntax.

Push the refresh separately so it does not pollute the next kernel
bump. This is a purely cosmetic change.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-14 12:10:12 +08:00
Martin Kennedy
300304338a ath79: fix chip used for Meraki MR12 caldata_extract
The original setup fails to trigger ART calibration data
extraction for the AR9287. Instead, it would only have extracted
calibration data for an internal WMAC chip which is not present on
this board.

Fixes: 55d2db0e8c ("ath79: add support for Meraki MR12")

Signed-off-by: Martin Kennedy <hurricos@gmail.com>
[commit title/message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-14 12:09:25 +08:00
Stijn Segers
6d58f1660a ramips: remove factory image for TP-Link Archer C2 v1
Initial commit 8375623a06 ("ramips: add support for TP-Link Archer
C2") contains detailed installation instructions, which do not mention
a factory image. From what I can see, no support to install OpenWrt
through the vendor web interface has been added since. The factory
image is also conspicuously absent from the device page in the wiki.
Yet, it is available for download.

I bricked my Archer C2 loading the factory image through the web UI.
Serial showed this error during bootloop:

  Uncompressing Kernel Image ... LZMA ERROR 1 - must RESET board to recover

This patch disables the undocumented factory image so users won't get
tricked into thinking easy web UI flashing actually works.

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
2021-02-14 12:08:50 +08:00
Daniel Golle
fd58c67b05 trusted-firmware-a: fix project name spelling
The version string generated for ARM Trusted-Firmware-A was stated as
"OpenWRT". Fix that by changing it to the exact spelling "OpenWrt"

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-14 12:08:05 +08:00
CN_SZTL
0e23858af7 ramips: Netgear R6700-V2 adapt ra-eth driver
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-13 18:17:02 +08:00
noire11
0d5151f435 ramips: use mt proprietary driver for Netgear R6800
Signed-off-by: noire11 <noire.wei@gmail.com>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-13 16:27:43 +08:00
Rafał Miłecki
0df51491b9 bcm4908: fix handling Ethernet frames of size 1506 - 1514
MTU needs to be explicitly set as default value is too low.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-13 12:08:27 +08:00
Rafał Miłecki
72e9a0070c bcm4908: use upstream accepted Ethernet driver patches
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-13 12:08:05 +08:00
Michael Mohr
0e58c02ab0 realtek: add support for Netgear GS108T v3
The Netgear GS108T v3 is an 8 port gigabit switch with PoE-PD support
on port 1.  The two prior versions were built using eCos and are not
currently compatible with OpenWRT.

The GS108T v3 is quite similar to both the GS110TPP v1 and GS110TP v3,
all of which use the same firmware image from Netgear.  For this reason,
the device tree is identical aside from the model and compatible values.

All of the above feature a dual firmware layout, referred to as Image0
and Image1 in the Netgear firmware.

Hardware specification
----------------------

 * RTL8380M SoC, 1 MIPS 4KEc core @ 500MHz
 * 128MB DDR3-1600 DRAM (Winbond W631GG8MB-12)
 * 32MB 3v NOR SPI Flash (Macronix MX25L25635F or Winbond W25Q256JVFIQ)
 * RTL8231 GPIO extender to control the LEDs and the reset button
 * 8 x 10/100/1000BASE-T ports, internal PHY (RTL8218B)
 * UART (115200 8N1) via unpopulated standard 0.1" pin header marked J1
 * Power is supplied via a 12V 1A barrel connector or 802.3af

UART pinout
-----------

J1 | [o]ooo
      ^ ||`------ GND
      | |`------- RX         [TX out of the serial adapter]
      | `-------- TX         [RX into the serial adapter]
      `---------- Vcc (3V3)  [the square pin]

The through holes are filled with PB-free solder which melts at 375C.
They can also be drilled using a 0.9mm bit.

Build configuration
-------------------

 * Target System: Realtek MIPS
 * Target Profile: Netgear GS108T v3
 * Target Images -> ramdisk -> Compression: lzma
 * Disable other target images

Boot initramfs image from U-Boot
--------------------------------

 1. Press the Escape key at the `Hit Esc key to stop autoboot` prompt
 2. Init network with `rtk network on` command
 3. Load image with `tftpboot 0x8f000000 openwrt-realtek-generic-netgear_gs108t-v3-initramfs-kernel.bin` command
 4. Boot the image with `bootm` command

The switch defaults to IP 192.168.1.1 and tries to fetch the image via
TFTP from 192.168.1.111.

Updating the installed firmware
-------------------------------

The OpenWRT ramdisk image can be flashed directly from the Netgear UI.
The Image0 slot should be used in order to enable sysupgrade.

As with similar switches, changing the active boot partition can be
accomplished in U-Boot as follows:

 1. Press the Escape key at the `Hit Esc key to stop autoboot` prompt
 2. Run `setsys bootpartition {0|1}` to select the boot partition
 3. Run `savesys` followed by `boota` to proceed with the boot process

Signed-off-by: Michael Mohr <akihana@gmail.com>
2021-02-13 12:07:26 +08:00
Michael Mohr
9062cfcba5 realtek: refactor the Netgear GS110TPP v1 device tree
Move most of the GS110TPP v1 device tree into a dtsi so that it can be
shared with the GS108T v3.  Additionally:

  * Use macros to simplify the ethernet and switch definitions
  * Zero-pad the offsets and sizes in the partition map to 8 digits each

The spi-max-frequency value has been changed from 10MHz to 50MHz based
on an analysis of the relevant datasheets.  The current driver doesn't
use this property, as the clock speed is fixed. However, it's required
for this type of DT node, so that's why it's present here.

The firmware partition has been split in half, since this is how the
stock firmware uses it.  This can be used to easily revert to a stock
firmware if one is written to the second image area.

Signed-off-by: Michael Mohr <akihana@gmail.com>
2021-02-13 12:07:04 +08:00
Michael Mohr
e5a1b2b3a0 realtek: add and use netgear_nge for the GS110PP v1
The netgear_nge device will be shared between the GS108T v3 (to be added
in a later commit) and the GS110PP v1.  It also enables LZMA compression
for the ramdisk image.

Signed-off-by: Michael Mohr <akihana@gmail.com>
2021-02-13 12:06:41 +08:00
Antti Seppälä
cdb3cf2418 ltq-ptm: Update VR9 PTM firmware
After looking at various vendor GPL source code dumps I discovered that some
of them contain updated versions of ltq-ptm driver when compared to what
openwrt has.

The driver update is mostly cursory (simple changes to comments, whitespace,
formatting etc.) or adds debug features not used by openwrt.

However the updated driver also contains a later version of PTM firmware which
is extracted and included in this commit along with bits to correctly identify
its version when driver loads.

Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
2021-02-13 12:05:10 +08:00
Adrian Schmutzler
940a258a1a ath79: fix USB power GPIO for TP-Link TL-WR810N v1
The TP-Link TL-WR810N v1 is known to cause soft-brick on ath79 and
work fine for ar71xx [1]. On closer inspection, the only apparent
difference is the GPIO used for the USB regulator, which deviates
between the two targets.

This applies the value from ar71xx to ath79.

Tested successfully by a forum user.

[1] https://forum.openwrt.org/t/tp-link-tl-wr810n-v1-ath79/48267

Fixes: cdbf2de777 ("ath79: Add support for TP-Link WR810N")
Fixes: FS#3522

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-12 12:11:52 +08:00
INAGAKI Hiroshi
bd9042651b ramips: add support for ELECOM WRC-1167FS
ELECOM WRC-1167FS is a 2.4/5 GHz band 11ac (WiFi-5) router, based on
MT7628AN.

Specification:

- SoC		: MediaTek MT7628AN
- RAM		: DDR2 64 MiB (NT5TU32M16FG-AC)
- Flash		: SPI-NOR 16 MiB (W25Q128JVSIQ)
- WLAN		: 2.4/5 GHz 2T2R
  - 2.4 GHz	: MediaTek MT7628AN (SoC)
  - 5 GHz	: MediaTek MT7612E
- Ethernet	: 10/100 Mbps x2
  - Switch	: MT7628AN (SoC)
- LEDs/Keys	: 6x, 3x (2x buttons, 1x slide-switch)
- UART		: through-hole on PCB
  - J1: 3.3V, GND, TX, RX from "J1" marking
  - 57600n8
- Power		: 12 VDC, 1 A

Flash instruction using factory image:

1. Boot WRC-1167FS normally
2. Access to "http://192.168.2.1/" and open firmware update page
   ("ファームウェア更新")
3. Select the OpenWrt factory image and click apply ("適用") button to
   perform firmware update
4. Wait ~120 seconds to complete flashing

Notes:

- Last 0x800000 (8 MiB) in SPI-NOR flash is not used on stock firmware

- Additional padding in factory image is required to avoid incomplete
  flashing on stock firmware

MAC addresses:

- LAN	: BC:5C:4C:xx:xx:68 (Config, ethaddr (text) / Factory, 0x28   (hex))
- WAN	: BC:5C:4C:xx:xx:69 (Config, wanaddr (text) / Factory, 0x22   (hex))
- 2.4GHz: BC:5C:4C:xx:xx:6A (Config, rmac    (text) / Factory, 0x4    (hex))
- 5GHz	: BC:5C:4C:xx:xx:6B (Config, rmac2   (text) / Factory, 0x8004 (hex))

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2021-02-12 12:11:22 +08:00
Adrian Schmutzler
a6ced9b963 ramips: remove set_wifi_led function in 01_leds
While we mostly use the ucidef_set_led_* functions directly in 01_leds
we still have the set_wifi_led function in parallel for several old
devices. This is not only inconsistent with the other definitions,
it also links to the wlan0 interface instead of using a phy trigger
which would be independent of the interface name (and is used for
all newer devices anyway). Apart from that, the standard names
"wifi" and "wifi-led" are not very helpful in a world with different
radio bands either.

Thus, this patch removes the set_wifi_led function and puts the
relevant commands into the cases explicitly. This makes the
mechanism used more evident and will hopefully lead to some future
improvements or at least prevent some copy-pasting of the old
setups.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-12 12:11:00 +08:00
John Audia
a0cfdf77c8 kernel: bump 5.4 to 5.4.97
Ran update_kernel.sh in a fresh clone without any existing toolchains.

Manually rebased:
 bcm27xx
  950-0267-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch
 bcm53xx
  180-usb-xhci-add-support-for-performing-fake-doorbell.patch
 layerscape
  302-dts-0008-arm64-dts-ls1046a-accumulated-change-to-ls1046a-boar.patch
  820-usb-0016-MLK-16735-usb-host-add-XHCI_CDNS_HOST-flag.patch
  820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch

Build system: x86_64
Build-tested: bcm27xx/bcm2711, ipq806x/R7800
Run-tested: ipq806x/R7800

No dmesg regressions/everything functional.

Signed-off-by: John Audia <graysky@archlinux.us>
[remove quilt comment, fix/adjust 820-usb-* layerscape patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-12 12:05:11 +08:00
Daniel Golle
6ded7af5fa arm-trusted-firmware-tools: add patch to pass LDFLAGS
This should hopefully fix builds on the buildbot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-11 12:09:41 +08:00
Rafał Miłecki
7129d822f0 bcm4908: update Ethernet driver
Use the latest version sent upsteram.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-11 12:09:14 +08:00
Adrian Schmutzler
ffdfb17ba1 at91: use SPDX license identifiers on DTS files
Use SPDX license tags to allow machines to check licenses.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-11 12:08:53 +08:00
Adrian Schmutzler
afbac3f8ad target: use SPDX license identifiers on scripts
Use SPDX license tags to allow machines to check licenses.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-11 12:08:24 +08:00
Adrian Schmutzler
0cd3943f36 target: use SPDX license identifiers on Makefiles
Use SPDX license tags to allow machines to check licenses.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-11 12:05:39 +08:00
Adrian Schmutzler
b164057876 sunxi: use wpad-basic-wolfssl for Sinovoip Banana Pi M2 Ultra
The idea of commit a14f5bb4bd was to use wpad-basic-wolfssl
consistently throughout the whole trunk, so use it here as well.

Fixes: 50fdddae05 ("BPi-M2U kernel modules for onboard WiFi")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-10 16:31:57 +08:00
AmadeusGhost
eaa1406dd4 sunxi: a53: image: add missing predigestion
Fixes: ef1eee2 ("sunxi: add support for FriendlyARM NanoPi R1S H5")
2021-02-10 16:30:19 +08:00
David Bauer
74d382144e ath79: add support for Ubiquiti UniFi AP Outdoor+
Hardware
--------
Atheros AR7241
16M SPI-NOR
64M DDR2
Atheros AR9283 2T2R b/g/n
2x Fast Ethernet (built-in)

Installation
------------

Transfer the Firmware update to the device using SCP.

Install using fwupdate.real -m <openwrt.bin> -d

Signed-off-by: David Bauer <mail@david-bauer.net>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-10 15:28:13 +08:00
David Bauer
6346dabdc0 mac80211: convert UniFi Outdoor+ HSR support to OF
Enable support for the Ubiquiti UniFi Outdoor+ RF filter via
device-tree. The old way of using platform data is not required anymore,
as it was only used on the now removed ar71xx target.

Signed-off-by: David Bauer <mail@david-bauer.net>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-10 15:26:57 +08:00
AmadeusGhost
5a34d8d677 Merge Mainline 2021-02-10 12:28:03 +08:00
AmadeusGhost
0d6e831f2c sunxi: backport thermal sensor driver from upstream linux 2021-02-10 12:20:23 +08:00
AmadeusGhost
ef1eee23f6 sunxi: add support for FriendlyARM NanoPi R1S H5
(cherry picked from commit 144c82515c and
3adf449fa9)

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-02-10 12:17:12 +08:00
AmadeusGhost
673f0c11b1 r8152: move led configuration patches into generic 2021-02-10 12:13:04 +08:00
Daniel Golle
fa7b3daec3 arm-trusted-firmware-mediatek: mark @BROKEN until bromimage gets fixed
The 'bromimage' tool which is used to wrap bl2 with a MediaTek-specific
header is distributed in binary form only and unfortunately tries to
dynamically link against libopenssl, which fails on the buildbots.
Wait for MTK to provide a at least static executable instead, in the
meantime, mark the package as broken.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-10 12:07:58 +08:00
Daniel Golle
2436c114d8 arm-trusted-firmware-tools: fix passing of CFLAGS
HOST_CFLAGS were ignored as they were passed on incorrectly which lead
to build failure if OpenSSL wasn't present on the build host.
Fix that by properly passing HOST_CFLAGS when building each tool.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-10 12:07:36 +08:00
Daniel Golle
0fde518889 arm-trusted-firmware-tools: remove tools which require libopenssl
They are anyway not used for now, so only build fiptool and sptool.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-10 12:07:07 +08:00
Andrew Pikler
c5c458ed52 ramips: add support for Cudy WR1300
Specifications:
 - SoC: MediaTek MT7621AT
 - RAM: 128 MB (DDR3)
 - Flash: 16 MB (SPI NOR)
 - WiFi: MediaTek MT7603E, MediaTek MT7612E
 - Switch: 1 WAN, 4 LAN (Gigabit)
 - Ports: 1 USB 3.0
 - Buttons: Reset, WPS
 - LEDs: Power, System, Wan, Lan 1-4, WiFi 2.4G, WiFi 5G, WPS, USB
 - Power: DC 12V 1A tip positive

UART Serial:
  115200 baud
  Located on unpopulated 4 pin header near J4:

  J4
  [o] Rx
  [o] Tx
  [o] GND
  [ ] Vcc - Do not connect

Installation:

Download and flash the manufacturer's built OpenWRT image available at
http://www.cudytech.com/openwrt_software_download
Install the new OpenWRT image via luci (System -> Backup/Flash firmware)
Be sure to NOT keep settings. The force upgrade may need to be checked
due to differences in router naming conventions.

Recovery:
 - Loads only signed manufacture firmware due to bootloader RSA verification
 - serve tftp-recovery image as /recovery.bin on 192.168.1.88/24
 - connect to any lan ethernet port
 - power on the device while holding the reset button
 - wait at least 8 seconds before releasing reset button for image to
   download
 - See http://www.cudytech.com/newsinfo/547425.html

MAC addresses as verified by OEM firmware:

use   address   source
LAN   *:f0      label
WAN   *:f1      label + 1
2g    *:f0      label
5g    *:f2      label + 2

The label MAC address is found in bdinfo 0xde00.

Signed-off-by: Andrew Pikler <andrew.pikler@gmail.com>
2021-02-10 12:05:09 +08:00
Sebastian Schaper
b387d4d6cc ath79: add support for D-Link DAP-3662 A1
Specifications:
 * QCA9557, 16 MiB Flash, 128 MiB RAM, 802.11n 2T2R
 * QCA9882, 802.11ac 2T2R
 * 2x Gigabit LAN (1x 802.11af PoE)
 * IP68 pole-mountable outdoor case

Installation:
 * Factory Web UI is at 192.168.0.50
   login with 'admin' and blank password, flash factory.bin
 * Recovery Web UI is at 192.168.0.50
   connect network cable, hold reset button during power-on and keep it
   pressed until uploading has started (only required when checksum is ok,
   e.g. for reverting back to oem firmware), flash factory.bin

After flashing factory.bin, additional free space can be reclaimed by
flashing sysupgrade.bin, since the factory image requires some padding
to be accepted for upgrading via OEM Web UI.

Both ethernet ports are set to LAN by default, matching the labelling on
the case. However, since both GMAC Interfaces eth0 and eth1 are connected
to the switch (QCA8337), the user may create an additional 'wan' interface
as desired and override the vlan id settings to map br-lan / wan to either
the PoE or non-PoE port, depending on the individual scenario of use.

So, the LAN and WAN ports would then be connected to different GMACs, e.g.

config interface 'lan'
	option ifname 'eth0.1'
	...

config interface 'wan'
	option ifname 'eth1.2'
	...

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '1 0t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '2 6t'

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
[add configuration example]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-09 21:49:25 +08:00
AmadeusGhost
dcc01b6832 sunxi: remove outdated rtc package for a31/h3/r40 devices
The rtc-sunxi module only supports Allwinner A10/A20, for Allwinner
A31/h3/h5, use rtc-sun6i instead, which isn't support build as a
kernel module, just put it into default config.

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2021-02-09 12:22:13 +08:00
Hauke Mehrtens
aa5cf017f9 uboot-envtools: Update to version 2021.01
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-02-09 12:12:36 +08:00
Hauke Mehrtens
3988a05266 tools: mkimage: Update U-Boot to version 2021.01
* The fit image is now created with 0666 permission in upstream U-Boot
  remove our patch switch creates it with 0744
* The generated/autoconf.h file is created now as an empty file, it is
  not needed to remove this include any more.
* Upstream lib/rsa/rsa-sign.c now includes stdlib.h instead of malloc.h
* ALIGN_MASK was moved to imagetool.h, own patch should not be needed
  any more.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-02-09 12:12:19 +08:00
Andre Heider
b64a7949c4 ltq-dsl-base: remove usused lantiq_dsl.sh
All users have been converted to ubus.

Signed-off-by: Andre Heider <a.heider@gmail.com>
Tested-by: Martin Schiller <ms@dev.tdt.de>
2021-02-09 12:11:54 +08:00
Andre Heider
eae7585ab3 ltq-adsl-app: use ubus to provide metrics
luci now uses ubus directly, so remove 'lucistat'.
For manual usage just print the ubus output, use luci for a pretty
version.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-02-09 12:11:34 +08:00
Andre Heider
9ad3b80806 ltq-vdsl-app: use ubus to provide metrics
luci now uses ubus directly, so remove 'lucistat'.
For manual usage just print the ubus output, use luci for a pretty
version.

Signed-off-by: Andre Heider <a.heider@gmail.com>
Tested-by: Martin Schiller <ms@dev.tdt.de>
2021-02-09 12:10:47 +08:00
Andre Heider
087e385851 ltq-adsl-app: add ubus support to get metrics
As with ltq-vdsl-app, see previous commit.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-02-09 12:09:08 +08:00
Andre Heider
0f6583961c ltq-vdsl-app: add ubus support to get metrics
Add a 'dsl' ubus object with a 'metrics' function to replace the
expensive shell parsing done by /etc/init.d/dsl_control [dsl|luci]stat.

All metrics are gathered by using syscalls. An additional thread is started
to handle ubus events.

$ time /etc/init.d/dsl_control dslstat
real	0m 2.66s
user	0m 0.90s
sys	0m 1.76s

$ time ubus call dsl metrics
real	0m 0.02s
user	0m 0.00s
sys	0m 0.01s

Example output:
{
	"api_version": "4.17.18.6",
	"firmware_version": "5.8.1.5.0.7",
	"chipset": "Lantiq-VRX200",
	"driver_version": "1.5.17.6",
	"state": "Showtime with TC-Layer sync",
	"up": true,
	"uptime": 3891,
	"atu_c": {
		"vendor_id": [
			181,
			0,
			66,
			68,
			67,
			77,
			178,
			26
		],
		"vendor": "Broadcom 178.26",
		"system_vendor_id": [
			181,
			0,
			66,
			68,
			67,
			77,
			0,
			0
		],
		"system_vendor": "Broadcom",
		"version": [
			49,
			57,
			46,
			48,
			46,
			51,
			53,
			46,
			50,
			32,
			86,
			69,
			95,
			49,
			49,
			95
		],
		"serial": [
			65,
			65,
			49,
			52,
			52,
			54,
			70,
			69,
			48,
			90,
			87,
			45,
			48,
			56,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0
		]
	},
	"power_state": "L0 - Synchronized",
	"xtse": [
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		2
	],
	"annex": "B",
	"standard": "G.993.2",
	"profile": "17a",
	"mode": "G.993.2 (VDSL2, Profile 17a, with down- and upstream vectoring)",
	"upstream": {
		"vector": true,
		"trellis": true,
		"bitswap": true,
		"retx": true,
		"virtual_noise": false,
		"interleave_delay": 0,
		"data_rate": 31999000,
		"latn": 8.500000,
		"satn": 8.400000,
		"snr": 12.700000,
		"actps": -90.100000,
		"actatp": 13.400000,
		"attndr": 37180000
	},
	"downstream": {
		"vector": true,
		"trellis": true,
		"bitswap": true,
		"retx": true,
		"virtual_noise": false,
		"interleave_delay": 140,
		"data_rate": 89998000,
		"latn": 9.500000,
		"satn": 9.600000,
		"snr": 13.300000,
		"actps": -90.100000,
		"actatp": -1.600000,
		"attndr": 116315372
	},
	"errors": {
		"near": {
			"es": 1,
			"ses": 0,
			"loss": 3,
			"uas": 424,
			"lofs": 0,
			"fecs": 0,
			"hec": 0,
			"ibe": 0,
			"crc_p": 0,
			"crcp_p": 0,
			"cv_p": 0,
			"cvp_p": 0,
			"rx_corrupted": 27740,
			"rx_uncorrected_protected": 27010,
			"rx_retransmitted": 0,
			"rx_corrected": 730,
			"tx_retransmitted": 16222
		},
		"far": {
			"es": 242,
			"ses": 71,
			"loss": 0,
			"uas": 424,
			"lofs": 0,
			"fecs": 22687,
			"hec": 0,
			"ibe": 0,
			"crc_p": 0,
			"crcp_p": 0,
			"cv_p": 0,
			"cvp_p": 0,
			"rx_corrupted": 1383552,
			"rx_uncorrected_protected": 1220215,
			"rx_retransmitted": 0,
			"rx_corrected": 163337,
			"tx_retransmitted": 1574051
		}
	}
}

Signed-off-by: Andre Heider <a.heider@gmail.com>
Tested-by: Martin Schiller <ms@dev.tdt.de>
2021-02-09 12:08:49 +08:00
Andre Heider
f9b2da255d ltq-vdsl-app: shutdown upon sigterm
procd sends sigterm to stop daemons, hook it up.

This speeds up the shutdown sequence and gets rid of the following message:
daemon.info procd: Instance dsl_control::instance1 pid 15408 not stopped on SIGTERM, sending SIGKILL instead

Signed-off-by: Andre Heider <a.heider@gmail.com>
Tested-by: Martin Schiller <ms@dev.tdt.de>
2021-02-09 12:08:30 +08:00
Michael Pratt
d85ed5ecc2 ath79: use internal switch for EAP300 v2
Have the port use GMAC1 with internal switch
which fixes the issue of the ethernet LED not functioning
The LED is triggered by the internal switch, not a GPIO.

The GPIO for the ethernet LED was added in ath79
as it was defined in the ar71xx target
but it was not functioning in ath79 for a previously unknown reason.

It is unknown why that GPIO was defined as an LED in ar71xx.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
[drop unrelated changes: model property and SPI max frequency]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-09 12:08:07 +08:00
Michael Pratt
18607f8db3 ath79: make all eth ports LAN for Engenius APs
for:
 - ENH202 v1
 - ENS202EXT v1
 - EnstationAC v1
 - EWS511AP

For EWS511AP, have default behavior as static ip
to match the behavior of all other APs in ath79

These boards are sold as
Client Bridge or Point to Point or Access Point
so there is probably no benefit to have WAN by default
for one of the ports, to prevent user confusion.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-02-09 12:07:42 +08:00
John Audia
2507965d31 kernel: bump 5.4 to 5.4.96
Ran update_kernel.sh in a fresh clone without any existing toolchains.

Build system: x86_64
Build-tested: ipq806x/R7800, bcm27xx/bcm2711
Run-tested: ipq806x/R7800
Run-tested [*]: ramips/mt7621 (R6800, DIR-878 A1, EAP235-Wall)

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
2021-02-09 12:03:21 +08:00
Rafał Miłecki
0158b85b1c bcm4908: add board.d network setup
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-09 12:02:58 +08:00
Rafał Miłecki
7ac8cfd9f2 bcm4908: add Ethernet driver
This commit picks up pending netdev patches.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-02-09 12:02:33 +08:00
Szabolcs Hubai
a9858e62dc ramips: disable default build for HooToo HT-TM02
While the latest version of 19.07 release is usable,
the current master is unbootable on the device in a normal way.

"Normal way" installations includes:
- sysupgrade (e.g. from 19.07)
- RESET button recovery with Ron Curry's (Wingspinner) UBoot image
  (10.10.10.3 + "Kernal.bin")
- RESET button recovery with original U-Boot
  (10.10.10.254 + "kernel")

One could flash and boot the latest master sysupgrade image successfully
with serial access to the device. But a sysupgrade from this state still
breaks the U-Boot and soft-bricks the device.

Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
2021-02-08 12:07:47 +08:00
Adrian Schmutzler
2fcb700036 ramips: mt7621: use preferred logic in lib/upgrade/iodata.sh
shellcheck recommends || and && over "-a" and "-o" because the
latter are not well defined.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-08 12:06:50 +08:00
INAGAKI Hiroshi
59d3c3a9af ramips: add support for I-O DATA WN-DX1200GR
I-O DATA WN-DX1200GR is a 2.4/5 GHz band 11ac (WiFi-5) router, based on
MT7621A.

Specification:

- SoC		: MediaTek MT7621A
- RAM		: DDR3 128 MiB
- Flash		: raw NAND 128 MiB
- WLAN		: 2.4/5 GHz 2T2R
  - 2.4 GHz	: MediaTek MT7603E
  - 5 GHz	: MediaTek MT7613BE
- Ethernet	: 10/100/1000 Mbps x5
  - Switch	: MediaTek MT7530 (SoC)
- LEDs/keys	: 2x/3x (2x buttons, 1x slide-switch)
- UART		: through-hole on PCB
  - J5: 3.3V, TX, RX, NC, GND from triangle-mark
  - 57600n8
- Power		: 12 VDC, 1 A

Flash instruction using initramfs image:

1. Boot WN-DX1200GR normally
2. Access to "http://192.168.0.1/" and open firmware update page
   ("ファームウェア")
3. Select the OpenWrt initramfs image and click update ("更新") button
   to perform firmware update
4. On the initramfs image, perform sysupgrade with the
   squashfs-sysupgrade image
5. Wait ~120 seconds to complete flashing

Notes:

- currently, mt7615e driver in mt76 doesn't fully support MT7613
  (MT7663) wifi chip
  - the eeprom data in flash is not used by mt7615e driver and the
    driver reports the tx-power up to 3dBm
  - the correct MAC address for MT7613BE in eeprom data cannot be
    assigned to the phy

- last 0x80000 (512 KiB) in NAND flash is not used on stock firmware

- stock firmware requires "customized uImage header" (called as "combo
  image") by MSTC (MitraStar Technology Corp.), but U-Boot doesn't

  - uImage magic ( 0x0 - 0x3 ) : 0x434F4D43 ("COMC")
  - header crc32 ( 0x4 - 0x7 ) : with "data length" and "data crc32"
  - image name   (0x20 - 0x37) : model ID and firmware versions
  - data length  (0x38 - 0x3b) : kernel + rootfs
  - data crc32   (0x3c - 0x3f) : kernel + rootfs

MAC addresses:

LAN:	50:41:B9:xx:xx:08 (Ubootenv, ethaddr (text) / Factory, 0x1E000 (hex))
WAN:	50:41:B9:xx:xx:0A (Factory,  0x1E006 (hex))
2.4GHz:	50:41:B9:xx:xx:08 (Factory,  0x4     (hex))
5GHz:	50:41:B9:xx:xx:09 (Factory,  0x8004  (hex))

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[add check whether dflag_offset is set]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-08 12:06:16 +08:00
Daniel González Cabanelas
1df953b4fc bcm63xx: kernel: reenable the TRNG
The hardware random number generator driver for bcm63xx was merged with
the one used by the Raspberry Pi. Now this driver is lost.

Reenable the HW_RANDOM kernel config with the new driver.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
[refresh kernel config]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-08 12:05:23 +08:00
CN_SZTL
fd4b8f37b0 autocore: fix logic error of big core freq detection
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-08 01:19:38 +08:00
CN_SZTL
8204815728 Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-07 16:59:21 +08:00
Pawel Dembicki
5b005819a4 mpc85xx: refresh kernel config
Simple "make kernel_oldconfig" was done.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2021-02-07 12:00:54 +08:00
CN_SZTL
f0d796aa5b autocore: logic improvements
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-07 01:32:40 +08:00
AmadeusGhost
9d29451fe9 Merge Mainline 2021-02-06 18:50:03 +08:00
Thomas Beckler
a88e5b54f0 kirkwood: use 3 temperature sensors for Zyxel NSA310B
Instead of taking the input of one temperature sensor (temp1), the
script takes into account three temperature sensors to control the
PWM of the cooling fan.

temp1 -> placed on main board
temp2 -> placed on main board
temp3 -> placed on or close to chipset

All three temperatures give valid input for the PWM of the fan on
NSA310 and are actually changing.

Tested on two NSA310.

Signed-off-by: Thomas Beckler <thomas.beckler@hotmail.com>
Reviewed-by: Alberto Bursi <bobafetthotmail@gmail.com>
[commit title/message facelift, code cleanup]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-06 12:16:17 +08:00
Alexey Kunitskiy
b569d636d9 tplink-safeloader: add support for TP-Link Archer A7 v5 (RU)
Although provided in separate zip archives, the firmwares for EU
and RU version are byte-identical. This adds the missing ID compared
to the support-list in the vendor firmware.

Note (since I checked it anyway):

Partitions and support list are unchanged for all three existing
firmware versions:

  * 20200721-rel40773
  * 20201029-rel43238
  * 20201120-rel50399

Signed-off-by: Alexey Kunitskiy <alexey.kv@gmail.com>
[rewrite commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-06 12:15:51 +08:00
Adrian Schmutzler
6fe4adbef8 ath79: wrap ucidef_add_switch in 02_network
Wrap line to be consistent with all other definitions.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-06 12:15:30 +08:00
Yanase Yuki
bb6cc406f8 build: move elx-header into image-commands.mk
ELECOM WAB-I1750-PS will need this in ath79, so move it to common
Makefile.

Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
2021-02-06 12:15:04 +08:00
Sungbo Eo
b7d4f12a6b kirkwood: refresh kernel config
Refresh config with make kernel_oldconfig.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-02-06 12:13:17 +08:00
Aleksander Jan Bajkowski
c9d60ee510 lantiq: change phy-mode to mii for FRITZ!Box 7412
FRITZ!Box 7412 loads the firmware for fast ethernet PHY and mii is
more accurate in this case.
Gmii is used by Gigabit ethernet PHYs.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
Reviewed-by: Mathias Kresin <dev@kresin.me>
[minor commit title/message adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-06 12:12:54 +08:00
Adrian Schmutzler
2405bb433c ramips: replace full-text licenses by SPDX identifier
This replaces several full-text and abbreviated licenses found in
DTS files by the corresponding SPDX identifiers.

This should make it easier to identify the license both by humans
and machines.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-06 12:12:04 +08:00
David Bentham
9a2ccb6cd8 ramips: add support for UniElec U7621-01
UniElec U7621-01 is a router platform board, the smaller model of
the U7621-06.
The device has the following specifications:

- MT7621AT (880 MHz)
- 256 of RAM (DDR3)
- 16 MB of FLASH (SPI NOR)
- 5x 1 Gbps Ethernet (MT7621 built-in switch)
- 1x 2.4Ghz MT7603E
- 1x 5Ghz MT7612
- 1x miniPCIe slots (PCIe bus only)
- 1x miniSIM slot
- 1x USB 2.0 (uses the usb 3.0 driver)
- 8x LEDs (1x GPIO-controlled)
- 1x reset button
- 1x UART header (4-pins)
- 1x GPIO header (30-pins)
- 1x DC jack for main power (12 V)

The following has been tested and is working:

- Ethernet switch
- 1x 2.4Ghz MT7603E (wifi)
- 1x 5Ghz MT7612 (wifi)
- miniPCIe slots (tested with Wi-Fi cards and LTE modem cards)
- miniSIM slot (works with normal size simcard)
- sysupgrade
- reset button

Installation:

This board has no locked down bootloader. The seller can be asked to
install openwrt v18.06, so upgrades are standard sysupgrade method.

Recovery:

This board contains a Chinese, closed-source bootloader called Breed
(Boot and Recovery Environment for Embedded Devices). Breed supports web
recovery and to enter it, you keep the reset button pressed for around
5 seconds during boot. Your machine will be assigned an IP through DHCP
and the router will use IP address 192.168.1.1. The recovery website is
in Chinese, but is easy to use. Click on the second item in the list to
access the recovery page, then the second item on the next page is where
you select the firmware. In order to start the recovery, you click the
button at the bottom.

LEDs list (left to right):

- ESW_P0_LED_0
- ESW_P1_LED_0
- ESW_P2_LED_0
- ESW_P3_LED_0
- ESW_P4_LED_0
- CTS2_N (GPIO10, configured as "status" LED)
- LED_WLAN# (connected with pin 44 in wifi1 slot)

Signed-off-by: David Bentham <db260179@gmail.com>
[add DEVICE_VARIANT, fix DEVICE_PACKAGES, remove &gpio]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-06 12:11:36 +08:00
Martin Kennedy
4f41254b10 ath79: add support for Meraki MR12
Port device support for Meraki MR12 from the ar71xx target to ath79.

Specifications:

  - SoC: AR7242-AH1A CPU
  - RAM: 64MiB (NANYA NT5DS32M16DS-5T)
  - NOR Flash: 16MiB (MXIC MX25L12845EMI-10G)
  - Ethernet: 1 x PoE Gigabit Ethernet Port (SoC MAC + AR8021-BL1E PHY)
  - Ethernet: 1 x 100Mbit port (SoC MAC+PHY)
  - Wi-Fi: Atheros AR9283-AL1A (2T2R, 11n)

Installation:

  1. Requires TFTP server at 192.168.1.101, w/ initramfs & sysupgrade .bins
  2. Open shell case
  3. Connect a USB->TTL cable to headers furthest from the RF shield
  4. Power on the router; connect to U-boot over 115200-baud connection
  5. Interrupt U-boot process to boot Openwrt by running:
       setenv bootcmd bootm 0xbf0a0000; saveenv;
       tftpboot 0c00000 <filename-of-initramfs-kernel>.bin;
       bootm 0c00000;
  6. Copy sysupgrade image to /tmp on MR12
  7. sysupgrade /tmp/<filename-of-sysupgrade>.bin

Notes:

  - kmod-owl-loader is still required to load the ART partition into the
    driver.

  - The manner of storing MAC addresses is updated from ar71xx; it is
    at 0x66 of the 'config' partition, where it was discovered that the
    OEM firmware stores it. This is set as read-only. If you are
    migrating from ar71xx and used the method mentioned above to
    upgrade, use kmod-mtd-rw or UCI to add the MAC back in. One more
    method for doing this is described below.

  - Migrating directly from ar71xx has not been thoroughly tested, but
    one method has been used a couple of times with good success,
    migrating 18.06.2 to a full image produced as of this commit. Please
    note that these instructions are only for experienced users, and/or
    those still able to open their device up to flash it via the serial
    headers should anything go wrong.

    1) Install kmod-mtd-rw and uboot-envtools
    2) Run `insmod mtd-rw.ko i_want_a_brick=1`
    3) Modify /etc/fw_env.config to point to the u-boot-env partition.
       The file /etc/fw_env.config should contain:

       # MTD device   env offset  env size    sector size
       /dev/mtd1      0x00000     0x10000     0x10000

       See https://openwrt.org/docs/techref/bootloader/uboot.config
       for more details.

    4) Run `fw_printenv` to verify everything is correct, as per the
       link above.
    5) Run `fw_setenv bootcmd bootm 0xbf0a0000` to set a new boot address.
    6) Manually modify /lib/upgrade/common.sh's get_image function:
       Change ...

       cat "$from" 2>/dev/null | $cmd

       ... into ...

       (
         dd if=/dev/zero bs=1 count=$((0x66)) ; # Pad the first 102 bytes
         echo -ne '\x00\x18\x0a\x12\x34\x56'  ; # Add in MAC address
         dd if=/dev/zero bs=1 count=$((0x20000-0x66-0x6)) ; # Pad the rest
         cat "$from" 2>/dev/null
       ) | $cmd

       ... which, during the upgrade process, will pad the image by
       128K of zeroes-plus-MAC-address, in order for the ar71xx's
       firmware partition -- which starts at 0xbf080000 -- to be
       instead aligned with the ath79 firmware partition, which
       starts 128K later at 0xbf0a0000.

    7) Copy the sysupgrade image into /tmp, as above
    8) Run `sysupgrade -F /tmp/<sysupgrade>.bin`, then wait

    Again, this may BRICK YOUR DEVICE, so make *sure* to have your
    serial cable handy.

Signed-off-by: Martin Kennedy <hurricos@gmail.com>
[add LED migration and extend compat message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-06 12:10:20 +08:00
John Audia
4bc799663a kernel: bump 5.4 to 5.4.95
Ran update_kernel.sh in a fresh clone without any existing toolchains.

Removed upstreamed patches:
 imx6: 303-ARM-dts-imx6qdl-gw52xx-fix-duplicate-regulator-namin.patch

Build system: x86_64
Build-tested: ipq806x/R7800, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2021-02-05 12:08:35 +08:00
Daniel Golle
89a01c6876 trusted-firmware-a.mk: add PKG_CPE_ID
Vulnerabilities of Trusted Firmware A are tracked as
cpe:/a:arm:arm_trusted_firmware

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-04 12:09:16 +08:00
Daniel Golle
2ef28b02fe arm-trusted-firmware-mediatek: make use of trusted-firmware-a.mk
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-04 12:08:54 +08:00
Daniel Golle
3abd9e9156 tfa-layerscape: don't build fiptool
tfa-fiptool is now provided by an extra package. Use that instead.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-04 12:08:42 +08:00
Daniel Golle
8f13b8bd7e arm-trusted-firmware-tools: add package
Package ARM Trusted Firmware host tools separately.
(instead of building tfa-fiptool as part of tfa-layerscape)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-04 12:08:13 +08:00
CN_SZTL
ed6197ea5a Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-03 23:49:50 +08:00
Daniel Golle
1b4d8894a4 arm-trusted-firmware-mediatek: add ATF builds for MT7622
ATF bl2 comes in 4 variants for MT7622 depending on the boot media:
 * nor
 * snand
 * emmc
 * sdmmc

Additional binary headers needed for emmc and sdmmc are downloaded as
well and provided along with bl2*.bin and bl31.bin to allow building
images including ATF for MT7622.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-02-03 12:28:31 +08:00
Daniel González Cabanelas
dddfa88c1c bcm63xx: sprom: override the PCI device ID
The PCI device ID detected by the wifi drivers on devices using a fallback
SPROM is wrong. Currently the chipnum is used for this parameter.

Most SSB based Broadcom wifi chips are 2.4 and 5GHz capable. But on
devices without a physical SPROM, the only one way to detect if the device
suports both bands or only the 5GHz band, is by reading the device ID from
the fallback SPROM.

In some devices, this may lead to a non working wifi on a 5GHz-only card,
or in the best case a working 2.4GHz-only in a dual band wifi card.

The offset for the deviceid in SSB SPROMs is 0x0008, whereas in BCMA is
0x0060. This is true for any SPROM version.

Override the PCI device ID with the one defined at the fallback SPROM, to
detect the correct wifi card model and allow using the 5GHz band if
supported.

The patch has been tested with the following wifi radios:

BCM43222: b43: both 2.4/5GHz working
          brcm-wl: both 2.4/5GHz working

BCM43225: b43: 2.4GHz, working
	 brcmsmac: working
	 brcm-wl: it lacks support

BCM43217: b43: 2.4GHz, working
	 brcmsmac: it lacks support
	 brcm-wl: it lacks support

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
[amend commit description, rework patch to avoid using a new global variable
and keep ssb sprom extraction code as close to ssb/pci.c as possible]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-03 12:27:21 +08:00
Álvaro Fernández Rojas
b1cc54e940 bcm63xx: backport upstream SSB SPROM extraction
New upstream changes extract more SPROM values and fix the antenna gain.
These changes can be found in linux drivers/ssb/pci.c.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-03 12:26:54 +08:00
Álvaro Fernández Rojas
3be6d9d5f2 bcm63xx: fix bcm63xx ethernet kernel panics
Calling netdev_reset_queue() from _stop() functions is causing sporadic kernel
panics on bcm63xx, which happen mainly on BCM6318 and BCM6328.
This reverts to the previous behaviour, which called netdev_reset_queue() from
_open() functions.

Tested on Comtrend AR-5315u (BCM6318).

Fixes: 1d6f422e34 ("bcm63xx: sync ethernet driver with net-next")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-02-03 12:26:17 +08:00
John Audia
e4cc59ce05 kernel: bump 5.4 to 5.4.94
All modification made by update_kernel.sh in a fresh clone without
existing toolchains.

Build-tested: bcm27xx/bcm2711, ipq806x/R7800,
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2021-02-02 12:28:14 +08:00
Tianling Shen
c9db1325f9 Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-02-02 01:04:57 +08:00
Leon Leijssen
667d702eab ath79: ag71xx: add ethtool statistics support
Add statistics to ethtool. The statistics can be useful to
debug network issues.

The code is backported from mainline ag71xx.c driver.

Signed-off-by: Leon Leijssen <leon.git@leijssen.info>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-02-02 01:04:11 +08:00
Marty Jones
7a042afdee uboot-rockchip: fix RockPro64 boot from eMMC
With upstream commit f81f9f0ebac5 ("rockchip: rockpro64: initialize USB in
preboot") CONFIG_USE_PREBOOT was enabled on the RockPro64, which is causing
boot issues when a eMMC is used, as a workaround will temporarily disable
this option.

Signed-off-by: Marty Jones <mj8263788@gmail.com>
[Improve patch description]
Signed-off-by: David Bauer <mail@david-bauer.net>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2021-02-02 01:04:05 +08:00
Felix Fietkau
4f6b3b5d67 build: fix typo in kernel initramfs zstd compression option
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-01 22:56:00 +08:00
CN_SZTL
29412d2c82 Merge Mainline
Fixes: #272

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-01 00:12:25 +08:00
Petr Štetiar
a571a4b261 mvebu: omnia: make initramfs image usable out of the box
Currently it's not possible to boot the device with just initramfs image
without additional effort as the initramfs image doesn't contain device
tree.  Fix it by producing FIT based image which could be booted with
following commands:

 setenv bootargs earlyprintk console=ttyS0,115200
 tftpboot ${kernel_addr_r} openwrt-mvebu-cortexa9-cznic_turris-omnia-initramfs-kernel.bin
 bootm ${kernel_addr_r}

Acked-by: Klaus Kudielka <klaus.kudielka@gmail.com>
Reviewed-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2021-01-31 22:19:16 +08:00
Andre Heider
be0927b997 trusted-firmware-a.mk: pass package version as version identifier
Upon boot it now prints:
NOTICE:  BL1: v2.4(release):OpenWRT v2.4-1 (espressobin-v3-v5-1gb-2cs) (Marvell-devel-18.12.0)

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-01-31 22:14:10 +08:00
Andre Heider
6b12942c2b arm-trusted-firmware-mvebu: pass commit ids to a3700-utils/mv-ddr-marvell
The two required tools fail to identify their version when not compiling
from a git clone, patch that in and pass on the used commit hashes.

Upon boot it now prints "WTMI-devel-18.12.1-5598e150".

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-01-31 22:13:43 +08:00
Andre Heider
80ac77bac2 arm-trusted-firmware-mvebu: bump espressobin boards to CPU_1000_DDR_800
The cpufreq issue has been identified and a fix is in the process of beeing
upstreamed [0].

Bump the boards to the default 1000MHz so they can run at that frequency
once the fix is merged. Until then the boards are stuck at 800MHz (just
claiming to run 1000Hz, which is a lie).

[0] https://lore.kernel.org/linux-arm-kernel/20210114124032.12765-1-pali@kernel.org/

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-01-31 22:13:13 +08:00
Andre Heider
c74132232f arm-trusted-firmware-mvebu: update to v2.4
Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-01-31 22:12:52 +08:00
Andre Heider
cf13341c63 uboot-mvebu: update to v2021.01
u-boot now detects emmc variants at runtime, we don't need to build
seperate binaries anymore.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-01-31 22:12:21 +08:00
Andre Heider
4ee14ca38c arm-trusted-firmware-mvebu: don't build emmc variants
Starting with u-boot v2021.01 a single binary will be used for non-emmc
and emmc variants.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2021-01-31 22:12:00 +08:00
Daniel González Cabanelas
387ded2334 mvebu: LS421DE: fix the thermal zones
The thermal zones kernel documentation is misleading, we cannot use more
than one sensor in a thermal zone node.

Furthermore the drivetemp driver for some reason it only catches one
sensor from the hard drives array (the first available).

In the Buffalo Linkstation LS421DE board there is also a sensor at the
ethernet phy chip that can also be monitored. Very useful to stop the fan
when there are no hard drives in the bays.

(It might be also possible to add the CPU sensor, but it requires kernel
patching for registering the sensor via device tree, using the function:
devm_thermal_zone_of_sensor_register)

Fix the thermal zones to use only one sensor per node and add the ethernet
phy sensor. Also adjust the hdd temperatures to be more conservative for
a mechanical hard drive.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2021-01-31 22:11:24 +08:00
DENG Qingfang
f9b94cbbad ath79: add support for Arris SBC-AC1750
Specifications:
- SoC: QCA9558
- Flash: 128M NAND
- RAM: 256M
- Ethernet: QCA8337, 1 WAN and 4 LANs
- 2.4GHz wireless: SoC integrated
- 5GHz wireless: QCA9880
- 2 buttons (Reset and WPS)
- 4 GPIO-LEDs
- USB 2.0 port

Flash instructions: (To be done)

Note:
This router has an external watchdog connected to SoC's GPIO 18.
If the watchdog is not fed for about 2 seconds, it will reset the
SoC. Unfortunately, the stock U-boot has a bug that it does not
feed the watchdog when decompressing kernel. If the kernel is
LZMA-compressed, it might take too long before watchdog timeout.
So we have to use gzip instead for faster decompressing speed.

For initramfs image, compression is not used because it is bigger
and will take even more time to decompress.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-31 13:52:50 +08:00
CN_SZTL
5396b44d06 [HOTFIX] Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-31 11:44:46 +08:00
CN_SZTL
7ec6d4b43d Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-30 20:17:18 +08:00
AmadeusGhost
99ffe186a1 ath79: sync official source code 2021-01-30 12:20:16 +08:00
AmadeusGhost
50d57a982c treewide: use upstream caldata script 2021-01-30 12:18:02 +08:00
CN_SZTL
121a23044a Merge Upstream Commits
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-29 23:02:47 +08:00
CN_SZTL
c6b10aeb3f Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-29 23:01:13 +08:00
CN_SZTL
37b3bb4596 kirkwood: sync with OpenWrt snapshot
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-29 22:41:12 +08:00
John Audia
57b65ed985 kernel: bump 5.4 to 5.4.93
All modification made by update_kernel.sh in a fresh clone without
existing toolchains.

Build system:       x86_64
Build-tested:       ipq806x/R7800, bcm27xx/bcm2711
Run-tested:         ipq806x/R7800
Compile-tested [*]: ath79/{tiny,generic}, ipq40xx, octeon,
                    ramips/mt7621, realtek, x86/64
Run-tested [*]:     ath79/generic, ipq40xx, octeon, ramips/mt7621

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-29 22:34:20 +08:00
Adrian Schmutzler
0e2815c5c6 treewide: provide global default for SUPPORTED_DEVICES
The majority of our targets provide a default value for the variable
SUPPORTED_DEVICES, which is used in images to check against the
compatible on a running device:

  SUPPORTED_DEVICES := $(subst _,$(comma),$(1))

At the moment, this is implemented in the Device/Default block of
the individual targets or even subtargets. However, since we
standardized device names and compatible in the recent past, almost
all targets are following the same scheme now:

  device/image name:  vendor_model
  compatible:         vendor,model

The equal redundant definitions are a symptom of this process.

Consequently, this patch moves the definition to image.mk making it
a global default. For the few targets not using the scheme above,
SUPPORTED_DEVICES will be defined to a different value in
Device/Default anyway, overwriting the default. In other words:
This change is supposed to be cosmetic.

This can be used as a global measure to get the current compatible
with: $(firstword $(SUPPORTED_DEVICES))
(Though this is not precisely an achievement of this commit.)

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-29 15:20:43 +08:00
Adrian Schmutzler
ad6e6686d1 apm821xx: derive DEVICE_DTS from device name
The DEVICE_DTS variable always matches the device definition name,
just with "_" replaced by "-". Thus, create a DEVICE_DTS definition
in Device/Default and drop all the individual statements.

If necessary in the future, local DEVICE_DTS will still overwrite
that default.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-29 15:16:18 +08:00
Marty Jones
02395293a2 rockchip: fix SUPPORTED_DEVICES for Radxa ROCK Pi 4
This sets SUPPORTED_DEVICES to match the compatible in the DTS.

While at it, synchronize the capitalization in DEVICE_MODEL and
DTS model.

Signed-off-by: Marty Jones <mj8263788@gmail.com>
[commit title/message facelift, move variable in armv8.mk]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-29 15:13:44 +08:00
CN_SZTL
f03da2da75 Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-29 04:27:50 +08:00
CN_SZTL
5a16fd5948 Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-29 00:10:05 +08:00
Adrian Schmutzler
17b4eef4e8 ipq806x: remove generic profile
On a platform with many very different devices, like found on ipq806x,
the generic profile seems like a remnant of the past that does not
have a real use anymore.

Remove it to have one thing less to maintain.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Paul Spooren <mail@aparcar.org>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-28 19:58:02 +08:00
Adrian Schmutzler
e1461298c0 mediatek: remove generic profiles
We have support for reference boards available on this target, so
support for an additional generic profile does not make much sense.

Remove it to have one thing less to maintain.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Paul Spooren <mail@aparcar.org>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-28 19:57:41 +08:00
Adrian Schmutzler
7760bccdab kirkwood: remove generic profile
On a platform with many very different devices, like found on kirkwood,
the generic profile seems like a remnant of the past that does not
have a real use anymore.

Remove it to have one thing less to maintain.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Paul Spooren <mail@aparcar.org>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-28 19:57:34 +08:00
Adrian Schmutzler
c00fa2142b ramips: remove generic profiles
On a platform with many very different devices, like found on ramips,
the generic profiles seem like remnants of the past that do not
have a real use anymore.

Remove them to have one thing less to maintain.

Actually, rt288x didn't have a default profile in the first place.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Paul Spooren <mail@aparcar.org>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-28 19:57:04 +08:00
Adrian Schmutzler
df6a1d1d43 ath79: remove generic profiles
On a platform with many very different devices, like found on ath79,
the generic profiles seem like remnants of the past that do not
have a real use anymore.

Remove them to have one thing less to maintain.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Paul Spooren <mail@aparcar.org>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-28 19:56:17 +08:00
Jiang Yongquan
f1246f5542 sunxi: add support for linksprite pcDuino3 nano board
Specifications:

 - SoC: Allwinner A20 @ 1Ghz
 - DRAM: 1GiB DDR3 @ 408MHz (K4B4G1646Q-HYK0)
 - NAND: 4GB MLC NAND (H27UBG8T2BTR-BC)
 - Ethernet: 10/100/1000Mbps Ethernet (Realtek RTL8211E)

Flash instructions:

dd if=openwrt-sunxi-cortexa7-linksprite_pcduino3-nano-ext4-sdcard.img
of=/dev/sdX

Signed-off-by: Jiang Yongquan <woxwchc@foxmail.com>
[Remove CONFIG_REALTEK_PHY from sunxi/cortexa53 config]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-01-28 12:09:21 +08:00
Adrian Schmutzler
64cde6b025 bcm4908: sort and wrap build recipes
This sorts the Build recipes alphabetically, wraps some long lines
and moves the DEVICE_VARS to the top like common on several other
targets.

Cc: Rafał Miłecki <rafal@milecki.pl>

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-28 12:08:50 +08:00
Felix Fietkau
ceb8add670 ramips: use lzma-loader on zbtlink devices
Fixes boot loader LZMA decompression issues

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-01-28 12:08:17 +08:00
Birger Koblitz
08a84bdd50 realtek: add debugfs support for mirroring
This adds debugfs support to monitor mirroring via debugfs

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:16:07 +08:00
Birger Koblitz
6622e32141 realtek: add API for the hw tables of RTL83XX/93XX SoCs
Add a table API that has per accss register locking and uses
register description information to handle all table access
through a single set of api calls.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:15:46 +08:00
Birger Koblitz
b861ce3cf3 realtek: add switch driver support for the RTL93XX based switches
Adds support for the RTL9300 and RTL9310 series of switches
with 10GBit per port and up to 56 ports.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:15:26 +08:00
Birger Koblitz
841372bf34 realtek: add internal and external SDS/PHYs of RTL9300 devices
This adds support for the internal SerDes of the RTL9300 SoC
and for the RTL8218D and RTL8226B phys found in combination
with this SoC in switches.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:15:05 +08:00
Birger Koblitz
53754a1edf realtek: fix RTL8231 gpio expander usage with RTL839X SoC
This fixes the usage of the RTL8231 GPIO extender chip
when used with the RTL839X SoCs. Specifically,
the PHY addresses may be different from 0.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:14:17 +08:00
Birger Koblitz
24ad95e0f8 realtek: enable default rate limiting and qos settings
Enable default rate limiting and QoS support. Remove
previous storm control code.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:13:58 +08:00
Birger Koblitz
696d2d6561 realtek: correct l2 offloading tag handling
Makes sure the DSA trailer information on any L2 offloading done
by the switch is honoured by the bridge layer

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:13:36 +08:00
Birger Koblitz
d87ee6ca79 realtek: add QoS and rate control
This adds support for identifying QoS information in packets
and use this and rate control information to submit to multiple
egress queues. The ethernet driver is also made to support
2 egress and up to 32 egress queues.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:12:47 +08:00
Birger Koblitz
209f2a93b0 realtek: add dtsi for RTL930X SoCs
Add a default dtsi to support RTL930X SoCs.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:12:19 +08:00
Birger Koblitz
06a553eb3e realtek: add support for the RTL9300 timer
this adds support for the SoC timer of the RTL9300 chips, it
provides 6 independent timer/counters, of which the first one
is used as a clocksource and the second one as event timer.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:11:55 +08:00
Birger Koblitz
ab61ec333a realtek: add support for the RTL8390 and RTL9300 SoC IRQs
This adds support for the RTL8390 and RTL9300 SoCs
it also cleans up unnecessary definitions in mach-rtl83xx.h
and moves definitions relevant for irq routing to irq.h

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:11:34 +08:00
Birger Koblitz
7f242f919f realtek: add detection of RTL930X SoCs and RTL8313 SoC
This adds support to detect RTL930X based SoCs and the RTL9313 SoC.
Tested on Zyxel XGS1210-10 (RTL9302B SoC) and the
Zyxel XS1930-12 (RTL9313 SoC)

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2021-01-27 12:11:07 +08:00
John Audia
26d677eda9 kernel: bump 5.4 to 5.4.92
All modification made by update_kernel.sh in a fresh clone without
existing toolchains.

Build system:       x86_64
Build-tested:       ipq806x/R7800, bcm27xx/bcm2711
Run-tested:         ipq806x/R7800
Compile-tested [*]: ath79/{tiny,generic}, ipq40xx, octeon,
                    ramips/mt7621, realtek, x86/64.
Run-tested [*]:     ath79/generic, octeon, ramips/mt7621, realtek.

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
2021-01-26 12:08:33 +08:00
Tony Ambardar
0539e78af4 config: limit CONFIG_PERF_EVENTS to top-level generic configs
Remove redundant target-level settings.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-01-26 12:03:41 +08:00
Tony Ambardar
0926ae9993 malta: update target configs and fix build warnings
Comment out some conflicting target configs that are set from subtarget
configs, which sometimes lead to kernel compile warnings:

  scripts/kconfig/conf  --syncconfig Kconfig
  net/sched/Kconfig:45: warning: menuconfig statement without prompt
  .config:1038:warning: override: CPU_MIPS32_R2 changes choice state

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-01-26 12:02:19 +08:00
Bjørn Mork
c41af43609 realtek: build ZyXEL vendor firmware compatible initramfs
Append a device specific version trailer used by the stock
firmware upgrade application to validate firmwares.

The trailer contains a list of ZyXEL firmware version
numbers, which includes a four letter hardware identifier.
The stock web UI requires that the current hardware matches
one of the listed versions, and that the version number is
larger than a model specific minimum value. The minimum
version varies between V1.00 and V2.60 for the currently
known GS1900 models. The number is not used anywhere else
to our knowlege, and has no direct relation to the version
info in the u-image header.  We can therefore use an
arbitrary value larger than V2.60.

The stock firmware upgrade application will only load and
flash the part of the file specified in the u-image header,
regardless of file size.  It can therefore not be used to
flash images with an appended rootfs. There is therefore no
need to include the trailer in other images than the
initramfs. This prevents accidentally bricking by attempts
to flash other images from the stock web UI.

Stock images support all models in the series, listing
all of them in the version trailer.  OpenWrt provide model
specific images.  We therefore only list the single supported
hardware identifier for each image.  This eliminates the risk
of flashing the wrong OpenWrt image from stock web UI.

OpenWrt can be installed from stock firmware in two steps:

   1) flash OpenWrt initramfs image from stock web gui
   2) boot OpenWrt and sysupgrade to a squasfs image

The OpenWrt squashfs image depends on a static partition
map in the DTS.  It can only be installed to the "firmware"
partition.  This partition is labeled "RUNTIME1" in u-boot
and in stock firmware, and is referred to as "image 0" in
the stock flash management tool.  The OpenWrt initramfs
can be installed and run from either partitions. But if
you want to keep stock irmware in the spare system partition,
then you must make sure stock firmware is installed to the
"RUNTIME2" partition referred to as "image 1" in the stock
web UI. And the initial OpenWrt initramfs must be flashed
to "RUNTIME1"/"image 0".

The stock flash management application supports direct
selection of both which partition to flash and which
partition to boot next.  This allows software controlled
"dual-boot" between OpenWrt and stock firmware, without
using console access to u-boot. u-boot use the "bootpartition"
variable stored in the second u-boot environment to select
which of the two system partitions to boot.  This variable
is set by the stock flash management application, by direct
user input.  It can also be set in OpenWrt using e.g

 fw_setsys bootpartition 1

to select "RUNTIME2"/"image 1" as default, assuming a
stock firmware version is installed in that partition.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-01-25 12:05:41 +08:00
Bjørn Mork
f6800194a7 realtek: use vendor-specific magic for ZyXEL
The stock firmware of the ZyXEL GS1900 series use a non-standard
u-image magic.  This is not enforced by the stock u-boot, which is
why we could boot images with the default magic.  The flash
management application of the stock firmware will however verify
the magic, and refuse any image with another value.

Convert to vendor-specific value to get flash management support
in stock firmware, including the ability to upgrade to OpenWrt
directly from stock web UI.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-01-25 12:05:18 +08:00
AmadeusGhost
10120bb546 ath79: refresh dts with mtdsplit_uimage's change 2021-01-24 12:30:46 +08:00
CN_SZTL
03489fc1a4 rockchip: re-order patches
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-24 00:14:55 +08:00
CN_SZTL
9d0065ef2e Merge Mainline 2021-01-23 21:48:23 +08:00
CN_SZTL
fec400e0e3 kernel: refresh patches
Fixes: b80340271e ("kernel: bump 5.4 to 5.4.91")

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-23 21:29:50 +08:00
AmadeusGhost
ab1d59030f ath79: dw33d: add missing header file after dts changed 2021-01-23 12:28:04 +08:00
AmadeusGhost
62d56de946 arm64: display model name in /proc/cpuinfo 2021-01-23 12:21:02 +08:00
Bjørn Mork
420bd30462 kernel: mtdsplit_uimage: replace "edimax, uimage" parser
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>
2021-01-23 12:19:11 +08:00
Bjørn Mork
215f0106de kernel: mtdsplit_uimage: add "openwrt, offset" and "openwrt, partition-magic"
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>
2021-01-23 12:18:47 +08:00
Bjørn Mork
382911be10 kernel: mtdsplit_uimage: replace "netgear, uimage" parser
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>
2021-01-23 12:18:24 +08:00
Bjørn Mork
5e022740bb kernel: mtdsplit_uimage: add "openwrt, ih-type" device-tree property
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>
2021-01-23 12:18:02 +08:00
Bjørn Mork
8545fd41b6 kernel: mtdsplit_uimage: replace "allnet, uimage" parser
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>
2021-01-23 12:17:42 +08:00
Bjørn Mork
2972989ef6 kernel: mtdsplit_uimage: replace "openwrt, okli" parser
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>
2021-01-23 12:17:18 +08:00
Bjørn Mork
4de51dad41 kernel: mtdsplit_uimage: add "openwrt, ih-magic" device-tree property
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>
2021-01-23 12:14:40 +08:00
Bjørn Mork
caac829c1d kernel: mtdsplit_uimage: replace "fonfxc" and "sge" parsers
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>
2021-01-23 12:14:20 +08:00
Bjørn Mork
4e354ce6ca kernel: mtdsplit_uimage: read extralen from device tree
An "openwrt,padding" property in device tree can replace two device
specific parsers.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-01-23 12:13:24 +08:00
Bjørn Mork
afbe4cd0bf dt-bindings: mtd: partitions: add OpenWrt defined U-Boot Image
Add devicetree bindings for vendor specific variants of U-Boot
Images, as defined by OpenWrt.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2021-01-23 12:13:01 +08:00
Rafał Miłecki
d66b2d9599 kernel: add parser finding rootfs after CFE bootfs
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>
2021-01-23 12:11:52 +08:00
Rafał Miłecki
d612d193a9 bcm4908: build valid Asus GT-AC5300 firmware image
Insert Asus specific tail that is required for image identification.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-23 12:11:22 +08:00
Rafał Miłecki
747cf0e4b9 firmware-utils: bcm4908asus: tool inserting Asus tail into BCM4908 image
Asus looks for an extra data at the end of BCM4908 image, right before
the BCM4908 tail. It needs to be properly filled to make Asus accept
firmware image.

This tool constructs such a tail, writes it and updates CRC32 in BCM4908
tail accordingly.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-23 12:11:11 +08:00
Sieng Piaw Liew
77fde5a1e7 bcm63xx: sync ethernet driver with net-next
Sync ethernet driver code with upstream Linux kernel:
-Reduce xmit_more code changes.
-Combine rx cleanup code into a function.
-Convert to build_skb.
-Improve rx loop by optimizing loop tracking.

https://lore.kernel.org/netdev/20210106144208.1935-1-liew.s.piaw@gmail.com/
Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
[Amend commit description, move patches to the top since they are going to be
upstreamed]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-01-23 12:10:27 +08:00
Álvaro Fernández Rojas
8369f16e86 bcm63xx: nand: fix OOB R/W for non Hamming ECC
Hamming ECC devices do not cover OOB data, as opposed to BCH ECC devices.
Therefore, disabling ECC for all devices is preventing BCH devices from
correctly reading and writing the OOB data.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2021-01-23 12:09:55 +08:00
Rafał Miłecki
85b136f358 bcm4908: workaround NAND controller #WP issue
There seems to be a problem with setting #WP. On the other hand ignoring
the #WP seems to work. rootfs_data UBI volume seems to persist changes.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-22 12:06:55 +08:00
Rafał Miłecki
1894083196 bcm4908: append UBI with rootfs to device images
Also enable UBI kernel support.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-22 12:06:30 +08:00
Rafał Miłecki
b52f6a1ba6 bcm4908: build flashable & bootable firmware images
BCM4908 bootloader requires firmware with JFFS2 image containing:
1. cferam.000
2. 94908.dtb
3. vmlinux.lz
4. device custom files

cferam.000 can be obtained from the bcm63xx-cfe repository.
device custom files are stored in images dir.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-22 12:06:11 +08:00
Rafał Miłecki
2b5ea9e5a4 bcm4908: set console in the CONFIG_CMDLINE
procd doesn't work with just serial specified in the DT (using chosen &
stdout-path). It requires tty device to be explicitly specified in the
cmdline.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-22 12:05:50 +08:00
CN_SZTL
856d9ef1c0 Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-21 23:13:27 +08:00
Rafał Miłecki
3263d58109 bcm4908: add DTS patches for USB PHY and partitions
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-21 12:09:00 +08:00
Rafał Miłecki
089b882036 bcm4908: use backported brcmstb soc stubs patch
Final version differs slightly - uses IS_ENABLED()

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-21 12:08:41 +08:00
Rafał Miłecki
448bbebbd1 bcm4908: use backported switch & PMB DTS patches
Final versions differ slightly from what was used initially.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-21 12:08:19 +08:00
Rafał Miłecki
95f93bc0b7 bcm4908: add pending mtd patches for BCM4908 partitioning
BCM4908 can have multiple firmware partitions. MTD needs to detect which
one is currently used.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-21 12:07:57 +08:00
Rafał Miłecki
858176ac69 kernel: backport mtd commit converting partitions doc syntax
1. It's useful for developing & validating DTS files inside OpenWrt
2. This will allow backporting later changes that depend on it

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-21 12:07:35 +08:00
John Audia
b80340271e kernel: bump 5.4 to 5.4.91
All modification made by update_kernel.sh in a fresh clone without
existing toolchains.

Build system: x86_64
Build-tested: ipq806x/R7800, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Curtis Deptuck <curtdept@me.com> [x86/64]
2021-01-20 12:06:47 +08:00
John Audia
c326e01f45 kernel: bump 5.4 to 5.4.90
All modification made by update_kernel.sh in a fresh clone without
existing toolchains.

Build system: x86_64
Build-tested: ipq806x/R7800, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Curtis Deptuck <curtdept@me.com> [x86/64]
2021-01-20 12:06:13 +08:00
Hauke Mehrtens
3a6cde5118 uboot-at91: Add PKG_MIRROR_HASH to fix download
The referenced commit is gone, but we already have this file on our
mirror, use that one by providing the correct mirror hash.

I generated a tar.xz file with the given git commit hash using a random
fork on github and it generated the same tar.xz file as found on our
mirror so this looks correct.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-01-19 12:18:54 +08:00
Hauke Mehrtens
a391ec42bb at91bootstrap: Add PKG_MIRROR_HASH to fix download
The referenced commit is gone, but we already have this file on our
mirror, use that one by providing the correct mirror hash.

I generated a tar.xz file with the given git commit hash using a random
fork on github and it generated the same tar.xz file as found on our
mirror so this looks correct.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-01-19 12:18:30 +08:00
Adrian Schmutzler
aa39b5e58d at91: introduce vendor_model scheme and drop board names
This introduces the vendor_model scheme to this target in order to
harmonize device names within the target and with the rest of
OpenWrt. In addition, custom board names are dropped in favor
of the generic script which takes the compatible.

Use the SUPPORTED_DEVICES variable to store the compatible where it
deviates from the device name, so we can use it in build recipes.

While at it, harmonize a few indents as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-19 12:18:11 +08:00
David Bauer
62e57ad041 ath79: rename UniFi AC kernel1 partition
These devices do not run Ubiquiti AirOS. Rename the partition to the
name used by other UniFi devices with vendor dualboot support.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-01-19 12:10:43 +08:00
David Bauer
aa75db53e8 rockchip: use stable MAC-address for NanoPi R2S
The NanoPi R2S does not have a board specific MAC address written inside
e.g. an EEPROM, hence why it is randomly generated on first boot.

The issue with that however is the lack of a driver for the PRNG.
It often results to the same MAC address used on multiple boards by
default, as urngd is not active at this early stage resulting in low
available entropy.

There is however a semi-unique identifier available to us, which is the
CID of the used SD card. It is unique to each SD card, hence we can use
it to generate the MAC address used for LAN and WAN.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-01-19 12:10:04 +08:00
Rafał Miłecki
7ac6940264 bcm63xx-cfe: enable package for bcm4908
bcm4908 target needs to include cferam images in firmware files too

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-19 12:06:58 +08:00
Rafał Miłecki
bd2df8084e firmware-utils: bcm4908img: tool adding BCM4908 image tail
Flashing image with BCM4908 CFE bootloader requires specific firmware
format. It needs 20 extra bytes with magic numbers and CRC32 appended.

This tools allows appending such a tail to the specified image and also
verifying CRC32 of existing BCM4908 image.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-19 12:06:30 +08:00
CN_SZTL
c06e7b4bfe Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-17 00:30:24 +08:00
CN_SZTL
4ceedc3f17 Merge Mainline
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-16 18:13:19 +08:00
Marty Jones
f450acefb0 uboot-rockchip: update to v2021.01
Update the U-Boot to version v2021.01.

Run-tested: FriendlyARM NanoPi R2S
            Radxa Rock Pi 4
            Pine64 RockPro64

Signed-off-by: Marty Jones <mj8263788@gmail.com>
[format commit message]
Signed-off-by: David Bauer <mail@david-bauer.net>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-16 17:59:55 +08:00
Rui Salvaterra
f88619a767 ramips: mt7621: refresh the kernel config
The removed config symbols are already enabled by the generic kernel
configuration (or by default), while the added ones are forcefully
enabled by the specific architecture.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-01-16 12:22:19 +08:00
Adrian Schmutzler
1a99ae195c ath79: remove USB port definition for TP-Link TL-WR810N v1
The USB port definition is only needed when it is linked to a USB
LED. Since there is none for this device, we might as well remove
the port definition.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-16 12:21:58 +08:00
Russell Senior
dd8a8735f6 ath79: Add support for Ubiquiti Bullet AC
CPU:         Atheros AR9342 rev 3 SoC
RAM:         64 MB DDR2
Flash:       16 MB NOR SPI
WLAN 2.4GHz: Atheros AR9342 v3 (ath9k)
WLAN 5.0GHz: QCA988X
Ports:       1x GbE

Flashing procedure is identical to other ubnt devices.
https://openwrt.org/toh/ubiquiti/common

Flashing through factory firmware
1. Ensure firmware version v8.7.0 is installed.
   Up/downgrade to this exact version.
2. Patch fwupdate.real binary using
   `hexdump -Cv /bin/ubntbox | sed 's/14 40 fe 27/00 00 00 00/g' | \
    hexdump -R > /tmp/fwupdate.real`
3. Make the patched fwupdate.real binary executable using
   `chmod +x /tmp/fwupdate.real`
4. Copy the squashfs factory image to /tmp on the device
5. Flash OpenWrt using `/tmp/fwupdate.real -m <squashfs-factory image>`
6. Wait for the device to reboot
(copied from Ubiquiti NanoBeam AC and modified)

Flashing from serial console
1. Connect serial console (115200 baud)
2. Connect ethernet to a network with a TFTP server, through a
   passive PoE injector.
3. Press a key to obtain a u-boot prompt
4. Set your TFTP server's ip address, with:
   setenv serverip <tftp-server-address>
5. Set the Bullet AC's ip address, with:
   setenv ipaddr <bullet-ac-address>
6. Set the boot file, with:
   setenv bootfile <name-of-initramfs-binary-on-tftp-server>
7. Fetch the binary with tftp:
   tftpboot
8. Boot the initramfs binary:
   bootm
9. From the initramfs, fetch the sysupgrade binary, and flash it with
   sysupgrade.

The Bullet AC is identified as a 2WA board by Ubiquiti. As such, the UBNT_TYPE
must match from the "Flashing through factory firmware" install instructions
to work.

Phy0 is QCA988X which can tune either band (2.4 or 5GHz). Phy1 is AR9342,
on which 5GHz is disabled.  It isn't currently known whether phy1 is
routed to the N connector at all.

Signed-off-by: Russell Senior <russell@personaltelco.net>
2021-01-16 12:21:35 +08:00
Sungbo Eo
831eabb6e1 kernel: drop empty kmod-ledtrig-* packages
The following four led triggers are enabled in generic config.

* kmod-ledtrig-default-on
* kmod-ledtrig-heartbeat
* kmod-ledtrig-netdev
* kmod-ledtrig-timer

Drop the packages and remove them from DEVICE_PACKAGES.
There's no other package depending on them in this repo.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-01-16 12:20:58 +08:00
Sungbo Eo
0739227c91 treewide: do not disable LED triggers in target config
Those targets have already enabled some other LED triggers, so enabling
a few more won't be a big problem.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-01-16 12:10:23 +08:00
Sungbo Eo
3e5236fa6c kernel: enable CONFIG_LEDS_TRIGGER_HEARTBEAT
The heartbeat trigger is used by luci-mod-system, which is installed
as a part of the standard luci package set. It seems the LED trigger
will be required quite often, so let's enable it by default.

This increases uncompressed kernel size by about 100 bytes on ath79/generic.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-01-16 12:10:00 +08:00
Sungbo Eo
db40add238 kernel: update kmod-thermal package
CONFIG_THERMAL option was changed to boolean in upstream linux commit
554b3529fe01 ("thermal/drivers/core: Remove the module Kconfig's option").
Switch it to 'y' and remove FILES and AUTOLOAD for non-existant module file.

And update the descripton text for the package as in upstream linux commit
eb8504620381 ("thermal: Rephrase the Kconfig text for thermal").

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2021-01-16 12:09:32 +08:00
John Audia
7a540a9945 kernel: bump 5.4 to 5.4.89
All modification made by update_kernel.sh in a fresh clone without
existing toolchains.

Build system: x86_64
Build-tested: ipq806x/R7800, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Curtis Deptuck <curtdept@me.com> [x86/64]
2021-01-16 12:05:41 +08:00
Rui Salvaterra
d48d1015e8 kernel: make lwtunnel support optional
Not everyone will want to bloat their kernel by 24 kiB for such a niche
feature.

Fixes: a1a7f3274e "kernel: enable SRv6 support by
enabling lwtunnel"

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-01-16 12:04:33 +08:00
Rafał Miłecki
b28888c4aa bcm4908: prepend kernel images with a custom header
It's required for CFE to accept kernel.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-16 12:03:51 +08:00
Rafał Miłecki
1b08080de3 firmware-utils: bcm4908kernel: tool adding BCM4908 kernel header
BCM4908 CFE bootloader requires kernel to be prepended with a custom
header. This simple tool implements support for such headers.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-16 12:02:55 +08:00
Rafał Miłecki
526e44d187 bcm4908: backport brcmstb USB PHY driver changes
This includes BCM4908 support

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-15 12:05:49 +08:00
Etan Kissling
540e85bc6c nf-conntrack: allow querying conntrack info in nfqueue
This allows libnetfilter_queue to access connection tracking information
by requesting NFQA_CFG_F_CONNTRACK. Connection tracking information is
provided in the NFQA_CT attribute.
CONFIG_NETFILTER_NETLINK_GLUE_CT enables the interaction between
nf_queue and nf_conntrack_netlink. Without this option, trying to access
connection tracking information results in "Operation not supported".

Signed-off-by: Etan Kissling <etan_kissling@apple.com>
2021-01-14 12:09:13 +08:00
Andy Walsh
a6f7e99f87 kernel: drop unneeded kernel version dependency
The current master only supports kernel 5.4, and there is no reason
to remove KERNEL_IO_URING for future kernels.

Drop the unneeded dependency.

Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
[improve commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-14 12:08:40 +08:00
Rafał Miłecki
0b77d2a821 bcm4908: backport BCM4908 integrated switch initial support
Upstream driver supports bridging ports. There is no support for
crossbar setup or CPU port(s) yet.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-14 12:06:43 +08:00
Rafał Miłecki
26b89f874f bcm4908: backport PMB (Power Management Bus) driver
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-14 12:06:21 +08:00
Rafał Miłecki
de3e2d9787 bcm4908: add simple PCIe reset controller support
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-13 12:27:03 +08:00
Rafał Miłecki
1e1542ec5c bcm4908: backport upstream DTS patches
1. Netgear R8000P DTS file
2. NAND fix
3. PCIe reset block
4. Integrated switch
5. PMB block

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-13 12:26:35 +08:00
Rafał Miłecki
b0ce35abaa bcm4908: initial work on the Broadcom BCM4908 target
BCM4906, BCM4908 and BCM49408 are SoCs with 64 bit ARMv8 B53 CPUs.
Upstream Linux is slowly getting support for that SoCs family so it
makes sense to add target for it.

This prepares initial support for:

1. Asus GT-AC5300
BCM4908 based device (4 CPUs) with 1024 MiB RAM, NAND, 8 LAN ports.

2. Netgear R8000P
BCM4906 based device (2 CPUs) with 512 MiB RAM, NAND, 4 LAN ports.

Flashing info will come later as we learn how to generate proper images.

It isn't usable yet (it only produces a bootable kernel) so "source-only"
is used.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2021-01-13 12:26:09 +08:00
Nick Hainke
208c69a51b kernel: enable SRv6 support by enabling lwtunnel
Enable the ability to use segment routing based on IPv6. It allows the
packet to specify a path that the packet should take through the
network.

Lwtunnel allow an easy encapsulation of a package. You can just install
ip-full package and use it:

  ip -6 route add  2003::/64 dev eth0 encap seg6 mode encap \
    segs 2001::1,2002::2

An IPv6 package looks like this:
  [IPv6 HDR][IPv6 RH][IPv6 HDR][Data...]

Netifd support:
  https://git.openwrt.org/?p=project/netifd.git;
     a=commit;h=458b1a7e9473c150a40cae5d8be174f4bb03bd39

Increases imagesize by 24.125 KiB. Therefore, only enable for devices
with enough flash.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-01-13 12:25:36 +08:00
David Bauer
3284b39c30 rockchip: add missing Kconfig symbols
When compiling with CONFIG_ALL_KMODS enabled, compilation might stall
due to unset rockchip-specific config symbols. Disable these to avoid
stalling this step.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-01-11 21:01:06 +08:00
CN_SZTL
bf697e03ef Merge Mainline 2021-01-11 20:58:17 +08:00
CN_SZTL
6806d8ecea [HOTFIX] Merge Mainline iptables fixes 2021-01-11 00:22:23 +08:00
CN_SZTL
11ba4ce07b Merge Mainline 2021-01-10 21:36:13 +08:00
Florian Fainelli
07519a2e34 kernel-defaults: Manage the enabling/disabling of ZSTD
Linux 5.9 introduces support for ZSTD ramdisk and initrd compression,
make sure we enable/disable the relevant options when building an
initramfs enabled kernel.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2021-01-10 21:30:05 +08:00
Florian Fainelli
4f494164cb kernel-defaults: Delete external source tree user_headers
When we use an external kernel tree which may not have been fully
cleaned, there may be user_headers left which do not match the target
architecture, leading to build failures for packages that do an explicit
inclusion of user_headers (such as iproute2 or iptables). Make sure we
delete them while preparing the directory.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2021-01-10 21:29:59 +08:00
CN_SZTL
33e4a1c124 Merge Mainline 2021-01-10 01:48:10 +08:00
CN_SZTL
093f5840b5 Merge Mainline 2021-01-09 23:43:09 +08:00
ericsnow911
1d4cca095a ramips: fix LEDs status for XiaoMi R3P 2021-01-09 21:10:45 +08:00
CN_SZTL
8f0a48a9a6 Merge Mainline 2021-01-09 17:09:00 +08:00
CN_SZTL
e9825ca5bd rockchip: remove redundant usb-net dependencies 2021-01-09 17:07:45 +08:00
CN_SZTL
5cc1d3df78 rockchip: improve support for NanoPi R4S
- enable sd ultra-high speeds
- format style

Fixes: cd7fd0c77b ("rockchip: add NanoPi R4S support")

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-09 16:45:53 +08:00
Tomasz Maciej Nowak
64165c388f ath79: airtight c-75: use second flash chip
The flash capacity is divided in two flash chips and currently only
first is used. Increase available space for OpenWrt by additional 16 MiB
using mtd-concat driver. Because U-Boot might not be able to load kernel
image spanned through two flash chips, the size of kernel is limited
to space available on first first chip.

Cc: Vladimir Georgievsky <vladimir.georgievsky@yahoo.com>
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-01-09 16:39:29 +08:00
Martin Blumenstingl
abf73b0e66 ath79: add support for the Belkin F9K1115 v2 (AC1750 DB Wi-Fi)
This device has (almost?) identical hardware to the F9J1108 v2 but uses
a different firmware magic and model number.

Specifications:

SoC: QCA9558
CPU: 720 MHz
Flash: 16 MiB NOR
RAM: 128 MiB
WiFi 2.4 GHz: QCA9558-AT4A 3x3 MIMO 802.11b/g/n
WiFi 5 GHz: QCA9880-2R4E 3x3 MIMO 802.11a/n/ac
Ethernet: 4x LAN and 1x WAN (all 1Gbit/s ports)
USB: 1 x USB 2.0 (lower), 1 x USB 3.0 (upper)

MAC addresses based on OEM firmware:

Interface   Address   Location
---------   -------   --------
lan         *:5A      sometimes in 0x6
wan         *:5B      0x0
2.4Ghz      *:5A      0x1002
5Ghz        As per mini PCIe EEPROM

Flashing instructions:

The factory.bin can be flashed via the Belkin web UI or via the uboot
HTTP upgrade page (which is by default listening on 192.168.2.1). Once
the factory.bin has been written, sysupgrade.bin will work as usual.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2021-01-09 16:39:13 +08:00
Michael Pratt
37b38d6e01 ath79: move small-flash Engenius boards to tiny
This moves some of the Engenius boards from generic to tiny:

 - EAP350 v1
 - ECB350 v1
 - ENH202 v1

For these, factory.bin builds are already failing on master
branch because of the unique situation for these boards:

 - 8 MB flash
 - an extra "failsafe" image for recovery
 - TFTP does not work (barely possible with 600 MTU)
 - bootloader loads image from a longer flash offset
 - 1 eraseblock each needed for OKLI kernel loader and fake rootfs
 - using mtd-concat to make use of remaining space...

The manual alternative would be removing the failsafe partition.
However this comes with the risk of extremely difficult recovery
if a flash ever fails because TFTP on the bootloader is bugged.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
[improve commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-09 16:38:25 +08:00
Martin Blumenstingl
46ec43607d ath79: create shared DTSI/definition for Belkin F9J1108/F9K1115 v2
Belkin F9J1108 v2 and F9K1115 v2 are (seemingly) identical hardware
with different model numbers. Extract all non-device specific code to a
common .dtsi so it can be re-used when adding support for the
F9K1115 v2.

Similar to the .dtsi most of the image building recipe code can be
re-used. Move everything except the device model, edimax header magic
and edimax header model into a shared build recipe.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
[drop duplicate TARGET_DEVICES, add EDIMAX_* to DEVICE_VARS, edit title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-09 16:37:37 +08:00
Michael Pratt
45d66945a4 ath79: add support for Senao Engenius EAP350 v1
FCC ID: U2M-EAP350

Engenius EAP350 is a wireless access point with 1 gigabit PoE ethernet port,
2.4 GHz wireless, external ethernet switch, and 2 internal antennas.

Specification:

  - AR7242 SOC
  - AR9283 WLAN			(2.4 GHz, 2x2, PCIe on-board)
  - AR8035-A switch		(GbE with 802.3af PoE)
  - 40 MHz reference clock
  - 8 MB FLASH			MX25L6406E
  - 32 MB RAM			EM6AA160TSA-5G
  - UART at J2			(populated)
  - 3 LEDs, 1 button		(power, eth, 2.4 GHz) (reset)
  - 2 internal antennas

MAC addresses:

  MAC address is labeled as "MAC"
  Only 1 address on label and in flash
  The OEM software reports these MACs for the ifconfig

  eth0	MAC	*:0c	art 0x0
  phy0	---	*:0d	---

Installation:

  2 ways to flash factory.bin from OEM:

  - if you get Failsafe Mode from failed flash:
      only use it to flash Original firmware from Engenius
      or risk kernel loop or halt which requires serial cable

  Method 1: Firmware upgrade page:

    OEM webpage at 192.168.10.1
    username and password "admin"
    Navigate to "Upgrade Firmware" page from left pane
    Click Browse and select the factory.bin image
    Upload and verify checksum
    Click Continue to confirm and wait 3 minutes

  Method 2: Serial to load Failsafe webpage:

    After connecting to serial console and rebooting...
    Interrupt uboot with any key pressed rapidly
    execute `run failsafe_boot` OR `bootm 0x9f670000`
    wait a minute
    connect to ethernet and navigate to
    "192.168.1.1/index.htm"
    Select the factory.bin image and upload
    wait about 3 minutes

Return to OEM:

  If you have a serial cable, see Serial Failsafe instructions
  otherwise, uboot-env can be used to make uboot load the failsafe image

  *DISCLAIMER*
  The Failsafe image is unique to Engenius boards.
  If the failsafe image is missing or damaged this will not work
  DO NOT downgrade to ar71xx this way, it can cause kernel loop or halt

  ssh into openwrt and run
  `fw_setenv rootfs_checksum 0`
  reboot, wait 3 minutes
  connect to ethernet and navigate to 192.168.1.1/index.htm
  select OEM firmware image from Engenius and click upgrade

Format of OEM firmware image:

  The OEM software of EAP350 is a heavily modified version
  of Openwrt Kamikaze. One of the many modifications
  is to the sysupgrade program. Image verification is performed
  simply by the successful ungzip and untar of the supplied file
  and name check and header verification of the resulting contents.
  To form a factory.bin that is accepted by OEM Openwrt build,
  the kernel and rootfs must have specific names...

    openwrt-senao-eap350-uImage-lzma.bin
    openwrt-senao-eap350-root.squashfs

  and begin with the respective headers (uImage, squashfs).
  Then the files must be tarballed and gzipped.
  The resulting binary is actually a tar.gz file in disguise.
  This can be verified by using binwalk on the OEM firmware images,
  ungzipping then untaring.

  The OEM upgrade script is at /etc/fwupgrade.sh

  Later models in the EAP series likely have a different platform
  and the upgrade and image verification process differs.

  OKLI kernel loader is required because the OEM software
  expects the kernel to be no greater than 1024k
  and the factory.bin upgrade procedure would
  overwrite part of the kernel when writing rootfs.

Note on PLL-data cells:

  The default PLL register values will not work
  because of the external AR8035-A switch between
  the SOC and the ethernet PHY chips.

  For AR724x series, the PLL register for GMAC0
  can be seen in the DTSI as 0x2c.
  Therefore the PLL register can be read from uboot
  for each link speed after attempting tftpboot
  or another network action using that link speed
  with `md 0x1805002c 1`.

  uboot did not have a good value for 1 GBps
  so it was taken from other similar DTS file.

Tested from master, all link speeds functional

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-01-09 16:31:30 +08:00
Michael Pratt
f219058957 ath79: add support for Senao Engenius EAP600
FCC ID: A8J-EAP600

Engenius EAP600 is a wireless access point with 1 gigabit ethernet port,
dual-band wireless, external ethernet switch, 4 internal antennas
and 802.3af PoE.

Specification:

  - AR9344 SOC			(5 GHz, 2x2, WMAC)
  - AR9382 WLAN			(2.4 GHz, 2x2, PCIe on-board)
  - AR8035-A switch		(GbE with 802.3af PoE)
  - 40 MHz reference clock
  - 16 MB FLASH			MX25L12845EMI-10G
  - 2x 64 MB RAM		NT5TU32M16DG
  - UART at H1			(populated)
  - 5 LEDs, 1 button		(power, eth, 2.4 GHz, 5 GHz, wps) (reset)
  - 4 internal antennas

MAC addresses:

  MAC addresses are labeled MAC1 and MAC2
  The MAC address in flash is not on the label
  The OEM software reports these MACs for the ifconfig

  eth0	MAC 1	*:5e	---
  phy1	MAC 2	*:5f	---	(2.4 GHz)
  phy0	-----	*:60	art 0x0	(5 GHz)

Installation:

  2 ways to flash factory.bin from OEM:

  - if you get Failsafe Mode from failed flash:
      only use it to flash Original firmware from Engenius
      or risk kernel loop or halt which requires serial cable

  Method 1: Firmware upgrade page:

    OEM webpage at 192.168.1.1
    username and password "admin"
    Navigate to "Upgrade Firmware" page from left pane
    Click Browse and select the factory.bin image
    Upload and verify checksum
    Click Continue to confirm and wait 3 minutes

  Method 2: Serial to load Failsafe webpage:

    After connecting to serial console and rebooting...
    Interrupt uboot with any key pressed rapidly
    execute `run failsafe_boot` OR `bootm 0x9fdf0000`
    wait a minute
    connect to ethernet and navigate to
    "192.168.1.1/index.htm"
    Select the factory.bin image and upload
    wait about 3 minutes

Return to OEM:

  If you have a serial cable, see Serial Failsafe instructions
  otherwise, uboot-env can be used to make uboot load the failsafe image

  *DISCLAIMER*
  The Failsafe image is unique to Engenius boards.
  If the failsafe image is missing or damaged this will not work
  DO NOT downgrade to ar71xx this way, it can cause kernel loop or halt

  ssh into openwrt and run
  `fw_setenv rootfs_checksum 0`
  reboot, wait 3 minutes
  connect to ethernet and navigate to 192.168.1.1/index.htm
  select OEM firmware image from Engenius and click upgrade

Format of OEM firmware image:

  The OEM software of EAP600 is a heavily modified version
  of Openwrt Kamikaze. One of the many modifications
  is to the sysupgrade program. Image verification is performed
  simply by the successful ungzip and untar of the supplied file
  and name check and header verification of the resulting contents.
  To form a factory.bin that is accepted by OEM Openwrt build,
  the kernel and rootfs must have specific names...

    openwrt-senao-eap600-uImage-lzma.bin
    openwrt-senao-eap600-root.squashfs

  and begin with the respective headers (uImage, squashfs).
  Then the files must be tarballed and gzipped.
  The resulting binary is actually a tar.gz file in disguise.
  This can be verified by using binwalk on the OEM firmware images,
  ungzipping then untaring.

  The OEM upgrade script is at /etc/fwupgrade.sh

  Later models in the EAP series likely have a different platform
  and the upgrade and image verification process differs.

  OKLI kernel loader is required because the OEM software
  expects the kernel to be no greater than 1536k
  and the factory.bin upgrade procedure would
  overwrite part of the kernel when writing rootfs.

Note on PLL-data cells:

  The default PLL register values will not work
  because of the external AR8035-A switch between
  the SOC and the ethernet PHY chips.

  For AR934x series, the PLL register for GMAC0
  can be seen in the DTSI as 0x2c.
  Therefore the PLL register can be read from uboot
  for each link speed after attempting tftpboot
  or another network action using that link speed
  with `md 0x1805002c 1`.

  Unfortunately uboot did not have the best values
  so they were taken from other similar DTS files.

Tested from master, all link speeds functional

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-01-09 16:31:24 +08:00
Michael Pratt
3f13892b9e ath79: add support for Senao Engenius ECB600
FCC ID: A8J-ECB600

Engenius ECB600 is a wireless access point with 1 gigabit PoE ethernet port,
dual-band wireless, external ethernet switch, and 4 external antennas.

Specification:

  - AR9344 SOC			(5 GHz, 2x2, WMAC)
  - AR9382 WLAN			(2.4 GHz, 2x2, PCIe on-board)
  - AR8035-A switch		(GbE with 802.3af PoE)
  - 40 MHz reference clock
  - 16 MB FLASH			MX25L12845EMI-10G
  - 2x 64 MB RAM		NT5TU32M16DG
  - UART at H1			(populated)
  - 4 LEDs, 1 button		(power, eth, 2.4 GHz, 5 GHz) (reset)
  - 4 external antennas

MAC addresses:

  MAC addresses are labeled MAC1 and MAC2
  The MAC address in flash is not on the label
  The OEM software reports these MACs for the ifconfig

  phy1	MAC 1	*:52	---	(2.4 GHz)
  phy0	MAC 2	*:53	---	(5 GHz)
  eth0	-----	*:54	art 0x0

Installation:

  2 ways to flash factory.bin from OEM:

  - if you get Failsafe Mode from failed flash:
      only use it to flash Original firmware from Engenius
      or risk kernel loop or halt which requires serial cable

  Method 1: Firmware upgrade page:

    OEM webpage at 192.168.1.1
    username and password "admin"
    Navigate to "Upgrade Firmware" page from left pane
    Click Browse and select the factory.bin image
    Upload and verify checksum
    Click Continue to confirm and wait 3 minutes

  Method 2: Serial to load Failsafe webpage:

    After connecting to serial console and rebooting...
    Interrupt uboot with any key pressed rapidly
    execute `run failsafe_boot` OR `bootm 0x9fdf0000`
    wait a minute
    connect to ethernet and navigate to
    "192.168.1.1/index.htm"
    Select the factory.bin image and upload
    wait about 3 minutes

Return to OEM:

  If you have a serial cable, see Serial Failsafe instructions
  otherwise, uboot-env can be used to make uboot load the failsafe image

  *DISCLAIMER*
  The Failsafe image is unique to Engenius boards.
  If the failsafe image is missing or damaged this will not work
  DO NOT downgrade to ar71xx this way, it can cause kernel loop or halt

  ssh into openwrt and run
  `fw_setenv rootfs_checksum 0`
  reboot, wait 3 minutes
  connect to ethernet and navigate to 192.168.1.1/index.htm
  select OEM firmware image from Engenius and click upgrade

Format of OEM firmware image:

  The OEM software of ECB600 is a heavily modified version
  of Openwrt Kamikaze. One of the many modifications
  is to the sysupgrade program. Image verification is performed
  simply by the successful ungzip and untar of the supplied file
  and name check and header verification of the resulting contents.
  To form a factory.bin that is accepted by OEM Openwrt build,
  the kernel and rootfs must have specific names...

    openwrt-senao-ecb600-uImage-lzma.bin
    openwrt-senao-ecb600-root.squashfs

  and begin with the respective headers (uImage, squashfs).
  Then the files must be tarballed and gzipped.
  The resulting binary is actually a tar.gz file in disguise.
  This can be verified by using binwalk on the OEM firmware images,
  ungzipping then untaring.

  The OEM upgrade script is at /etc/fwupgrade.sh

  Later models in the ECB series likely have a different platform
  and the upgrade and image verification process differs.

  OKLI kernel loader is required because the OEM software
  expects the kernel to be no greater than 1536k
  and the factory.bin upgrade procedure would
  overwrite part of the kernel when writing rootfs.

Note on PLL-data cells:

  The default PLL register values will not work
  because of the external AR8035-A switch between
  the SOC and the ethernet PHY chips.

  For AR934x series, the PLL register for GMAC0
  can be seen in the DTSI as 0x2c.
  Therefore the PLL register can be read from uboot
  for each link speed after attempting tftpboot
  or another network action using that link speed
  with `md 0x1805002c 1`.

  Unfortunately uboot did not have the best values
  so they were taken from other similar DTS files.

Tested from master, all link speeds functional

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-01-09 16:31:14 +08:00
Michael Pratt
0bff1678a0 ath79: add support for Senao Engenius ECB350 v1
FCC ID: A8J-ECB350

Engenius ECB350 v1 is an indoor wireless access point with a gigabit ethernet port,
2.4 GHz wireless, external antennas, and PoE.

**Specification:**

  - AR7242 SOC
  - AR9283 WLAN			2.4 GHz (2x2), PCIe on-board
  - AR8035-A switch		RGMII, GbE with 802.3af PoE
  - 40 MHz reference clock
  - 8 MB FLASH			25L6406EM2I-12G
  - 32 MB RAM
  - UART at J2			(populated)
  - 2 external antennas
  - 3 LEDs, 1 button		(power, lan, wlan) (reset)

**MAC addresses:**

  MACs are labeled as WLAN and WAN
  vendor MAC addresses in flash are duplicate

  phy0	WLAN	*:b8	---
  eth0	WAN	*:b9	art 0x0/0x6

**Installation:**

  - if you get Failsafe Mode from failed flash:
      only use it to flash Original firmware from Engenius
      or risk kernel loop or halt which requires serial cable

  Method 1: Firmware upgrade page:

  OEM webpage at 192.168.1.1
  username and password "admin"
  Navigate to "Firmware" page from left pane
  Click Browse and select the factory.bin image
  Upload and verify checksum
  Click Continue to confirm and wait 3 minutes

  Method 2: Serial to load Failsafe webpage:

  After connecting to serial console and rebooting...
  Interrupt uboot with any key pressed rapidly
  execute `run failsafe_boot` OR `bootm 0x9f670000`
  wait a minute
  connect to ethernet and navigate to
  "192.168.1.1/index.htm"
  Select the factory.bin image and upload
  wait about 3 minutes

**Return to OEM:**

  If you have a serial cable, see Serial Failsafe instructions
  otherwise, uboot-env can be used to make uboot load the failsafe image

  *DISCLAIMER*
  The Failsafe image is unique to Engenius boards.
  If the failsafe image is missing or damaged this will not work
  DO NOT downgrade to ar71xx this way, it can cause kernel loop or halt

  ssh into openwrt and run
  `fw_setenv rootfs_checksum 0`
  reboot, wait 3 minutes
  connect to ethernet and navigate to 192.168.1.1/index.htm
  select OEM firmware image from Engenius and click upgrade

**TFTP recovery** (unstable / not reliable):

  rename initramfs to 'vmlinux-art-ramdisk'
  make available on TFTP server at 192.168.1.101
  power board while holding or pressing reset button repeatedly

  NOTE: for some Engenius boards TFTP is not reliable
  try setting MTU to 600 and try many times

**Format of OEM firmware image:**

  The OEM software of ECB350 v1 is a heavily modified version
  of Openwrt Kamikaze. One of the many modifications
  is to the sysupgrade program. Image verification is performed
  by the successful ungzip and untar of the supplied file
  and name check and header verification of the resulting contents.
  To form a factory.bin that is accepted by OEM Openwrt build,
  the kernel and rootfs must have specific names
  and begin with the respective headers (uImage, squashfs).
  Then the files must be tarballed and gzipped.
  The resulting binary is actually a tar.gz file in disguise.
  This can be verified by using binwalk on the OEM firmware images,
  ungzipping then untaring.

  The OEM upgrade script is at /etc/fwupgrade.sh.

  OKLI kernel loader is required because the OEM software
  expects the kernel size to be no greater than 1536k
  and otherwise the factory.bin upgrade procedure would
  overwrite part of the kernel when writing rootfs.
  The factory upgrade script follows the original mtd partitions.

**Note on PLL-data cells:**

  The default PLL register values will not work
  because of the AR8035 switch between
  the SOC and the ethernet port.

  For AR724x series, the PLL register for GMAC0
  can be seen in the DTSI as 0x2c.
  Therefore the PLL register can be read from u-boot
  for each link speed after attempting tftpboot
  or another network action using that link speed
  with `md 0x1805002c 1`

  However the registers that u-boot sets are not ideal and sometimes wrong...
  the at803x driver supports setting the RGMII clock/data delay on the PHY side.
  This way the pll-data register only needs to handle invert and phase.

  for this board no extra adjustements are needed on the MAC side
  all link speeds functional

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-01-09 16:28:50 +08:00
Michael Pratt
b5428e98d6 ath79: enable factory.bin and adjust profile of ECB1750
factory.bin was not tested for ECB1750...
but it was tested on it's sister board ECB1200

The product ID for the header can be verified by inspecting
the header of OEM images, or in the u-boot environment.

Also:

  - the LAN LED is controlled directly by the AR8035 switch
  - the labelled (first increment) MAC for both is ethaddr (eth0)
  - list packages in alphabetical order
  - use default sysupgrade.bin recipe

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-01-09 16:28:43 +08:00
Michael Pratt
c70655e28f ath79: add support for Senao Engenius ECB1200
FCC ID: A8J-ECB1200

Engenius ECB1200 is an indoor wireless access point with a GbE port,
2.4 GHz and 5 GHz wireless, external antennas, and 802.3af PoE.

**Specification:**

  - QCA9557 SOC			MIPS, 2.4 GHz (2x2)
  - QCA9882 WLAN		PCIe card, 5 GHz (2x2)
  - AR8035-A switch		RGMII, GbE with 802.3af PoE, 25 MHz clock
  - 40 MHz reference clock
  - 16 MB FLASH			25L12845EMI-10G
  - 2x 64 MB RAM		1538ZFZ V59C1512164QEJ25
  - UART at JP1			(unpopulated, RX shorted to ground)
  - 4 external antennas
  - 4 LEDs, 1 button		(power, eth, wifi2g, wifi5g) (reset)

**MAC addresses:**

  MAC Addresses are labeled as ETH and 5GHZ
  U-boot environment has the vendor MAC addresses
  MAC addresses in ART do not match vendor

  eth0	ETH	*:5c	u-boot-env ethaddr
  phy0	5GHZ	*:5d	u-boot-env athaddr
  ----	----	????	art 0x0/0x6

**Installation:**

  Method 1: Firmware upgrade page:

  OEM webpage at 192.168.1.1
  username and password "admin"
  Navigate to "Firmware" page from left pane
  Click Browse and select the factory.bin image
  Upload and verify checksum
  Click Continue to confirm and wait 3 minutes

  Method 2: Serial to load Failsafe webpage:

  After connecting to serial console and rebooting...
  Interrupt uboot with any key pressed rapidly

  (see TFTP recovery)
  perform a sysupgrade

**Serial Access:**

  the RX line on the board for UART is shorted to ground by resistor R176
  therefore it must be removed to use the console
  but it is not necessary to remove to view boot log
  optionally, R175 can be replaced with a solder bridge short

  the resistors R175 and R176 are next to the UART pinout at JP1

**Return to OEM:**

  If you have a serial cable, see Serial Failsafe instructions

  Unlike most Engenius boards, this does not have a 'failsafe' image
  the only way to return to OEM is TFTP or serial access to u-boot

**TFTP recovery:**

  Unlike most Engenius boards, TFTP is reliable here

  rename initramfs-kernel.bin to 'ap.bin'
  make the file available on a TFTP server at 192.168.1.10
  power board while holding or pressing reset button repeatedly

  or with serial access:
  run `tftpboot` or `run factory_boot` with initramfs-kernel.bin
  then `bootm` with the load address

**Format of OEM firmware image:**

  The OEM software of ECB1200 is a heavily modified version
  of Openwrt Altitude Adjustment 12.09.

  This Engenius board, like ECB1750, uses a proprietary header
  with a unique Product ID. The header for factory.bin is
  generated by the mksenaofw program included in openwrt.

**Note on PLL-data cells:**

  The default PLL register values will not work
  because of the AR8035 switch between
  the SOC and the ethernet port.

  For QCA955x series, the PLL registers for eth0 and eth1
  can be see in the DTSI as 0x28 and 0x48 respectively.
  Therefore the PLL registers can be read from uboot
  for each link speed after attempting tftpboot
  or another network action using that link speed
  with `md 0x18050028 1` and `md 0x18050048 1`.

  However the registers that u-boot sets are not ideal and sometimes wrong...
  the at803x driver supports setting the RGMII clock/data delay on the PHY side.
  This way the pll-data register only needs to handle invert and phase.

  for this board clock invert is needed on the MAC side
  all link speeds functional

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-01-09 16:26:53 +08:00
Tomasz Maciej Nowak
6a16156857 ath79: add support for AirTight C-75
AirTight Networks (later renamed to Mojo Networks) C-75 is a dual-band
access point, also sold by WatchGuard under name AP320.

Specification
SoC: Qualcomm Atheros QCA9550
RAM: 128 MiB DDR2
Flash: 2x 16 MiB SPI NOR
WIFI: 2.4 GHz 3T3R integrated
      5 GHz 3T3R QCA9890 oversized Mini PCIe card
Ethernet: 2x 10/100/1000 Mbps QCA8334
          port labeled LAN1 is PoE capable (802.3at)
USB: 1x 2.0
LEDs: 7x which two are GPIO controlled, four switch controlled, one
      controlled by wireless driver
Buttons: 1x GPIO controlled
Serial: RJ-45 port, Cisco pinout
        baud: 115200, parity: none, flow control: none
JTAG: Yes, pins marked J1 on PCB

Installation
1. Prepare TFTP server with OpenWrt initramfs-kernel image.
2. Connect to one of LAN ports.
3. Connect to serial port.
4. Power on the device and when prompted to stop autoboot, hit any key.
5. Adjust "ipaddr" and "serverip" addresses in U-Boot environment, use
   'setenv' to do that, then run following commands:
    tftpboot 0x81000000 <openwrt_initramfs-kernel_image_name>
    bootm 0x81000000
6. Wait about 1 minute for OpenWrt to boot.
7. Transfer OpenWrt sysupgrade image to /tmp directory and flash it
   with:
    sysupgrade -n /tmp/<openwrt_sysupgrade_image_name>
8. After flashing, the access point will reboot to OpenWrt. Wait few
   minutes, until the Power LED stops blinking, then it's ready for
   configuration.

Known issues
Green power LED does not work.

Additional information
The U-Boot fails to initialise ethernet ports correctly when a UART
adapter is attached to UART pins (marked J3 on PCB).

Cc: Vladimir Georgievsky <vladimir.georgievsky@yahoo.com>
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2021-01-09 16:26:46 +08:00
Stijn Segers
b66122951a realtek: add support for ZyXEL GS1900-8HP v1 and v2
The ZyXEL GS1900-8HP is an 8 port gigabit switch with PoE+ support.
There are two versions on the market (v1 & v2) which share similar
specs (same flash size and flash layout, same RAM size, same PoE+ power
envelope) but have a different case and board layout that they each
share with other GS1900 siblings.

The v1 seems to share its PCB and case with non-PoE GS1900-8; as such,
adding support for the GS1900-8 would probably be trivial. The v2 seems
to share its casing and platform with its already supported bigger
brother, the GS1900-10HP - its board looks the same, except for two
holes where the GS1900-10 has its SFP ports.

Like their 10 port sibling, both devices have a dual firmware layout.
Both GS1900-8HP boards have the same 70W PoE+ power budget. In order to
manipulate the PoE+, one needs the rtl83xx-poe package [1].

After careful consideration it was decided to go with separate images
for each version.

Specifications (v1)
-------------------
* SoC:       Realtek RTL8380M 500 MHz MIPS 4KEc
* Flash:     Macronix MX25L12835F 16 MiB
* RAM:       Nanya NT5TU128M8HE-AC 128 MiB DDR2 SDRAM
* Ethernet:  8x 10/100/1000 Mbit
* PoE+:      Broadcom BCM59111KMLG (IEEE 802.3at-2009 compliant, 2x)
* UART:      1 serial header with populated standard pin connector on the
             left side of the PCB, towards the bottom. Pins are labeled:
             + VCC (3.3V)
             + TX
             + RX
             + GND

Specifications (v2)
-------------------
* SoC:       Realtek RTL8380M 500 MHz MIPS 4KEc
* Flash:     Macronix MX25L12835F 16 MiB
* RAM:       Samsung K4B1G0846G 128 MiB DDR3 SDRAM
* Ethernet:  8x 10/100/1000 Mbit
* PoE+:      Broadcom BCM59121B0KMLG (IEEE 802.3at-2009 compliant)
* UART:      1 angled serial header with populated standard pin connector
             accessible from outside through the ventilation slits on the
             side. Pins from top to bottom are clearly marked on the PCB:
             + VCC (3.3V)
             + TX
             + RX
             + GND

Serial connection parameters for both devices: 115200 8N1.

Installation
------------
Instructions are identical to those for the GS1900-10HP and apply both
to the GS1900-8HP v1 and v2 as well.

* Configure your client with a static 192.168.1.x IP (e.g. 192.168.1.10).
* Set up a TFTP server on your client and make it serve the initramfs
  image.
* Connect serial, power up the switch, interrupt U-boot by hitting the
  space bar, and enable the network:
  > rtk network on
* Since the GS1900-10HP is a dual-partition device, you want to keep the
  OEM firmware on the backup partition for the time being. OpenWrt can
  only boot off the first partition anyway (hardcoded in the DTS). To
  make sure we are manipulating the first partition, issue the following
  commands:
  > setsys bootpartition 0
  > savesys
* Download the image onto the device and boot from it:
  > tftpboot 0x84f00000 192.168.1.10:openwrt-realtek-generic-zyxel_gs1900-8hp-v{1,2}-initramfs-kernel.bin
  > bootm
* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:
  > sysupgrade /tmp//tmp/openwrt-realtek-generic-zyxel_gs1900-8hp-v{1,2}-squashfs-sysupgrade.bin

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
[merge PoE case, keep device definitions separate, change all those
hashes in the commit message to something else so they don't get
removed when changing the commit ...]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-09 16:19:46 +08:00
Adrian Schmutzler
007f610b1d realtek: remove model prefix from LED label for ZyXEL GS1900
This is used as fixed status LED, so no migration is needed.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-09 16:19:42 +08:00
Stijn Segers
ee6d8e6750 realtek: introduce shared DTSI for GS1900 series
The ZyXEL GS1900-8HP v1, v2 and GS1900-10HP are all built on a similar
Realtek RTL8380M platform. Create a common DTSI in preparation for
GS1900-8HP support, and switch to the macros defined in rtl838x.dtsi.

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
[drop redundant includes, use &mdio directly, do not replace SFP
ports]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-09 16:19:35 +08:00
Stijn Segers
d7c6801f5a realtek: move memory node to device DTS
Move the memory out of the rtl838x.dtsi and into the device family DTSI
or device DTS if applicable. This aligns with upstream practice.

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
[add missing block for dgs-1210-10p, move block below chosen node]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-09 16:19:15 +08:00
AmadeusGhost
e7a53aaa57 rtl8192du: fix build on arm64 platform 2021-01-09 11:15:00 +08:00
John Audia
10c1005dfd kernel: bump 5.4 to 5.4.87
All modification by update_kernel.sh.

Build system: x86_64
Build-tested: ipq806x/R7800, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Compile-tested [*]: ath79/{generic,tiny}, ipq40xx, octeon,
                    ramips/mt7621, realtek, x86/64.
Run-tested [*]:     ramips/mt7621 (DIR-878 A1, R6800, RT-AC57U),
                    octeon (EdgeRouter Lite).

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
2021-01-09 11:09:29 +08:00
CN_SZTL
fae6e5a577 Merge Mainline 2021-01-08 19:27:02 +08:00
Stijn Segers
995c46ac7a realtek: ZyXEL: spell as done by manufacturer
ZyXEL spells its own name all uppercase with just the Y lowercase. Adapt
the realtek target to follow this (other OpenWrt targets already do so).

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
2021-01-08 16:13:27 +08:00
Adrian Schmutzler
70ea8ef6d9 realtek: remove duplicate '/dts-v1/;' identifier
The identifier is already present in rtl838x.dtsi, and adding it
twice is not only redundant but actually wrong.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-08 16:12:47 +08:00
Stijn Segers
c522d0594f realtek: set PoE power budget for ZyXEL GS1900-10HP
As per the manufacturer's specifications, set the GS1900-10HP PoE power
budget to 77W.

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
2021-01-08 16:12:24 +08:00
Michael Pratt
712475b84b ath79: make Engenius fakeroot partitions read-only
For:

 - ENH202 v1
 - ENS202EXT v1

These boards were committed before it was discovered
that for all Engenius boards with a "failsafe" image,
forcing the failsafe image to load next boot
can be achieved by editing the u-boot environment like:

  `fw_setenv rootfs_checksum 0`

So it's not necessary to delete a partition to boot to failsafe image.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-01-08 16:11:50 +08:00
Koen Vandeputte
b3899cda09 imx6: disable unrequired pcie host driver
imx6 has it's own pcie host driver so we do
not need the one from DW.

This fixes following boot error:

[    0.156913] dw-pcie 1ffc000.pcie: IRQ index 1 not found

Fixes: 6d5291ff72 ("imx6: add support for kernel 5.4")
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2021-01-08 16:10:48 +08:00
Koen Vandeputte
31df86e815 imx6: refresh kernel config
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2021-01-08 16:10:24 +08:00
Koen Vandeputte
0588c90613 imx6: gw52xx: fix duplicate regulator naming
2 regulator descriptions carry identical naming.

This leads to following boot warning:
[    0.173138] debugfs: Directory 'vdd1p8' with parent 'regulator' already present!

Fix this by renaming the one used for audio.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2021-01-08 16:09:49 +08:00
CN_SZTL
d6506b99ce rockchip: refresh upstream patch
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-08 15:41:06 +08:00
CN_SZTL
08b8f002bb Merge Mainline 2021-01-07 19:19:23 +08:00
AmadeusGhost
25b0b5d3bf treewide: fix sysupgrade vars 2021-01-07 14:52:01 +08:00
CN_SZTL
8dbe7b1459 Merge Mainline 2021-01-07 10:00:33 +08:00
Adrian Schmutzler
a9f8f73eeb ath79: keep DTSI files for D-Link SoC-specific
It is good practice to define device tree files based on specific
SoCs. Thus, let's not start to create files that are used across
different architectures.

Duplicate the DTSI file for D-Link DAP-2xxx in order to have one
for qca953x and one for qca955x, respectively.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-07 09:56:03 +08:00
Sebastian Schaper
cd8861ed07 ath79: Fix 02_network setup for D-Link DAP-2660 A1
The device is a one-port, but was set up as two-port by the
default case in 02_network. Fix it.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
[commit title/message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-07 09:55:56 +08:00
Sebastian Schaper
dbdd50750c ath79: add support for D-Link DAP-3320 A1
Specifications:
 * QCA9533, 16 MiB Flash, 64 MiB RAM, 802.11n 2T2R
 * 10/100 Ethernet Port, 802.11af PoE
 * IP55 pole-mountable outdoor case

Installation:
 * Factory Web UI is at 192.168.0.50
   login with 'admin' and blank password, flash factory.bin
 * Recovery Web UI is at 192.168.0.50
   connect network cable, hold reset button during power-on and keep it
   pressed until uploading has started (only required when checksum is ok,
   e.g. for reverting back to oem firmware), flash factory.bin

After flashing factory.bin, additional free space can be reclaimed by
flashing sysupgrade.bin, since the factory image requires some padding
to be accepted for upgrading via OEM Web UI.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
2021-01-07 09:55:53 +08:00
Sebastian Schaper
e68f32a58b ath79: add support for D-Link DAP-2680 A1
Specifications:
 * QCA9558, 16 MiB Flash, 256 MiB RAM, 802.11n 3T3R
 * QCA9984, 802.11ac Wave 2 3T3R
 * Gigabit LAN Port (AR8035), 802.11at PoE

Installation:
 * Factory Web UI is at 192.168.0.50
   login with 'admin' and blank password, flash factory.bin
 * Recovery Web UI is at 192.168.0.50
   connect network cable, hold reset button during power-on and keep it
   pressed until uploading has started (only required when checksum is ok,
   e.g. for reverting back to oem firmware), flash factory.bin

After flashing factory.bin, additional free space can be reclaimed by
flashing sysupgrade.bin, since the factory image requires some padding
to be accepted for upgrading via OEM Web UI.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
2021-01-07 09:55:50 +08:00
Sebastian Schaper
596e3c0aa7 ath79: add support for D-Link DAP-2230 A1
Specifications:
 * QCA9533, 16 MiB Flash, 64 MiB RAM, 802.11n 2T2R
 * 10/100 Ethernet Port, 802.11af PoE

Installation:
 * Factory Web UI is at 192.168.0.50
   login with 'admin' and blank password, flash factory.bin
 * Recovery Web UI is at 192.168.0.50
   connect network cable, hold reset button during power-on and keep it
   pressed until uploading has started (only required when checksum is ok,
   e.g. for reverting back to oem firmware), flash factory.bin

After flashing factory.bin, additional free space can be reclaimed by
flashing sysupgrade.bin, since the factory image requires some padding
to be accepted for upgrading via OEM Web UI.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
2021-01-07 09:55:44 +08:00
Birger Koblitz
5b447946a3 realtek: fix build issues
This fixes the build problems for the REALTEK target by adding a proper
configuration option for the phy module.

Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>
2021-01-06 17:29:12 +08:00
Adrian Schmutzler
1b92c82e88 ath79: fix ethernet-phy label for dlink,dap-2660-a1
The phy label/node name should correspond to the reg property.

While at it, use more common decimal notation for reg property itself.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-01-05 17:16:02 +08:00
CN_SZTL
47e3298b8d rockchip/sunxi: kernel: adjust default coherent_pool to 2MiB
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-02 13:29:03 +08:00
Tianling Shen
fb6cc94a68 Merge Mainline 2021-01-02 12:13:39 +08:00
Rui Salvaterra
51274b67f1 kernel/modules: remove fake users from udptunnel{4,6}
Since we're now able to select CONFIG_NET_UDP_TUNNEL at will, drop the fake
dependencies.

This is a partial revert of commit d7e040f8bc
"kernel: add fake users for udptunnel and iptunnel modules".

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-01-02 12:04:15 +08:00
Rui Salvaterra
95ce1b3613 kernel/hack-5.4: make UDP tunneling user-selectable
UDP tunneling support isn't user-selectable, but it's required by WireGuard
which is, for the time being, an out-of-tree module. We currently work around
this issue by selecting an unrelated module which depends on UDP tunnelling
(VXLAN). This is inconvenient, as it implies this unrelated module needs to be
built-in when doing a monolithic build.

Fix this inconvenience by making UDP tunneling user-selectable in the kernel
configuration.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2021-01-02 12:02:09 +08:00
David Bauer
65cc957ef7 ath79: drop upstreamed patch
This patch was backported to the 5.4 kernel tree as commit
c2d5c4df27e0 at least since release v5.4.28. Since then, it enables RX
an TX ready override twice.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-01-02 12:00:38 +08:00
Adrian Schmutzler
19810e57b2 kernel: bump 5.4 to 5.4.86
Removed upstreamed patches:
  pending-5.4/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch

Manually merged:
  pending-5.4/611-netfilter_match_bypass_default_table.patch
  layerscape/302-dts-0112-arm64-dts-fsl-ls1028a-prepare-dts-for-overlay.patch

Build-tested: ipq806x/R7800, bcm27xx/bcm2711, ath79/{generic,tiny},
              ipq40xx, octeon, ramips/mt7621, realtek, x86/64
Run-tested: ipq806x/R7800, realtek

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: John Audia <graysky@archlinux.us>
Tested-by: Stijn Segers <foss@volatilesystems.org>
2021-01-02 12:00:30 +08:00
CN_SZTL
bea558b7eb netsupport: dirty workaround for sqm-scripts 2021-01-02 00:47:17 +08:00
CN_SZTL
7117b2094c Merge Mainline 2020-12-31 21:38:57 +08:00
CN_SZTL
8acbf8c391 Merge Mainline 2020-12-31 17:55:19 +08:00
Sven Eckelmann
b6a18eb099 ath79: Add support for OpenMesh OM5P
Device specifications:
======================

* Qualcomm/Atheros AR9344 rev 2
* 560/450/225 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 2T2R 5 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + builtin switch port 1
    + used as LAN interface
  - eth1
    + 18-24V passive POE (mode B)
    + used as WAN interface
* 12-24V 1A DC
* internal antennas

WAN/LAN LEDs appear to be wrong in ar71xx and have been swapped here.

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to the
device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
[add LED swap comment]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-31 17:47:57 +08:00
Sven Eckelmann
e2730e2a91 ath79: Add support for OpenMesh OM2P v2
Device specifications:
======================

* Qualcomm/Atheros AR9330 rev 1
* 400/400/200 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 1T1R 2.4 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + builtin switch port 1
    + used as LAN interface
  - eth1
    + 18-24V passive POE (mode B)
    + used as WAN interface
* 12-24V 1A DC
* external antenna

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to
the device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-31 17:47:53 +08:00
Sven Eckelmann
17e871edd9 ath79: Add support for OpenMesh OM2P-LC
Device specifications:
======================

* Qualcomm/Atheros AR9330 rev 1
* 400/400/200 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 1T1R 2.4 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + builtin switch port 1
    + used as LAN interface
  - eth1
    + 18-24V passive POE (mode B)
    + used as WAN interface
* 12-24V 1A DC
* internal antennas

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to
the device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-31 17:47:43 +08:00
Sven Eckelmann
2ffbf16e16 ath79: add support for OpenMesh OM2P-HS v3
Device specifications:
======================

* Qualcomm/Atheros AR9341 rev 1
* 535/400/200 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 2T2R 2.4 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + 802.3af POE
    + builtin switch port 1
    + used as LAN interface
  - eth1
    + 18-24V passive POE (mode B)
    + used as WAN interface
* 12-24V 1A DC
* internal antennas

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to
the device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-31 17:44:06 +08:00
Sven Eckelmann
ba288b2c83 ath79: add support for OpenMesh OM2P-HS v2
Device specifications:
======================

* Qualcomm/Atheros AR9341 rev 1
* 535/400/200 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 2T2R 2.4 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + 802.3af POE
    + builtin switch port 1
    + used as LAN interface
  - eth1
    + 18-24V passive POE (mode B)
    + used as WAN interface
* 12-24V 1A DC
* internal antennas

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to
the device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-31 17:44:02 +08:00
Sven Eckelmann
e8ee9db4df ath79: add support for OpenMesh OM2P-HS v1
Device specifications:
======================

* Qualcomm/Atheros AR9341 rev 1
* 535/400/200 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 2T2R 2.4 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + 802.3af POE
    + builtin switch port 1
    + used as LAN interface
  - eth1
    + 18-24V passive POE (mode B)
    + used as WAN interface
* 12-24V 1A DC
* internal antennas

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to
the device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
[drop redundant status from eth1]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-31 17:43:59 +08:00
Sven Eckelmann
ae223b01cf ath79: increase openmesh sysupgrade copy block size
The upgrade script for the openmesh sysupgrade procedure used always an 1
byte block size. This made it easier to seek the correct position in the CE
image and to make sure the right amount of data was copied. But this also
meant that the reading/writing of data required an excessive amount of
syscalls and copy operations.

A 5.4MB big sysupgrade image on an OM2P-HS v3 needed roughly 120s for the
write operation (170s in total) during the sysupgrade.

But it is possible to reduce this overhead slightly:

* index access to read the file size can be done in single 8 byte chunk
  (while doing the seek with byte granularity) because each size entry is
  example 8 bytes long
* the fwupgrade.cfg can be read as one block (while seeking to its position
  using its actual byte offset) because it should be rather small and fit
  into the RAM easily
* the kernel can be read in 1KB blocks (while seking to its positions using
  its actual byte offset) because the the size of the kernel is always a
  multiple of the NOR flash block size (64KB and 256KB)

This results in a sysupgrade write time of roughly 90s (140s in total).

This could be reduced even further when also using larger chunks for the
rootfs. But the squashfs rootfs image is at the moment always

  (256KB or 64KB) * block + 4 bytes

long. It would be expected that the time for the sysupgrade write could be
reduced to roughly 30s (80s in total) when busybox's dd would support
the iflag count_bytes.

Reported-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-31 17:43:55 +08:00
Sven Eckelmann
4cd822939c ath79: Add support for OpenMesh OM2P-HS v4
Device specifications:
======================

* Qualcomm/Atheros QCA9533 v2
* 650/600/217 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 2T2R 2.4 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + 24V passive POE (mode B)
    + used as WAN interface
  - eth1
    + 802.3af POE
    + builtin switch port 1
    + used as LAN interface
* 12-24V 1A DC
* internal antennas

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to
the device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-31 17:43:50 +08:00
Sven Eckelmann
3c89a8edcc ath79: Add support for OpenMesh OM2P v4
Device specifications:
======================

* Qualcomm/Atheros QCA9533 v2
* 650/600/217 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 1T1R 2.4 GHz Wi-Fi
* 6x GPIO-LEDs (3x wifi, 2x ethernet, 1x power)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + Label: Ethernet 1
    + 24V passive POE (mode B)
  - eth1
    + Label: Ethernet 2
    + 802.3af POE
    + builtin switch port 1
* 12-24V 1A DC
* external antenna

Flashing instructions:
======================

Various methods can be used to install the actual image on the flash.
Two easy ones are:

ap51-flash
----------

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the image to the u-boot when the device boots up.

initramfs from TFTP
-------------------

The serial console must be used to access the u-boot shell during bootup.
It can then be used to first boot up the initramfs image from a TFTP server
(here with the IP 192.168.1.21):

   setenv serverip 192.168.1.21
   setenv ipaddr 192.168.1.1
   tftpboot 0c00000 <filename-of-initramfs-kernel>.bin && bootm $fileaddr

The actual sysupgrade image can then be transferred (on the LAN port) to
the device via

  scp <filename-of-squashfs-sysupgrade>.bin root@192.168.1.1:/tmp/

On the device, the sysupgrade must then be started using

  sysupgrade -n /tmp/<filename-of-squashfs-sysupgrade>.bin

Signed-off-by: Sven Eckelmann <sven@narfation.org>
[wrap two very long lines, fix typo in comment]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-31 17:43:42 +08:00
David Bauer
d6dbdbe29f ipq40xx: remove non-existent ethernet PHY
Since updating the MDIO driver, the probe will fail hard on any
PHY not present on the bus, while this was not the case prior.

Fixes commit 26b1f72381 ("ipq40xx: net: phy: ar40xx: remove PHY
handling")
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-12-31 11:27:00 +08:00
AmadeusGhost
68e4974788 Merge Mainline 2020-12-30 17:35:40 +08:00
CN_SZTL
54b8137f24 rockchip: nanopi4: add missing headers 2020-12-30 13:04:45 +08:00
Rafał Miłecki
4aa20aca2d bcm63xx-cfe: update to the latest master
c0b3691 netgear: r8000p: add cferam file
ae870eb asus: gt-ac5300: add cferam file
424b57c sfr: neufbox-6v-foxconn-r0: update cferam file
81a2a8b sfr: neufbox-6v-foxconn-r0: add cferam file
2730361 sercomm: h500-s: add cferam file

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2020-12-30 11:26:06 +08:00
Tianling Shen
41e30c0d5e rockchip: use vendor driver for NanoPi R4S
However, mainline driver doesn't work very well on RTL8111
devices, so let's move to vendor driver for better performance.

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2020-12-28 22:24:12 +08:00
Tianling Shen
8e70f5b072 rockchip: overclock to 2.2/1.8 GHz for NanoPi4 devices
It's stable enough to overclock cpu frequency to 2.2/1.8 GHz,
and for better performance.

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Co-authored-by: gzelvis <gzelvis@gmail.com>
2020-12-28 22:24:04 +08:00
Tianling Shen
758be135ea rockchip: fixes re-boot with UHS cards
Some boards have SD card connectors where the power rail cannot be switched
off by the driver. If the card has not been power cycled, it may still be
using 1.8V signaling after a warm re-boot. Bootroms expecting 3.3V signaling
will fail to boot from a UHS card that continue to use 1.8V signaling.

Set initial signal voltage in mmc_power_off() to allow re-boot to function.

This fixes re-boot with UHS cards on Asus Tinker Board (Rockchip RK3288),
same issue have been seen on some Rockchip RK3399 boards.

Backport from https://lore.kernel.org/linux-rockchip/AM3PR03MB09664161A7FA2BD68B2800A7AC620@AM3PR03MB0966.eurprd03.prod.outlook.com/

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
2020-12-28 22:23:57 +08:00
Adrian Schmutzler
ea3a1b4d60 ath79: remove duplicate sysupgrade.bin for dlink_dap-2xxx
sysupgrade.bin has been added to IMAGES twice, resulting in
warnings like:

Makefile:86: warning: overriding recipe for target
  '[...]/tmp/openwrt-ath79-generic-dlink_dap-2660-a1-squashfs-sysupgrade.bin'
Makefile:86: warning: ignoring old recipe for target
  '[...]/tmp/openwrt-ath79-generic-dlink_dap-2660-a1-squashfs-sysupgrade.bin'

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-28 11:21:36 +08:00
Adrian Schmutzler
865d430f4b ath79/mikrotik: disable building NAND images
The current support for MikroTik NAND-based devices relies on a
gross hack that packs the kernel into a static YAFFS stub, as the
stock bootloader only supports booting a YAFFS-encapsulated kernel.

The problem with this approach is that since the kernel partition is
blindly overwritten without any kind of wear or badblock management
(due to lack of proper support for YAFFS in OpenWRT), the NAND flash
is not worn uniformly and eventually badblocks appear, leading to
unbootable devices.

Until a proper fix is found (or the stock bootloader supports other
filesystems), we disable building these images to prevent unknowing
users from risking their devices.

Thanks to Thibaut Varène for summarizing the details above.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-28 11:21:12 +08:00
Adrian Schmutzler
a33f473fbd treewide: use more descriptive names for concatenated partitions
A few devices in ath79 and ramips use mtd-concat to concatenate
individual partitions into a bigger "firmware" or "ubi" partition.

However, the original partitions are still present and visible,
and one can write to them directly although this might break the
actual virtual, concatenated partition.

As we cannot do much about the former, let's at least choose more
descriptive names than just "firmwareX" in order to indicate the
concatenation to the user. He might be less tempted into overwriting
a "fwconcat1" than a "firmware1", which might be perceived as an
alternate firmware for dual boot etc.

This applies the new naming consistently for all relevant devices,
i.e. fwconcatX for virtual "firmware" members and ubiconcatX for
"ubi" members.

While at it, use DT labels and label property consistently, and
also use consistent zero-based indexing.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-28 11:20:45 +08:00
Sungbo Eo
4120515461 kernel: add disabled PROC_STRIPPED
Otherwise the missing symbol is added to target config for every kernel
config refresh.

While at it, remove the disabled symbol from target configs.

Fixes: 4943bc5cff ("kernel: only strip proc for small flash devices")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-12-28 11:19:07 +08:00
CN_SZTL
80bc803653 kmod-sched-cake-oot: remove obsoleted package 2020-12-27 14:29:59 +08:00
Tianling Shen
cd7fd0c77b rockchip: add NanoPi R4S support
Hardware
--------
RockChip RK3399 ARM64 (6 cores)
1GB DDR3 or 4GB LPDDR4 RAM
2x 1000 Base-T
3 LEDs (LAN / WAN / SYS)
1 Button (Reset)
Micro-SD slot
2x USB 3.0 Port

Installation
------------
Uncompress the OpenWrt sysupgrade and write it to a micro SD card using
dd.

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Co-authored-by: Jensen Huang <jensenhuang@friendlyarm.com>
Signed-off-by: Jensen Huang <jensenhuang@friendlyarm.com>
Co-authored-by: Marty Jones <mj8263788@gmail.com>
Signed-off-by: Marty Jones <mj8263788@gmail.com>
2020-12-27 14:02:01 +08:00
Tianling Shen
83d3fb9634 uboot-rockchip: add NanoPi R4S support
Add support for the FriendlyARM NanoPi R4S.

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Co-authored-by: Jensen Huang <jensenhuang@friendlyarm.com>
Signed-off-by: Jensen Huang <jensenhuang@friendlyarm.com>
Co-authored-by: Marty Jones <mj8263788@gmail.com>
Signed-off-by: Marty Jones <mj8263788@gmail.com>
2020-12-27 14:01:58 +08:00
CN_SZTL
b3abb769ea Merge Mainline 2020-12-27 00:39:53 +08:00
CN_SZTL
ee155bad4c Merge Mainline 2020-12-27 00:10:32 +08:00
CN_SZTL
4385e19cb0 Merge Mainline 2020-12-26 23:30:07 +08:00
CN_SZTL
d6d3518a46 Merge Mainline 2020-12-26 23:06:26 +08:00
CN_SZTL
e435ee4a44 mtk-eip93: add missing PKG_MIRROR_HASH 2020-12-26 22:33:21 +08:00
CN_SZTL
dfcbe405c7 autocore-arm: redirect error_msg to blackhole 2020-12-26 17:16:58 +08:00
David Bauer
3d79ad3f05 ipq40xx: revert usage of VLAN S-TAG
This reverts the usage of the S-Tag for separating LAN and WAN port on
the embedded switch. Many users complained about not being able to
manage C-Tag addition / removal on the switch as well as degraded
performance.

Fixes: commit 9da2b56760 ("ipq40xx: fix ethernet vlan double tagging")

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-12-26 17:10:47 +08:00
Marty Jones
b861ae3270 rockchip: use USB host by default on rk3399-rock-pi-4
This backport  fix connections errors on the
upper USB3 port of the Radxa ROCK Pi 4 .

Signed-off-by: Marty Jones <mj8263788@gmail.com>
2020-12-26 12:53:59 +08:00
CN_SZTL
e89c161dde linux: refresh kernel patches
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-12-26 11:39:07 +08:00
Yousong Zhou
7e6ba5ef35 kmod-tcp-hybla: new module for hybla congestion control algorithm
Just the module and no default sysctl conf file is provided

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2020-12-26 11:37:33 +08:00
Yousong Zhou
fe11dd1fa3 kmod-tcp-bbr: use AutoProbe
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2020-12-26 11:37:06 +08:00
Yousong Zhou
787911c076 kmod-tcp-bbr: leave CONFIG_TCP_CONG_ADVANCED to target config
Since generic has the option set to y and other targets now inherit that
choice, there is no behaviour change

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2020-12-26 11:36:43 +08:00
Yousong Zhou
a54c207d46 kernel: remove target specific setting of CONFIG_TCP_CONG_ADVANCED
The option was introduced in upstream linux commit a6484045 ("[TCP]: Do
not present confusing congestion control options by default.").

The option is set to y in generic config and to the moment does not
incur additional size increment.  Make it y for all so that packages
such as kmod-tcp-bbr do not have to set it on every occasion

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2020-12-26 11:36:18 +08:00
AmadeusGhost
c6fbdf1b83 ipq40xx: refresh patches 2020-12-26 01:21:34 +08:00
AmadeusGhost
f67ced6ddf ipq40xx: remove duplicate patches 2020-12-26 00:10:15 +08:00
Chen Minqiang
b0ee96e014 ipq40xx: essedma Time-balanced scheduling
add script to adjust cpu affinity
essedma Time-balanced scheduling:
TX:
CPU:  |3          | |2          | |1          | |0          |
TX-Q: |15-14-13-12| |11-10-09-08| |07-06-05-04| |03-02-01-00|
          ___________|             |             |
          |  ______________________|             |
          |  |  _________________________________|
          |  |  |
TX-P: |15-11-07-03| |14-10-06-02| |13-09-05-01| |12-08-04-00|
TX-S: |---+--+--+-| |+-----+--+-| |+--+-----+-| |+--+--+----|
       |                |                |                |
RX:    |                |                |                |
CPU:  |3          | |   2       | |      1    | |         0 |
RX-Q: |07-06      | |05-04      | |03-02      | |01-00      |

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-12-25 23:53:46 +08:00
Chen Minqiang
31f8780b0e ipq40xx: essedma: disable default vlan tagging
original idea by chunkeey

The essedma driver has its own unique take on VLAN management
and its configuration. In the original SDK, each VLAN is
assigned one virtual ethernet netdev.

However, this is non-standard. So, this patch does away
with the default_vlan_tag property the driver is using
and therefore forces the user to use the kernel's vlan
feature.

Unfortunately, this change will cause the essedma driver
to leak LAN<->WAN during LEDE bootup.

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-12-25 23:51:54 +08:00
Yanase Yuki
d500eda5e2 ipq806x: add support for Qualcomm IPQ8062 SoC
This commit adds support for Qualcomm IPQ8062 SoC.
IPQ8062 is a lower clock variant of IPQ8064.

CPU and NSS clocks:
- CPU: 384 MHz - 1 GHz
- NSS: 110 MHz - 550 MHz

opp and l2 clock values are taken from WG2600HP3 GPL source code [1].

Due to a lack of devices, I didn't test the following features.
- SATA
- NAND flash memory controller
- SD
- USB
- GSBI2, GSBI7
- PCIE2
- GMAC0, GMAC3

Works properly:
- GSBI4 UART
- GSBI5 SPI
- GMAC1, GMAC2
- PCIE0, PCIE1
- MDIO0

Does not work properly:
- CPU SPC
  - This can cause a system hang. Same as IPQ8065.
    See 2336c2dbb1

[1] https://www.aterm.jp/function/wg2600hp3/appendix/opensource.html

Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
2020-12-25 23:41:42 +08:00
LGA1150
dd0389c62f ipq40xx: add ramoops dts 2020-12-25 23:40:26 +08:00
LGA1150
2ffd829a6b ipq40xx: enable pstore 2020-12-25 23:38:55 +08:00
AmadeusGhost
36994bdb46 ipq40xx: r619ac: refresh device support 2020-12-25 23:38:30 +08:00
DENG Qingfang
40f4ea8eda ipq40xx: ar40xx: add switch led blink support
Implement get_port_stats() function for ar40xx phy

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-12-25 23:36:28 +08:00
AmadeusGhost
cc4e599056 Revert "ipq40xx: ar40xx: add switch led blink support"
This reverts commit aa2df753cf.
2020-12-25 23:35:49 +08:00
Robert Marko
9b966e10c2 ipq40xx: net: ethernet: edma: use generic PHY print
Lets use the generic upstream phy_print_status() instead of doing
something similar by hand.

Before:
ess_edma c080000.edma: eth1: GMAC Link is up with phy_speed=1000

After:
ess_edma c080000.edma eth1: Link is Up - 1Gbps/Full - flow control rx/tx

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-12-25 23:34:17 +08:00
Robert Marko
bae353dc23 ipq40xx: net: ethernet: edma: use generic ksettings functions
Since we now have a proper PHY driver for QCA807x and AR803x has already
been supported properly there is no need for the driver to be poking
on PHY registers for ethtool ops.

So, lets simply use the generic
phy_ethtool_ksettings_get/phy_ethtool_ksettings_set functions.

This also has the advantage of properly populating stuff other than
speeds like, transceiver type, MDI-X etc.

ethtool before:
root@OpenWrt:/# ethtool eth1
Settings for eth1:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
                                1000baseX/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
                                1000baseX/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: No
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 4
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000000 (0)

        Link detected: yes

ethtool after:
root@OpenWrt:/# ethtool eth1
Settings for eth1:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
                                1000baseX/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
                                1000baseX/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 4
        Transceiver: external
        Auto-negotiation: on
        MDI-X: off (auto)
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000000 (0)

        Link detected: yes

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-12-25 23:33:55 +08:00
Robert Marko
4188e89bd9 ipq40xx: dts: convert PHY GPIO bindings
Since the new PHY driver manages each PHY individually and therefore
registers each PHY that is marked with gpio-controller; DT property as a
GPIO controller we need to convert old DT bindings to account for this.

Only 2 boards use this so its not much of an issue.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-12-25 23:33:23 +08:00
Robert Marko
6311c72fe6 ipq40xx: dts: add QCA807x properties
This adds necessary DT properties for QCA807x PHY-s to IPQ4019 DTSI.

Also adds the PSGMII PHY as it wont get probed otherwise.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-12-25 23:32:48 +08:00
Robert Marko
b103145ecb ipq40xx: net: ethernet: edma: fix link detection
PHY needs to be soft reset before starting it from ethernet driver as
AR40xx calibration will leave it in unwanted state.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-12-25 23:32:21 +08:00
Robert Marko
95adccad2d ipq40xx: net: phy: ar40xx: remove PHY handling
Since we now have proper PHY driver for the QCA807x PHY-s, lets remove
PHY handling from AR40xx.

This removes PHY driver, PHY GPIO driver and PHY init code.
AR40xx still needs to handle PSGMII calibration as that requires R/W
from the switch, so I am unable to move it into PHY driver.

This also converted the AR40xx driver to use OF_MDIO to find the MDIO
bus as it now cant be set through the PHY driver.
So lets depend on OF_MDIO in KConfig.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-12-25 23:31:49 +08:00
Robert Marko
1b2fa38900 ipq40xx: add Qualcomm QCA807x driver
This adds driver for the Qualcomm QCA8072 and QCA8075 PHY-s.

They are 2 or 5 port IEEE 802.3 clause 22 compliant
10BASE-Te, 100BASE-TX and 1000BASE-T PHY-s.

They feature 2 SerDes, one for PSGMII or QSGMII connection with MAC,
while second one is SGMII for connection to MAC or fiber.

Both models have a combo port that supports 1000BASE-X and 100BASE-FX
fiber.

Each PHY inside of QCA807x series has 2 digitally controlled output only
pins that natively drive LED-s.
But some vendors used these to driver generic LED-s controlled by
user space, so lets enable registering each PHY as GPIO controller and
add driver for it.

This also adds the ability to specify DT properties so that 1000 Base-T
LED will also be lit up for 100 and 10 Base connections.

This is usually done by U-boot, but boards running mainline U-boot are
not configuring this yet.

These PHY-s are commonly used in Qualcomm IPQ40xx, IPQ60xx and IPQ807x
boards.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-12-25 23:27:16 +08:00
Robert Marko
d30b227d57 ipq40xx: edma: convert to of_mdio_find_bus()
With the reworked MDIO driver, EDMA will fail to get the MII BUS as it
used the MII BUS stored inside the MDIO structure private data.

This obviously does not work with the modernized driver, so lets switch
to using a purpose build of_mdio_find_bus() which will return the MII
BUS and only requires the MDIO node to be passed.
This is easy as we already have the node parsed.

Also, since we now require OF_MDIO add that as dependency.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-12-25 23:26:51 +08:00
Robert Marko
0ecbcc82cc ipq40xx: backport upstream MDIO driver
IPQ40xx MDIO driver was upstreamed in kernel version 5.8.
So lets backport the upstream version and drop our local one.

This also refreshed the kernel config since the symbol name has changed.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-12-25 23:26:23 +08:00
Robert Marko
67d61e3faa ipq40xx: refresh kernel config
Generic kernel config changed a lot, so lets refresh ipq40xx
to reduce the diff.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-12-25 23:25:32 +08:00
AmadeusGhost
7f34fd6cc0 mtk-eip93: update to 1.3 2020-12-25 21:30:11 +08:00
AmadeusGhost
4ff21c34e2 ramips: mt7621: refresh device configg 2020-12-25 21:28:05 +08:00
Tianling Shen
f100ec81b7 Merge Mainline 2020-12-25 19:25:12 +08:00
INAGAKI Hiroshi
4c285bbea4 ramips: add support for ELECOM WRC-1167GST2
ELECOM WRC-1167GST2 is a 2.4/5 GHz band 11ac (Wi-Fi 5) router, based
on MT7621A.

Specification:

- SoC		: MediaTek MT7621A
- RAM		: DDR3 256 MiB
- Flash		: SPI-NOR 32 MiB
- WLAN		: 2.4/5 GHz 2T2R (MediaTek MT7615D)
- Ethernet	: 10/100/1000 Mbps x5
  - Switch	: MediaTek MT7530 (SoC)
- LED/keys	: 6x/6x (2x buttons, 1x slide-switch)
- UART		: through-hole on PCB
  - J4: 3.3V, GND, TX, RX from ethernet port side
  - 57600n8
- Power		: 12VDC, 1A

MAC addresses:

LAN	: 04:AB:18:**:**:07 (Factory, 0xE000 (hex))
WAN	: 04:AB:18:**:**:08 (Factory, 0xE006 (hex))
2.4 GHz	: 04:AB:18:**:**:09 (none)
5 GHz	: 04:AB:18:**:**:0A (none)

Flash instruction using factory image:

1. Boot WRC-1167GST2 normally
2. Access to "http://192.168.2.1/" and open firmware update page
   ("ファームウェア更新")
3. Select the OpenWrt factory image and click apply ("適用") button
4. Wait ~150 seconds to complete flashing

Notes:

- there is no way to configure the correct MAC address for secondary phy
  (5GHz) on MT7615D
- Wi-Fi band on primary phy (2.4GHz) cannot be limitted by specifying
  ieee80211-freq-limit
  (fail to register secondary phy due to error)
- mtd-mac-address in the wifi node is required for using
  mtd-mac-address-increment

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[rebase onto split DTSI]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-25 19:22:34 +08:00
INAGAKI Hiroshi
cf686fcc07 ramips: add support for ELECOM WRC-1167GS2-B
ELECOM WRC-1167GS2-B is a 2.4/5 GHz band 11ac (Wi-Fi 5) router, based
on MT7621A.

Specification:

- SoC		: MediaTek MT7621A
- RAM		: DDR3 128 MiB
- Flash		: SPI-NOR 16 MiB
- WLAN		: 2.4/5 GHz 2T2R (MediaTek MT7615D)
- Ethernet	: 10/100/1000 Mbps x5
  - Switch	: MediaTek MT7530 (SoC)
- LED/keys	: 6x/6x (2x buttons, 1x slide-switch)
- UART		: through-hole on PCB
  - J4: 3.3V, GND, TX, RX from ethernet port side
  - 57600n8
- Power		: 12VDC, 1A

MAC addresses:

LAN	: 04:AB:18:**:**:13 (Factory, 0xFFF4 (hex))
WAN	: 04:AB:18:**:**:14 (Factory, 0xFFFA (hex))
2.4 GHz	: 04:AB:18:**:**:15 (none)
5 GHz	: 04:AB:18:**:**:16 (Factory, 0x4 (hex))

Flash instruction using factory image:

1. Boot WRC-1167GS2-B normally
2. Access to "http://192.168.2.1/" and open firmware update page
   ("ファームウェア更新")
3. Select the OpenWrt factory image and click apply ("適用") button
4. Wait ~120 seconds to complete flashing

Notes:

- there is no way to configure the correct MAC address for secondary phy
  (5GHz) on MT7615D
- Wi-Fi band on primary phy (2.4GHz) cannot be limitted by specifying
  ieee80211-freq-limit
  (fail to register secondary phy due to error)
- mtd-mac-address in the wifi node is required for using
  mtd-mac-address-increment

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[rebase onto split DTSI patch]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-25 19:22:31 +08:00
Adrian Schmutzler
042725a26d ramips: mt7621: create DTSI for ELECOM WRC GS devices with 2 PCI
This creates a dedicated DTSI for ELECOM WRC GS devices with 2 PCI
WiFi chips in preparation for the 1 chip - dual radio devices, so
the latter can reuse part of the common definitions.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-25 19:22:26 +08:00
Michael Pratt
028ec221f0 ath79: expand factory.bin support for some Senao Engenius boards
Newer EnGenius software that still uses the tar.gz platform
  instead of the custom header requires more checks for upgrading,
  but their script includes a way to skip them...
  the existence of a file in the tar.gz called failsafe.bin

  Their upgrade script has these lines:

  \#pass check when upload with full image file
  [ "${errcode}" -eq "1" ] && [ -f failsafe.bin ] && errcode="0"

  This overrides the script's "errcode" variable
  which can be set if any of the following actions/checks fail:

  - untarring of the upload

  - magic number for kernel: "2705"

  - magic num for rootfs: "7371" or "6873"

  - md5sums for each file in the format
	filename:md5

  - existence of a file matching FWINFO*
	that it has boardname in the name somewhere (grep)
	that the 4th field of separator "-" is at least 3 (version)

  Otherwise we would need to generate md5sums in this strange format
  and touch a file with specific requirements in the name.

  This does not effect boards where the advanced checks do not apply.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
[fixed SoB to match From:]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-12-25 19:20:48 +08:00
Michael Pratt
0321e4f7a2 ath79: add support for Senao Engenius EnStationAC v1
FCC ID: A8J-ENSTAC

Engenius EnStationAC v1 is an outdoor wireless access point/bridge with
2 gigabit ethernet ports on 2 external ethernet switches,
5 GHz only wireless, internal antenna plates, and proprietery PoE.

Specification:

  - QCA9557 SOC
  - QCA9882 WLAN		(PCI card, 5 GHz, 2x2, 26dBm)
  - AR8035-A switch		(RGMII GbE with PoE+ IN)
  - AR8031 switch		(SGMII GbE with PoE OUT)
  - 40 MHz reference clock
  - 16 MB FLASH			MX25L12845EMI-10G
  - 2x 64 MB RAM		NT5TU32M16FG
  - UART at J10			(unpopulated)
  - internal antenna plates	(19 dbi, directional)
  - 7 LEDs, 1 button		(power, eth, wlan, RSSI) (reset)

MAC addresses:

  MAC addresses are labeled as ETH and 5GHz
  Vendor MAC addresses in flash are duplicate

  eth0	ETH	*:d3	art 0x0/0x6
  eth1	----	*:d4	---
  phy0	5GHz	*:d5	---

Installation:

  2 ways to flash factory.bin from OEM:

  - if you get Failsafe Mode from failed flash:
      only use it to flash Original firmware from Engenius
      or risk kernel loop or halt which requires serial cable

  Method 1: Firmware upgrade page:

    OEM webpage at 192.168.1.1
    username and password "admin"
    Navigate to "Firmware" page from left pane
    Click Browse and select the factory.bin image
    Upload and verify checksum
    Click Continue to confirm and wait 3 minutes

  Method 2: Serial to load Failsafe webpage:

    After connecting to serial console and rebooting...
    Interrupt uboot with any key pressed rapidly
    execute `run failsafe_boot` OR `bootm 0x9fd70000`
    wait a minute
    connect to ethernet and navigate to
    "192.168.1.1/index.htm"
    Select the factory.bin image and upload
    wait about 3 minutes

Return to OEM:

  If you have a serial cable, see Serial Failsafe instructions
  otherwise, uboot-env can be used to make uboot load the failsafe image

  *DISCLAIMER*
  The Failsafe image is unique to Engenius boards.
  If the failsafe image is missing or damaged this will not work
  DO NOT downgrade to ar71xx this way, it can cause kernel loop or halt

  ssh into openwrt and run
  `fw_setenv rootfs_checksum 0`
  reboot, wait 3 minutes
  connect to ethernet and navigate to 192.168.1.1/index.htm
  select OEM firmware image from Engenius and click upgrade

TFTP recovery:

  rename initramfs to 'vmlinux-art-ramdisk'
  make available on TFTP server at 192.168.1.101
  power board
  hold or press reset button repeatedly

  NOTE: for some Engenius boards TFTP is not reliable
  try setting MTU to 600 and try many times

Format of OEM firmware image:

  The OEM software of EnStationAC is a heavily modified version
  of Openwrt Altitude Adjustment 12.09. One of the many modifications
  is to the sysupgrade program. Image verification is performed
  simply by the successful ungzip and untar of the supplied file
  and name check and header verification of the resulting contents.
  To form a factory.bin that is accepted by OEM Openwrt build,
  the kernel and rootfs must have specific names...

    openwrt-ar71xx-enstationac-uImage-lzma.bin
    openwrt-ar71xx-enstationac-root.squashfs

  and begin with the respective headers (uImage, squashfs).
  Then the files must be tarballed and gzipped.
  The resulting binary is actually a tar.gz file in disguise.
  This can be verified by using binwalk on the OEM firmware images,
  ungzipping then untaring.

  Newer EnGenius software requires more checks but their script
  includes a way to skip them, otherwise the tar must include
  a text file with the version and md5sums in a deprecated format.

  The OEM upgrade script is at /etc/fwupgrade.sh.

  OKLI kernel loader is required because the OEM software
  expects the kernel to be no greater than 1536k
  and the factory.bin upgrade procedure would otherwise
  overwrite part of the kernel when writing rootfs.

Note on PLL-data cells:

  The default PLL register values will not work
  because of the external AR8033 switch between
  the SOC and the ethernet PHY chips.

  For QCA955x series, the PLL registers for eth0 and eth1
  can be see in the DTSI as 0x28 and 0x48 respectively.
  Therefore the PLL registers can be read from uboot
  for each link speed after attempting tftpboot
  or another network action using that link speed
  with `md 0x18050028 1` and `md 0x18050048 1`.

  For eth0 at 1000 speed, the value returned was
  ae000000 but that didn't work, so following
  the logical pattern from the rest of the values,
  the guessed value of a3000000 works better.

  later discovered that delay can be placed on the PHY end only
  with phy-mode as 'rgmii-id' and set register to 0x82...

Tested from master, all link speeds functional

Signed-off-by: Michael Pratt <mcpratt@pm.me>
[fixed SoB to match From:]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-12-25 19:20:45 +08:00
Andrew Pikler
c5aa79665f ramips: add support for D-Link DIR-882 R1
Specifications:
- SoC: MediaTek MT7621AT
- RAM: 128 MB (DDR3)
- Flash: 16 MB (SPI NOR)
- WiFi: MediaTek MT7615N (x2)
- Switch: 1 WAN, 4 LAN (Gigabit)
- Ports: 1 USB 2.0, 1 USB 3.0
- Buttons: Reset, WiFi Toggle, WPS
- LEDs: Power, Internet, WiFi 2.4G WiFi 5G, USB 2.0, USB 3.0

The R1 revision is identical to the A1 revision except
- No Config2 Parition, therefore
- factory partition resized to 64k from 128K
- Firmware partition offset is 0x50000 not 0x60000
- Firmware partitions size increased by 64K
- Firmware partition type is "denx,uimage", not "sge,uimage"
- Padding of image creation "uimage-padhdr 96" removed

Installation:
- Older firmware versions: put the factory image on a USB stick, turn on
the telnet console, and flash using the following cmd
"fw_updater Linux /mnt/usb_X_X/firmware.bin"

- D-Link FailsafeUI:
Power down the router, press and hold the reset button, then
re-plug it. Keep the reset button pressed until the internet LED stops
flashing, then jack into any lan port and manually assign a static IP
address in 192.168.0.0/24 other than 192.168.0.0 (e.g. 192.168.0.2)
and go to http://192.168.0.1
Flash with the factory image.

Signed-off-by: Andrew Pikler <andrew.pikler@gmail.com>
2020-12-25 19:20:22 +08:00
Sebastian Schaper
6329bd372c ath79: add support for D-Link DAP-2660 A1
Specifications:
 * QCA9557, 16 MiB Flash, 128 MiB RAM, 802.11n 2T2R
 * QCA9882, 802.11ac 2T2R
 * Gigabit LAN Port (AR8035), 802.11af PoE

Installation:
 * Factory Web UI is at 192.168.0.50
   login with 'admin' and blank password, flash factory.bin
 * Recovery Web UI is at 192.168.0.50
   connect network cable, hold reset button during power-on and keep it
   pressed until uploading has started (only required when checksum is ok,
   e.g. for reverting back to oem firmware), flash factory.bin

After flashing factory.bin, additional free space can be reclaimed by
flashing sysupgrade.bin, since the factory image requires some padding
to be accepted for upgrading via OEM Web UI.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
2020-12-25 19:18:45 +08:00
Roman Kuzmitskii
6713d0588d ath79: add support for Ubiquiti airCube AC
The Ubiquiti Network airCube AC is a cube shaped device supporting
2.4 GHz and 5 GHz with internal 2x2 MIMO antennas.
It can be powered with either one of:
 - 24v power supply with 3.0mm x 1.0mm barrel plug
 - 24v passive PoE on first LAN port
There are four 10/100/1000 Mbps ports (1 * WAN + 3 * LAN).
First LAN port have optional PoE passthrough to the WAN port.

SoC:       Qualcomm / Atheros AR9342
RAM:       64 MB DDR2
Flash:     16 MB SPI NOR
Ethernet:  4x 10/100/1000 Mbps (1 WAN + 3 LAN)
LEDS:      1x via a SPI controller (not yet supported)
Buttons:   1x Reset
Serial:    1x (only RX and TX); 115200 baud, 8N1

Missing features:
 - LED control is not supported

Physical to internal switch port mapping:
 - physical port #1 (poe in) = switchport 2
 - physical port #2 = switchport 3
 - physical port #3 = switchport 5
 - physical port #4 (wan/poe out) = switchport 4

Factory update is tested and is the same as for Ubiquiti AirCube ISP
hence the shared configuration between that devices.

Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
2020-12-25 19:18:40 +08:00
Roger Pueyo Centelles
fcd9d8fdf8 ath79: add support for MikroTik RouterBOARD wAPR-2nD (wAP R)
This patch adds support for the MikroTik RouterBOARD wAPR-2nD (wAP R)
router, a weatherproof 2.4 GHz access point with a miniPCI-e slot and
a SIM card slot.

Specifications:

 - SoC: Qualcomm Atheros QCA9533
 - Flash: 16 MB (SPI)
 - RAM: 64 MB
 - Ethernet: 1x 10/100 Mbps (PoE in)
 - WiFi: AR9531 2T2R 2.4 GHz (SoC)
 - miniPCI-e slot
 - 4x green LEDs (1x WiFi, 3x RSSI)
 - 1x reset button

 See https://mikrotik.com/product/RBwAPR-2nD for more details.

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. Follow common
 MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
2020-12-25 19:18:33 +08:00
AmadeusGhost
a47f1a5116 Merge Mainline 2020-12-25 17:25:32 +08:00
Sven Wegener
c8742228af ath79: update image command for Plasma Cloud PA300
Commit 5fc28ef479 ("ath79: Add support for Plasma Cloud PA300")
added the IMAGE/sysupgrade.bin/squashfs definition, which leaks into
other devices, resulting in sysupgrade.bin images that are actually
tarballs and do not boot when directly written to flash.

We can use the normal sysupgrade.bin command variable for this device.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
[fix format, spelling]
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-12-25 17:11:08 +08:00
Daniel Golle
450ed4e646 oxnas: now longer build KD20 factory image
The image never worked in any release and is also broken in snapshots
due to stock bootloader not loading more than 4 MiB.
Hence it's better to remove the image for now, users who want to flash
OpenWrt on new devices may build LEDE 17.01 with everything possible
disabled to get a small enough and working factory image.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-12-24 11:39:51 +08:00
Tianling Shen
0dab146fd7 autocore-arm: bug fixes 2020-12-23 22:55:35 +08:00
Nick Hainke
944473726b kernel: only strip proc for small flash devices
Currently, you are not able to get statistics about IPv4 and IPv6
usage. This information can be collected via the snmp and snmp6.
However, in the current state this interface is disabled as you can
read in the "902-debloat_proc.patch":
 "Strip non-essential /proc functionality to reduce code size"

Tools like netstat use the snmp/6 interface to collect interface
statistics. Some prometheus exporters also mention this:
- prometheus-collectors/netstat.lua
- prometheus-collectors/snmp6 (still a PR)
- collectd/snmp6 (still a PR)

PRs:
- https://github.com/collectd/collectd/pull/3789
- https://github.com/openwrt/packages/pull/14158

Instead of enabling it as default for all devices we condition it
 default y if SMALL_FLASH

A test shows it needs around 16 kiB.

Signed-off-by: Nick Hainke <vincent@systemli.org>
[fixed whitespace issue]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-12-23 11:53:59 +08:00
Andy Walsh
83ffc83505 kernel: add KERNEL_IO_URING option
* add KERNEL_IO_URING option

NOTES:
Adds configurable support for the io_uring interface (CONFIG_IO_URING) via KERNEL_IO_URING option.

The kernel only zImage grows by about 5-9KB ?

I would like to enable this by default for all 5.4 kernels, so i can use the new io_uring samba-4.12.x vfs module by default.

The associated liburing was already submitted and merged.
The kernel + liburing was tested on ARM/mvebu via samba4 vfs_io_uring module and i have no issues so far.

Some extra reads on it and why we should enable it by default, since i expect more packages to use this in the future.
https://wiki.samba.org/index.php/Samba_4.12_Features_added/changed#.27io_uring.27_vfs_module
https://lwn.net/Articles/810414/
https://kernel.dk/io_uring.pdf
https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.6-IO-uring-Tests

Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
2020-12-23 11:53:41 +08:00
Wiktor Stasiak
4577062e81 apm821xx: Netgear WNDR4700 limit kernel lzma dictionary
WNDR4700 uboot has an issue with decompressing kernel with default dictionary size (-d23 which is about 8MB).
Limiting lzma dictionary lowers memory footprint and allows device to boot the kernel.

The highest bootable dictonary size is 18, choosing 16 for an extra safety margin.

Kernel size befor and after:
-d23: 2663665 Bytes
-d16: 2892757 Bytes

Kernel size increased by 230kB (9%)

Fixes: FS#3258

Signed-off-by: Wiktor Stasiak <wiktor.stasiak@gmail.com>
2020-12-23 11:52:12 +08:00
Andrew Pikler
652b92c206 firmware: add tool for signing d-link ru router factory firmware images
Some Russian d-link routers require that their firmware be signed with a
salted md5 checksum followed by the bytes 0x00 0xc0 0xff 0xee. This tool
signs factory images the OEM's firmware accepts them.

Signed-off-by: Andrew Pikler <andrew.pikler@gmail.com>
2020-12-23 11:51:49 +08:00
Sven Eckelmann
294d3aa4aa ath79: Add support for Plasma Cloud PA300E
Device specifications:

* Qualcomm/Atheros QCA9533 v2
* 650/600/217 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash (mx25l12805d)
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 2T2R 2.4 GHz Wi-Fi
* multi-color LED (controlled via red/green/blue GPIOs)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + Label: Ethernet 1
    + 24V passive POE (mode B)
    + used as WAN interface
  - eth1
    + Label: Ethernet 2
    + 802.3af POE
    + builtin switch port 2
    + used as LAN interface
* 12-24V 1A DC
* external antennas

Flashing instructions:

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the factory image to the u-boot when the device boots up.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-23 11:50:32 +08:00
Sven Eckelmann
c572423257 ath79: Add support for Plasma Cloud PA300
Device specifications:

* Qualcomm/Atheros QCA9533 v2
* 650/600/217 MHz (CPU/DDR/AHB)
* 64 MB of RAM
* 16 MB of SPI NOR flash (mx25l12805d)
  - 2x 7 MB available; but one of the 7 MB regions is the recovery image
* 2x 10/100 Mbps Ethernet
* 2T2R 2.4 GHz Wi-Fi
* multi-color LED (controlled via red/green/blue GPIOs)
* 1x GPIO-button (reset)
* external h/w watchdog (enabled by default)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x fast ethernet
  - eth0
    + Label: Ethernet 1
    + 24V passive POE (mode B)
    + used as WAN interface
  - eth1
    + Label: Ethernet 2
    + 802.3af POE
    + builtin switch port 2
    + used as LAN interface
* 12-24V 1A DC
* internal antennas

Flashing instructions:

The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the factory image to the u-boot when the device boots up.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-23 11:50:07 +08:00
Sven Eckelmann
616f7e7141 ath79: Fix fallback to bootloader cmdline on empty DT bootargs
The MIPS code is supposed to fall back to u-boots bootargs whenever the
/chosen/bootargs property is missing. But this feature was accidentally
disabled when the boot_command_line was initialized with an empty space
just to work around problems with early_init_dt_scan_chosen.

But this feature is necessary for some boards which have a dualboot
mechanism and whose u-boot is calculating the correct partition at runtime
without writing this information back to the u-boot-env.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-23 11:48:47 +08:00
Sven Eckelmann
5d58fd6ba3 scripts/om-fwupgradecfg-gen.sh: Generate checksum over whole squashfs
The rootfs is padded to the full block size by padjffs2 and a 4 byte magic
value ("deadc0de") is added to the end. On first boot, the JFFS2 is
replacing the "deadc0de" marker when the rootfs_data is initialized.

The static part of the rootfs is therefore $rootfs_size - 4 and not
$rootfs_size - 262144 - 4.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-23 11:38:38 +08:00
Sven Eckelmann
01de8b1389 scripts/om-fwupgradecfg-gen.sh: Drop block alignment code
The padding and block alignment is handled by the image build script and
doesn't need to be duplicated in the fwupgrade.cfg build script.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-12-23 11:38:06 +08:00
Sander Vanheule
a48fb44eae realtek: use kernel defined halt
If _machine_hang is not defined on MIPS, the kernel will check if the
CPU can enter a more power efficient sleep mode. Since the realtek
platform supports mips32_r2, this should issue a WAIT instruction
instead of a trivial infinite loop.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-12-23 11:35:14 +08:00
Davide Fioravanti
76d2534c23 ath79: fix Sitecom WLR-8100 lan port leds
Incorrect values were used for the switch initialization causing the
lan port leds to not light up in case of 10Mb or 100Mb connections.

This commit fixes this problem and removes unused values.

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
2020-12-23 11:33:46 +08:00
Aleksander Jan Bajkowski
5c572c9e16 kernel: move some disabled symbols to generic
Move some disabled config options found in lantiq target to generic.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2020-12-23 11:33:15 +08:00
John Audia
f5c8a72a85 kernel: bump 5.4 to 5.4.85
All modifications made by update_kernel.sh run in a fresh clone
without any existing toolchains.

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2020-12-23 11:30:55 +08:00
Petr Štetiar
b5594379a0 Revert "mvebu: fix initramfs/kernel image for CZNIC Turris Omnia"
This reverts commit e401a2a42e as at least
two users had reported breakage on their devices.

References: https://lists.infradead.org/pipermail/openwrt-devel/2020-December/032837.html
References: e401a2a42e (commitcomment-45189788)
Cc: Karel Kočí <karel.koci@nic.cz>
Reported-by: Magnus Kroken <mkroken@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-12-23 11:30:12 +08:00
Paul Fertser
590f6a9038 mac80211: fix MAC address allocations when local bit set on base addr
Testing with hwsim reveals two problems:

1. phyX/addresses has two addresses and mac80211_get_addr keeps
returning the last one when asked for more;

2. The base address has the local bit set and the operation unsets it.

Fix both.

Fixes: 866790fd82
Reported-by: Zero_Chaos
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2020-12-23 11:29:48 +08:00
Daniel González Cabanelas
521733bddb mvebu: gpio-mvebu IRQ index error kernel backport
Backport the upstream kernel fix 525b0858ff to get rid of the kernel
messages:

mvebu-gpio xxxxxx.gpio: IRQ index 3 not found

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-12-23 11:27:43 +08:00
Daniel González Cabanelas
f0223a2595 mvebu: LS421DE: use the RTC as a wakeup source
The Buffalo Linkstation LS421DE comes with a Ricoh RS5C372A real time
clock. This RTC has the INTRA pin connected to the power management
circuit, allowing to wake up the device from the power off state when an
alarm is scheduled.

Add the "wakeup-source" property in the RTC dts node to allow the use
of the alarm.

Example of use, the device is powered off and it comes to life after 5
minutes:
echo $(expr $(date '+%s') + 60 * 5) > /sys/class/rtc/rtc0/wakealarm
poweroff

This feature isn't available in the stock firmware.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-12-23 11:26:49 +08:00
Daniel González Cabanelas
f1f438335a kernel: rtc: rs5c372: fix alarm support
The rs5c372 RTC driver has alarm support, but it can't be enabled and only
can handle 24 hours in the future spite the chip is 1 week capable. Provide
these two patches:
  - Support alarms up to 1 week
  - Let the wakealarm to be used as a wakeup source

This patch makes the alarm wakeup feature to be available in the Buffallo
Linkstation LS421DE (mvebu target) and should also work with any other
device if the hardware has the proper capability.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-12-23 11:26:32 +08:00
Daniel González Cabanelas
aa69cbe545 mvebu: LS421DE: fix low performance issue
The Buffalo Linkstation LS421DE isn't able to enable the Level 2 cache
(AKA Aurora cache). As of result of this, the throughput is about half of
the expected, e.g when doing network data transfers.

Fix it by adding the broken-idle property in the coherency fabric node.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-12-23 11:25:53 +08:00
Tomasz Maciej Nowak
33fe9823f0 tegra: image: remove unnecessary assumptions from bootscript
'bootz' expects gziped kernel image anyway, so hard-code it to zImage,
and remove root path from 'load' commands, by default the files are
searched in root directory.

This will make the bootscript static, so the command which modified it
when image was created can now be removed.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2020-12-23 11:25:09 +08:00
Tomasz Maciej Nowak
62bd1cefb9 tegra: image: make bootscript standalone
Don't hard-code the PTUUID, use U-Boot commands to determine it, as some
partitioning tools could rewrite PTUUID when modifying partitions.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2020-12-23 11:24:46 +08:00
Tomasz Maciej Nowak
2a4a7a1110 uboot-tegra: bump to 2020.04
This fixes error when host GCC >= 10.

/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2020-12-23 11:24:19 +08:00
Rosen Penev
9babbf0b07 target/linux: disable CONFIG_CIFS_STATS
CIFS_STATS is a debugging option. It is not really useful for end users

Signed-off-by: Rosen Penev <rosenp@gmail.com>
[fixed missing config-4.19 file]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-12-23 11:19:34 +08:00
Rosen Penev
d27d547c45 fs/cifs: update module dependencies
0fdfef9aa7ee68ddd508aef7c98630cfc054f8d6 upstream removed CIFS_SMB311.
Kernels 4.19 and above do not have it. Currently only kernels 4.19 and
5.4 are in the tree.

The Kconfig file in the kernel has more selection that what is in here.
Add the rest and reorder based on upstream ordering.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-12-23 11:19:16 +08:00
Tianling Shen
b5353905b3 Merge Mainline 2020-12-22 18:15:00 +08:00
AmadeusGhost
7bb0843d79 ramips: GL-MT1300: switch to mtwifi driver 2020-12-21 23:40:47 +08:00
AmadeusGhost
b888ba0d3a Revert "mtwifi: enable autoload by default"
This reverts commit 546e593192 due to
the combination of mt603 and mt7615 will cause some modules to fail
to load normally.
2020-12-20 23:53:59 +08:00
Tomasz Maciej Nowak
7bd2827576 mvebu: macchiatobin-singleshot: enable heartbeat LED
With board revision 1.3, SolidRun moved the power LED to the middle of
the board. In old place of power LED a GPIO controllable heartbeat LED
was added. This commit touches only Single Shot variant, because all
have revision 1.3. Some boards could be placed in an enclosure, therefore
the LED18 is enabled by default, since that'll be the only visible
indicator that the board is operating.

Reported-by: Alexandra Alth <alexandra@alth.de>
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2020-12-20 23:36:49 +08:00
Moritz Warning
a0c7041183 bcm53xx: use correct case for TP-Link in DEVICE_VENDOR
Adjust spelling of vendor names to what is used in other places.

Signed-off-by: Moritz Warning <moritzwarning@web.de>
[improve commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-20 23:33:01 +08:00
Aleksander Jan Bajkowski
21c92f7a27 lantiq: xrx200: remove redundant stp parameters
These parameters are the same as in vr9.dtsi. This patch removes
redundant parameters.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2020-12-20 23:30:39 +08:00
Davide Fioravanti
8516cdd2c4 mac80211: select the first available channel for 5GHz interfaces
Some 5GHz wifi interfaces, especially in Tri-band routers, can't use
channel 36. In these cases, the default configuration for 5GHz
interfaces, once enabled, doesn't work.

This patch selects the first non-disabled channel for 5GHz interfaces.

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
2020-12-20 13:52:04 +08:00
Tianling Shen
851f4a2c47 sunxi: add missing arg in 01_leds 2020-12-20 13:01:32 +08:00
Tianling Shen
587a03e9a4 rockchip: add missing arg in 01_leds 2020-12-20 12:57:27 +08:00
Tianling Shen
bf3182f951 Revert "rockchip: make sysupgrade image generation reusable"
This reverts commit be49374ad9.
2020-12-20 12:47:30 +08:00
CN_SZTL
d9b3d71f34 Merge Mainline 2020-12-19 21:15:16 +08:00
CN_SZTL
2edef8452d autocore-arm: add support for big.LITTLE arch 2020-12-19 19:34:03 +08:00
Felix Fietkau
78326d89e2 mac80211: do not drop tx nulldata packets on encrypted links
Fixes sending out nulldata probing frames

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-12-19 18:18:26 +08:00
Felix Fietkau
2b49e0671c kernel: improve skb hash on the mtk ethernet driver
The PPE only provides a 14 bit hash, however many uses of the skb hash
expect the hash to use the full 32 bit range.
Use jhash to extend the hash to the full size

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-12-19 18:06:59 +08:00
Xinfa Deng
bbdb2a7695 ramips: add support for GL.iNet GL-MT1300
The GL-MT1300 is a high-performance new generation pocket-sized router
that offers a powerful hardware and first-class cybersecurity protocol
with unique and modern design.

Specifications:
- SoC: MT7621A, Dual-Core @880MHz
- RAM: 256 MB DDR3
- Flash: 32 MB
- Ethernet: 3 x 10/100/1000: 2 x LAN + 1 x WAN
- Wireless: 1 x MT7615D Dual-Band 2.4GHz(400Mbps) + 5GHz(867Mbps)
- USB: 1 x USB 3.0 port
- Slot: 1 x MicroSD card slot
- Button: 1 x Reset button
- Switch: 1 x Mode switch
- LED: 1 x Blue LED + 1 x White LED

MAC addresses based on vendor firmware:
WAN : factory 0x4000
LAN : Mac from factory 0x4000 + 1
2.4GHz : factory 0x4
5GHz : Mac form factory 0x4 + 1

Flashing instructions:
1.Connect to one of LAN ports.
2.Set the static IP on the PC to 192.168.1.2.
3.Press the Reset button and power the device (do not release the button).
  After waiting for the blue led to flash 5 times, the white led will
  come on and release the button.
4.Browse the 192.168.1.1 web page and update firmware according to web
  tips.
5.The blue led will flash when the firmware is being upgraded.
6.The blue led stops blinking to indicate that the firmware upgrade is
  complete and U-Boot automatically starts the firmware.

For more information on GL-MT1300, see the OFFICIAL GL.iNet website:
https://www.gl-inet.com/products/gl-mt1300/

Signed-off-by: Xinfa Deng <xinfa.deng@gl-inet.com>
[add input-type for switch, wrap long line in 10_fix_wifi_mac]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-19 18:05:56 +08:00
Chen Minqiang
124b6f995e ath79: add support for GL.iNet GL-USB150
Add support for the ar71xx supported GL.iNet GL-USB150 to ath79.

GL.iNet GL-USB150 is an USB dongle WiFi router, based on Atheros AR9331.

Specification:

- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- Realtek RTL8152B USB to Ethernet bridge (connected with AR9331 PHY4)
- 1T1R 2.4 GHz
- 2x LED, 1x button
- UART header on PCB

Flash instruction:

Vendor software is based on openwrt so you can flash the sysupgrade
image via the vendor GUI or using command line sysupgrade utility.
Make sure to not save configuration over reflash as uci settings
differ between versions.

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-12-19 18:01:34 +08:00
gw826943555
a8a01ea334 ipq40xx: improve cpu operating points and overclock to 896Mz
This patch will match the clock-latency-ns values in the device tree
for those found inside the OEM device tree and kernel source code and
unlock 896Mhz CPU operating points.
2020-12-19 18:01:24 +08:00
MisharUser
f7a1be9c67 ramips: add support for zbt-wg108
Specification:

CPU: MediaTek MT7621 (880 MHz)
Flash size: 32 MB NOR SPI
RAM size: 128 MB
Bootloader: U-Boot
Wireless: MT7612EN 2x2 802.11an+ac(2.4 GHz)
Wireless: MT7603EN 2x2 bgn
Ethernet: 1 x WAN (10/100/1000Mbps) and 4 x LAN (10/100/1000 Mbps)
Others: USB 2.0, micro SD slot, reset button and 8 x LEDs

Co-authored-by: Mishar <Mishar@Mishar.com>
2020-12-19 18:00:54 +08:00
CN_SZTL
94afa74c96 Merge Mainline 2020-12-19 17:51:19 +08:00
Adrian Schmutzler
0cd66f26ae ramips: do not enable unused GPIO controllers
Several devices enable GPIO controllers not used in the DTS files.

Drop them.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-18 11:39:28 +08:00
Adrian Schmutzler
36367f666a ath79: qca955x: remove redundant phy-mode
phy-mode is already set to rgmii for eth0 and sgmii for eth1 in
qca955x.dtsi, no need to do that again in the device DTS files.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-18 11:38:58 +08:00
CN_SZTL
dcc6c453da Merge Mainline 2020-12-17 23:24:15 +08:00
Hauke Mehrtens
73d055945b lantiq: falcon: mark as source only sub target
The sub target does not support network and there are not so many users
out there, just mark it as source only, so we do jot have to build it.

The quality is not worse than before, it just does not make much sense
to build this automatically.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-12-17 11:21:28 +08:00
Hauke Mehrtens
dc2952fedb build: Add IRQSOFF and PREEMPT TRACER kernel config option
This adds the CONFIG_IRQSOFF_TRACER and the CONFIG_PREEMPT_TRACER kernel
configuration option to the OpenWrt menu. This can be used to debug
latencies in the system.
The CONFIG_PREEMPT_TRACER option needs the CONFIG_PREEMPT option which is
supposed to be used for Low-Latency Desktop and not used by many targets
in OpenWrt.

The help text is copied from the Linux kernel Kconfig.

Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
2020-12-17 11:20:49 +08:00
John Audia
ed1895d65f kernel: bump 5.4 to 5.4.83
Manually merged:
  layerscape/808-i2c-0011-i2c-imx-support-slave-mode-for-imx-I2C-driver.patch
  layerscape/808-i2c-0012-i2c-imx-correct-code-of-errata-A-010650-for-layersca.patch

Remaining modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711, x86/64 [*],
              ramips/mt7621 [*], ath79/tiny [*], ipq40xx [*], octeon [*],
              realtek [*]
Run-tested: ipq806x/R7800, ramips/mt7621 [*], octeon [*], realtek [*]

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
2020-12-16 11:29:41 +08:00
Josef Schlehofer
d17d6d7d8a armvirt/64: change it to cortex-a53 instead of generic
Package architecture aarch64_generic [1] can be used just with three
devices. One is NanoPI R2S and then there are two development boards
from NXP. Let's change armvirt/64 to Cortex A53 (aarch64_cortex-a53)
[2]. It has wider support by multiple devices like NanoPI Neo Plus2/Core2,
ESPRESSObin, Pine64, and Raspberry Pi 2&3.

While looking at ARMvirt/32 it has set CPU_TYPE and CPU_SUBTYPE to be
arm_cortex-a15_neon-vfpv4 [3]. It has support to devices like
Linksys EA8500 v1, Linksys EA7500 v1, Netgear D7800, Netgear R7500 and so on.

Tested with:
qemu-system-aarch64 -m 1024 -smp 2 -cpu cortex-a57 -M virt -nographic \
-kernel openwrt-armvirt-64-Image-initramfs

Successfully compiled and booted.
Here goes the output:
root@OpenWrt:/# uname -a
Linux OpenWrt 5.4.82 #0 SMP Sun Dec 13 12:52:10 2020 aarch64 GNU/Linux
root@OpenWrt:/# cat /etc/openwrt_release
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='SNAPSHOT'
DISTRIB_REVISION='r15207-96fca0f807'
DISTRIB_TARGET='armvirt/64'
DISTRIB_ARCH='aarch64_cortex-a53'
DISTRIB_DESCRIPTION='OpenWrt SNAPSHOT r15207-96fca0f807'
DISTRIB_TAINTS='no-all'

Also, change BOARDNAME to be the same as it is in armvirt/32.

[1] https://openwrt.org/docs/techref/instructionset/aarch64_generic
[2] https://openwrt.org/docs/techref/instructionset/aarch64_cortex-a53
[3] https://openwrt.org/docs/techref/instructionset/arm_cortex-a15_neon-vfpv4

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2020-12-15 11:38:30 +08:00
Aleksander Jan Bajkowski
a6214955f5 lantiq: xrx200: remove unused lan/wan labels from dts
These labels are not used anywhere and can be removed.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2020-12-15 11:35:51 +08:00
Gioacchino Mazzurco
e66d562b0c tplink-safeloader: add support for TP-Link CPE510 v3.20
This adds new strings for the v3.20 to the support list of the
already supported TP-Link CPE510 v3.

The underlying hardware appears to be the same, similar to the
situation with CPE210 v3.20 in 4a2380a1e7 ("tplink-safeloader:
expand support list for TP-Link CPE210 v3")

Signed-off-by: Gioacchino Mazzurco <gio@altermundi.net>
[extended commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-15 11:35:36 +08:00
CN_SZTL
f52579b1b7 Merge Mainline 2020-12-13 10:43:36 +08:00
CN_SZTL
9617e2cfba bcm63xx: sync with upstream source 2020-12-13 10:18:41 +08:00
Sander Vanheule
91d5235972 firmware-utils: tplink-safeloader: refactor meta-partition padding
Because some padding values in the TP-Link safeloader image generation
were hardcoded, different values were sometimes used throughout a
factory image. TP-Link's upgrade images use the same value everywhere,
so let's do the same here.

Although a lot of TP-Link's safeloader images have padded partition
payloads, images for the EAP-series of AC devices don't. This padding is
therefore also made optional.

By replacing the type of the padding value byte with a wider datatype,
new values outside of the previously valid range become available. Use
these new values to denote that padding should not be performed.
Because char might be signed, also replace the char literals by a
numeric literal. Otherwise '\xff' might be sign extended to 0xffff.

This results in factory images differing by 1 byte for:
* C2600
* ARCHER-C5-V2
* ARCHERC9
* TLWA850REV2
* TLWA855REV1
* TL-WPA8630P-V2-EU
* TL-WPA8630P-V2-INT
* TL-WPA8630P-V2.1-EU
* TLWR1043NDV4
* TL-WR902AC-V1
* TLWR942NV1
* RE200-V2
* RE200-V3
* RE220-V2
* RE305-V1
* RE350-V1
* RE350K-V1
* RE355
* RE450
* RE450-V2
* RE450-V3
* RE500-V1
* RE650-V1

The following factory images no longer have padding, shrinking the
factory images by a few bytes for:
* EAP225-OUTDOOR-V1
* EAP225-V3
* EAP225-WALL-V2
* EAP245-V1
* EAP245-V3

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-12-13 10:12:41 +08:00
Sander Vanheule
4c208365b4 firmware-utils: tplink-safeloader: refactor meta-partition generation
TP-Link safeloader firmware images contain a number of (small)
partitions with information about the device. These consist of:
* The data length as a 32-bit integer
* A 32-bit zero padding
* The partition data, with its length set in the first field

The OpenWrt factory image partitions that follow this structure are
soft-version, support-list, and extra-para. Refactor the code to put all
common logic into one allocation call, and let the rest of the data be
filled in by the original functions.

Due to the extra-para changes, this patch results in factory images that
change by 2 bytes (not counting the checksum) for three devices:
* ARCHER-A7-V5
* ARCHER-C7-V4
* ARCHER-C7-V5

These were the devices where the extra-para blob didn't match the common
format. The hardcoded data also didn't correspond to TP-Link's (recent)
upgrade images, which actually matches the meta-partition format.

A padding byte is also added to the extra-para partition for EAP245-V3.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-12-13 10:12:37 +08:00
Damien Mascord
8164fce018 ath79: add support for Belkin F9J1108v2 (AC1750 DB Wi-Fi)
This device is the non-US build of the F9K1115 v2, with a different
firmware magic.

Specifications:

SoC: QCA9558
CPU: 720 MHz
Flash: 16 MiB NOR
RAM: 128 MiB
WiFi 2.4 GHz: QCA9558-AT4A 3x3 MIMO 802.11b/g/n
WiFi 5 GHz: QCA9880-2R4E 3x3 MIMO 802.11a/n/ac
Ethernet: 4x LAN and 1x WAN (all 1gbps)
USB: 1 x USB 2.0 (lower), 1 x USB 3.0 (upper)

MAC addresses based on OEM firmware:

Interface   Address   Location
---------   -------   --------
lan         *:5A      sometimes in 0x6
wan         *:5B      0x0
2.4Ghz      *:5A      0x1002
5Ghz        As per mini PCIe EEPROM

Flashing instructions:

The factory.bin can be flashed via the Belkin web UI or via the uboot
http upgrade page.
Once the factory.bin has been written, sysupgrade.bin will work as usual.

Signed-off-by: Damien Mascord <tusker@tusker.org>
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
[wrap commit message/code, adjust label-mac-device, whitespace fixes,
merge block in 02_network]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-13 10:12:29 +08:00
Karel Kočí
a180255384 mvebu: fix initramfs/kernel image for CZNIC Turris Omnia
This adds DTB to kernel and that way makes it possible to easily boot
initramfs image and also kernel.

The sequence to boot initramfs on Omnia is then just:
  env set bootargs earlyprintk console=ttyS0,115200
  dhcp 0x1000000 192.168.1.1:openwrt-mvebu-cortexa9-cznic_turris-omnia-initramfs-kernel.bin
  bootz 0x1000000

Without this change kernel boot won't proceed and is stuck on "Starting
kernel".

Signed-off-by: Karel Kočí <karel.koci@nic.cz>
[fixed From: to match with SoB:]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-12-12 11:45:22 +08:00
Rafał Mikrut
da5d2a30e6 realtek: Add missing case in switch statement
Cppcheck shows here duplicated break.

Code `state->speed = SPEED_1000;` will be never executed because above
it there is break statement.

Almost identical statement is placed in another realtek driver
18a53d43d6/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/dsa.c (L286-L294)

Signed-off-by: Rafał Mikrut <mikrutrafal@protonmail.com>
2020-12-12 11:39:46 +08:00
Rafał Mikrut
d7d04a298a realtek: Fix self assignment
Cppcheck shows self initialization error, which is an obvious bug.

Basing on logic of similar fragment below I assigned to this variable,
value `RTL838X_LED_GLB_CTRL` which I think is proper.

Signed-off-by: Rafał Mikrut <mikrutrafal@protonmail.com>
2020-12-12 11:39:28 +08:00
Daniel González Cabanelas
055ddffb8d bcm63xx: DGND3700v1: use the real board name
The Netgear DGND3700v1/DGND3800B shows kernel redundant info at the board
message, already provided by the machine info message.

Use the real board name which is silkscreened on the PCB and used in the
stock firmware header.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-12-12 11:36:47 +08:00
CN_SZTL
0ab70179e4 Merge Mainline 2020-12-11 20:13:52 +08:00
AmadeusGhost
546e593192 mtwifi: enable autoload by default 2020-12-10 11:20:53 +08:00
John Audia
8937a4346c kernel: bump 5.4 to 5.4.82
Removed since included upstream and could be reverse-applied by quilt:
  backport-5.4/315-v5.10-usbnet-ipeth-fix-connectivity-with-ios-14.patch

Remaining modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Curtis Deptuck <curtdept@me.com> [build/run x86_64]
2020-12-10 11:17:08 +08:00
Sieng Piaw Liew
f8547f34a7 kernel: unlock MX25L6406E with 4 bit Block Protect
Hacked in basic support for 4 bit Block Protection register, copied from
linux-master. Needed to unlock Innacomm W3400V's SPI flash MX25L6406E,
compatible with MX25L6405D.

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
[Amend commit description, refresh patch]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-12-10 11:15:39 +08:00
CN_SZTL
d38a253aa4 Merge Mainline 2020-12-08 13:23:44 +08:00
Adrian Schmutzler
32272776ed ramips: remove redundant status for USB controllers
mt7621, mt7628an and rt5350 have USB controllers (ehci/ohci or xhci)
enabled by default. Thus, this patch drops redundant status=okay
statements in derived device DTS files.

While at it, also drop an explicit status=okay in mt7621.dtsi, as
this is default.

Note:

For rt5350, about 50 % of the devices enabled ehci/ohci in the DTS
files, and there is actually no device actively disabling it.
It looks like only a few people are aware that the controllers are
enabled by default here.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-08 11:38:11 +08:00
Adrian Schmutzler
bdcda32481 ramips: simplify status for ehci/ohci on mt7628 TP-Link devices
At the moment, ehci/ohci is enabled in mt7628an SoC DTSI, then
disabled in the TP-Link-specific DTSI files, and finally enabled
again in the DTS files of the devices needing it.

This on-off-on scheme is hard to grasp on a quick look. Thus, this
patch drops the status in the TP-Link-specific DTSI files, having
the TP-Link devices treated like the rest of mt7628an DTSes, i.e.
ehci/ohci is enabled by default and needs to be disabled explicitly
where needed.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-08 11:37:42 +08:00
Rui Salvaterra
bc95e9e23d kernel: kmod-lib-zstd: enable crypto API support
Zstd is supported by the crypto API since Linux 4.18. Enable this feature and
reveal the package in the configuration section, so the user can select it.
This allows zstd to be used as a compression algorithm in zram, for example.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2020-12-08 11:33:51 +08:00
Felix Fietkau
52647d65a5 build: make testing kernel decompression more portable
On non-GNU systems, zcat often does not handle gzip decompression.
Use gzip -dc like the regular unpack command

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-12-08 11:30:25 +08:00
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
Sieng Piaw Liew
46c79bc321 bcm63xx: support xmit_more in BQL
Support bulking hardware TX queue by using xmit_more.

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
[Amend commit description, fix kernel xmit_more exceptions]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-12-08 11:26:54 +08:00
Sieng Piaw Liew
8675496583 bcm63xx: add BQL support
Add Byte Queue Limits support to reduce/remove bufferbloat in bcm63xx target.

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
[Amend commit description]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-12-08 11:26:31 +08:00
CN_SZTL
6151d81905 Merge Mainline 2020-12-06 13:15:14 +08:00
CN_SZTL
6ed88e02d9 Merge Mainline 2020-12-06 02:29:58 +08:00
CN_SZTL
4fec80706b [VERSION] BUMP TO MOD 20.12 2020-12-05 19:42:14 +08:00
CN_SZTL
353a4cba23 Merge Mainline 2020-12-05 19:05:37 +08:00
Adrian Schmutzler
e8d4ff8e1a ath79: add support for TP-Link TL-WDR7500 v3
This ports support for the TP-Link TL-WDR7500 v3 from ar71xx to ath79.

The basic features appear to be identical to the Archer C7 v1, however
it has the (supported) QCA9880-BR4A chip of the C7 v2.

Specifications:

  SoC:       QCA9558
  CPU:       720 MHz
  Flash:     8 MiB
  RAM:       128 MiB
  WLAN:      2.4 GHz b/g/n, 5 GHz a/n/ac
             Qualcomm Atheros QCA9880-BR4A
  Ethernet:  5x Gbit ports
  USB:       2x 2.0 ports

Flashing instructions:

Upload the factory image via the OEM firmware GUI.

TFTP recovery appears to be available as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-05 17:20:46 +08:00
John Audia
3595c6e91a kernel: bump 5.4 to 5.4.81
All modifications made by update_kernel.sh/no human intervention needed

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
[another refresh]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-05 17:19:43 +08:00
Adrian Schmutzler
d1b4d17a1c ramips: drop redundant status for gpio/gpio0
The first gpio controller (gpio or gpio0) is always enabled by
default in the SoC DTSI files. No need to set status=okay in the
device DTS files a second time.

Remove the redundant statements.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-05 17:19:39 +08:00
Adrian Schmutzler
75e4d46d67 ath79: drop num-cs for SPI controller
None of the spi drivers on ath79 uses the num-cs property.

Cc: Chuanhong Guo <gch981213@gmail.com>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Chuanhong Guo <gch981213@gmail.com>
2020-12-05 17:19:35 +08:00
Adrian Schmutzler
009af3323e ath79: remove num-chipselects from SPI controller
The num-chipselects property is only valid for bit-banged spi-gpio [1].

For the generic SPI controller bindings, num-cs would be the correct
property [2].

Since num-cs is not required on ath79 either, just drop the lines.

[1] https://www.kernel.org/doc/Documentation/devicetree/bindings/spi/spi-gpio.yaml
[2] https://www.kernel.org/doc/Documentation/devicetree/bindings/spi/spi-controller.yaml

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-05 17:19:31 +08:00
Mengyang Li
fc4d89bcc6 x86: enable CONFIG_MMC_SDHCI_ACPI for x86_64
Some x86_64 single board computer (including Atomic Pi)
has onboard emmc, but requires CONFIG_MMC_SDHCI_ACPI driver
to use or boot from it.

Here is boot message for the mmc device

[    2.838008] mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA
[    2.857536] mmc1: SDHCI controller on ACPI [80860F14:01] using ADMA
[    2.950019] mmc0: new HS200 MMC card at address 0001
[    3.158271] mmcblk0: mmc0:0001 M52516 14.6 GiB
[    3.170290] mmcblk0boot0: mmc0:0001 M52516 partition 1 4.00 MiB
[    3.177191] mmcblk0boot1: mmc0:0001 M52516 partition 2 4.00 MiB
[    3.183963] mmcblk0rpmb: mmc0:0001 M52516 partition 3 4.00 MiB, \
chardev (248:0)

Other lines changed in this config file are introduced by menuconfig.

Signed-off-by: Mengyang Li <mayli.he@gmail.com>
2020-12-05 17:19:19 +08:00
David Bauer
68d44856e7 generic: ipeth: fix iOS 14 tethering
This fixes tethering with devices using iOS 14. Prior to this patch,
connections to remote endpoints were not possible while data transfers
between the OpenWrt device and the iOS endpoints worked fine.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-12-05 17:19:14 +08:00
Hauke Mehrtens
1ca3feb663 build: Extract trusted-firmware-a.mk
The include/trusted-firmware-a.mk file is based on the
include/u-boot.mk file and should be used to build a Trusted Firmware-A
(TFA) which was previously named Arm trusted firmware.

This is useful for targets where the TFA is board specific like for
Marvell SoCs and probably also NXP Layerscape SoCs.

This also makes use of this abstraction in the
arm-trusted-firmware-mvebu package to build board specific ATF binaries.

The ATF binaries will be automatically activated and build when the
board is selected in the normal build or all boards are selected. This
should also activate the build when build bot creates images.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-12-05 17:15:49 +08:00
Hauke Mehrtens
7a14c26724 toolchain: musl: refresh patches
Refresh the musl patches

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-12-05 17:15:44 +08:00
David Bauer
d82c1e13f3 ath79: remove ar934x MDIO reset from MAC node
Remove the MDIO reset from the MAC mode for the AR934x SoC family.
The reset is currently also defined for the MDIO node, where the reset
is acquired exclusively.

In case the ethernet node is enabled, this triggers a warning, as the
reset is already acquired by the MAC.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-12-05 17:15:40 +08:00
Sieng Piaw Liew
0a5927810e bcm63xx: enetsw: switch to netdev_alloc_skb_ip_align
Increases packet processing performance by 30%.
Tested on BCM6328 320 MHz and iperf3 -M 512 for packet/sec performance.

Before:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-30.00  sec   120 MBytes  33.7 Mbits/sec  277             sender
[  4]   0.00-30.00  sec   120 MBytes  33.5 Mbits/sec                  receiver

After:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-30.00  sec   155 MBytes  43.3 Mbits/sec  354             sender
[  4]   0.00-30.00  sec   154 MBytes  43.1 Mbits/sec                  receiver

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
[Merge patches, amend commit and add patch description]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-12-05 17:15:36 +08:00
Sieng Piaw Liew
fdc15e8efc bcm63xx: batch process RX path
Use netif_receive_skb_list to batch process skb in RX.
Tested on BCM6328 320 MHz using iperf3 -M 512, increasing performance by 12.5%.

Before:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-30.00  sec   120 MBytes  33.7 Mbits/sec  277             sender
[  4]   0.00-30.00  sec   120 MBytes  33.5 Mbits/sec                  receiver

After:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-30.00  sec   136 MBytes  37.9 Mbits/sec  203             sender
[  4]   0.00-30.00  sec   135 MBytes  37.7 Mbits/sec                  receiver

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
[Amend commit description]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-12-05 17:15:33 +08:00
Thomas Huehn
1fdb047dd0 ath79: enable LNA for all ar9344 TPLink CPE devices
The TPLink CPE devices CPE210/CPE510 based on ar9344 have a build-in
Low Noise Amplifier on both of the 2x2 mimo rx chains.
This patch activates those two LNAs in the respective receiving chains
and hence improves the RX sensitivity by about 20dB.

Tested on CPE510 v2 & v3.

Signed-off-by: Thomas Huehn <thomas.huehn@hs-nordhausen.de>
Acked-by: Robert Marko <robimarko@gmail.com>
2020-12-05 17:15:28 +08:00
Felix Fietkau
e512e5d44f netifd: update to the latest version
d6bd1047d004 vlandev: dump vlan id in device status
e0c838bd06a6 vlandev: support bridge-vlan aliases in the vid config parameter
574dc4a17105 system-dummy: print configured mac address
14f0e8ff928f system-linux: simplify mask check in system_if_apply_settings
524310276f20 system-linux: move device settings handling to device.c
42c48866f1c1 config: parse default mac address from board.json

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-12-05 17:15:24 +08:00
John Crispin
da2e3c8fe4 realtek: fix SFP ports on the dlink 10port switch
Signed-off-by: John Crispin <john@phrozen.org>
2020-12-05 17:15:19 +08:00
John Crispin
db63a5b7e0 realtek: add zyxel_gs1900-10hp support
Signed-off-by: John Crispin <john@phrozen.org>
2020-12-05 17:15:07 +08:00
John Crispin
15abc5c128 realtek: cleanup package selection
Signed-off-by: John Crispin <john@phrozen.org>
2020-12-05 17:15:00 +08:00
John Crispin
27304f4291 realtek: clean up board.json generation
In this new setup the switch is treated as wan, lan1.100 is used as
our mgmt vlan.

The board mac is applied to eth0, switch and switch.1

The board mac is assigned with the LA bit set to all lan ports while
incrementing it.

Signed-off-by: John Crispin <john@phrozen.org>
2020-12-05 17:14:55 +08:00
John Crispin
49902ea044 base-files: allow setting device and bridge macs
Add code for setting mac addresses inside board.json and rendering
them out to uci. On switches we want to have a unique MAC on each port.
With 48 port switches that would require 48 device sections in
/etc/config/network. Doing so via board.json is easier.

Signed-off-by: John Crispin <john@phrozen.org>
2020-12-05 17:14:49 +08:00
John Crispin
a4d143d52f uboot-envtools: add support for the realtek target
On most boards the MAC is located inside the u-boot-env.

Signed-off-by: John Crispin <john@phrozen.org>
2020-12-05 17:14:23 +08:00
Tomasz Maciej Nowak
9b0c41bc68 ath79: restore sysupgrade support for ja76pf2 and routerstations
Because the bug described in FS#2428 has been fixed with bf2870c1d9
("kernel: fix mtd partition erase < parent_erasesize writes") these
devices can now safely do sysupgrade.

Restore sysupgrade support disabled in:

0cc87b3bac ("ath79: image: disable sysupgrade images for routerstations
and ja76pf2")

cc5256a8bf ("ath79: base-files: disable sysupgrade for routerstations
and ja76pf2")

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
[move Build block, remove check-size argument, wrap sysupgrade line,
make commit message easier to read]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-05 17:14:15 +08:00
Tomasz Maciej Nowak
9ff73a8271 ath79: wlr-7100: remove device variant indicator
As reported by user, the same image works on both device variants which
are v1 001 and v1 002.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2020-12-05 17:12:29 +08:00
Aleksander Jan Bajkowski
b642ad128e lantiq: fix build of squashfs images
This patch fixes build of squashfs image on lantiq. Currently the FEATURE
variable is overwritten by the subtarget.

Fixes: FS#3480
Fixes: f1c6523376 ("lantiq: clean up target/subtarget features")

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
[reformat Fixes:]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-05 17:09:20 +08:00
Pavel Chervontsev
d763e7c060 ramips: add support for ASUS RT-N56U B1
Specifications:

SoC: MediaTek MT7621ST (880 MHz)
FLASH: 16 MiB (Macronix MX25L12835FM2I-10G)
RAM: 128 MiB (Nanya NT5CB64M16FP-DH)
WiFi: MediaTek MT7603EN bgn 2x2:2
WiFi: MediaTek MT7612EN an 2x2:2
BTN: Reset, WPS
LED: - Power
- WiFi 2.4 GHz
- WiFi 5 GHz
- WAN
- LAN {1-4}
- USB {1-2}
UART: UART is present as pin hole next to the aluminium capacitor.
3V3 - RX - GND - TX / 115200-8N1
3V3 is the nearest on the aluminium capacitor and nut hole (pin1).
USB: 2 ports
POWER: 12VDC, 1.5A (Barrel 5.5x2.1)

Installation:

Via TFTP:
    Set your computers IP-Address to 192.168.1.75
    Power up the Router with the Reset button pressed.
    Release the Reset button after 5 seconds.
    Upload OpenWRT sysupgrade image via TFTP:
    tftp -4 -v -m binary 192.168.1.1 -c put IMAGE

MAC addresses:

0x4     *:98  2g/wan, label
0x22    *:9c
0x28    *:98
0x8004  *:9c  5g/lan

Though addresses are written to 0x22 and 0x28, it appears that the
vendor firmware actually only uses 0x4 and 0x8004. Thus, we do the
same here.

Signed-off-by: Pavel Chervontsev <cherpash@gmail.com>
[add MAC address overview, add label-mac-device, fix IMAGE_SIZE]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-12-05 17:09:15 +08:00
Álvaro Fernández Rojas
685917d338 ath10k-firmware: remove unused package
All firmwares were added to linux-firmware, so there's no need to keep this
package definitions.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-12-05 17:08:42 +08:00
Álvaro Fernández Rojas
4d78d96977 ath10k-ct-firmware: switch to linux-firmware board binaries
Instead of duplicating board firmware binaries, which are exactly the same
as the ones from linux-firmware, add dependencies and remove duplicated
downloads.

Runtime-tested on ath79 (TP-Link Archer C7 v2) and ipq806x (Netgear R7800).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-12-05 17:07:48 +08:00
Álvaro Fernández Rojas
2384ce28cd linux-firmware: ath10k: add board firmware packages
Split ath10k firmwares into board and firmware packages.
This way we can add dependencies to ath10k-ct firmware packages.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-12-05 17:07:44 +08:00
CN_SZTL
bda7db0e5d r8125: allow build for kernel 5.4 2020-12-05 13:24:03 +08:00
CN_SZTL
10867f5772 rockchip: sync upstream patch 2020-11-29 12:22:40 +08:00
CN_SZTL
951df49a9f rockchip: enable hwRNG on rk3399 by default 2020-11-29 11:47:25 +08:00
CN_SZTL
8e2237d440 rockchip: drop hwRNG support for NanoPi R2S 2020-11-29 11:34:47 +08:00
AmadeusGhost
6c1e7a613a rockchip: add definition of hwRNG crypto engine 2020-11-29 11:34:18 +08:00
CN_SZTL
a13fecb3fd rockchip: move hwRNG driver to files 2020-11-29 11:30:32 +08:00
CN_SZTL
6acd99e2ab Merge Mainline 2020-11-28 21:21:58 +08:00
CN_SZTL
0f7e04b681 Merge Mainline 2020-11-28 19:17:32 +08:00
Klaus Kudielka
c798c21b9f mvebu: fixup Turris Omnia U-Boot environment
Fixup dfa357a3de "mvebu: base-files: Update Turris Omnia U-Boot
environment" which should have included this file as well.

By rebasing the initial patch this file somehow disappeared.

Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
Reviewed-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
Tested-by: W. Michael Petullo <mike@flyn.org> (Turris Omnia "2020")
Tested-by: Klaus Kudielka <klaus.kudielka@gmail.com> (Turris Omnia)
[explain fixup in commit message]
Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-11-28 19:14:07 +08:00
Klaus Kudielka
736274b5f2 mvebu: base-files: Update Turris Omnia U-Boot environment
Move the update procedure from sysupgrade to first boot, which is much
more convenient in the sysupgrade case (otherwise the environment is
always one generation behind).

Check whether we have an old U-Boot release installed, and update the
environment only if necessary.

Some notes on the U-Boot environment:

The first 9 lines are a copy of the default environment of the old U-Boot
release - only modified, to run "distro_bootcmd", in case "mmcboot" fails
to boot the factory OS.

The remaining 16 lines are a backport of the default environment of the
new U-Boot release (shipped with CZ11NIC23). The main entry point is
"distro_bootcmd", which eventually sources boot.scr. This way, we have
a unified boot protocol for all Turris Omnia revisions so far.

This commit also fixes a shortcoming of previous Turris Omnia support:

Users may install OpenWrt with the Turris Omnia in factory state
(i.e. invalid environment store). In that case, neither fw_setenv, nor
U-Boot itself, would import the default environment from the image -
screwing up the rescue system, at least!

Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
Reviewed-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
Tested-by: W. Michael Petullo <mike@flyn.org> (Turris Omnia "2020")
Tested-by: Klaus Kudielka <klaus.kudielka@gmail.com> (Turris Omnia)
2020-11-28 19:07:25 +08:00
Klaus Kudielka
8321bea1bb mvebu: Add turris-omnia.bootscript
In contrast to the U-Boot version shipped with older versions of Turris
Omnia (CZ11NIC13, CZ11NIC20), the version shipped with Turris Omnia 2019
(CZ11NIC23) relies on the existence of /boot.scr.

Consequently, add a suitable boot script to the sysupgrade image.

Flash instructions for Turris Omnia 2019:
- Download openwrt-...-sysupgrade.img.gz, gunzip it, and copy the resulting
  .img file to the root of a USB flash drive (FAT32 or ext2/3/4).
- Enter a rescue shell: Either via 5-LED reset and ssh root@192.168.1.1
  on LAN port 4, or via 7-LED reset and the serial console.
- Insert the USB drive and mount it:
  mkdir /mnt; mount /dev/sda1 /mnt
- Flash the OpenWrt image to eMMC:
  dd if=/mnt/openwrt-...-sysupgrade.img of=/dev/mmcblk0 bs=4096 conv=fsync
- Reboot.

Flash instructions using a temporary "medkit" installation were written for
the older versions of Turris Omnia, and will *not* work on the Turris Omnia
2019.

Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
Reviewed-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
Tested-by: W. Michael Petullo <mike@flyn.org> (Turris Omnia "2020")
2020-11-28 19:07:21 +08:00
Kevin Darbyshire-Bryant
7a4bcaa7f9 kernel: clean up patch fuzz
Recent kernel bumps & target patch refactors have left some patch fuzz
around.  Refreshed kernel patches using update_kernel script.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2020-11-28 19:05:06 +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
John Crispin
89ba10c592 realtek: update the tree to the latest refactored version
* rename the target to realtek
* add refactored DSA driver
* add latest gpio driver
* lots of arch cleanups
* new irq driver
* additional boards

Signed-off-by: Bert Vermeulen <bert@biot.com>
Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: John Crispin <john@phrozen.org>
2020-11-28 19:04:55 +08:00
John Audia
ca10bfd82d kernel: bump 5.4 to 5.4.80
Removed since could be reverse-applied by quilt and found to be
included upstream:
  backport-5.4/789-net-usb-qmi_wwan-Set-DTR-quirk-for-MR400.patch

All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, bcm27xx/bcm2711, ath79/generic
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Curtis Deptuck <curtdept@me.com> [x86_64 build/run]
2020-11-28 19:04:52 +08:00
Sander Vanheule
a8b651fb46 ramips: mt7621: replace missing custom-initramfs-uimage
custom-initramfs-uimage was replaced by calls to uImage, but apparently
mtc_wr1201 was missed in the transistion. Use uImage for this device
too.

Fixes: 9f574b1b87 "ramips: mt7621: drop custom uImage function"

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-11-28 19:04:47 +08:00
Adrian Schmutzler
1dafb8435f treewide: add space before SPDX identifier
Strictly, an SPDX identifier requires a space between the comment
marker and the identifier itself. The choice of the comment marker
itself is irrelevant.

Correct:

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

Wrong:

//SPDX-License-Identifier: GPL-2.0-or-later OR MIT

Fix that in the whole tree (actually, only ramips contained wrong
uses).

Found by checkpatch.pl

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 19:03:27 +08:00
Adrian Schmutzler
ba23255ebf ramips: move dts-v1 statement to top-level DTSI files
The "/dts-v1/;" identifier is supposed to be present once at the
top of a device tree file after the includes have been processed.

In ramips, we therefore requested to have in the DTS files so far,
and omit it in the DTSI files. However, essentially the syntax of
the parent mtxxxx/rtxxxx DTSI files already determines the DTS
version, so putting it into the DTS files is just a useless repetition.

Consequently, this patch puts the dts-v1 statement into the top-level
SoC-based DTSI files, and removes all other occurences.
Since the dts-v1 statement needs to be before any other definitions,
this also moves the includes accordingly where necessary.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 19:03:05 +08:00
Ataberk Özen
7fa980700b ramips: add support for Xiaomi Mi Router 4C
This commit adds support for Xiaomi's Mi Router 4C device.

Specifications:

- CPU: MediaTek MT7628AN (580MHz)
- Flash: 16MB
- RAM: 64MB DDR2
- 2.4 GHz: IEEE 802.11b/g/n with Integrated LNA and PA
- Antennas: 4x external single band antennas
- WAN: 1x 10/100M
- LAN: 2x 10/100M
- LEDs: 2x yellow/blue. Programmable (labelled as power on case)
                      - Non-programmable (shows WAN activity)
- Button: Reset

How to install:

1- Use OpenWRTInvasion to gain telnet and ftp access.
2- Push openwrt firmware to /tmp/ using ftp.
3- Connect to router using telnet. (IP: 192.168.31.1 -
   Username: root - No password)
4- Use command "mtd -r write /tmp/firmware.bin OS1" to flash into
   the router..
5- It takes around 2 minutes. After that router will restart itself
   to OpenWrt.

Signed-off-by: Ataberk Özen <ataberkozen123@gmail.com>
[wrap commit message, bump PKG_RELEASE for uboot-envtools, remove
dts-v1 from DTS, fix LED labels]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 19:01:05 +08:00
Tomasz Maciej Nowak
723b1698c8 tegra: sysupgrade: remove redundant MBR check
This is already done by get_partitions.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
[add "redundant" to title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 18:57:51 +08:00
Tomasz Maciej Nowak
02e66d4e41 mvebu: sysupgrade: remove redundant MBR check
This is already done by get_partitions.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
[add "redundant" to title, remove declaration of magic variable]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 18:57:46 +08:00
Sander Vanheule
56827c5626 rtl838x: drop custom mkimage build function
UIMAGE_MAGIC is now supported by Build/uImage, in addition to
UIMAGE_NAME. This removes the need for a custom mkimage call, so let's
remove it.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-11-28 18:53:25 +08:00
Sander Vanheule
f569872f1d ath79: netgear: trim down uImage customisations
Replace NETGEAR_KERNEL_MAGIC by UIMAGE_MAGIC to better match the
variable's purpose. This allows to drop the custom
Build/netgear-uImage.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
[keep UIMAGE_MAGIC definitions even for default value]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 18:53:21 +08:00
Sander Vanheule
0aae5aa54e build: add UIMAGE_MAGIC to device variables
Allow a device recipe to specify a custom UIMAGE_MAGIC value, as used by
OpenWrt's -M flag for mkimage. This allows to automatically customize
the magic bytes in all calls to Build/uImage for this device, similar to
the behaviour of UIMAGE_NAME. Since the -M argument is inserted before
the user arguments, it can be overriden.

The following example would use 0x87654321 for the KERNEL image, but
0x12345678 for the KERNEL_INITRAMFS image:

  define Device/MyDevice
    UIMAGE_MAGIC := 0x87654321
    KERNEL := ... | uImage lzma
    KERNEL_INITRAMFS := ... | uImage lzma -M 0x12345678
    ...
  endef

Fixes: df8e6be59a ("rtl838x: add new architecture")
[UIMAGE_MAGIC was not declared as a device variable]

Signed-off-by: Sander Vanheule <sander@svanheule.net>
[rebase, improve formatting of "Fixes"]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 18:53:06 +08:00
Sander Vanheule
4698cd4a5a ramips: mt7621: drop custom uImage function
Use the mkimage argument overrides provided by uImage to implement the
customisations required for the initramfs, instead of the near-identical
custom function.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-11-28 18:35:44 +08:00
Adrian Schmutzler
1a7efa7d37 build: uImage: separate arguments into individual lines
Having one line per argument increases overview dramatically.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 18:32:05 +08:00
Sander Vanheule
4418eded40 build: uImage: allow override of default arguments
For some build recipes, the argument to Build/uImage is used to sneak in
extra arguments for mkimage, whereas this appears to have been intended
to specificy the compression method only.

Use the first provided word for -C to be backwards compatible with
current calls to Build/uImage. Use the rest of the call arguments to
override the provided defaults. Only the input file name (-d) and the
output file name cannot overriden.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-11-28 18:32:02 +08:00
Tomasz Maciej Nowak
33d1b5e7a2 mvebu: base-files: move additional files to subtargets
Both of these scripts are only relevant to cortexa9, therefore move them
there.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
2020-11-28 18:31:56 +08:00
Tomasz Maciej Nowak
0660396587 mvebu: sort patches
Sort patches according to target/linux/generic/PATCHES. Additionally:
- replace hashes in backported patches with the ones from main Linux tree
- add descriptions to some patches

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
[remove 004-add_sata_disk_activity_trigger.patch separately]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 18:31:52 +08:00
Adrian Schmutzler
71c09c34b1 mvebu: remove redundant patch for Linksys LED trigger
Remove 004-add_sata_disk_activity_trigger.patch, as the trigger is
already added in shared dtsi.

Suggested-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 18:31:42 +08:00
Michael Pratt
2740d103c6 ath79: add support for Senao Engenius EAP300 v2
FCC ID: A8J-EAP300A

Engenius EAP300 v2 is an indoor wireless access point with a
100/10-BaseT ethernet port, 2.4 GHz wireless, internal antennas,
and 802.3af PoE.

**Specification:**

  - AR9341
  - 40 MHz reference clock
  - 16 MB FLASH			MX25L12845EMI-10G
  - 64 MB RAM
  - UART at J1			(populated)
  - Ethernet port with POE
  - internal antennas
  - 3 LEDs, 1 button		(power, eth, wlan) (reset)

**MAC addresses:**

  phy0  *:d3   art 0x1002 (label)
  eth0  *:d4   art 0x0/0x6

**Installation:**

  - if you get Failsafe Mode from failed flash:
      only use it to flash Original firmware from Engenius
      or risk kernel loop or halt which requires serial cable

  Method 1: Firmware upgrade page:

  OEM webpage at 192.168.1.1
  username and password "admin"
  Navigate to "Firmware" page from left pane
  Click Browse and select the factory.bin image
  Upload and verify checksum
  Click Continue to confirm and wait 3 minutes

  Method 2: Serial to load Failsafe webpage:

  After connecting to serial console and rebooting...
  Interrupt uboot with any key pressed rapidly
  execute `run failsafe_boot` OR `bootm 0x9fdf0000`
  wait a minute
  connect to ethernet and navigate to
  "192.168.1.1/index.htm"
  Select the factory.bin image and upload
  wait about 3 minutes

**Return to OEM:**

  If you have a serial cable, see Serial Failsafe instructions

  *DISCLAIMER*
  The Failsafe image is unique to Engenius boards.
  If the failsafe image is missing or damaged this will not work
  DO NOT downgrade to ar71xx this way, can cause kernel loop or halt

  The easiest way to return to the OEM software is the Failsafe image
  If you dont have a serial cable, you can ssh into openwrt and run

  `mtd -r erase fakeroot`

  Wait 3 minutes
  connect to ethernet and navigate to 192.168.1.1/index.htm
  select OEM firmware image from Engenius and click upgrade

**TFTP recovery** (unstable / not reliable):

  rename initramfs to 'vmlinux-art-ramdisk'
  make available on TFTP server at 192.168.1.101
  power board while holding or pressing reset button repeatedly

  NOTE: for some Engenius boards TFTP is not reliable
  try setting MTU to 600 and try many times

**Format of OEM firmware image:**

  The OEM software of EAP300 v2 is a heavily modified version
  of Openwrt Kamikaze. One of the many modifications
  is to the sysupgrade program. Image verification is performed
  simply by the successful ungzip and untar of the supplied file
  and name check and header verification of the resulting contents.
  To form a factory.bin that is accepted by OEM Openwrt build,
  the kernel and rootfs must have specific names
  and begin with the respective headers (uImage, squashfs).
  Then the files must be tarballed and gzipped.
  The resulting binary is actually a tar.gz file in disguise.
  This can be verified by using binwalk on the OEM firmware images,
  ungzipping then untaring.

  The OEM upgrade script is at /etc/fwupgrade.sh.

  OKLI kernel loader is required because the OEM software
  expects the kernel size to be no greater than 1536k
  and otherwise the factory.bin upgrade procedure would
  overwrite part of the kernel when writing rootfs.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
[clarify MAC address section, bump PKG_RELEASE for uboot-envtools]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 18:31:27 +08:00
Rui Salvaterra
6b06a48bfb lantiq: clean up target/subtarget features
The feature "squashfs" is defined for target and all subtargets
individually. Remove the redundant entries in the subtargets.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
[split patch, adjust commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 18:30:57 +08:00
Filip Moc
a61cfd6ac0 ramips: add license to TP-Link MR6400 v4's DTS
Signed-off-by: Filip Moc <lede@moc6.cz>
2020-11-28 18:30:21 +08:00
Álvaro Fernández Rojas
9c48d3165d cypress-nvram: add proper package conflicts
There are linux firmware packages for all RPIs NVRAMs.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-11-28 18:29:32 +08:00
Álvaro Fernández Rojas
a27b72b349 cypress-firmware: add proper package conflicts
There are linux firmwares packages for 43362, 43430 and 43455 which shouldn't
be installed at the same time as Cypress firmwares.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-11-28 18:29:24 +08:00
Karel Kočí
a2bad59785 ath10k-ct-firmware: add conflicts and better provides
This expands packages to define not only provides but also conflicts.
These packages provides same files so they should specify conflicts.

Second expansion is that *-ct-htt and *-ct-full-htt firmwares can also
provide *-ct variant as that allows explicit dependency on CT variant
with various firmware modifications.

Signed-off-by: Karel Kočí <karel.koci@nic.cz>
[Bump PKG_RELEASE and format PROVIDES/CONFLICTS]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-11-28 18:29:09 +08:00
Álvaro Fernández Rojas
f9f6bc80d4 ath10k-ct: update to latest version
1d28d17 ath10k-ct: Fix RSSI reporting for wave-1 firmware.
0c2949e ath10k-ct: fwcfg allows configuring dma-burst setting.
13319ff ath10k-ct: stable patches, debugfs crashdump, 5.8 driver

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-11-28 18:26:05 +08:00
Yanase Yuki
6617320dc4 ath79: move device specific nodes to DTS files for Devolo 1xxx
qca9558_devolo_dvl1xxx.dtsi contains device specific nodes which
are inherited for some DTS files and overwritten for others.

This is considered confusing, so move the relevant nodes/properties
to the devices and only keep the shared stuff in the DTSI.

Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
[clarify commit title/message, move &gmac_config in DTS]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-28 18:25:43 +08:00
Sander Vanheule
24c07f9d55 ath79: support for TP-Link EAP225 v3
TP-Link EAP225 v3 is an AC1350 (802.11ac Wave-2) ceiling mount access
point. Serial port access for debricking requires fine soldering.

Device specifications:
* SoC: QCA9563 @ 775MHz
* RAM: 128MiB DDR2
* Flash: 16MiB SPI-NOR
* Wireless 2.4GHz (SoC): b/g/n, 3x3
* Wireless 5Ghz (QCA9886): a/n/ac, 2x2 MU-MINO
* Ethernet (AR8033): 1× 1GbE, 802.3at PoE

Flashing instructions:
* ssh into target device and run `cliclientd stopcs`
* Upgrade with factory image via web interface

Debricking:
* Serial port can be soldered on PCB J3 (1: TXD, 2: RXD, 3: GND, 4: VCC)
    * Bridge unpopulated resistors R225 (TXD) and R237 (RXD).
      Do NOT bridge R230.
    * Use 3.3V, 115200 baud, 8n1
* Interrupt bootloader by holding CTRL+B during boot
* tftp initramfs to flash via LuCI web interface
    setenv ipaddr 192.168.1.1 # default, change as required
    setenv serverip 192.168.1.10 # default, change as required
    tftp 0x80800000 initramfs.bin
    bootelf $fileaddr

MAC addresses:
MAC address (as on device label) is stored in device info partition at
an offset of 8 bytes. ath9k device has same address as ethernet, ath10k
uses address incremented by 1.
From OEM boot log:

    Using interface ath0 with hwaddr b0:...:3e and ssid "..."
    Using interface ath10 with hwaddr b0:...:3f and ssid "..."

Tested by forum user blinkstar88

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-11-28 18:25:38 +08:00
Sander Vanheule
6135abd8dc ath79: support for TP-Link EAP225-Outdoor v1
TP-Link EAP225-Outdoor v1 is an AC1200 (802.11ac Wave-2) pole or wall
mount access point. Debricking requires access to the serial port, which
is non-trivial.

Device specifications:
* SoC: QCA9563 @ 775MHz
* Memory: 128MiB DDR2
* Flash: 16MiB SPI-NOR
* Wireless 2.4GHz (SoC): b/g/n 2x2
* Wireless 5GHz (QCA9886): a/n/ac 2x2 MU-MIMO
* Ethernet (AR8033): 1× 1GbE, PoE

Flashing instructions:
* ssh into target device with recent (>= v1.6.0) firmware
* run `cliclientd stopcs` on target device
* upload factory image via web interface

Debricking:
To recover the device, you need access to the serial port. This requires
fine soldering to test points, or the use of probe pins.
* Open the case and solder wires to the test points: RXD, TXD and TPGND4
  * Use a 3.3V UART, 115200 baud, 8n1
* Interrupt bootloader by holding ctrl+B during boot
* upload initramfs via built-in tftp client and perform sysupgrade
    setenv ipaddr 192.168.1.1 # default, change as required
    setenv serverip 192.168.1.10 # default, change as required
    tftp 0x80800000 initramfs.bin
    bootelf $fileaddr

MAC addresses:
MAC address (as on device label) is stored in device info partition at
an offset of 8 bytes. ath9k device has same address as ethernet, ath10k
uses address incremented by 1.
From stock ifconfig:

    ath0      Link encap:Ethernet  HWaddr D8:...:2E
    ath10     Link encap:Ethernet  HWaddr D8:...:2F
    br0       Link encap:Ethernet  HWaddr D8:...:2E
    eth0      Link encap:Ethernet  HWaddr D8:...:2E

Tested by forum user PolynomialDivision on firmware v1.7.0.
UART access tested by forum user arinc9.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-11-28 18:25:34 +08:00
Sander Vanheule
acc057d003 ath79: support for TP-Link EAP245 v1
TP-Link EAP245 v1 is an AC1750 (802.11ac Wave-1) ceiling mount access point.

Device specifications:
* SoC: QCA9563 @ 775MHz
* RAM: 128MiB DDR2
* Flash: 16MiB SPI-NOR
* Wireless 2.4GHz (SoC): b/g/n, 3x3
* Wireless 5Ghz (QCA9880): a/n/ac, 3x3
* Ethernet (AR8033): 1× 1GbE, 802.3at PoE

Flashing instructions:
* Upgrade the device to firmware v1.4.0 if necessary
* Exploit the user management page in the web interface to start telnetd
  by changing the username to `;/usr/sbin/telnetd -l/bin/sh&`.
* Immediately change the malformed username back to something valid
  (e.g. 'admin') to make ssh work again.
* Use the root shell via telnet to make /tmp world writeable (chmod 777)
* Extract /usr/bin/uclited from the device via ssh and apply the binary
  patch listed below. The patch is required to prevent `uclited -u` in
  the last step from crashing.
* Copy the patched uclited programme back to the device at /tmp/uclited
  (via ssh)
* Upload the factory image to /tmp/upgrade.bin (via ssh)
* Run `chmod +x /tmp/uclited && /tmp/uclited -u` to install OpenWrt.

    --- xxd uclited
    +++ xxd uclited-patched
    @@ -53796,7 +53796,7 @@
     000d2240: 8c44 0000 0320 f809 0000 0000 8fbc 0010  .D... ..........
     000d2250: 8fa6 0a4c 02c0 2821 8f82 87b8 0000 0000  ...L..(!........
    -000d2260: 8c44 0000 0c13 45e0 27a7 0018 8fbc 0010  .D....E.'.......
    +000d2260: 8c44 0000 2402 0000 0000 0000 8fbc 0010  .D..$...........
     000d2270: 1040 001d 0000 1821 8f99 8374 3c04 0058  .@.....!...t<..X
     000d2280: 3c05 0056 2484 a898 24a5 9a30 0320 f809  <..V$...$..0. ..

Debricking:
* Serial port can be soldered on PCB J3 (1: TXD, 2: RXD, 3: GND, 4: VCC)
    * Bridge unpopulated resistors R225 (TXD) and R237 (RXD).
      Do NOT bridge R230.
    * Use 3.3V, 115200 baud, 8n1
* Interrupt bootloader by holding CTRL+B during boot
* tftp initramfs to flash via the LuCI web interface
    setenv ipaddr 192.168.1.1 # default, change as required
    setenv serverip 192.168.1.10 # default, change as required
    tftp 0x80800000 initramfs.bin
    bootelf $fileaddr

Tested on the EAP245 v1 running the latest firmware (v1.4.0). The binary
patch might not apply to uclited from other firmware versions.

EAP245 v1 device support was originally developed and maintained by
Julien Dusser out-of-tree. This patch and "ath79: prepare for 1-port
TP-Link EAP2x5 devices" are based on that work.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-11-28 18:25:24 +08:00
CN_SZTL
6db7c3b79d ramips: add missing header in dts
Fixes: TG/202444
2020-11-26 12:34:08 +08:00
CN_SZTL
ae691e2869 Merge Mainline 2020-11-24 23:28:43 +08:00
Tomasz Maciej Nowak
eb65209401 treewide: update email address of Tomasz Maciej Nowak
Replace my o2.pl email address.

I'm still available at the old address.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
[rephrase commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-24 23:28:39 +08:00
John Audia
989a2fc270 kernel: bump 5.4 to 5.4.79
Manually rebased patches:
  ath79/patches-5.4/910-unaligned_access_hacks.patch
  bcm27xx/patches-5.4/950-0135-spi-spi-bcm2835-Disable-forced-software-CS.patch
  bcm27xx/patches-5.4/950-0414-SQUASH-Fix-spi-driver-compiler-warnings.patch
  ipq806x/patches-5.4/093-4-v5.8-ipq806x-PCI-qcom-Use-bulk-clk-api-and-assert-on-error.patch

Removed since could be reverse-applied by quilt and found to be included upstream:
  ipq806x/patches-5.4/096-PCI-qcom-Make-sure-PCIe-is-reset-before-init-for-rev.patch

All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
[refresh altered targets after rebase]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-24 23:28:30 +08:00
Sander Vanheule
006e09cb49 ath79: prepare for 1-port TP-Link EAP2x5 devices
TP-Link has developed a number of access points based on the AP152
reference board. In the EAP-series of 802.11ac access points, this
includes the following devices with one ethernet port:
* EAP225 v1/v2
* EAP225 v3
* EAP225-Outdoor v1
* EAP245 v1

Since the only differences between these devices are the ath10k wireless
radios and LEDs, a common base is provided for the overlapping support
requirements.

Hardware commonalities:
* SoC: QCA9563-AL3A MIPS 74kc v5.0 @ 775MHz, AHB @ 258MHz
* RAM: 128MiB DDR2 @ 650MHz
* Flash: 16MiB SPI NOR
* Wi-Fi 2.4GHz: provided by SoC
* Wi-Fi 5Ghz: ath10k chip on PCIe
* Ethernet: AR8033-AL1A, one 1GbE port (802.3at PoE)

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-11-24 23:27:20 +08:00
Julien Dusser
4ac6406a50 ath79: add QCA956x SERDES init workaround
This commit add a workaround for non working SGMII link observed on some
QCA956x SoCs. The workaround originates part from the U-Boot source code
from QCA, part from the implementation from TP-Link found in the GPL
tarball for the EAP245v1.

Extends commit 0d416a8d3b for QCA956x.
Note that reset is the same on QCA955x and QCA956x, same register offset
and values.

Auto calibration is done on u-boot, but always fall back to default value
0x7. Add a DTS entry serdes-cal in case a device require another value.

Signed-off-by: Julien Dusser <julien.dusser@free.fr>
[Sander Vanheule:
    Minor code style fixes,
    Remove hunk adding qca956x-serdes-fixup to a missing DTS,
    Remove variable err that was only assigned,
    Rename function to sgmii_serdes_init,
    Lower priority of serdes call message to pr_debug]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-11-24 23:27:08 +08:00
Sander Vanheule
74e4273f95 ath79: ensure QCA956x gmac0 mux selects sgmii
Some bootloaders do not set up gmac0 properly, leaving it disconnected
from the sgmii interface. If the user specificies phy-mode sgmii, then
use the gmac-config/device node to ensure the mux is configured
correctly.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-11-24 23:26:55 +08:00
Vladimir Vid
16060beeb3 mvebu: add initial support for Globalscale ESPRESSObin-Ultra
This patch adds support for Globalscale ESPRESSObin-Ultra. Device uses
the same Armada-3720 SoC with extended hardware support.

- SoC: Armada-3720
- RAM: 1 GB DDR4
- Flash: 4MB SPI NOR (mx25u3235f) + 8 GB eMMC
- Ethernet: Topaz 6341 88e6341 (4x GB LAN + 1x WAN with 30W PoE)
- WiFI: 2x2 802.11ac Wi-Fi marvell (88w8997 PCIe+USB)
- 1x USB 2.0 port
- 1x USB 3.0 port
- 1x microSD slot
- 1x mini-PCIe slot (USB [with nano-sim slot])
- 1x mini-USB debug UART
- 1x RTC Clock and battery
- 1x reset button
- 1x power button
- 4x LED (RGBY)
- Optional 1x M.2 2280 slot

** Installation **

Copy dtb from build_dir to bin/ and run tftpserver there:
$ cp ./build_dir/target-aarch64_cortex-a53_musl/linux-mvebu_cortexa53/
linux-5.4.65/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dtb
bin/targets/mvebu/cortexa53/
$ in.tftpd -L -s bin/targets/mvebu/cortexa53/

Connect to the device UART via microUSB port on the back side and power on the device.

Power on the device and hit any key to stop the autoboot.

Set serverip (host IP) and ipaddr (any free IP address on the same subnet), e.g:
$ setenv serverip 192.168.1.10 # Host
$ setenv ipaddr 192.168.1.15 # Device

Ping server to confirm network is working:
$ ping $serverip
Using neta@30000 device
host 192.168.1.15 is alive

Tftpboot the firmware:
$ tftpboot $kernel_addr_r openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-initramfs-kernel.bin
$ tftpboot $fdt_addr_r armada-3720-espressobin-ultra.dtb

Set the console and boot the image:
$ setenv bootargs $console
$ booti $kernel_addr_r - $fdt_addr_r

Once the initramfs is booted, transfer openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img.gz
to /tmp dir on the device.

Gunzip and dd the image:
$ gunzip /tmp/openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img.gz
$ dd if=/tmp/openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img of=/dev/mmcblk0 && sync

Reboot the device.

Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
2020-11-24 23:26:45 +08:00
Pawel Dembicki
057f431379 layerscape: enable spi-uart in LS1012A-FRDM
This patch add missing support of SC16IS740 serial controller, installed
on LS1012A-FRDM board.

It was required to change RCW bits, because SPI was disabled by default.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2020-11-24 23:23:32 +08:00
Pawel Dembicki
d975458314 layerscape: add i2c peripherials on LS1012A-RDB
LS1012A-RDB equipped in some i2c devices:
  - 3x GPIO Expander: PCAL9555A (NXP)
  - Gyro: FXAS21002 (NXP)
  - Accelerometer: FXOS8700 (NXP)
  - Current & Power Monitor: INA220 (TI)

This patch enables i2c peripherials installed on LS1012A-RDB.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2020-11-24 23:23:20 +08:00
Pawel Dembicki
a4a852c5a2 kernel: iio: add fxas21002c driver support
This patch adds kernel modules for Freescale FXAS21002C 3-axis gyro driver.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2020-11-24 23:23:13 +08:00
Pawel Dembicki
72a0fd3d70 layerscape: make initramfs kernel fit packed
This will make developing process easier, because dtb will be included
into image.
Not need to enable initramfs image by default.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2020-11-24 23:23:04 +08:00
René van Dorst
568e2da796 ramips: phy: at803x: Select SFP interface mode that both sides supports.
Currently sfp_select_interface() return the fastest interface that
the sfp modules supports even if the phy don't support that mode.

For example an GPON module that support both 2500basex and 1000basex.
Currently sfp_select_interface() picks 2500basex instead of 1000basex.

So limit the interfaces which both sides supports before calling
sfp_select_interface() or return an error if we don't have match.

Reviewed-by: John Thomson <git@johnthomson.fastmail.com.au>
Tested-by: Braihan Cantera <bcanterac@gmail.com> [MikroTik RB760iGS + Nokia G-010S-A 3FE46541AA SFP]
Tested-by: John Thomson <git@johnthomson.fastmail.com.au> [Mikrotik rb760igs + SFP SM/LC, SFP base1000T, SFP+ passive DAC]
Signed-off-by: René van Dorst <opensource@vdorst.com>
2020-11-24 23:22:56 +08:00
Sven Eckelmann
3f052694a1 kernel: mtd: parser: cmdline: Fix parsing of part-names with colons
Some devices (especially QCA ones) are already using hardcoded partition
names with colons in it. The OpenMesh A62 for example provides following
mtd relevant information via cmdline:

  root=31:11 mtdparts=spi0.0:256k(0:SBL1),128k(0:MIBIB),384k(0:QSEE),64k(0:CDT),64k(0:DDRPARAMS),64k(0:APPSBLENV),512k(0:APPSBL),64k(0:ART),64k(custom),64k(0:KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive) rootfsname=rootfs rootwait

The change to split only on the last colon between mtd-id and partitions
will cause newpart to see following string for the first partition:

  KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive)

Such a partition list cannot be parsed and thus the device fails to boot.

Avoid this behavior by making sure that the start of the first part-name
("(") will also be the last byte the mtd-id split algorithm is using for
its colon search.

Fixes: d6a9a92e32 ("kernel: bump 5.4 to 5.4.69")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2020-11-24 23:21:57 +08:00
Sven Eckelmann
3e0fa93705 ipq40xx: DTS style updates for OpenMesh devices
The OpenMesh related files were not updated since a while and the new
coding style requirements weren't integrated. This can cause problems
for new devices when an author uses these files as starting point.

* use SPDX-License-Identifiers instead of full license texts
* drop linux,default-trigger with value default-off for LEDs
* led nodes with label "abc:xyz" should have name "xyz_abc"
* led DT labels for "xyz_abc" should be "led_xyz_abc"
* "m25p80@0" flash node should be renamed to "flash@0"
* drop unnecessary empty lines

Signed-off-by: Sven Eckelmann <sven@narfation.org>
[minor commit title and message adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-24 23:21:00 +08:00
Rui Salvaterra
030ad3e723 ath79: move the squashfs feature to the parent target
All subtargets define it. Move it to the parent target and remove
it from all subtargets.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2020-11-24 23:20:48 +08:00
Felix Fietkau
a9f9bac8f8 netifd: update to the latest version
213748a9bcd9 system-linux: implement full device present state management for force-external devices
3abe1fc87151 system-linux: add retry for adding member devices to a bridge

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-11-24 23:20:35 +08:00
Filip Moc
4f36e09b79 ramips: add support for TP-Link MR6400 v4
You can flash via tftp recovery:
 - serve tftp-recovery image as /tp_recovery.bin on 192.168.0.225/24
 - connect to any ethernet port
 - power on the device while holding the reset button
 - wait at least 8 seconds before releasing reset button

Flashing via OEM web interface does not work.

LTE module does not support DHCP so it must be configured via QMI.

Hardware Specification (v4.0 EU):
 - SoC: MT7628NN
 - Flash: Winbond W25Q64JVS (8MiB)
 - RAM: ESMT M14D5121632A (64MiB)
 - Wireless: SoC platform only (2.4GHz b/g/n, 2x internal antenna)
 - Ethernet: 1NIC (4x100M)
 - WWAN: TP-LINK LTE MODULE (2x external detachable antenna)
 - Power: DC 9V 0.85A

Signed-off-by: Filip Moc <lede@moc6.cz>
2020-11-24 23:20:03 +08:00
Filip Moc
382d60ad65 generic: add DTR quirk patch for MR400 LTE
This is required for LTE module MR400 in TL-MR6400 v4.

Signed-off-by: Filip Moc <lede@moc6.cz>
2020-11-24 23:19:54 +08:00
CN_SZTL
06e24a3570 treewide: remove model name from LED labels 2020-11-22 14:36:13 +08:00
Chen Minqiang
cefad01346 ath79: add support for domywifi_dw33d-nor 2020-11-22 13:56:10 +08:00
Adrian Schmutzler
d28b48af3b base-files: allow exceptions when removing devicename from LEDs
Without the model-based devicename for LEDs, there are still cases
where a third component is required, typically when it refers to
internal "devices" like phys etc. An example are the following two
found on ramips:

  - rt2800soc-phy0::radio
  - rt2800pci-phy0::radio

So far, the rt2800*-phy: prefixes would be removed by the devicename
removal ("migration") script, and the configuration for these LEDs
would be broken.

To address this, this patch allows to add arguments to a call of
remove_devicename_leds, which will be compared against the first
part of the LED names/labels, and then be ignored by the routine,
and thus not removed:

  remove_devicename_leds "rt2800soc-phy0" "rt2800pci-phy0"

This mechanism is supposed to be used when a "devicename" applies
to several devices. If only a single device is affected, it might
be more effective to use a case statement and exclude the device
from migration by that entirely.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-22 01:30:09 +08:00
Adrian Schmutzler
6005494f25 base-files: add function to remove devicename from LED labels
Currently, we request LED labels in OpenWrt to follow the scheme

  modelname:color:function

However, specifying the modelname at the beginning is actually
entirely useless for the devices we support in OpenWrt. In patches
subsequent to this one, we will thus remove the modelname from
the label definitions on various targets.

To migrate the existing definitions from older installations,
a migration script needs to be deployed that does

  modelname:color:function -> color:function

e.g.

  dir-789:green:status -> green:status

This patch introduces two functions that do exactly that:
For each entry in /etc/config/system, the routine will check whether
two (or more) colons are present, and then remove everything up to
(and including) the first colon.

For now, this will be applied unconditionally, i.e. if the function
is called for a device, all labels will be cut like this.

However, for a future case of mixed three-part and two-part labels,
it should not be too hard to provide a function argument with
exceptions to the removal.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-22 01:29:45 +08:00
CN_SZTL
d94232b4e1 Revert "base-files: support label-property-less in get_dt_leds"
Applied already.

This reverts commit 5863771e43.
2020-11-22 01:26:22 +08:00
Adrian Schmutzler
6cdf828bd4 ramips: remove option to set WiFi LED via aliases
In ramips, it's not common to use an alias for specifying the WiFi
LED; actually only one device uses this mechanism (TL-WR841N v14).

Particularly since the WiFi LEDs are typically distinguished between
2.4G and 5G etc. it is also not very useful for this target.

Thus, this patch removes the setup lines for this mechanism and
converts the TL-WR841N v14 to the normal setup.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-22 01:22:46 +08:00
Christian Lamparter
5863771e43 base-files: support label-property-less in get_dt_leds
The LED's "label" property has been deprecated in upstream by:

|commit c5d18dd6b64e09dd6984bda9bdd55160af537a8c
|Author: Jacek Anaszewski <jacek.anaszewski@gmail.com>
|Date:   Sun Jun 9 20:19:04 2019 +0200
|
|    dt-bindings: leds: Add properties for LED name construction
|
|    Introduce dedicated properties for conveying information about
|    LED function and color. Mark old "label" property as deprecated.
|
|    Additionally function-enumerator property is being provided
|    for the cases when neither function nor color can be used
|    for LED differentiation.

in order to be somewhat prepared, this patch adds a fallback
as a last resort to make the current led code work by falling
back to the node-name as the "label".

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-11-22 01:22:31 +08:00
CN_SZTL
36211b0106 treewide: remove model name from LED labels 2020-11-22 01:20:31 +08:00
CN_SZTL
625ca05549 JCG Y2: remove model name from LED labels 2020-11-22 01:04:22 +08:00
Felix Fietkau
70c7b3ab21 netifd: update to the latest version
351d690f1a09 wireless: fix passing bridge name for vlan hotplug pass-through
c1c2728946b5 config: initialize bridge and bridge vlans before other devices
5e18d5b9ccb1 interface: do not force link-ext hotplug interfaces to present by default
4544f026bb09 bridge-vlan: add support for defining aliases for vlan ids

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-11-21 21:19:26 +08:00
CN_SZTL
b4ddfb0229 Merge Mainline 2020-11-21 21:18:28 +08:00
CN_SZTL
dfa7b831a8 rtl8812au-ac: move to ctcgfw 2020-11-21 21:02:05 +08:00
CN_SZTL
a288c03e6e ath79: remove model name from LED labels 2020-11-21 19:51:26 +08:00
Christian Lamparter
db0879cb1b base-files: support label-property-less in get_dt_leds
The LED's "label" property has been deprecated in upstream by:

|commit c5d18dd6b64e09dd6984bda9bdd55160af537a8c
|Author: Jacek Anaszewski <jacek.anaszewski@gmail.com>
|Date:   Sun Jun 9 20:19:04 2019 +0200
|
|    dt-bindings: leds: Add properties for LED name construction
|
|    Introduce dedicated properties for conveying information about
|    LED function and color. Mark old "label" property as deprecated.
|
|    Additionally function-enumerator property is being provided
|    for the cases when neither function nor color can be used
|    for LED differentiation.

in order to be somewhat prepared, this patch adds a fallback
as a last resort to make the current led code work by falling
back to the node-name as the "label".

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-11-21 19:49:54 +08:00
Aleksander Jan Bajkowski
ceb6130110 lantiq: xrx200: disable unused switch and phy
xrx200 has a 6 port built-in switch with 2 integrated PHY. None of the
xrx200 router uses external switch. Most boards use integrated or Lantiq
(Intel) PEF7071 PHY. Only some FritzBox routers use AT803X PHY and
VGV7510KW22 use ICPLUS PHY. Other unused PHY drivers may be removed.

This patch enables these symbols only on xway and xway_legacy subtargets:
 - CONFIG_PSB6970_PHY (Driver for PHY in PSB6970 - 7 port FE Switch)
 - CONFIG_RTL8366RB_PHY (Driver for PHY in RTL8366 - 6 port GE Switch)
 - CONFIG_RTL8366_SMI (Driver for RTL8366 - 6 port GE Switch)

Reduces image size by 7.3kB.

Continuation of 58a6f06978 (PR: #2983)

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
[fix sorting in config files, small fix in commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 19:47:47 +08:00
Leon Maurice Adam
2b5cc5422e lantiq: add support for AVM FRITZ!Box 7430
Hardware:
- SoC: Lantiq VRX 220
- CPU: 2x MIPS 34Kc 500 MHz
- RAM: 128 MiB 250 MHz
- Flash: 128 MiB NAND
- Ethernet: Built-in Fast Ethernet switch, 4 ports used
- Wifi: Atheros AR9381-AL1A b/g/n with 2 pcb/internal and 1 external antennas
- USB: 1x USB 2.0
- DSL: Built-in A/VDSL2 modem
- DECT: Dialog SC14441
- LEDs: 1 two-color, 4 one-color
- Buttons: 1x DECT, 1x WIFI
- Telephone connectors: 1 FXS port via TAE or RJ11 connector

With the exception of FXS/DECT everything works
(there are no drivers for AVM's FXS or DECT implementation),
DSL is yet untested.

Installation:
Boot up the device and wait a few seconds. Run the eva_ramboot.py script
in scripts/flashing/ to load the initramfs image on the device:
$ ./scripts/flashing/eva_ramboot.py 192.168.178.1 <path to your initramfs image>
If the script fails to reach the device, maybe try 169.254.120.1.

Wait until booting is complete. You should now be able to reach your device
under the default ip address 192.168.1.1.

Before flashing, check if linux_fs_start is not set to 1 in the tffs partition:
$ fritz_tffs_nand -d /dev/mtd1 -n linux_fs_start
If linux_fs_start is 1, you will need to reset it to 0, either by FTP,
upgrading FritzOS or doing a recovery.

Now you should be able to flash the device using sysupgrade.

Signed-off-by: Leon Maurice Adam <leon.adam@aol.de>
Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
[drop BOARD_NAME, use wpad-basic-wolfssl, drop 4.19, drop dts-v1,
remove model prefix from LED names]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 19:46:24 +08:00
Adrian Schmutzler
daf6ebc17e lantiq: remove model name from LED labels
Like in the previous patches for other targets, this will remove
the "devicename" from LED labels in lantiq.

The devicename is removed in DTS files and 01_leds, consolidation
of definitions into DTSI files is done where (easily) possible,
and migration scripts are updated. The DTS/DTSI consolidation is
only performed for files-5.4.

For lantiq,easy98020 some LED definitions have the form
"devicename:function" without the color, so we need to implement
explicit migration for that one.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 19:44:55 +08:00
Adrian Schmutzler
c0a4e7e9a5 ipq806x: remove model name from LED labels
Like in the previous patches for ath79 and ramips, this will remove
the "devicename" from LED labels in ipq806x.

The devicename is removed in DTS files and 01_leds, and a migration
script is added.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 19:41:30 +08:00
Adrian Schmutzler
c689b11a78 ipq40xx: remove model name from LED labels
Like in the previous patches for ath79 and ramips, this will remove
the "devicename" from LED labels in ipq40xx.

The devicename is removed in DTS files and 01_leds, and a migration
script is added. While at it, also harmonize capitalization of
wlan2G/wlan5G vs. wlan2g/wlan5g.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 19:38:39 +08:00
Adrian Schmutzler
e037597ae9 rtl838x: remove model name from LED labels
Like in the previous patches for various targets, this removes
the "devicename" from LED labels in rtl838x, as it's useless and
only creates complexity.

Since the target is fresh and so far only system LEDs were added,
this does not add a migration script.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 19:31:57 +08:00
James McGuire
9609e39fe7 ramips: add support for D-Link DIR-2640 A1
This patch adds support for D-Link DIR-2640 A1.

Specifications:
* Board: AP-MTKH7-0002
* SoC: MediaTek MT7621AT
* RAM: 256 MB (DDR3)
* Flash: 128 MB (NAND)
* WiFi: MediaTek MT7615N (x2)
* Switch: 1 WAN, 4 LAN (Gigabit)
* Ports: 1 USB 2.0, 1 USB 3.0
* Buttons: Reset, WPS
* LEDs: Power (blue/orange), Internet (blue/orange), WiFi 2.4G (blue),
        WiFi 5G (blue), USB 3.0 (blue), USB 2.0 (blue)

Notes:
* WiFi 2.4G and WiFi 5G LEDs are wired directly to the wireless chips

Installation:
* D-Link Recovery GUI: power down the router, press and hold the reset
  button, then re-plug it. Keep the reset button pressed until the power
  LED starts flashing orange, manually assign a static IP address under
  the 192.168.0.xxx subnet (e.g. 192.168.0.2) and go to http://192.168.0.1

* Some modern browsers may have problems flashing via the Recovery GUI,
  if that occurs consider uploading the firmware through cURL:

    curl -v -i -F "firmware=@file.bin" 192.168.0.1

MAC addresses:

lan   factory 0xe000     *:a7 (label)
wan   factory 0xe006     *:aa
2.4   factory 0xe000 +1  *:a8
5.0   factory 0xe000 +2  *:a9

Seems like vendor didn't replace the dummy entries in the calibration data.

Signed-off-by: James McGuire <jamesm51@gmail.com>
[fix device definition title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 19:29:35 +08:00
Adrian Schmutzler
363924db72 ramips: remove model name from LED labels
Like in the previous patch for ath79 target, this will remove the
"devicename" from LED labels in ramips as well.

The devicename is removed in DTS files and 01_leds, consolidation
of definitions into DTSI files is done where (easily) possible,
and migration scripts are updated.

For the latter, all existing definitions were actually just
devicename migrations anyway. Therefore, those are removed and
a common migration file is created in target base-files. This is
actually another example of how the devicename removal makes things
easier.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 19:29:29 +08:00
CN_SZTL
e830eb0376 Merge Mainline 2020-11-21 18:58:08 +08:00
AmadeusGhost
74cda5b01b ramips: add support for JCG Y2
JCG Y2 is an AC1300M router

Hardware specs:
  SoC: MediaTek MT7621AT
  Flash: Winbond W25Q128JVSQ 16MiB
  RAM: Nanya NT5CB128M16 256MiB
  2.4GHz: MT7615D 2x2
  5GHz: MT7615D 2x2
  Ethernet: 1 x WAN and 4 x LAN
  LED: POWER, INTERNET, 2.4G, 5G
  USB: 1 x 3.0
  Button: Reset

Flash instructions:
  Upload factory.bin in stock firmware's upgrade page.

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2020-11-21 18:24:35 +08:00
AmadeusGhost
dea3d93a17 mtwifi: adjust some files calling location 2020-11-21 18:22:49 +08:00
Texot
3e501d43fb mtwifi: mt7615: fix multi-profile merge
* mtwifi: mt7615: fix multi-profile merge

Currently some settings like AutoChannelSelect, CountryRegion(ABand),
HT_BW/VHT_BW are not respected. This is due to wrong multi-profile
merging when l1profile.dat is not consistent with compiling flag
DEFAULT_5G_PROFILE.

5g profile should be put before 2g profile when DEFAULT_5G_PROFILE is
set.

References:
- 099439f051/package/lean/mt/drivers/mt7615d/Makefile (L52)
- 099439f051/package/lean/mt/drivers/mt7615d/src/mt_wifi/os/linux/rt_profile.c (L211)

* mtwifi: mt7615: fix reload
2020-11-21 18:20:21 +08:00
John Crispin
d3b425b009 base-files: generated named bridge-vlan sections
Signed-off-by: John Crispin <john@phrozen.org>
2020-11-21 18:02:26 +08:00
Marc Egerton
26abb8edea ramips: add support for the Hak5 WiFi Pineapple Mark 7
This patch adds support for the WiFi Pineapple Mark 7, a wireless
penetration testing tool.

Specifications:
    * SoC: MediaTek MT7628 (580MHz)
    * RAM: 256MiB (DDR2)
    * Storage 1: 32MiB NOR (SPI)
    * Storage 2: 2GB eMMC
    * Wireless 1: 802.11b/g/n 2.4GHz (Built In)
    * Wireless 2: 802.11b/g/n 2.4GHz (MT7601)
    * Wireless 3: 802.11b/g/n 2.4GHz (MT7601)
    * USB: 1x USB Type-A 2.0 Host Port
    * Ethernet: 1x USB Type-C AX88772C Ethernet
    * UART: 57600 8N1 on PCB
    * Inputs: 1x Reset Button
    * Outputs: 1x RGB LED
    * FCCID: 2AA52MK7

Flash Instructions:
    Original firmware is based on OpenWRT.
    Use sysupgrade via SSH to flash.

Signed-off-by: Marc Egerton <foxtrot@realloc.me>
[pepe2k@gmail.com: set only required/used gpio groups to gpio function]
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-11-21 18:00:13 +08:00
Sebastian Kemper
7331c5c505 build: create $(PKG_SYMVERS_DIR) if non-existent
Commit 5d76065 moved the creation of the symvers directory to
include/kernel-build.mk. This is fine when building from scratch. But
when unpacking an SDK the directory doesn't exist and because the kernel
won't be built (again) this directory will not be created by the build
system, causing build failure if make tries to copy files into it.

This moves the creation of the symvers directory back into
include/kernel.mk so that the directory is created in any case.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2020-11-21 17:59:23 +08:00
Piotr Dymacz
81e369c6cd ath79: fix reset button support on 8devices Lima
This fixes 'linux,code' property name and value for the 'reset' key node
in 8devices Lima DTS file.

Problem and solution were reported on the forum, see:
https://forum.openwrt.org/t/resetbutton-not-working-ath79-8devices-lima/78810

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-11-21 17:59:02 +08:00
Piotr Dymacz
a7780a280a ath79: calculate Eth MACs from WLAN on ALFA Network R36A
New batches of the R36A board series might no longer keep separated
Ethernet MAC addresses stored in flash. Use same approach as on the
N2Q and calculate Ethernet MACs from WLAN one which is kept in ART.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-11-21 17:58:58 +08:00
Piotr Dymacz
fca3a18e2b uboot-envtools: ath79: add support for ALFA Network Pi-WiFi4
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-11-21 17:58:53 +08:00
Piotr Dymacz
aa3edf932e ath79: add support for ALFA Network Pi-WiFi4
ALFA Network Pi-WiFi4 is a Qualcomm QCA9531 v2 based, high-power 802.11n
WiFi board in Raspberry Pi 3B shape, equipped with 1x FE and 4x USB 2.0.

Specifications:

- Qualcomm/Atheros QCA9531 v2
- 650/400/200 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16+ MB of flash (SPI NOR)
- 1x 10/100 Mbps Ethernet
- 2T2R 2.4 GHz Wi-Fi with Qorvo RFFM8228P FEM
- 2x IPEX/U.FL connectors on PCB
- 4x USB 2.0 Type-A
- Genesys Logic GL850G 4-port USB HUB
- USB power is controlled by GPIO
- 5x LED (3x on PCB, 2x in RJ45, 4x driven by GPIO)
- 1x button (reset)
- external h/w watchdog (EM6324QYSP5B, enabled by default)
- 1x micro USB Type-B for power and system console (Holtek HT42B534)
- UART and GPIO (8-pin, 1.27 mm pitch) header on PCB

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on LEDE/OpenWrt. Alternatively, you can use web recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24.
2. Connect PC with one of RJ45 ports, press the reset button, power up
   device, wait for first blink of all LEDs (indicates network setup),
   then keep button for 3 following blinks and release it.
3. Open 192.168.1.1 address in your browser and upload sysupgrade image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-11-21 17:58:49 +08:00
Piotr Dymacz
f73449d221 ath79: add label MAC address for ALFA Network N5Q
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-11-21 17:58:43 +08:00
John Audia
78f3de34b7 kernel: bump 5.4 to 5.4.77
Manually rebased patches:
 bcm27xx/patches-5.4/950-0135-spi-spi-bcm2835-Disable-forced-software-CS.patch
 generic-backport/744-v5.5-net-sfp-soft-status-and-control-support.patch
 layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch
 mvebu/patches-5.4/521-arm64-dts-marvell-espressobin-Add-ethernet-switch-al.patch

Removed:
 layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch

All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711,
              lantiq/Easybox 904 xDSL, x86_64
Run-tested: ipq806x/R7800, lantiq/Easybox 904 xDSL, x86_64

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Co-developed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 17:57:00 +08:00
Nick Hainke
1fd5004f5a ath79: Add support for Ubiquiti NanoBeam AC Gen2
CPU:         Atheros AR9342 rev 3 SoC
RAM:         64 MB DDR2
Flash:       16 MB NOR SPI
WLAN 2.4GHz: Atheros AR9342 v3 (ath9k)
WLAN 5.0GHz: QCA988X
Ports:       2x GbE

Flashing procedure is identical to other ubnt devices.
https://openwrt.org/toh/ubiquiti/common

Flashing through factory firmware
1. Ensure firmware version v8.7.0 is installed.
   Up/downgrade to this exact version.
2. Patch fwupdate.real binary using
   `hexdump -Cv /bin/ubntbox | sed 's/14 40 fe 27/00 00 00 00/g' | \
    hexdump -R > /tmp/fwupdate.real`
3. Make the patched fwupdate.real binary executable using
   `chmod +x /tmp/fwupdate.real`
4. Copy the squashfs factory image to /tmp on the device
5. Flash OpenWrt using `/tmp/fwupdate.real -m <squashfs-factory image>`
6. Wait for the device to reboot
(copied from Ubiquiti NanoBeam AC and modified)

To keep it consistent, we will add the gen1 variant to
the nanobeam ac gen1.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-11-21 17:55:24 +08:00
Adrian Schmutzler
2442a8ed36 ath79: fix missing ";;" in 11-ath10k-caldata
This adds a missing ";;" in the switch-case in 11-ath10k-caldata.

Fixes: 4d36569b9c ("ath79: fix ath10k caldata extraction on some
D-Link DIR-842 C3 devices")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 17:52:27 +08:00
Paul Fertser
c0c35fc596 ath79: fix ath10k caldata extraction on some D-Link DIR-842 C3 devices
According to forum threads [0][1] and a report on IRC by Doc-Saintly
some of those boards have calibration data in a different place. Only
one alternative location is known.

Without proper board calibration data (board.bin having all 0xff bytes)
ath10k firmware still tries to load but crashes on startup with a
confusing error message.

If you're applying this patch manually on your device do not forget to
remove /lib/firmware/ath10k/pre-cal-pci-0000:00:00.0.bin and reboot to
force caldata re-extraction.

[0] https://forum.openwrt.org/t/support-for-d-link-dir842-rev-c3/41654
[1] https://forum.openwrt.org/t/d-link-dir-842-cant-access-firmware-upload-form/65454

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2020-11-21 17:52:21 +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
Adrian Schmutzler
c0db90e1dc mediatek: fix mixed indent in DTS files
mediatek frequently had mixed indent (tabs vs. spaces) in DTS files
and DTS file kernel patches (probably due to careless copy/paste).

The harmonizes these cases to tabs-only, as usual for DTS(I).

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 17:47:45 +08:00
Adrian Schmutzler
d8ce5f5f6a treewide: remove default-state off for LEDs
default-state = "off" is default for LEDs, no need to specify it
explicitly.

https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/common.yaml

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-21 17:45:10 +08:00
Daniel González Cabanelas
a629d58481 mvebu: LS421DE: improve the HDD leds
Improve the HDD LEDs used for disk activity:
 - Use the trigger activity per ata channel

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-11-21 17:44:23 +08:00
DENG Qingfang
2415f8a815 ramips: mt7621: fix Telco X1 GPIO switches
The GPIO base of MT7621 GPIO 0~31 is 480 on kernel 5.4
Fix the GPIO numbering.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-11-21 17:44:19 +08:00
CN_SZTL
1cbb64a529 Revert "ramips: add support for D-Link DIR-2640 A1"
This reverts commit 79d6146932

Fixes: TG#200012
2020-11-15 18:12:29 +08:00
CN_SZTL
d2489e6aeb Merge Mainline 2020-11-15 00:49:56 +08:00
CN_SZTL
e563ba84fe Merge Mainline 2020-11-14 14:41:28 +08:00
CN_SZTL
92faf3f8c7 Revert "netifd: update to the latest version"
This reverts commits c4600e6261 and a0be58576c.
2020-11-14 14:41:02 +08:00
CN_SZTL
604ea1e87f Merge Mainline 2020-11-14 13:55:18 +08:00
Adrian Schmutzler
b26d119ce3 ipq40xx: do not remove pci@40000000 for ap.dk04.1
This pci@40000000 node from upstream was dropped when the device
was converted from local DTS(I) files to kernel patches in [1] to
ensure that change was purely cosmetic.

However, the DK04.1 has a PCI-E slot by default, so let's keep
(i.e. not remove) the kernel definition now.

[1] c4beac9ea2 ("ipq40xx: use upstream DTS files for IPQ4019/AP-DK04.1")

Suggested-by: Robert Marko <robert.marko@sartura.hr>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-14 13:52:39 +08:00
Robert Marko
1f8116b456 ipq40xx: 5.4: update and reorder patches
A lot of patches are outdated versions of upstreamed patches and
drivers.

So lets pull in the upstreamed patches and reorder remaining ones.

This drops the unnecessary 721-dts-ipq4019-add-ethernet-essedma-node.patch
which adds nodes for not yet in OpenWrt IPQESS driver.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
[do not touch 902-dts-ipq4019-ap-dk04.1.patch here]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-14 13:52:21 +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
2a94375ef5 build: pass KBUILD_EXTRA_SYMBOLS with symvers files for kernel module packages
This replaces the previous (deprecated) method of collecting symvers data
in $(PKG_BUILD_DIR)/Module.symvers, which does not work on newer kernels

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-11-14 13:51:24 +08:00
Felix Fietkau
6cc1a2bd62 build: move symvers files to kernel build dir
The symvers files of older kernel versions are incompatible with the ones
from 5.4, so changing the kernel version without running make clean was
causing build failures in kernel module packages.
Fix this by moving the directory, ensuring that symvers files get thrown
away with a kernel version change

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-11-14 13:51:20 +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
Felix Fietkau
61cb780c6a kernel: remove kmod-capi
We don't package any driver that uses this module

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-11-14 13:48:41 +08:00
Felix Fietkau
167790dc70 netifd: update to the latest version
4a41135750d9 system-linux: only overwrite dev->present state on check_state for simple devices

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-11-14 13:48:33 +08:00
Birger Koblitz
436d4d0bad rtl838x: Add switch and ethernet driver support for RTL839x SoCs
This adds support for RTL839x SoCs in the ethernet and switch
drivers of the rtl838x architecture.

Reviewed-by: Andreas Oberritter <obi@saftware.de>
Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2020-11-14 13:44:17 +08:00
Roman Kuzmitskii
b9599c8c36 sunxi: add support for Libre Computer ALL-H3-CC H5
Specification:

- CPU: Allwinner H5, Quad-core Cortex-A53 Up to 1GHz
- DDR3 RAM: 2GB
- Network:
    10/100M Ethernet x 1
- IR: x1 (Receive)
- USB (Host) Type-A x3
- USB (OTG) Type-A x1
- MicroSD Slot x 1
- eMMC Slot x1
- MicroUSB power input
- GPIO 40pin header
- UART 3pin header
- Leds:
    - librecomputer:blue:status
    - librecomputer:green:pwr
- Buttons:
    - uboot button (used to enter fel mode)
    - power button (can trigger power on)
- Power Supply via MicroUSB or GPIO 5V/2A

Installation:

- Write the image to SD Card with dd
- Boot from the SD Card

Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
[Fixed Signed-off-by]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-14 13:44:07 +08:00
Brett Mastbergen
887b74bcd4 netfilter: Add queue support for nftables
This change adds the configuration option to build and include
the nft_queue kernel module, which allows traffic to be queued up
to userspace from an nftables rule

Tested-by: Sébastien Delafond sdelafond@gmail.com
Signed-off-by: Brett Mastbergen <bmastbergen@untangle.com>
2020-11-14 13:42:38 +08:00
Yangbo Lu
8012143408 layerscape: make restool depend on TARGET_layerscape_armv8_64b
The restool is for Layerscape DPAA2 platforms which are
ARMv8 platforms.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-11-14 13:26:46 +08:00
张鹏
03c8738a41 ath79: add support for Qxwlan E600G v2 / E600GAC v2
E600G v2 based on Qualcomm/Atheros QCA9531

Specification:

 - 650/600/200 MHz (CPU/DDR/AHB)
 - 128/64 MB of RAM (DDR2)
 - 8/16 MB of FLASH (SPI NOR)
 - 2T2R 2.4 GHz
 - 2 x 10/100 Mbps Ethernet(RJ45)
 - 1 x MiniPCI-e
 - 1 x SIM (3G/4G)
 - 5 x LED , 1 x Button(SW2-Reset Buttun), 1 x power input
 - UART(J100) header on PCB(115200 8N1)

E600GAC v2 based on Qualcomm/Atheros QCA9531 + QCA9887

Specification:

 - 650/600/200 MHz (CPU/DDR/AHB)
 - 128/64 MB of RAM (DDR2)
 - 8/16 MB of FLASH (SPI NOR)
 - 2T2R 2.4 GHz
 - 1T1R 5 GHz
 - 2 x 10/100 Mbps Ethernet(RJ45)
 - 6 x LED (one three-color led), 2 x Button(SW2-Reset Buttun),1 x power input
 - UART (J100)header on PCB(115200 8N1)

Flash instruction:

1.Using tftp mode with UART connection and original OpenWrt image
 - Configure PC with static IP 192.168.1.10 and tftp server.
 - Rename "openwrt-ath79-generic-xxx-squashfs-sysupgrade.bin"
   to "firmware.bin" and place it in tftp server directory.
 - Connect PC with one of LAN ports, power up the router and press
   key "Enter" to access U-Boot CLI.
 - Use the following commands to update the device to OpenWrt:
   run lfw
 - After that the device will reboot and boot to OpenWrt.
 - Wait until all LEDs stops flashing and use the router.

2.Using httpd mode with Web UI connection and original OpenWrt image
 - Configure PC with static IP 192.168.1.xxx(2-255) and tftp server.
 - Connect PC with one of LAN ports,press the reset button, power up
   the router and keep button pressed for around 6-7 seconds, until
   leds flashing.
 - Open your browser and enter 192.168.1.1,You will see the upgrade
   interface, select "openwrt-ath79-generic-xxx-squashfs-
   sysupgrade.bin" and click the upgrade button.
 - After that the device will reboot and boot to OpenWrt.
 - Wait until all LEDs stops flashing and use the router.

Signed-off-by: 张鹏 <sd20@qxwlan.com>
[rearrange in generic.mk, fix one case in 04_led_migration, update
commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-14 13:26:25 +08:00
Piotr Jurkiewicz
7fc5d30934 sunxi: fix board.d/01_leds permissions and drop include
The file lacks executable permissions, which makes it not being applied
during the first boot.

While at it, drop unneeded include.

Signed-off-by: Piotr Jurkiewicz <piotr.jerzy.jurkiewicz@gmail.com>
[do not touch board name handling, update commit message/title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-14 13:26:12 +08:00
Felix Fietkau
46edbc1851 netifd: update to the latest version
3023b0cc7352 bridge: add support for defining port member vlans via hotplug ops
a3016c451248 vlan: add pass-through hotplug ops that pass the VLAN info to the bridge
d59f3ddcbaf0 vlandev: add pass-through hotplug ops that pass the VLAN info to the bridge
dd5e61153636 bridge: show vlans in device status
a56e14afa612 bridge: preserve hotplug ports on vlan update if config is unchanged
d1e8884f8911 bridge: fix use-after-free bug on bridge member free
3a2b21001c3c system-dummy: set present state only for simple devices
ed11f0c0ffe4 bridge: only overwrite implicit vlan assignment if vlans are configured

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-11-14 13:21:24 +08:00
CN_SZTL
7846950ccd linux: refresh shortcut-fe patch 2020-11-14 12:21:07 +08:00
CN_SZTL
acb0d3b454 linux: add missing part for shortcut-fe 2020-11-14 11:25:11 +08:00
CN_SZTL
3bc29fe550 Merge Mainline 2020-11-14 11:23:32 +08:00
CN_SZTL
8b3e67bd0c Merge Mainline 2020-11-13 19:51:48 +08:00
CN_SZTL
38f7610841 Merge Mainline 2020-11-12 15:44:23 +08:00
James McGuire
79d6146932 ramips: add support for D-Link DIR-2640 A1
This patch adds support for D-Link DIR-2640 A1.

Specifications:
* Board: AP-MTKH7-0002
* SoC: MediaTek MT7621AT
* RAM: 256 MB (DDR3)
* Flash: 128 MB (NAND)
* WiFi: MediaTek MT7615N (x2)
* Switch: 1 WAN, 4 LAN (Gigabit)
* Ports: 1 USB 2.0, 1 USB 3.0
* Buttons: Reset, WPS
* LEDs: Power (blue/orange), Internet (blue/orange), WiFi 2.4G (blue),
        WiFi 5G (blue), USB 3.0 (blue), USB 2.0 (blue)

Notes:
* WiFi 2.4G and WiFi 5G LEDs are wired directly to the wireless chips

Installation:
* D-Link Recovery GUI: power down the router, press and hold the reset
  button, then re-plug it. Keep the reset button pressed until the power
  LED starts flashing orange, manually assign a static IP address under
  the 192.168.0.xxx subnet (e.g. 192.168.0.2) and go to http://192.168.0.1

* Some modern browsers may have problems flashing via the Recovery GUI,
  if that occurs consider uploading the firmware through cURL:

    curl -v -i -F "firmware=@file.bin" 192.168.0.1

MAC addresses:

lan   factory 0xe000     *:a7 (label)
wan   factory 0xe006     *:aa
2.4   factory 0xe000 +1  *:a8
5.0   factory 0xe000 +2  *:a9

Seems like vendor didn't replace the dummy entries in the calibration data.

Signed-off-by: James McGuire <jamesm51@gmail.com>
[fix device definition title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-12 11:19:00 +08:00
John Audia
735031afd4 kernel: bump 5.4 to 5.4.75
Manually rebased patches:
  bcm27xx:
    patches-5.4/950-0267-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch
  bcm53xx:
    patches-5.4/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
  layerscape:
    patches-5.4/802-can-0025-can-flexcan-add-LPSR-mode-support-for-i.MX7D.patch
    patches-5.4/808-i2c-0002-MLK-10893-i2c-imx-add-irqf_no_suspend.patch
    patches-5.4/820-usb-0016-MLK-16735-usb-host-add-XHCI_CDNS_HOST-flag.patch

Removed since could be reverse-applied by quilt:
  mediatek:
    patches-5.4/0700-arm-dts-mt7623-add-missing-pause-for-switchport.patch

All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711, x86_64
Run-tested: ipq806x/R7800, x86_64

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Curtis Deptuck <curtdept@me.com> [x86_64]

Rebase of 802-can-0025-can-flexcan-add-LPSR-mode-support-for-i.MX7D.patch
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
2020-11-12 11:14:24 +08:00
Petr Štetiar
4ea242230e rtl838x: fine tune default package set
Althought most of the switches aren't routers, they can be used as such,
so let's add some of the packages from the router's DEVICE_TYPE. While
at it, remove swconfig package which is not needed on DSA targets.

Acked-by: John Crispin <john@phrozen.org>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-12 11:09:01 +08:00
Petr Štetiar
0b46dcfbc8 rtl838x: dts: use macros for phy and switch definitions
It's quite more readable, saves some tedious copy&pasting, not so
error prone etc.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-12 11:09:01 +08:00
Petr Štetiar
64d5123afa rtl838x: rtl838x.dtsi: fix missing interrupt-parent for uart0
Fixes following dtc warning:

 Warning (interrupts_property): /uart@b8002000: Missing interrupt-parent

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-12 11:09:01 +08:00
Petr Štetiar
98285de57b rtl838x: rtl838x.dtsi: remove reg property from root node
Fixes following dtc warning:

 ../dts/rtl838x.dtsi:38.3-145.3: Warning (reg_format): /: Root node has a "reg" property

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-12 11:09:01 +08:00
Petr Štetiar
97f0db6f2c rtl838x: add support for D-Link DGS-1210-28
Hardware specification
 ----------------------

 * RTL8382M SoC, 1 MIPS 4KEc core @ 500MHz
 * 128MB DRAM
 * 32MB NOR Flash (MX25L25635E)
 * 24 x 10/100/1000BASE-T ports
    - Internal PHY with 8 ports (RTL8218B)
    - Two external PHYs with 8 ports each (RTL8218B)
 * 4 x Gigabit RJ45/SFP Combo ports
    - External PHY with 4 SFP ports (RTL8214FC)
 * Power LED
 * Reset button on front panel
 * UART (115200 8N1) via unpopulated standard 0.1" pin header marked J6

 UART pinout
 -----------

  [oooo]J3 [o]ooo|J6
    |       ^ ||`------ GND
    |       | |`------- RX
    |       | `-------- TX
    |       `---------- Vcc (3V3)
    |
    `------------------ J3 is power input connector nearby J6 UART

 Boot initramfs image from U-Boot
 --------------------------------

  1. Press Escape key during `Hit Esc key to stop autoboot` prompt
  2. Press CTRL+C keys to get into real U-Boot prompt
  3. Init network with `rtk network on` command
  4. Load image with `tftpboot 0x8f000000 openwrt-rtl838x-generic-d-link_dgs-1210-28-initramfs-kernel.bin` command
  5. Boot the image with `bootm` command

To install, upload the sysupgrade image to the OEM webpage or sysupgrade
from the system running from initramfs image.

It has been developed and tested on device with F1 revision.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-12 11:09:00 +08:00
Petr Štetiar
3e1333a1bd rtl838x: d-link_dgs-1210: refactor common family bits
So the common bits can be easily shared with other boards in the family
and while at it add missing SPDX license identifiers into the DTS files
and fixed alphabetic sorting of the devices in the images.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-12 11:09:00 +08:00
Petr Štetiar
d8a029a901 rtl838x: clean whitespace issues in rtl8382_d-link_dgs-1210-16.dts
So it's tidy.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-12 11:09:00 +08:00
acooler15
d10b88dd35 mt_wifi lua detect wanif name not null 2020-11-08 17:33:17 +08:00
CN_SZTL
ab3537894a [HOT FIX] luci-app-ssr-plus: merge fixes 2020-11-08 15:03:00 +08:00
CN_SZTL
1ff12a0a42 Merge Mainline 2020-11-08 14:20:36 +08:00
CN_SZTL
1563f30ac8 octeon: sync with upstream source 2020-11-08 02:14:07 +08:00
Roman Kuzmitskii
3090568631 octeon: honor disabled sgmii device tree nodes
adds patch to octeon ethernet driver that lets sgmii interface
device tree node to be disabled and that disabled interface
won't be unnecessarily initialized.

It solves the problem with octeon boards that have 8 sgmii or more ports
initialized but have nothing connected to them.

Tested-by: Johannes Kimmel <fff@bareminimum.eu>
Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
2020-11-08 02:09:08 +08:00
Roman Kuzmitskii
8e31bd6d84 octeon: implement interface rename by label from device tree
adds patch to octeon ethernet driver that to rename interface
name by label from device tree

Tested-by: Johannes Kimmel <fff@bareminimum.eu>
Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
2020-11-08 02:09:03 +08:00
Roman Kuzmitskii
a074b217e4 generic: add support for vsc8504 phy
adds support for vsc8504 phy.
patch have use on 5.4 kernel and has
to be dropped after since phy is supported by
CONFIG_MICROSEMI_PHY on newer LTS kernels.

Tested-by: Johannes Kimmel <fff@bareminimum.eu>
Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
2020-11-08 02:08:53 +08:00
John Crispin
1fdf787f83 base-files: add board.d support for bridge device
Latest netifd allows us to setup network bridges with implicit vlan
tagging. For this to work, we need to setup several additional uci
sections. This feature is particularly usefull for DSA tupe devices.
Add board.d and uci-defaults support for generating the sections.

Signed-off-by: John Crispin <john@phrozen.org>
2020-11-08 02:08:43 +08:00
Daniel Golle
7196641d2e gdb: fix building with NLS enabled
Building gdb failed with CONFIG_BUILD_NLS enabled. Use nls.mk and
add the necessary dependencies for libintl and libiconv.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-11-08 02:07:05 +08:00
Rafał Dzięgiel
8c60d18887 mac80211: ath9k: enable OEM cards support on x86
A lot of devices running OpenWrt x86 arch (32 or 64 bit) are either
"home-made routers" or devices that use PC class OEM components.

This commit enables OEM cards support on those devices by default.

Signed-off-by: Rafał Dzięgiel <rafostar.github@gmail.com>
[reformat commit message]
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-11-08 02:06:49 +08:00
David Bauer
f9d4604e0a ath79: streamline image-generation for OCEDO boards
Use the default sysupgrade generation procedure provided
by the target. The previously generated images had the rootfs not
aligned to an eraseblock.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-11-08 02:06:36 +08:00
David Bauer
48a0416a81 rockchip: remove unused config symbols
Remove MDIO and I2C bitbangig support from the kernel.

These functionalities are currently not used by any board in the target.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-11-08 02:06:18 +08:00
John Crispin
a7c10bcb56 mediatek: update uboot to latest patchset provided by MTK
MTK sent us their latest version of the staging uboot. Lets merge the patches.

Signed-off-by: John Crispin <john@phrozen.org>
2020-11-08 02:05:57 +08:00
Anton Ryzhov
d488868355 ramips: fix kernel oops in mt7621_nfc_write_page_hwecc
`mt7621_nfc_write_page_hwecc` may be called with `buf=NULL`, but
`mt7621_nfc_check_empty_page` always tries to read it.
That caused Oops:
`Unable to handle kernel paging request at virtual address 00000000`

Fixes: FS#3416
Signed-off-by: Anton Ryzhov <anton@ryzhov.me>
2020-11-08 02:05:41 +08:00
Adrian Schmutzler
b87241b1be ath79: remove redundant setup of wmac for ubnt WA devices
Several Ubiquiti WA devices set up &wmac again in their DTS files,
although this is already done in ar9342_ubnt_wa.dtsi.

Fixes: fa3c2676ab ("ath79: Add support for Ubiquiti Nanostation AC")
Fixes: cf5a1abe46 ("ath79: define 2.4GHz radio for nanostation ac loco")
Fixes: 09804da80a ("ath79: define 2.4GHz radio for litebeam ac gen2")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-08 02:05:30 +08:00
Nick Hainke
562aa84342 ath79: create DTSI files for ubnt WA 1-/2-port devices
The ar9342 Ubiquiti WA devices appear to only have two different
network setups, based on the number of ethernet ports.
Create DTSI files for them to consolidate duplicate definitions.

Signed-off-by: Nick Hainke <vincent@systemli.org>
[rephrase commit message/title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-08 02:05:17 +08:00
Nick Hainke
186f1cf562 ath79: fix nanobeam ac ethernet interface
In 4.14 the delays were not cleared, so setting "rgmii" as phy-mode
did not affect delays set by the bootloader. With 5.4 kernel the
situation changed and the ethernet interface stopped working.

"rgmii" requires rx and tx delays depending on the hardware circuit
and wiring. The mac or the phy can add these delays.
- "rgmii":  delays are controlled by the mac
- "rgmii-id": delays are controlled by the phy
More Information in Linux Kernel Tree:
Documentation/devicetree/bindings/net/ethernet-controller.yaml

"rgmii" should be the preferred mode, which allows the mac layer to
turn off the dealys completely if they are not needed. However, the
delays are not set correctly, which causes the ethernet interface
to be broken. Just taking the ethernetpart from the litebeam ac gen2
will fix the issue.

Explained-by: David Bauer <mail@david-bauer.net>
Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-11-08 02:05:06 +08:00
John Crispin
b9c0a522be rtl838x: remove the swconfig setup from the board.d code
the code currently sets up uci for swconfig which we do not use.

Signed-off-by: John Crispin <john@phrozen.org>
2020-11-08 02:04:47 +08:00
Daniel Golle
f773d4621a opkg: clean up and fix performance regression
da9746a libopkg: clean up handling of unresolved dependencies

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-11-08 02:04:37 +08:00
CN_SZTL
7e654c67ed Merge Mainline 2020-11-08 00:19:27 +08:00
CN_SZTL
41e398181c qos-gargoyle: drop outdated package 2020-11-05 12:19:37 +08:00
CN_SZTL
025624aec1 qos-gargoyle: drop outdated packages 2020-11-03 13:40:58 +08:00
John Audia
9364aa8652 kernel: bump 5.4 to 5.4.74
Removed upstreamed patches:
 mvebu/patches-5.4
   409-phy-marvell-comphy-Convert-internal-SMCC-firmware-re.patch

All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711, x86_64
Run-tested: ipq806x/R7800, x86_64, lantiq/Easybox 904 xDSL

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
Tested-by: Curtis Deptuck <curtdept@me.com> [x86_64 build/run]
[added lantiq test report]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-03 11:58:08 +08:00
Adrian Schmutzler
6dd687a5a9 kernel: add disabled CONFIG_IP6_NF_TARGET_MASQUERADE
In kernel commit adf82accc5f5 ("netfilter: x_tables: merge ip and
ipv6 masquerade modules") the config symbols IP_NF_TARGET_MASQUERADE
and IP6_NF_TARGET_MASQUERADE have been demoted to simple backwards-
compat options for NETFILTER_XT_TARGET_MASQUERADE.

In netfilter.mk, this has already been updated in OpenWrt commit
d1592306cc ("netfilter.mk: use CONFIG_NETFILTER_XT_TARGET_MASQUERADE"),
having us use the new config symbol.

However, enabling IP_NF_NAT or IP6_NF_NAT still makes the relevant
legacy options selectable, so we need to disable them in generic
config (and forget about them afterwards).
Since CONFIG_IP_NF_TARGET_MASQUERADE is already present there, this
just adds the missing CONFIG_IP6_NF_TARGET_MASQUERADE.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-03 11:57:52 +08:00
Adrian Schmutzler
9d6edd9aaa kernel: drop obsolete symbol CONFIG_NF_NAT_IPV6
Kernel has removed the symbols CONFIG_NF_NAT_IPV4 and
CONFIG_NF_NAT_IPV6 in favor of CONFIG_NF_NAT in commit
3bf195ae6037 ("netfilter: nat: merge nf_nat_ipv4,6 into nat core").

This drops the obsolete symbol CONFIG_NF_NAT_IPV6 from generic
config-5.4.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-03 11:57:33 +08:00
Lech Perczak
303b2fb9b0 ath79: ubnt-unifi: make u-boot-env partition read-only
This partition isn't normally modified during boot process. Make it
read-only to prevent accidental overwrite.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2020-11-03 11:56:47 +08:00
Lech Perczak
3b46fa502f ath79: ubnt-xm: make u-boot-env partition read-only
This partition isn't normally modified during boot process. Make it
read-only to prevent accidental overwrite.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2020-11-03 11:56:20 +08:00
Hauke Mehrtens
ad4cf3d180 kernel: Activate KERNEL_MIPS_FP_SUPPORT for pistachio target
The pistachio target uses a MIPS CPU with FPU and OpenWrt uses a
toolchain with hard FPU support. MIPS FPU support needs the FPU
emulation code in the kernel.

Fixes: ac5671f46c ("kernel: remove obsolete kernel version switches for 4.19")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-11-02 11:41:34 +08:00
John Audia
cc64dda217 kernel: bump 5.4 to 5.4.73
Removed upstreamed patches:
 generic/pending-5.4
   445-mtd-spinand-gigadevice-Only-one-dummy-byte-in-QUA.patch
   446-mtd-spinand-gigadevice-Add-QE-Bit.patch
 pistachio/patches-5.4
   150-pwm-img-Fix-null-pointer-access-in-probe.patch

Manually rebased:
 layerscape/patches-5.4
   801-audio-0011-Revert-ASoC-fsl_sai-add-of_match-data.patch
   801-audio-0039-MLK-16224-6-ASoC-fsl_sai-fix-DSD-suspend-resume.patch
   801-audio-0073-MLK-21957-3-ASoC-fsl_sai-add-bitcount-and-timestamp-.patch
   820-usb-0009-usb-dwc3-Add-workaround-for-host-mode-VBUS-glitch-wh.patch

All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711,
              mvebu (mamba, rango), x86_64, ramips/mt7621
Run-tested: ipq806x/R7800, mvebu (mamba, rango), x86_64, ramips (RT-AC57U)

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
[alter 820-usb-0009-usb-dwc3-Add-workaround-for-host-mode-VBUS-glitch-wh]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-11-02 11:38:37 +08:00
David Bauer
f701b504c6 ath79: use correct firmware name for UniFi AP
The Ubiquiti UniFi AP does not have a AHB connected radio but a PCI one.
Also the EEPROM ist only 0x440 bytes of length.

Reported-by: Martin Weinelt <martin@darmstadt.freifunk.net>
Tested-by: Martin Weinelt <martin@darmstadt.freifunk.net>
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-11-02 11:37:50 +08:00
David Bauer
6b62af77e1 ath79: remove AT803X config symbol from subtargets
The AT803X_PHY kernel config symbol is already enabled target-wide. SO
it does not have to be enabled for individual subtargets.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-11-02 11:34:53 +08:00
David Bauer
7bf935a28d ath79: drop upstreamed patch
Patch was upstreamed a long time ago (over 2 years) as commit
a08227a206b8d ("MIPS: ath79: select the PINCTRL subsystem").

When porting this patch to a newer kernel, nobody noticed we now patch a
Broadcom platform. This is clearly not intended. So drop this patch and
pretend nothing ever happened.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-11-02 11:34:31 +08:00
AmadeusGhost
f2a32978d6 Merge Mainline 2020-11-01 12:05:03 +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
Yousong Zhou
9ae4257b66 generic: 5.4: make nf nat masquerade in unset state by default
Upstream linux 5.1 commit d1aca8ab ("netfilter: nat: merge ipv4 and ipv6
masquerade functionality") replaces the following 2 options

 - CONFIG_NF_NAT_MASQUERADE_IPV4
 - CONFIG_NF_NAT_MASQUERADE_IPV6

with CONFIG_NF_NAT_MASQUERADE.  The new option is one without prompt and
will be selected by CONFIG_NETFILTER_XT_TARGET_MASQUERADE introduced
still later in 5.2.

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2020-10-31 12:22:02 +08:00
AmadeusGhost
989e96ef14 netfilter: sync upstream source code 2020-10-31 12:21:32 +08:00
AmadeusGhost
cc22e33367 [Sync] kernel: remove obsolete kernel version switches for 4.x 2020-10-31 12:15:09 +08:00
AmadeusGhost
8ab5e878fb treewide: remove support for kernel 4.x 2020-10-31 11:39:45 +08:00
AmadeusGhost
2c06a8218b ipq40xx/ipq806x: remove kernel 4.x support
These targets only support kernel 5.4 been a while, kernel 4.x does
not seem to be needed, and removing it will make upcoming driver
updates easier. Thus, remove it.
2020-10-31 11:19:49 +08:00
LGA1150
aa2df753cf ipq40xx: ar40xx: add switch led blink support 2020-10-31 11:13:08 +08:00
Chen Minqiang
0f41a89a04 ipq40xx: ar40xx: fix ethernet vlan double tagging
Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-10-31 11:08:53 +08:00
Robert Marko
0e8154f4a8 ipq40xx: 5.4: move AR40xx driver into files
There is no point in keeping the AR40xx driver as a patch as its
not pending merge or backport.

To allow for easier maintenance until DSA is ready move it into
files like EDMA is.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
[combine with removal from patches-5.4]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-31 11:06:43 +08:00
Adrian Schmutzler
e905c0f806 image: drop obsolete legacy image recipes
LegacyDevice is not used anymore in our tree, so let's drop it
together with the relevant definitions and recipes.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-31 10:45:15 +08:00
Adrian Schmutzler
108c6c2656 image: drop combined-image build recipe
Build/combined-image is only used in ath25 target, and that defines
its own version. Thus, drop the unused definition in image-commands.mk.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-31 10:33:56 +08:00
Adrian Schmutzler
2db381e6c6 image: drop unused legacy NAND build recipes
This drops unused legacy recipes Image/Build/SysupgradeNAND and
Image/Build/UbinizeImage.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-31 10:32:57 +08:00
Daniel Golle
6e2e9f5d78 kernel: move kmod-i2c-bcm-iproc to I2C menu
A typo resulted in that module having it's own menu.
Move it into the I2C menu as it was most likely intended.

Fixes: 1291274335 ("kernel: package bcm53xx i2c module")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-10-31 10:29:25 +08:00
John Thomson
f0fb0cd174 ath79: mikrotik: use vmlinuz (zBoot ELF)
- minimal built initramfs: 10MB vmlinux ELF -> 6MB vmlinuz
- ~5 seconds for kernel decompression, which was equivalent to the
  additional time to load the uncompressed ELF from SPI NOR.
- Removes requirement for lzma-loader, which may have been causing some
  image builds to fail to boot on Mikrotik mt7621.

Suggested-by: Thibaut VARÈNE <hacks@slashdirt.org>
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
2020-10-31 10:20:50 +08:00
John Thomson
b985f34f33 mt7621: mikrotik: use vmlinuz (zBoot ELF)
- minimal built initramfs: 11MB vmlinux ELF -> 4.5MB vmlinuz
- ~5 seconds for kernel decompression, which was equivalent to the
  additional time to load the uncompressed ELF from SPI NOR.
- Removes requirement for lzma-loader, which may have been causing some
  image builds to fail to boot on Mikrotik mt7621.

Fixes: FS#3354
Suggested-by: Thibaut VARÈNE <hacks@slashdirt.org>
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
2020-10-31 10:19:33 +08:00
John Thomson
d9fe97ca00 build: image: add append-dtb-elf helper
The mips kernel vmlinux image supports adding an empty ELF section
for DTB to be later inserted into with MIPS_ELF_APPENDED_DTB.

This ELF + inserted DTB image can then be directly booted on some
devices.

Example usage:
image/subtarget.mk:
KERNEL_NAME := vmlinux.elf
KERNEL_INITRAMFS_NAME := vmlinux-initramfs.elf
KERNEL := kernel-bin | append-dtb-elf

On mt7621 memory size needed to be manually specified.

Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
2020-10-31 10:18:26 +08:00
Chuanhong Guo
b568fa1a50 kernel: mips: zboot: put appended dtb into a section
This will make a separated section for dtb appear in ELF, and we can
then use objcopy to patch a dtb into vmlinuz when RAW_APPENDED_DTB
is set in kernel config.

command to patch a dtb:
objcopy --set-section-flags=.appended_dtb=alloc,contents \
        --update-section=.appended_dtb=<target>.dtb vmlinuz vmlinuz-dtb

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-10-31 10:17:53 +08:00
Chuanhong Guo
2fcc60264a ramips: add linux zboot support
linux-mips has zboot code which can create a self-extracting kernel
image.
This allows enabling kernel zboot support for ramips targets.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-10-31 10:17:33 +08:00
Tony Ambardar
387998e9d8 malta: relocate CPU_TYPE setting to subtarget makefiles
Move CPU_TYPE:=24kc (32-bit) from the top-level target makefile to the
be/le subtarget makefiles, which is consistent with the 64-bit subtargets.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2020-10-31 10:17:13 +08:00
CN_SZTL
85ae6bf98f Merge Mainline 2020-10-30 23:58:20 +08:00
Felix Fietkau
f78be6e3df sdk: keep the linux package in the same subdir as in the main build system
Fixes: 953435795d ("build: always build package/kernel/linux")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-10-27 18:25:14 +08:00
Yangbo Lu
c101cbd0f5 layerscape: several kernel fix-ups from NXP linux factory
NXP linux factory unifies one linux kernel for i.MX, Layerscape and
S32 platforms. It provides a common code base for their SDKs.

Add several kernel patches for bug fix from linux factory last release.

Git: https://source.codeaurora.org/external/qoriq/qoriq-components/linux
Tag: LTS-5.4.47-20200828

Signed-off-by: Biwen Li <biwen.li@nxp.com>
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-10-27 18:21:46 +08:00
Biwen Li
272732335f layerscape: update tfa to LSDK-20.04-update-290520
Update tfa to LSDK-20.04-update-290520.

Signed-off-by: Biwen Li <biwen.li@nxp.com>
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[fix PKG_RELEASE bump]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 18:21:16 +08:00
Biwen Li
2578f25000 layerscape: update u-boot to LSDK-20.04-update-290520
Update u-boot to LSDK-20.04-update-290520.

Signed-off-by: Biwen Li <biwen.li@nxp.com>
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[fix PKG_RELEASE bump]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 18:20:50 +08:00
Biwen Li
9e1a66480a layerscape: update ls-rcw to LSDK-20.04-update-290520
Update ls-rcw to LSDK-20.04-update-290520.

Signed-off-by: Biwen Li <biwen.li@nxp.com>
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
[rebase, fix PKG_RELEASE change]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 18:20:22 +08:00
Biwen Li
e6a8f42a08 layerscape: update kernel to LSDK-20.04-V5.4-update-290520
Update kernel from LSDK-20.04-V5.4 to LSDK-20.04-V5.4-update-290520.
Only two patches added for Layerscape.

LSDK kernel link
https://source.codeaurora.org/external/qoriq/qoriq-components/linux/

Signed-off-by: Biwen Li <biwen.li@nxp.com>
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-10-27 18:19:17 +08:00
Adrian Schmutzler
4e05c7fd97 layerscape: harmonize wrapping for IMAGE/* definitions
Always keep the first line empty for multi-line IMAGE/* definitions.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 18:18:53 +08:00
Adrian Schmutzler
8be634e1a8 layerscape: create shared definitions for sdboot devices
This moves a few shared variables for SD-Boot devices into common
definitions in order to reduce duplicate code.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 18:14:10 +08:00
Pawel Dembicki
30c0e93b6f layerscape: Change to combined rootfs on sd images
At this moment layerscape images are ext4 only. It causes problem with
save changes durring sysupgrade and make "firstboot" and failsafe mode
useless.

This patch changes sd-card images to squashfs + f2fs combined images.
To make place, for saving config, kernel space ar now ext4 partition
with fit kernel.

This method of image generation is similar to rest of OpenWrt sd-card
targets.

Reviewed-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
[reword README, reword DEVICE_COMPAT_MESSAGE, keep original indent]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 18:13:17 +08:00
Pawel Dembicki
7d04e55577 layerscape: fix platform_copy_config function
At this moment platform_copy_config function is used for every device
and function "export_partdevice" without "export_bootdevice" causes
multiple errors like that:
"sh: 1: unknown operand"

This patch fix usage of export_partdevice and split platform_copy_config
for sd-card images.

Fixes: 0841b68c91 ("layerscape: support sysupgrade for SD card ext4
rootfs")

Reviewed-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2020-10-27 17:49:34 +08:00
Pawel Dembicki
15bfb71c3e layerscape: add dtb to sysupgrade
At this moment sysupgrade replaces only kernel and rootfs.

This patch add dtb part to sysupgrade images to avoid situation
when old dtb make system broken.

Is possible to sysupgrade older images for NOR devices:
1. Firmware partition in bootargs need to be updated to:
   "49m@0xf00000(firmware)". Env should be saved after changes.
2. After step one, "sysupgrade -F" will work.

Run tested: LS1046A-RDB

Reviewed-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
[bump PKG_RELEASE for uboot-layerscape]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 17:47:46 +08:00
Pawel Dembicki
df4d332b1e layerscape: fix sd-card sysupgrade
So far, kernel has not been written correctly to SD card during
sysupgrade, as both target path and offset were wrong.

This patch fixes it, and adds some descriptive output on the way.

Fixes: 0841b68c91 ("layerscape: support sysupgrade for SD card ext4
rootfs")

Reviewed-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
[alter/extend commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 17:47:19 +08:00
Adrian Schmutzler
0d32423daf treewide: simplify inclusion of subtarget image files
Many target use a repetitive if-include scheme for their subtarget
image files, though their names are consistent with the subtarget
names.

This patch removes these redundant conditions and just uses the
variable for the include where the target setup allows it.

For sunxi, this includes a trivial rename of the subtarget image
Makefiles.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 17:46:42 +08:00
Adrian Schmutzler
9ce97902e7 bcm63xx: reorganize board patches into fewer files
At the moment, bcm63xx creates one patch for each board to add to
board_bcm963xx.c. While this is not really helpful to get an overview
in the first place, it is particularly painful if you want to change
something for an early file and have to refresh all the later patches
accordingly.

Since it does not look like these board patches are upstreamed either,
this commit consolidates all board additions into one patch per "board".
By this, both adding and editing boards should become much simpler,
and we drop about 1300 lines of "code" from patches as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 11:35:11 +08:00
Adrian Schmutzler
eb44bda202 ath79: enable upgrade from ar71xx for Qxwlan devices
This supports upgrade from ar71xx for the recently added Qxwlan
devices E1700AC v2, E558 v2, E750A v4 and E750G v8.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 11:34:31 +08:00
Roman Kuzmitskii
9a7b57e172 octeon: use dedicated function to move config backup
All octeon devices use the same or a very similar way to backup
and restore configuration.

We expect to have more devices added and in order to stop
repeating ourselves move the logic to a separate function.

While at it, add a few checks.

Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
[commit message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-27 11:34:07 +08:00
Nick Hainke
85f489a36d ath79: fix block protection clearing
The block protection bits of macronix do not match the implementation.
The chip has 3 BP bits. Bit 5 is actually the third BP but here the
5th bit is SR_TB. Therefore the patch adds SR_TB to the mask. In the
4.19er kernel the whole register was simply set to 0.

The wrong implementation did not remove the block protection. This led
to jffs2 errors in the form of:
"jffs2: Newly-erased block contained word 0x19852003 at offset 0x..."
This caused inconsistent memory and other errors.

Suggested-by: David Bauer <mail@david-bauer.net>
Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-10-26 11:45:37 +08:00
Nick Hainke
737b6b107a ath79: define 2.4GHz radio for litebeam ac gen2
The litebeam ac gen2 has a 2.4GHz management radio.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-10-26 11:42:22 +08:00
Nick Hainke
343e2d6a6d ath79: define 2.4GHz radio for nanostation ac loco
The nanostation ac loco has a 2.4GHz management radio.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-10-26 11:41:58 +08:00
Nick Hainke
2fbf32eb6e ath79: fix nanostation ac loco ethernet interface
In 4.14 the delays were not cleared, so setting "rgmii" as phy-mode
did not affect delays set by the bootloader. With 5.4 kernel the
situation changed and the ethernet interface stopped working.

Just taking the ethernetpart from the litebeam ac gen2 will fix
the issue.

Explained-by: David Bauer <mail@david-bauer.net>
Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-10-26 11:41:34 +08:00
Jianhui Zhao
be6b680892 ramips: mt7621: use lzma-loader for U7621-06
The U7621-06 fails to boot if the kernel is large.
Enabling lzma-loader resolves the issue.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2020-10-26 11:40:25 +08:00
CN_SZTL
8047ecbd5a Merge Mainline 2020-10-25 22:15:27 +08:00
CN_SZTL
ddd82d1a6b Merge Mainline 2020-10-25 17:57:42 +08:00
CN_SZTL
b8b3172055 Merge Mainline 2020-10-25 15:19:02 +08:00
CN_SZTL
9dd5a7c056 linux: refresh patches for kernel 5.4
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-10-24 20:08:26 +08:00
CN_SZTL
76d682c9d9 Merge Mainline 2020-10-22 22:57:05 +08:00
CN_SZTL
341c6b1d00 uboot-sunxi: refresh patches 2020-10-22 13:04:37 +08:00
CN_SZTL
0980aba2c0 sunxi: fix NanoPi R1 support 2020-10-22 13:02:23 +08:00
CN_SZTL
3ea1ed9408 uboot-sunxi: drop outdated patch 2020-10-22 12:53:37 +08:00
CN_SZTL
01fd1d168c Merge Mainline 2020-10-22 12:48:04 +08:00
Chen Minqiang
1aac44a221 ramips: ralink: rename some functions 2020-10-22 12:43:59 +08:00
CN_SZTL
d7c06b9040 ipq40xx: drop kernel 4.14 support
kernel 4.14 is no longer supported with existing DTS files.

Fixes: #214

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-10-21 13:27:14 +08:00
zcluo
763a91567c v2ray : update v4.31.2
v2ray : update v4.31.2
2020-10-20 11:39:25 +08:00
John Audia
6923efc245 kernel: bump 5.4 to 5.4.72
All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2020-10-20 11:33:25 +08:00
Richard Fröhning
3fb6eb7f17 ramips: add support for TP-Link RE200 v4
TP-Link RE200 v4 is a wireless range extender with Ethernet and 2.4G and 5G
WiFi with internal antennas.
It's based on MediaTek MT7628AN+MT7610EN like the v2/v3.

Specifications
--------------

- MediaTek MT7628AN (580 Mhz)
- 64 MB of RAM
- 8 MB of FLASH
- 2T2R 2.4 GHz and 1T1R 5 GHz
- 1x 10/100 Mbps Ethernet
- 8x LED (GPIO-controlled), 2x button
- UART connection holes on PCB (57600 8n1)

There are 2.4G and 5G LEDs in red and green which are controlled
separately.

MAC addresses
-------------

The MAC address assignment matches stock firmware, i.e.:

LAN : *:8E
2.4G: *:8D
5G  : *:8C

MAC address assignment has been done according to the RE200 v2.

The label MAC address matches the OpenWrt ethernet address.

Installation
------------

Web Interface
-------------

It is possible to upgrade to OpenWrt via the web interface. Simply flash
the -factory.bin from OEM. In contrast to a stock firmware, this will not
overwrite U-Boot.

Recovery
--------

Unfortunately, this devices does not offer a recovery mode or a tftp
installation method. If the web interface upgrade fails, you have to open
your device and attach serial console.

Instructions for serial console and recovery may be checked out in
commit 6d6f36ae78 ("ramips: add support for TP-Link RE200 v2") or on
the device's Wiki page.

Signed-off-by: Richard Fröhning <misanthropos@gmx.de>
[removed empty line, fix commit message formatting]
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-10-20 11:30:49 +08:00
Ansuel Smith
e548b85ec4 ipq806x: fix pci broken on bootm command
Pci is broken when bootm is used instead of the custom bootipq. This
is caused by the lack of reset by the bootloader. Make the driver do
the reset to fix this specific problem.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2020-10-20 11:29:29 +08:00
John Crispin
190d344f65 rtl838x: various fixes
* add d-link_dgs-1210-10p support
* make sure mips16 is disabled
* add a generic sub target
* add proper cflags

Signed-off-by: John Crispin <john@phrozen.org>
2020-10-20 11:28:44 +08:00
Hauke Mehrtens
47c1b14a23 sunxi: Adapt U-Boot config to board rename
The board was renamed without changing the BUILD_DEVICES in the U-Boot
Makefile, this broken the build.

Fixes: 0830ae3a2f ("sunxi: Correct manufacturer name to Sinovoip")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-10-19 11:35:27 +08:00
张鹏
bc01124ba9 ath79: add support for Qxwlan E1700AC v2
E1700AC v2 based on Qualcomm/Atheros QCA9563 + QCA9880.

Specification:

 - 750/400/250 MHz (CPU/DDR/AHB)
 - 128 MB of RAM (DDR2)
 - 8/16 MB of FLASH (SPI NOR)
 - 3T3R 2.4 GHz
 - 3T3R 5 GHz
 - 2 x 10/1000M Mbps Ethernet (RJ45)
 - 1 x MiniPCI-e
 - 1 x SIM (3G/4G)
 - 1 x USB 2.0 Port
 - 5 x LED , 2 x Button(S8-Reset Buttun), 1 x power input
 - UART (J5) header on PCB (115200 8N1)

Flash instruction:

   1.Using tftp mode with UART connection and original LEDE image
      - Configure PC with static IP 192.168.1.10 and tftp server.
      - Rename "openwrt-ar71xx-generic-xxx-squashfs-sysupgrade.bin"
        to "firmware.bin" and place it in tftp server directory.
      - Connect PC with one of LAN ports, power up the router and press
        key "Enter" to access U-Boot CLI.
      - Use the following commands to update the device to LEDE:
        run lfw
      - After that the device will reboot and boot to LEDE.
      - Wait until all LEDs stops flashing and use the router.

   2.Using httpd mode with Web UI connection and original LEDE image
      - Configure PC with static IP 192.168.1.xxx(2-255) and tftp server.
      - Connect PC with one of LAN ports,press the reset button, power up
        the router and keep button pressed for around 6-7 seconds, until
        leds flashing.
      - Open your browser and enter 192.168.1.1,You will see the upgrade
        interface, select "openwrt-ar71xx-generic-xxx-squashfs-
        sysupgrade.bin" and click the upgrade button.
      - After that the device will reboot and boot to LEDE.
      - Wait until all LEDs stops flashing and use the router.

Signed-off-by: 张鹏 <sd20@qxwlan.com>
[cut out of bigger patch, keep swconfig, whitespace fixes]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-19 11:32:13 +08:00
张鹏
a6b911663a ath79: add support for Qxwlan E558 v2
Qxwlan E558 v2 is based on Qualcomm QCA9558 + AR8327.

Specification:

 - 720/600/200 MHz (CPU/DDR/AHB)
 - 128 MB of RAM (DDR2)
 - 8/16 MB of FLASH (SPI NOR)
 - 2T2R 2.4 GHz (QCA9558)
 - 3x 10/100/1000 Mbps Ethernet (one port with PoE support)
 - 4x miniPCIe slot (USB 2.0 bus only)
 - 1x microSIM slot
 - 5x LED (4 driven by GPIO)
 - 1x button (reset)
 - 1x 3-pos switch
 - 1x DC jack for main power input (9-48 V)
 - UART (JP5) and LEDs (J8) headers on PCB

Flash instruction:

   1.Using tftp mode with UART connection and original LEDE image
      - Configure PC with static IP 192.168.1.10 and tftp server.
      - Rename "openwrt-ar71xx-generic-xxx-squashfs-sysupgrade.bin"
        to "firmware.bin" and place it in tftp server directory.
      - Connect PC with one of LAN ports, power up the router and press
        key "Enter" to access U-Boot CLI.
      - Use the following commands to update the device to LEDE:
        run lfw
      - After that the device will reboot and boot to LEDE.
      - Wait until all LEDs stops flashing and use the router.

   2.Using httpd mode with Web UI connection and original LEDE image
      - Configure PC with static IP 192.168.1.xxx(2-255) and tftp server.
      - Connect PC with one of LAN ports,press the reset button, power up
        the router and keep button pressed for around 6-7 seconds, until
        leds flashing.
      - Open your browser and enter 192.168.1.1,You will see the upgrade
        interface, select "openwrt-ar71xx-generic-xxx-squashfs-
        sysupgrade.bin" and click the upgrade button.
      - After that the device will reboot and boot to LEDE.
      - Wait until all LEDs stops flashing and use the router.

Signed-off-by: 张鹏 <sd20@qxwlan.com>
[cut out of bigger patch, keep swconfig, whitespace adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-19 11:31:35 +08:00
张鹏
2cb3516b5e ath79: add support for Qxwlan E750G v8
Qxwlan E750G v8 is based on Qualcomm QCA9344 + QCA9334.

Specification:

 - 560/450/225 MHz (CPU/DDR/AHB)
 - 128 MB of RAM (DDR2)
 - 8/16 MB of FLASH (SPI NOR)
 - 2T2R 2.4G GHz (AR9344)
 - 2x 10/100/1000 Mbps Ethernet (one port with PoE support)
 - 7x LED (6 driven by GPIO)
 - 1x button (reset)
 - 1x DC jack for main power input (9-48 V)
 - UART (J23) and LEDs (J2) headers on PCB

Flash instruction:

   1.Using tftp mode with UART connection and original LEDE image
      - Configure PC with static IP 192.168.1.10 and tftp server.
      - Rename "openwrt-ar71xx-generic-xxx-squashfs-sysupgrade.bin"
        to "firmware.bin" and place it in tftp server directory.
      - Connect PC with one of LAN ports, power up the router and press
        key "Enter" to access U-Boot CLI.
      - Use the following commands to update the device to LEDE:
        run lfw
      - After that the device will reboot and boot to LEDE.
      - Wait until all LEDs stops flashing and use the router.

   2.Using httpd mode with Web UI connection and original LEDE image
      - Configure PC with static IP 192.168.1.xxx(2-255) and tftp server.
      - Connect PC with one of LAN ports,press the reset button, power up
        the router and keep button pressed for around 6-7 seconds, until
        leds flashing.
      - Open your browser and enter 192.168.1.1,You will see the upgrade
        interface, select "openwrt-ar71xx-generic-xxx-squashfs-
        sysupgrade.bin" and click the upgrade button.
      - After that the device will reboot and boot to LEDE.
      - Wait until all LEDs stops flashing and use the router.

Signed-off-by: 张鹏 <sd20@qxwlan.com>
[cut out of bigger patch, keep swconfig]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-19 11:31:12 +08:00
Felix Fietkau
33486d8599 kernel: remove obsolete non-upstream block2mtd patches
Since block2mtd is not used for firmware images anymore, these patches
are no longer needed

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-10-19 11:30:05 +08:00
Felix Fietkau
55e41d9c9c mediatek: rewrite flow offload code
The code is now much cleaner and works better than the old code.
Preparation for submitting it upstream (though with a different API)
Also add back MT7621 support and fix flow table coherence issues on
MT7622

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-10-19 11:29:39 +08:00
CN_SZTL
4c82568b19 Merge Mainline 2020-10-17 19:50:29 +08:00
David Bauer
3d86ffedd7 uboot-rockchip: update to v2020.10
Update to the latest U-Boot release. Refresh patches for the NanoPi R2S
to include the latest DTS accepted Linux upstream.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-10-17 19:43:03 +08:00
CN_SZTL
fe5fa0c7ab Revert "uboot-rockchip: fix nanopi-r2s failed to boot on some sd cards"
This reverts commit 8fcd9541fd.
2020-10-17 19:42:51 +08:00
Peng Zhang
87a9a4543b ath79: add support for Qxwlan E750A v4
Qxwlan E750A v4 is based on Qualcomm QCA9344.

Specification:

 - 560/450/225 MHz (CPU/DDR/AHB)
 - 128 MB of RAM (DDR2)
 - 8/16 MB of FLASH (SPI NOR)
 - 2T2R 5G GHz (AR9344)
 - 2x 10/100 Mbps Ethernet (one port with PoE support)
 - 1x miniPCIe slot (USB 2.0 bus only)
 - 7x LED (6 driven by GPIO)
 - 1x button (reset)
 - 1x DC jack for main power input (9-48 V)
 - UART (J23) and LEDs (J2) headers on PCB

Flash instruction:

   1.Using tftp mode with UART connection and original LEDE image
      - Configure PC with static IP 192.168.1.10 and tftp server.
      - Rename "openwrt-ar71xx-generic-xxx-squashfs-sysupgrade.bin"
        to "firmware.bin" and place it in tftp server directory.
      - Connect PC with one of LAN ports, power up the router and press
        key "Enter" to access U-Boot CLI.
      - Use the following commands to update the device to LEDE:
        run lfw
      - After that the device will reboot and boot to LEDE.
      - Wait until all LEDs stops flashing and use the router.

   2.Using httpd mode with Web UI connection and original LEDE image
      - Configure PC with static IP 192.168.1.xxx(2-255) and tftp server.
      - Connect PC with one of LAN ports,press the reset button, power up
        the router and keep button pressed for around 6-7 seconds, until
        leds flashing.
      - Open your browser and enter 192.168.1.1,You will see the upgrade
        interface, select "openwrt-ar71xx-generic-xxx-squashfs-
        sysupgrade.bin" and click the upgrade button.
      - After that the device will reboot and boot to LEDE.
      - Wait until all LEDs stops flashing and use the router.

Signed-off-by: Peng Zhang <sd20@qxwlan.com>
[cut out of bigger patch, alter use of DEVICE_VARIANT, merge case
in 01_leds, use lower case for v4]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-17 18:04:43 +08:00
Adrian Schmutzler
9f895baa4b rtl838x: move dts-v1 to DTSI
The syntax of the shared SoC DTSI file determines the DTS version,
so no need to repeat the "/dts-v1/;" identifier in every file.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-16 19:14:35 +08:00
John Audia
41878c3153 kernel: bump 5.4 to 5.4.71
All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711,
              lantiq/Easybox 904 xDSL
Run-tested:   ipq806x/R7800, lantiq/Easybox 904 xDSL

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
[add lantiq test reports]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-16 19:13:37 +08:00
Felix Fietkau
3ea016df08 build: always build package/kernel/linux
build: always build package/kernel/linux

If no in-tree module packages are selected, the build system does not process
package/kernel/linux. This package is required for building the virtual
'kernel' package, which is specified as a dependency for all kernel packages.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-10-16 19:11:21 +08:00
John Crispin
91fd889b63 rtl838x: add DLink DGS-1210-16 support
Signed-off-by: John Crispin <john@phrozen.org>
2020-10-16 19:09:34 +08:00
Birger Koblitz
e040da4bdf rtl838x: Fix firmware handling
Fix wrong magic number verification for FW files.
Correct handling of external RTL8218B firmware PHY name in firmware.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2020-10-16 19:09:11 +08:00
CN_SZTL
7f6807b5b4 ramips: drop kernel 4.14 support
Now the target is 5.4 only.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-10-15 23:57:28 +08:00
Andreas Oberritter
3a932a2da4 rtl838x: do not default to the router DEVICE_TYPE
The router profile installs many packages unnecessary for
the operation of a typical ethernet switch. Instead of creating
an empty switch profile upfront, use the basic profile until
a set of common packages crystallizes.

Signed-off-by: Andreas Oberritter <obi@saftware.de>
2020-10-15 17:50:09 +08:00
Andreas Oberritter
3b9f5f51a3 rtl838x: bundle phy firmware with Linux kernel
Fixes long delay on boot when booting from flash. The driver waits
for one minute for userspace to load firmware, before it becomes
available.

Signed-off-by: Andreas Oberritter <obi@saftware.de>
2020-10-15 17:49:38 +08:00
Birger Koblitz
6fe6a8026d rtl838x: Add support for RTL839x internal PHY
This adds basic support for reading the internal PHYs of the RTL839x SoCs
and full support for the 2 PHYs connected to the 1000Base-X SerDes of
the RTL8393 SoC.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2020-10-15 17:49:05 +08:00
Birger Koblitz
cea2ec63c3 rtl838x: Add irq settings for RTL839x SoCs
This adds correct interrupt routing settings for IRQs on the RTL839x SoCs.
It also speeds up irq handling based on work by biot for all SoCs.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2020-10-15 17:48:31 +08:00
Rui Salvaterra
455352e1dc treewide: enable the vDSO
The vDSO is used to accelerate some syscalls. It should work fine wherever it's
available, so enable it globally for all targets.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2020-10-14 20:08:22 +08:00
Petr Štetiar
35eeaf7679 base-files: add support for the new ar8xxx MIB counters settings
Commit "generic: ar8216: add mib_poll_interval switch attribute" has
added mib_poll_interval global config option and commit "generic:
ar8216: group MIB counters and use two basic ones only by default" has
added mib_type config option.

So this patch adds ucidef_set_ar8xxx_switch_mib helper function which
would allow configuration of the above mentioned new switch config
options.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-10-14 20:06:07 +08:00
Felix Fietkau
554a8c7bbf mac80211: do not allow bigger VHT MPDUs than the hardware supports
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit caf727767a)
[Refreshed patch]
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2020-10-14 20:05:46 +08:00
CN_SZTL
c9dcd7a5ad Merge Mainline 2020-10-14 00:23:01 +08:00
AmadeusGhost
ead018693c Merge Mainline 2020-10-13 19:00:16 +08:00
Chuanhong Guo
36ebd083be base-files: preinit: also config switch when no port roles defined
current preinit code in base-files doesn't config switch when there are
no port roles defined. But this kind of configuration exists on single
port devices where switch vlan is simply disabled.
configure reset and enable_vlan property when a switch node exist.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-10-13 18:35:08 +08:00
Hal Martin
5766509e4b sunxi: Correct manufacturer name to Sinovoip
Sinovoip is the manufacturer of the BPi-M2U:
http://www.banana-pi.org/m2u.html

Signed-off-by: Hal Martin <hal.martin@gmail.com>
2020-10-12 11:44:48 +08:00
Hal Martin
7e3f800876 sunxi: BPi-M2U kernel modules for onboard WiFi
Signed-off-by: Hal Martin <hal.martin@gmail.com>
2020-10-12 11:44:13 +08:00
Arturas Moskvinas
826aa81903 sunxi: add support for FriendlyArm Zeropi
Specification

    CPU: Allwinner H3, Quad-core Cortex-A7 Up to 1.2GHz
    DDR3 RAM: 256MB/512MB
    Connectivity: 10/100/1000Mbps Ethernet
    USB Host: Type-A x 1
    MicroSD Slot x 1
    MicroUSB: for power input only
    Debug Serial Port: 4Pin, 2.54 mm pitch pin header
    Power Supply: DC 5V/2A
    PCB Dimension: 40 x 40 x 1.2mm

Installation:

    Burn the image file to an SD Card with dd or any image burning tool
    Boot ZeroPi from the SD Card

The following features are working and tested:

    Ethernet port 10/100/1000M Ethernet

Remarks: SBC is mostly compatible and boots with FriendlyARM NanoPI M1 plus DTS also (zeropi has no working hdmi)

Signed-off-by: Arturas Moskvinas <arturas.moskvinas@gmail.com>
2020-10-12 11:43:49 +08:00
Andre Heider
aa9c470822 sunxi: add a kmod package for sun4i_spdif
Tested on a A20 board:
$ cat /proc/asound/cards
 0 [SPDIF          ]: On-board_SPDIF - On-board SPDIF
                      On-board SPDIF

Size of the module for a 32bit kernel:
60708 linux-5.4.66/sound/soc/sunxi/sun4i-spdif.ko

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-12 11:41:24 +08:00
Andre Heider
a684b3c929 sunxi: add SND_SIMPLE_CARD to kernel config
This is required to expose an ALSA card for quite some boards:

$ git grep -l simple-audio-card \
	arch/arm/boot/dts/sun?i* \
	arch/arm64/boot/dts/allwinner/*

arch/arm/boot/dts/sun4i-a10-a1000.dts
arch/arm/boot/dts/sun5i-gr8-evb.dts
arch/arm/boot/dts/sun6i-a31-i7.dts
arch/arm/boot/dts/sun6i-a31s-sina31s.dts
arch/arm/boot/dts/sun7i-a20-cubietruck.dts
arch/arm/boot/dts/sun7i-a20-itead-ibox.dts
arch/arm/boot/dts/sun8i-a33-olinuxino.dts
arch/arm/boot/dts/sun8i-a33.dtsi
arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
arch/arm/boot/dts/sun8i-h3-beelink-x2.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts

The compressed 32bit kernel increases less than 1K:
Before: 3230768 zImage
After:  3231664 zImage

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-12 11:40:59 +08:00
Andre Heider
0f5a0b228b kernel: add a kmod package for the SoC S/PDIF codec
Size of the modules for a Cortex A7 build:
43920 linux-5.4.66/sound/soc/codecs/snd-soc-spdif-rx.ko
44044 linux-5.4.66/sound/soc/codecs/snd-soc-spdif-tx.ko

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-12 11:40:24 +08:00
Andre Heider
0b1c7afe98 uboot-envtools: mvebu: fix config for mainline u-boot
Mainline u-boot dynamically passes the mtd partitions via devicetree:
$ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 003f0000 00001000 "firmware"
mtd1: 00010000 00001000 "u-boot-env"

Add support for this setup.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-12 11:38:19 +08:00
Andre Heider
251dd4c6e9 mvebu: Add bootscript for espressobin to support mainline firmware
The generic bootscript is tailored around a downstream firmware and
doesn't work on a firmware built from mainline components.

Add a bootscript which:
* sets $console since mainline u-boot doesn't do that
* uses distro boot variables, so OpenWRT can be booted off any supported
  device when using a mainline firmware
* sets missing distro boot variables for the downstream firmware

Booting with a downstream firmware is unchanged.
Booting with a mainline firmware now works.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-12 11:37:58 +08:00
Hauke Mehrtens
851c78d640 kernel: Move CONFIG_*_FS_XATTR to generic kernel config
This option is now activated in the generic kernel configuration, no
need to do it for a specific package.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-10-12 11:37:34 +08:00
Hauke Mehrtens
37e4bbef3e kernel: move CONFIG_F2FS_CHECK_FS to generic kernel config
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-10-12 11:37:06 +08:00
Hauke Mehrtens
3e7bb10ae9 kernel: Move CONFIG_F2FS_FS_SECURITY to generic kernel config
Move the CONFIG_F2FS_FS_SECURITY kernel configuration option to the
generic kernel configuration.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-10-12 11:35:38 +08:00
Hauke Mehrtens
23a8bbe0ec kernel: Remove 2FS_FS_XATTR and F2FS_STAT_FS symbols from target configs
This config option was moved to the generic kernel configuration.

Fixes: ab1bd57656 ("kernel: move F2FS_FS_XATTR and F2FS_STAT_FS symbols to generic")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-10-12 11:35:08 +08:00
Andre Heider
3de0838c10 arm-trusted-firmware-mvebu: fix topology for ESPRESSObin V3-V5 (1GB 1CS)
Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-12 11:33:41 +08:00
Andre Heider
cb6f6e6854 uboot-mvebu: don't install 64bit binaries
u-boot binaries are not useful for these boards, they need to be combined
with atf for a proper firmware.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-12 11:33:19 +08:00
Andre Heider
d83d32fa97 uboot-mvebu: don't default to enable a3700 builds
u-boot binaries for this SoC are only required for the atf package,
disable them per default so they don't get build unnecessarily.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-12 11:32:56 +08:00
Andre Heider
a846eb446c uboot-mvebu: don't add CONFIG_NET_RANDOM_ETHADDR to defconfig
All targets already enable it in their defconfig with the used
u-boot version.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-12 11:32:35 +08:00
Andre Heider
85a3fb3278 uboot-mvebu: update to v2020.10
Remove merged patches and update the emmc set.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-12 11:32:14 +08:00
Kabuli Chana
aa040d35a6 mvebu: Correct regulatory country of WRT3200ACM
correct oversight on setting regulatory country and mac address of wireless configuration
change method of retrieving mac address

The MAC address for eth0 is rad out of the devinfo partition in some
other initial configuration script already.

Signed-off-by: Kabuli Chana <newtownBuild@gmail.com>
2020-10-12 11:31:52 +08:00
Kabuli Chana
f14aa903b5 mvebu: add wrt3200acm to 03_wireless CC
correct device CC oversight

Set the initial wifi configuration like for the other similar Linksys
devices.

Signed-off-by: Kabuli Chana <newtownBuild@gmail.com>
2020-10-12 11:31:30 +08:00
Pali Rohár
e314c2b204 mvebu: armada-37xx: espressobin: Backport patch for ethernet switch aliases
Signed-off-by: Pali Rohár <pali@kernel.org>
2020-10-12 11:30:53 +08:00
Pali Rohár
40e46becf3 mvebu: armada-37xx: Backport PCI aardvark patches
This commit contains patches for PCI aardvark driver and relevant DTS
changes for Turris MOX and EspressoBin backported from mainline kernel.
It fixes support for old ATF, various wifi cards, mainly Compex WLE900VX.

Signed-off-by: Pali Rohár <pali@kernel.org>
2020-10-12 11:30:29 +08:00
Tony Ambardar
2fcd3dc35e scripts/qemustart: update malta to use MIPS64 R2 cpu
Explicitly set the QEMU cpu type and support the MIPS R2 ISA, for both
64-bit and 32-bit targets. The later previously supported MIPS R2 by
implicit default.

This is needed after commit 93608697f3 ("malta: update MIPS64 ISA to R2"),
otherwise booting malta images with scripts/qemustart will hang.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2020-10-12 11:30:00 +08:00
Tony Ambardar
b7a055dc29 malta: update MIPS64 ISA to R2
Usage of current R1 ISA is inconsistent with the MIPS32 subtarget, little
used and has limited utility for testing.

Many distros target a minimum R2 ISA. Debian MIPS 32-bit/64-bit ports all
use MIPS R2 ISA since Stretch, for example. Fedora's MIPS arch also targets
the R2 ISA for 32-bit/64-bit.

Widely used MIPS64 platforms like Octeon are based on the MIPS R2 ISA or
later, and benefit from having a compatible test platform in OpenWRT.

While Linux does support MIPS64 R1 targets, its usefulness for development
and testing is limited. As an example, the modern Linux eBPF JIT requires
a MIPS R2 ISA or later.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
[Refresh config and fix README]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-10-12 11:29:32 +08:00
Marek Behún
0cecde7af0 perf: pass CFLAGS correctly
For this package CFLAGS have to be passed via EXTRA_CFLAGS.
On arm this bug causes build to fail because no -fPIC is present in CFLAGS.

Signed-off-by: Marek Behún <kabel@blackhole.sk>
2020-10-12 11:27:04 +08:00
Marek Behún
7843d70ed9 perf: fix building with musl when NLS is enabled
This package fails with a strange error when building with musl when NLS
is enabled. The configuration thinks that libelf is not present, even
though DEPENDS contains +libelf, because when NLS is enabled, libelf.so
depends on libintl, and the correct LDFLAGS are missing for
libintl-full. This then causes the configuration script to check for
glibc, but this fails because we are using musl.

Signed-off-by: Marek Behún <kabel@blackhole.sk>
2020-10-12 11:26:32 +08:00
CN_SZTL
1412c99a3b Merge Mainline 2020-10-10 23:26:37 +08:00
LGA1150
8ccd2aa81f Revert "ramips: mt7621: disable CPU port flow control"
This reverts commit c06af7c5c3.
2020-10-10 18:13:19 +08:00
John Audia
78b0fe3d2e kernel: bump 5.4 to 5.4.70
All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2020-10-10 17:32:17 +08:00
Daniel Golle
4171325e19 kernel: move F2FS_FS_XATTR and F2FS_STAT_FS symbols to generic
Similar to how it was already done for other filesystems' *_FS_XATTR
kernel config symbols, also move CONFIG_F2FS_FS_XATTR=y and
CONFIG_F2FS_STAT_FS=y to target/linux/generic.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-10-10 17:29:57 +08:00
Adrian Schmutzler
e03e68ab9b ath79: drop redundant gpios on i2c
Since "sda-gpios" and "scl-gpios" are only available since kernel 4.19,
a few devices have redundantly defined "gpios" to also support older
kernels. Since we have nothing older than 4.19 now, we can remove
the redundant definitions.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-10 17:28:55 +08:00
Adrian Schmutzler
030e783c05 oxnas: fix qc_prep return in sata driver after kernel 5.4.69
This fixes a regression after a kernel change in 5.4.69 [1] that
led to build failure on oxnas/ox820:

  drivers/ata/sata_oxnas.c:2238:13: error: initialization of
  'enum ata_completion_errors (*)(struct ata_queued_cmd *)'
  from incompatible pointer type
  'void (*)(struct ata_queued_cmd *)' [-Werror=incompatible-pointer-types]
    .qc_prep = sata_oxnas_qc_prep,
               ^~~~~~~~~~~~~~~~~~
  drivers/ata/sata_oxnas.c:2238:13: note:
  (near initialization for 'sata_oxnas_ops.qc_prep')

Our local driver is changed the same way as prototyped in the
kernel patch, i.e. return type is changed and AC_ERR_OK return
value is added.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e11c83520cd04b813cd1748ee2a8f2c620e5f7e3

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-10 17:28:24 +08:00
Adrian Schmutzler
32c8fa9ec1 ipq40xx: use upstream DTS files for IPQ4019/AP-DK04.1
Upstream provides DTS(I) files for IPQ4019/AP-DK04.1, but we overwrite
them with local versions so far.

Remove the local files and use patches to be closer to upstream.
We already do the same for IPQ40xx/AP-DK01.1-C1.

Technically, this changes the compatible from "qcom,ipq4019" to
"qcom,ipq4019-dk04.1-c1", but it has never been implemented correctly
beforehand anyway.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-09 11:35:34 +08:00
Paul Spooren
19da4ab536 kernel: clean up XATTR config symbols
Extended attributes are required for overlayfs and have hence been long
ago enabled for jffs2, but should be enabled unconditionally for all
other filesystems which may potentially serve as overlayfs' upper
directory. Previously it was inconsistently added in multiple targets.
Add symbols to generic kernel config and remove all *_XATTR symbols
from target configs.

Signed-off-by: Paul Spooren <mail@aparcar.org>
[keep things as they are for squashfs, improve commit message]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-10-09 11:29:55 +08:00
Roman Kuzmitskii
bdccea7dfd ath79: rename ubnt,acb-isp to ubnt,aircube-isp
Use the full model name for this device to make it easier to
recognize for the users and in order to make it consistent with
the other devices.

While at it, fix sorting in 03_gpio_switches.

Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
[commit message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-07 17:22:27 +08:00
LGA1150
9b48f42718 Revert "ramips: enable packet steering by default on mt7621"
This reverts commit dfd62e575c.
2020-10-07 17:15:24 +08:00
AmadeusGhost
3fdc484aba ramips: XiaoYu-C5: reuse ralink-eth driver 2020-10-07 17:15:04 +08:00
Chen Minqiang
82cc584e7a ramips: net/mediatek disable eee
This disable eee for mt7530 ports, it causes the link down/up
issue, which happens when connecting to 100Mbit switch

Fixes: FS#1449

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-10-07 17:12:53 +08:00
Chen Minqiang
8f1f2afc00 ramips: net/mediatek fix logical error
fe_empty_txd() should return `tx_ring_size - 1` on ring empty, and
return 0 on ring full.

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-10-07 17:12:41 +08:00
Chen Minqiang
5d932412b0 Revert "ramips: disable PORT 5 MAC RX/TX flow control by default"
The TX/RX flow control is not the cause of the TX timeouts issue

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-10-07 17:12:15 +08:00
Jeff Collins
3407d03c12 rtl8812au-ac: add package 2020-10-06 03:47:04 +08:00
LGA1150
c06af7c5c3 ramips: mt7621: disable CPU port flow control 2020-10-05 23:43:59 +08:00
CN_SZTL
91aea1d7eb Merge Mainline 2020-10-05 23:39:18 +08:00
Jo-Philipp Wich
07bfe0117b netfilter: ship nft_chain_nat on 5.1+ kernels
The former nft_chain_nat_ipv4 and nft_chain_nat_ipv6 modules have been merged
into a common nft_chain_nat module starting with Linux 5.1.

Ensure that this common module is shipped along with kmod-nft-nat on recent
kernels.

While we're at it, also apply version constraints to other nft modules that
have been merged into the core with newer kernels.

Ref: https://bugs.openwrt.org/index.php?do=details&task_id=2815#comment8016
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-10-05 14:19:01 +08:00
David Bauer
6f3e8ab72e rockchip: fix NanoPi R2S GMAC clock name
This commit fixes the name for the GMAC clock to gmac_clkin, as this is
the name of the clock provided by the rk3328-clk driver.

Without this commit, the GMAC will not work in TX direction.

Suggested-by: Tobias Waldvogel <tobias.waldvogel@gmail.com>
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-10-05 13:32:55 +08:00
Adrian Schmutzler
e79eb1d339 ath79: rename TP-Link TL-WPA8630P v2 (EU) to v2.0 (EU)
Since we have a v2.1 (EU) with different partitioning now, rename
the v2.0 to make the difference visible to the user more directly.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-04 22:27:19 +08:00
Joe Mullally
a827c73d58 ath79: add support for TP-Link TL-WPA8630P (EU) v2.1
This adds support for the TP-Link TL-WPA8630P (EU) in its v2.1
version. The only unique aspect for the firmware compared to v2
layout is the partition layout.

Note that while the EU version has different partitioning for
v2.0 and v2.1, the v2.1 (AU) is supported by the v2-int image.

If you plan to use this device, make sure you have a look at
the Wiki page to check whether the device is supported and
which image needs to be taken.

Specifications
--------------

  - QCA9563 750MHz, 2.4GHz WiFi
  - QCA9888 5GHz WiFi
  - 8MiB SPI Flash
  - 128MiB RAM
  - 3 GBit Ports (QCA8337)
  - PLC (QCA7550)

Installation
------------

Installation is possible from the OEM web interface. Make sure to
install the latest OEM firmware first, so that the PLC firmware is
at the latest version. However, please also check the Wiki page
for hints according to altered partitioning between OEM firmware
revisions.

Notes
-----

The OEM firmware has 0x620000 to 0x680000 unassigned, so we leave
this empty as well. It is complicated enough already ...

Signed-off-by: Joe Mullally <jwmullally@gmail.com>
[improve partitions, use v2 DTSI, add entry in 02_network, rewrite
and extend commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-04 22:27:13 +08:00
Marty Jones
fc806993fd rockchip: enable WiFi on ROCK Pi 4
Signed-off-by: Marty Jones <mj8263788@gmail.com>
2020-10-04 22:04:36 +08:00
Marty Jones
0605419264 package:firmware: add armbian-firmware
Signed-off-by: Marty Jones <mj8263788@gmail.com>
2020-10-04 22:04:25 +08:00
CN_SZTL
499bf9fb8c Merge Mainline 2020-10-04 21:51:35 +08:00
David Bauer
a9e18b5e8f ramips: fix logic level for DIR-645 buttons
The D-Link DIR-645 currently uses an incorrect logic level for its
buttons.

Correct them in order to prevent unintentional activation of failsafe
mode.

Reported-by: Perry Melange <isprotejesvalkata@gmail.com>
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-10-04 21:49:41 +08:00
Marty Jones
3c9172737c uboot-rockchip: add Rock Pi 4 support
Add support for the  Raxda Rock Pi 4.

Signed-off-by: Marty Jones <mj8263788@gmail.com>
2020-10-04 21:48:36 +08:00
Marty Jones
f67522e532 rockchip: add support for Radxa Rock Pi 4
This adds basic support for Radxa Rock Pi 4

Specification:
  - RAM:      1 GB/ 2 GB/4 GB LPDDR4

  - SoC:      Rockchip RK3399
  - CPU:      64bit hexa core processor
              Dual Cortex-A72, freqency 1.8Ghz
              with quad Cortex-A53, frequency 1.4Ghz
  - USB:      USB 3.0 OTG x1
              hardware switch for host/device switch, upper one
              USB 3.0 HOST x1
              dedicated USB3.0 channel, lower one
              USB 2.0 HOST x2
  - Ethernet: 1x GbE
  - Storage:  eMMC module
              uSD card
              M.2 SSD
  - Wireless: 802.11 ac wifi
              Bluetooth 5.0
              currently not supported

 firmware Installation
 ======================
 gzip -d xxx.img.gz, then dd the .img to SD/eMMC
 ======================

 Device Tested: ROCK PI 4 Model B v1.3

Signed-off-by: Marty Jones <mj8263788@gmail.com>
2020-10-04 21:48:30 +08:00
Andre Heider
e32aaf71eb omap: update uboot to v2020.04
Fixes the build error:
/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status

Successfully tested on boneblack.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-10-04 21:47:49 +08:00
CN_SZTL
dc0473eeec Merge Mainline 2020-10-04 00:11:52 +08:00
Pawel Dembicki
cc24571ff2 layerscape: add layerscape's SATA driver package
This patch intruduce SATA support for layerscape devices.
Target specific package with ahci_qoriq driver was added
to local modules.mk.
Kmod package was added to default packages for devices with
SATA interface.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Reviewed-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-10-03 20:06:00 +08:00
Pawel Dembicki
cd6db9d5e2 layerscape: add missing kmods for i2c peripherials
This patch adds kmod-hwmon-ina2xx kmod-hwmon-lm90 for boards,
which have it installed.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Reviewed-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-10-03 20:05:47 +08:00
Pawel Dembicki
a825d7ce71 uboot-layerscape: fix LS1012A-FRDM fdt_high value
LS1012A-FRDM have configured wrong fdt_high value.
That causes impossibility of booting.

This patch fix it.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Reviewed-by: Yangbo Lu <yangbo.lu@nxp.com>
[bump PKG_RELEASE]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-03 20:05:36 +08:00
Adrian Schmutzler
8e67586a41 lantiq: move dts-v1 statement to top-level DTSI files
The "/dts-v1/;" identifier is supposed to be present once at the
top of a device tree file after the includes have been processed.

In lantiq, we therefore requested to have in the DTS files so far,
and omit it in the DTSI files. However, essentially the syntax of
the parent SoC-based DTSI files already determines the DTS
version, so putting it into the DTS files is just a useless repetition.

Consequently, this patch puts the dts-v1 statement into the top-level
SoC-based DTSI files, and removes all other occurences.
Since the dts-v1 statement needs to be before any other definitions,
this also moves the includes accordingly where necessary.

Changes are applied to files-5.4 only, files-4.19 remains untouched.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-03 20:04:09 +08:00
David Bauer
ef0aaf4440 rockchip: enable Realtek PHY support
The NanoPi R2S features a Realtek Gigabit Ethernet PHY. Enable the
Realtek specific PHY driver to correctly configure internal delays.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-10-03 19:56:29 +08:00
CN_SZTL
8fcd9541fd uboot-rockchip: fix nanopi-r2s failed to boot on some sd cards
This reverts commit ed5c12569b.
2020-10-03 19:55:43 +08:00
David Bauer
bd67cfd5f2 Revert "uboot-rockchip: update NanoPi R2S patches"
This reverts commit bda6f6572b.

This commit breaks the onboard ethernet on some units. Revert it for
now.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-10-03 19:55:24 +08:00
John Audia
eb64d4a34a kernel: bump 5.4 to 5.4.69
Seemingly unneeded based on new upstream code so manually deleted:
 platform/820-usb-0007-usb-dwc3-gadget-increase-timeout-value-for-send-ep-c.patch

Manually merged:
 generic-hack/251-sound_kconfig.patch

All other modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2020-10-02 13:42:49 +08:00
Paul Spooren
225b1eed3d policycoreutils: add missing gettext dependency
Add missing build dependency to both host and target build. The `msgfmt`
is required which is missing without gettext-full.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-10-01 23:11:32 +08:00
David Bauer
87327f3a7e rockchip: fix NanoPi R2S PHY ID
Fix the PHY ID for the NanoPi R2S PHY compatible to match the used PHY.
The ID was wrong as I've accidentally picked the wrong upstream patch.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-10-01 23:03:16 +08:00
CN_SZTL
7f53d5e36d Merge Mainline 2020-10-01 21:55:59 +08:00
CN_SZTL
abddbd13fd Merge Mainline 2020-09-30 23:52:33 +08:00
liuchao
704062b656 if wan iface set to apcli0 or apclii0 while wireless relay, add them to lan should be avoided (#5528) 2020-09-30 21:16:14 +08:00
CN_SZTL
48e50b9c4d Merge Mainline 2020-09-30 21:13:46 +08:00
CN_SZTL
428ea7aeb3 luci-app-openclash: bump to 0.40.6 2020-09-30 19:51:21 +08:00
CN_SZTL
89a879764a rockchip: refresh target patches
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-09-30 19:46:18 +08:00
David Bauer
f0ca84aa8c rockchip: rk3328: add compatible to NanoPi R2S ethernet PHY
This adds the compatible property to the NanoPi R2S ethernet PHY node.
Otherwise, the PHY might not be probed, as the PHY ID reads all 0xff
when it is still in reset.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-09-30 19:32:28 +08:00
CN_SZTL
ed5c12569b Revert "uboot-rockchip: fix nanopi-r2s failed to boot on some sd cards"
This reverts commit 0bb3a30765
and bea2d0d431.
2020-09-30 19:31:29 +08:00
David Bauer
433fee077d uboot-rockchip: update NanoPi R2S patches
Update the patches required for the NanoPi R2S to match the DTS accepted
for upstream Linux. The U-Boot patch meanwhile is still pending
upstream.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-09-30 19:30:43 +08:00
Chuanhong Guo
3b4c731d00 ath79: ar8216: make switch register access atomic
reg accesses on integrated ar8229 sometimes fails. As a result, phy read
got incorrect port status and wan link goes down and up mysteriously.
After comparing ar8216 with the old driver, these local_irq_save/restore
calls are the only meaningful differences I could find and it does fix
the issue.
The same changes were added in svn r26856 by Gabor Juhos:
ar71xx: ag71xx: make switch register access atomic

As I can't find the underlying problem either, this hack is broght
back to fix the unstable link issue.
This hack is only suitable for ath79 mdio and may easily break the
driver on other platform. Limit it to ath79-only as a target patch.

Fixes: FS#2216
Fixes: FS#3226
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-09-30 19:28:07 +08:00
David Bauer
7b476e86d0 rockchip: refresh NanoPi R2S patches
Update the patches for the NanoPi R2S to the v3 sent (and accepted)
upstream.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-09-29 13:05:50 +08:00
David Bauer
4568f353bb ath79: add WiFi migration for AR913x
This adds the automatic WiFi path migration for AR913x platforms.

Tested on: TP-Link TL-WA901ND v2

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-09-29 11:23:24 +08:00
AmadeusGhost
7da6811557 Merge Mainline 2020-09-28 16:05:06 +08:00
CN_SZTL
6b1eb31f16 Merge Mainline 2020-09-28 13:14:47 +08:00
John Audia
89005d1fdd kernel: bump 5.4 to 5.4.68
All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x, ath79/generic, bcm72xx/bcm2711
Run-tested: ipq806x (R7800)

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2020-09-28 13:11:12 +08:00
Piotr Dymacz
3daecfd9ac ath79: add support for Hak5 WiFi Pineapple NANO
Hak5 WiFi Pineapple NANO is an "USB dongle" device dedicated for Wi-Fi
pentesters. This device is based on Atheros AR9331 and AR9271. Support
for it was first introduced in 950b278c81 (ar71xx). FCC ID: 2AB87-NANO.

Specifications:

- Atheros AR9331
- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR1)
- 16 MB of flash (SPI NOR)
- 1T1R 2.4 GHz Wi-Fi (AR9331)
- 1T1R 2.4 GHz Wi-Fi (AR9271L), with ext. PA and LNA (Qorvo RFFM4203)
- 2x RP-SMA antenna connectors
- 1x USB 2.0 to 10/100 Ethernet bridge (ASIX AX88772A)
- integrated 4-port USB 2.0 HUB: Alcor Micro AU6259:
  - 1x USB 2.0
  - 1x microSD card reader (Genesys Logic GL834L)
  - Atheros AR9271L
- 1x LED, 1x button
- UART (4-pin, 2 mm pitch) header on PCB
- USB 2.0 Type-A plug for power and AX88772A

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on OpenWrt/LEDE.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:22:26 +08:00
Piotr Dymacz
30d2f9d425 ath79: add support for Hak5 Packet Squirrel
Hak5 Packet Squirrel is a pocket-sized device dedicated for pentesters
(MITM attacks). This device is based on Atheros AR9331 but it lacks
WiFi. Support for it was first introduced in 950b278c81 (ar71xx).

Specifications:

- Atheros AR9331
- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2x RJ45 10/100 Mbps Ethernet (AR9331)
- 1x USB 2.0
- 1x RGB LED, 1x button, 1x 4-way mechanical switch
- 1x Micro USB Type-B for main power input

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on OpenWrt/LEDE.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:21:51 +08:00
Piotr Dymacz
25e9112d38 ath79: add support for Hak5 LAN Turtle
Hak5 LAN Turtle is an "USB Ethernet Adapter" shaped device dedicated for
sysadmins and pentesters. This device is based on Atheros AR9331 but it
lacks WiFi. Support for it was first introduced in 950b278c81 (ar71xx).

Two different versions of this device exist and it's up to the user to
install required drivers (generic image supports only common features):

- LAN Turtle 3G with Quectel UG96 3G modem
- LAN Turtle SD with microSD card reader (Alcorlink AU6435R)

Specifications:

- Atheros AR9331
- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 1x RJ45 10/100 Mbps Ethernet (AR9331)
- 1x USB 2.0 to 10/100 Ethernet bridge (Realtek RTL8152B)
- 2x LED (power, system), 1x button (inside, on the PCB)
- USB 2.0 Type-A plug for power and RTL8152B

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on OpenWrt/LEDE.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:21:26 +08:00
Piotr Dymacz
85e6f087fe uboot-envtools: ath79: add support for ALFA Network N5Q
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:21:01 +08:00
Piotr Dymacz
e0fc758d84 ath79: add support for ALFA Network N5Q
ALFA Network N5Q is a successor of previous model, the N5 (outdoor
CPE/AP, based on Atheros AR7240 + AR9280). New version is based on
Atheros AR9344.

Support for this device was first introduced in 4b0eebe9df (ar71xx
target) but users are advised to migrate from ar71xx target without
preserving settings as ath79 support includes some changes in network
and LED default configuration. They were aligned with vendor firmware
and recently added N2Q model (both Ethernet ports as LAN, labelled as
LAN1 and LAN2).

Specifications:

- Atheros AR9344
- 550/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2x 10/100 Mbps Ethernet, with passive PoE support (24 V)
- 2T2R 5 GHz Wi-Fi, with ext. PA (RFPA5542) and LNA, up to 27 dBm
- 2x IPEX/U.FL or MMCX antenna connectors (for PCBA version)
- 8x LED (7 are driven by GPIO)
- 1x button (reset)
- external h/w watchdog (EM6324QYSP5B, enabled by default)
- header for optional 802.3at/af PoE module
- DC jack for main power input (optional, not installed by default)
- UART (4-pin, 2.54 mm pitch) header on PCB
- LEDs (2x 5-pin, 2.54 mm pitch) header on PCB

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on OpenWrt/LEDE. Alternatively, you can use web recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24.
2. Connect PC with one of RJ45 ports, press the reset button, power up
   device, wait for first blink of all LEDs (indicates network setup),
   then keep button for 3 following blinks and release it.
3. Open 192.168.1.1 address in your browser and upload sysupgrade image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:20:38 +08:00
Piotr Dymacz
a8fc5886cc uboot-envtools: ath79: add support for ALFA Network N2Q
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:20:09 +08:00
Piotr Dymacz
8172b3740e ath79: add support for ALFA Network N2Q
ALFA Network N2Q is an outdoor N300 AP/CPE based on Qualcomm/Atheros
QCA9531 v2. This model is a successor of the old N2 which was based
on Atheros AR7240. FCC ID: 2AB8795311.

Specifications:

- Qualcomm/Atheros QCA9531 v2
- 650/400/200 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2T2R 2.4 GHz Wi-Fi with ext. PA (Skyworks SE2623L) and LNA
- 2x 10/100 Mbps Ethernet with passive PoE input in one port (24 V)
- PoE pass through in second port (controlled by GPIO)
- support for optional 802.3af/at PoE module
- 1x mini PCIe slot (PCIe bus, extra 4.2 V for high power cards)
- 2x IPEX/U.FL connectors on PCB
- 1x USB 2.0 mini Type-B (power controlled by GPIO)
- 8x LED (7 of them are driven by GPIO)
- 1x button (reset)
- external h/w watchdog (EM6324QYSP5B, enabled by default)
- UART (4-pin, 2.54 mm pitch) header on PCB
- LEDs (2x 5-pin, 2.54 mm pitch) header on PCB

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on LEDE/OpenWrt. Alternatively, you can use web recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24.
2. Connect PC with one of RJ45 ports, press the reset button, power up
   device, wait for first blink of all LEDs (indicates network setup),
   then keep button for 3 following blinks and release it.
3. Open 192.168.1.1 address in your browser and upload sysupgrade image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:19:46 +08:00
Piotr Dymacz
d1d1080775 uboot-envtools: ath79: add support for ALFA Network R36A
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:19:14 +08:00
Piotr Dymacz
5f03f56068 ath79: add support for ALFA Network R36A
ALFA Network R36A is a successor of the previous model, the R36 (Ralink
RT3050F based). New version is based on Qualcomm/Atheros QCA9531 v2, FCC
ID: 2AB879531.

Support for this device was first introduced in af8f0629df (ar71xx
target). When updating from previous release (and/or ar71xx target),
user should only adjust the WAN LED trigger type (netdev in ar71xx,
switch port in ath79).

Specifications:

- Qualcomm/Atheros QCA9531 v2
- 650/400/200 MHz (CPU/DDR/AHB)
- 128 MB (R36AH/-U2) or 64 MB (R36A) of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2x 10/100 Mbps Ethernet
- Passive PoE input support (12~36 V) in RJ45 near DC jack
- 2T2R 2.4 GHz Wi-Fi with Qorvo RFFM8228P FEM
- 2x IPEX/U.FL connectors on PCB
- 1x USB 2.0 Type-A
- 1x USB 2.0 mini Type-B in R36AH-U2 version
- USB power is controlled by GPIO
- 6/7x LED (5/6 of them are driven by GPIO)
- 2x button (reset, wifi/wps)
- external h/w watchdog (EM6324QYSP5B, enabled by default)
- DC jack with lock, for main power input (12 V)
- UART (4-pin, 2.54 mm pitch) header on PCB

Optional/additional features in R36A series (R36A was the first model):
- for R36AH:    USB 2.0 hub*
- for R36AH-U2: USB 2.0 hub*, 1x USB 2.0 mini Type-B, one more LED

*) there are at least three different USB 2.0 hub in R36AH/-U2 variants:
- Terminus-Tech FE 1.1
- Genesys Logic GL852G
- Genesys Logic GL850G (used in latests revision)

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on LEDE/OpenWrt. Alternatively, you can use web recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24.
2. Connect PC with one of RJ45 ports, press the reset button, power up
   device, wait for first blink of all LEDs (indicates network setup),
   then keep button for 3 following blinks and release it.
3. Open 192.168.1.1 address in your browser and upload sysupgrade image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:18:52 +08:00
Piotr Dymacz
6fac6c29a7 ath79: add support for Samsung WAM250
Samsung WAM250 is a dual-band (selectable, not simultaneous) wireless
hub, dedicated for Samsung Shape Wireless Audio System. The device is
based on Atheros AR9344 (FCC ID: A3LWAM250). Support for this device
was first introduced in e58e49bdbe (ar71xx target).

Specifications:

- Atheros AR9344
- 560/450/225 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2x 10/100 Mbps Ethernet
- 2T2R 2.4/5 GHz Wi-Fi, with ext. PA (SE2598L, SE5003L) and LNA
- 1x USB 2.0
- 4x LED (all are driven by GPIO)
- 2x button (reset, wps/speaker add)
- DC jack for main power input (14 V)
- UART header on PCB (J4, RX: 3, TX: 5)

Flash instruction:

This device uses dual-image (switched between upgrades) with a common
jffs2 config partition. Fortunately, there is a way to disable this mode
so that more flash space can be used by OpenWrt image.

You can easily access this device over telnet, using root/root
credentials (the same also work for serial console access).

1. Make sure that your device uses second (bootpart=2) image using
   command: "fw_printenv bootpart".
2. If your device uses first image (bootpart=1), perform upgrade to the
   latest vendor firmware (after the update, device should boot from
   second partition) using web gui (default login: admin/1234567890).
3. Rename "sysupgrade" image to "firmware.bin", download it (you can use
   wget, tftp or ftpget) to "/tmp" and issue below commands:

   mtd_debug erase /dev/mtd3 0 $(wc -c /tmp/firmware.bin | awk -F' ' '{print $1}')
   mtd_debug write /dev/mtd3 0 $(wc -c /tmp/firmware.bin)
   fw_setenv bootpart
   fw_setenv bootcmd "bootm 0x9f070000"
   reboot

Revert to vendor firmware instruction:

1. Download vendor firmware to "/tmp" device and issue below commands:

   fw_setenv bootpart 1
   sysupgrade -n -F SS_BHUB_v2.2.05.bin

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:18:21 +08:00
Piotr Dymacz
8c06e2903f ath79: image: don't combine kmod-usb2 with kmod-usb-chipidea2
Include of kmod-usb-chipidea2 is enough to support USB host mode in
devices with Atheros AR9331 WiSOC.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:17:48 +08:00
Piotr Dymacz
5aa8fc4ad8 uboot-envtools: ath79: add support for Wallys DR531
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:16:49 +08:00
Piotr Dymacz
6ddea315ef ath79: add support for Wallys DR531
Wallys DR531 is based on Qualcomm Atheros QCA9531 v2. Support for this
device was first introduced in e767980eb8 (ar71xx target).

Specifications:

- Qualcomm/Atheros QCA9531 v2
- 550/400/200 MHz (CPU/DDR/AHB)
- 2x 10/100 Mbps Ethernet
- 64 MB of RAM (DDR2)
- 8 MB of flash (SPI NOR)
- 2T2R 2.4 GHz Wi-Fi, with external PA (SE2576L), up to 30 dBm
- 2x MMCX connectors (optional IPEX/U.FL)
- mini PCIe connector (PCIe/USB buses and mini SIM slot)
- 7x LED, 1x button, 1x optional buzzer
- UART, JTAG and LED headers on PCB

Flash instruction (do it under U-Boot, using UART):

  tftpb 0x80060000 openwrt-ath79-...-dr531-squashfs-sysupgrade.bin
  erase 0x9f050000 +$filesize
  cp.b $fileaddr 0x9f050000 $filesize
  setenv bootcmd "bootm 0x9f050000"
  saveenv && reset

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:16:16 +08:00
Piotr Dymacz
d27c822978 uboot-envtools: ath79: add support for ALFA Network AP121FE
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:15:42 +08:00
Piotr Dymacz
80e304314c ath79: add support for ALFA Network AP121FE
The AP121FE is a slightly modified version of already supported AP121F
model (added to ar71xx in 0c6165d21a and to ath79 in 334bbc5198).

The differences in compare to AP121F:

- no micro SD card reader
- USB data lines are included in Type-A plug
- USB bus switched to device/peripheral mode (permanently, in bootstrap)

Other than that, specifications are the same:

- Atheros AR9331
- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR1)
- 16 MB of flash (SPI NOR)
- 1x 10/100 Mbps Ethernet
- 1T1R 2.4 GHz Wi-Fi, up to 15 dBm
- 1x IPEX/U.FL connector, internal PCB antenna
- 3x LED, 1x button, 1x switch
- 4-pin UART header on PCB (2 mm pitch)
- USB 2.0 Type-A plug (power and data)

Flash instruction (under U-Boot web recovery mode):

1. Configure PC with static IP 192.168.1.2/24.
2. Connect PC with RJ45 port, press the reset button, power up device,
   wait for first blink of all LEDs (indicates network setup), then keep
   button for 3 following blinks and release it.
3. Open 192.168.1.1 address in your browser and upload sysupgrade image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:15:20 +08:00
Piotr Dymacz
77ddc9a95d ath79: enable usbgadget feature
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:14:36 +08:00
Piotr Dymacz
b7134a1e49 ath79: increase SPI clock and enable fast-read on AP121F
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2020-09-28 11:13:21 +08:00
Adrian Schmutzler
15589828ab ramips: merge ethernet setup for RT-AC51U/RT-AC54U
The ethernet setup/label MAC address for RT-AC51U and RT-AC54U are
the same, so move them into the shared DTSI.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-28 11:09:41 +08:00
Adrian Schmutzler
df9dfaa785 ath79: fix LED labels for PowerCloud CAP324
The order of function and color in the labels in inverted for the
LAN LEDs. Fix it.

Fixes: 915966d861 ("ath79: Port PowerCloud Systems CAP324 support")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-28 11:09:05 +08:00
Adrian Schmutzler
365cc34f11 ath79: fix rssi-low LED for My Net Range Extender
The LED color was missing in 01_leds.

Fixes: 745dee11ac ("ath79: add support for WD My Net Wi-Fi Range
Extender")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-28 11:08:32 +08:00
Adrian Schmutzler
dca7079050 ath79: move dts-v1 statement to ath79.dtsi
The "/dts-v1/;" identifier is supposed to be present once at the
top of a device tree file after the includes have been processed.

In ath79, we therefore requested to have in the DTS files so far,
and omit it in the DTSI files. However, essentially the syntax of
the parent ath79.dtsi file already determines the DTS version, so
putting it into the DTS files is just a useless repetition.

Consequently, this patch puts the dts-v1 statement into the parent
ath79.dtsi, which is (indirectly) included by all DTS files. All
other occurences are removed.
Since the dts-v1 statement needs to be before any other definitions,
this also moves the includes to make sure the ath79.dtsi or its
descendants are always included first.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-27 13:26:08 +08:00
Adrian Schmutzler
bed00d4a5d ath79: move ath79-clk.h include to ath79.dtsi
ath79.dtsi uses ATH79_CLK_MDIO, so the include

  <dt-bindings/clock/ath79-clk.h>

needs to be moved there.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-27 13:22:19 +08:00
Paul Spooren
1411b8504f scripts: update SPDX license names
SPDX moved from GPL-2.0 to GPL-2.0-only and from GPL-2.0+ to
GPL-2.0-or-later. Reflect that in the SPDX license headers.

Signed-off-by: Paul Spooren <mail@aparcar.org>
[adjust commit title, update remaining files]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-27 13:21:52 +08:00
Adrian Schmutzler
cfa398710a target: update SPDX license names
SPDX moved from GPL-2.0 to GPL-2.0-only and from GPL-2.0+ to
GPL-2.0-or-later. Reflect that in the SPDX license headers.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-27 13:21:38 +08:00
Adrian Schmutzler
4afd22dd11 ath79: move engenius_loader_okli recipe before devices
Move engenius_loader_okli image recipe in front of all Engenius
devices, so adding new device entries will not have them sorted
before the shared recipe.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-27 13:18:41 +08:00
John Audia
5d52ce2e8f kernel: bump 5.4 to 5.4.67
All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x, lantiq/xrx200 and ath79/generic
Run-tested: ipq806x (R7800), lantiq (Easybox 904 xDSL)

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
[add test on lantiq]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-27 13:16:32 +08:00
Linus Walleij
e16c942ac0 gemini: Bring up DSA switches
First group the interfaces on the DSA switch into the
right LAN/WAN groups. Tested successfully on the
D-Link DIR-685 with the RTL8366RB DSA switch.

The RTL8366RB is DSA custom tagged and now handled
by the kernel tag parser. (Backported.)

The Vitesse switches are not capable of supporting
DSA per-port tagging. We suspect they must be handled
using some custom VLAN set-up.

Cc: Pawel Dembicki <paweldembicki@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
[sorted devices alphabetically]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-09-26 11:39:30 +08:00
Christian Lamparter
a821e6068a kernel: package bcm53xx i2c module
The BCM5301x SoCs do have i2c. Since this is only
being used by the Meraki MR32, this will be packaged
as a module.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-09-26 11:37:30 +08:00
Christian Lamparter
78a17f8a78 kernel: add default for new config symbols
Provide disabled defaults for I2C_SLAVE_EEPROM and IPMB_DEVICE_INTERFACE.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-09-26 11:37:01 +08:00
Christian Lamparter
a289a2c3d3 bcm53xx: backport uart2 and pcie2 device-nodes
These have made their way into -next. This patch
also includes the portion of the bcm53xx kernel
patch refreshes as the hunks in
302-ARM-dts-BCM5301X-Update-Northstar-pinctrl-binding.patch
moved slightly due to the added nodes.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-09-26 11:36:04 +08:00
Christian Lamparter
41c344e147 bcm53xx: enable PWM for bcm53xx
The Meraki MR32 (BCM53016A1) uses the pwm to drive the
tricolor LED. The driver has been available in upstream
for a long time. Only the Device-Tree definition was
missing, but it has been queued recently.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-09-26 11:35:37 +08:00
Brian Norris
080d4886da ipq40xx: add open-drain support to pinctrl-msm
Submitted upstream. Shouldn't affect existing devices, but enables new
device support.

https://lore.kernel.org/linux-gpio/20200703080646.23233-1-computersforpeace@gmail.com/

Currently queued for-next:
https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git/commit/?h=for-next&id=13355ca35cd16f5024655ac06e228b3c199e52a9

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
[refresh patch]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-09-26 11:29:15 +08:00
CN_SZTL
dde4cb3f97 rockchip: disable hw RNG by default
The feature brings the low quality of random numbers
with a high usage, so disable it here by default.
2020-09-24 13:27:34 +08:00
Paul Spooren
ba7cd55e11 ath79: remove DTS from ATH79 target name
The legacy ar71xx target is removed and multiple targets use DTS now, so
there is no need to point that out for ATH79 specifically.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-23 11:38:47 +08:00
Chuanhong Guo
1d410fcc01 mediatek: mt7622: select bluetooth module instead of firmware
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-09-23 11:37:29 +08:00
Chuanhong Guo
a0110adee8 mediatek: build btmtkuart as a kernel module
bluetooth on mt7622 needs a firmware to start. It can't be built-in or
it tries to load firmware before rootfs is mounted, and then fails.
build it as a kernel module to fix that.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-09-23 11:35:31 +08:00
CN_SZTL
1c37131c6f Merge Mainline 2020-09-21 13:29:33 +08:00
CN_SZTL
44aa252fad Merge Mainline 2020-09-20 13:06:22 +08:00
David Woodhouse
de374ea26d mediatek: mt7623: use bash for generating bootable images
It turns out that 'echo -e' isn't portable; it doesn't work in the dash
builtin echo and Ubuntu users are complaining.

I can't even get octal (specified by POSIX) to work consistently because
those  variants of 'echo' which *do* support -e don't seem to interpret
octalwithout it.

I could switch to /bin/echo but using -e with that isn't actually
portable *either* even though it works today.

For now just stick with bash, and use its builtin. We may end up using
something else entirely; perhaps perl.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-09-20 11:38:23 +08:00
David Woodhouse
a2241e035d mediatek: fix missing pause on switch port for Banana Pi R2
This causes rx drops when running iperf.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-09-20 11:37:19 +08:00
David Woodhouse
a0ab4a50a0 mediatek: mt7623n-preloader: add preloader for Banana Pi R64
We want to be able to make full system images for this system too, just
as we now can for the MT7623 platforms.

The package directory (mt7623n) is now a bit misnamed as it's overly
specific, but the precise set of platforms which we support this way
is evolving and we'll fix it up when the dust settles and we know what
nomenclature makes most sense.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-09-20 11:36:49 +08:00
John Thomson
bd70c67338 kernel: fix mtd partition erase < parent_erasesize writes
This bug applied where mtd partition end address,
or erase start address, was not cleanly divisible by parent mtd erasesize.

This error would cause the bits following the end of the partition
to the next erasesize block boundary to be erased,
and this partition-overflow data to be written to the partition erase
address (missing additional partition offset address)
of the mtd (top) parent device.

Fixes: FS#2428

Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
Tested-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
[shorten commit title, add Fixes, fix kernel 4.19 as well]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-20 11:36:15 +08:00
CN_SZTL
6fab602888 Merge Mainline 2020-09-19 22:24:34 +08:00
CN_SZTL
85c61e4d6c ath79: csac: fix typo error 2020-09-19 19:37:48 +08:00
CN_SZTL
a5a3e94f90 ath79: improve support for xwrt_csac
Co-authored-by: Chen Minqiang <ptpt52@gmail.com>
2020-09-19 19:34:23 +08:00
Deng Qingfang
7a74dab129 ramips: add support for TP-Link Archer C5 v4
TP-Link Archer C5 v4 is a dual band router with 5 GbE ports
Advertised as AC1200 for its 867Mbps (2×2) 5GHz band
and 300 Mbps (2×2) 2.4GHz band.

Specs:
- SoC: MediaTek MT7620A
- Ethernet: 5 GbE ports (Realtek RTL8367S)
- Wireless 2.4GHz: MediaTek MT7620A
- Wireless 5GHz: MediaTek MT7612E
- RAM: 64MiB
- ROM: 8MiB (GD25Q64CSIG)
- 1 USB 2.0 port
- 2 Buttons (WPS and reset)
- 8 LEDs

Flash instructions:
Currently one has to install OpenWrt only via the serial console

1. Rename the factory.bin to to test.bin
2. start a TFTP server from IP address 192.168.0.225 and serve the image named test.bin
3. connect your device to the LAN port
4. power up the router and press 4 on the console to stop the boot process.
5. enter the following commands on the router console
	tftp 0x80060000 test.bin
	erase tplink 0x20000 0x7a0000
	cp.b 0x80060000 0x20000 0x7a0000
	reset

Signed-off-by: Deng Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-09-19 19:27:59 +08:00
LGA1150
f22581a84b ath79: add CSAC 2020-09-19 19:22:20 +08:00
CN_SZTL
5470cceaed Merge Mainline 2020-09-19 19:01:48 +08:00
John Audia
41e246a2ca kernel: bump 5.4 to 5.4.66
All modifications made by update_kernel.sh/no manual intervention needed

Run-tested: ipq806x (R7800), ath79 (Archer C7v5), x86/64

No dmesg regressions, everything appears functional

Signed-off-by: John Audia <graysky@archlinux.us>
[add run test from PR]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-19 18:51:53 +08:00
David Bauer
f518d014c7 ath79: add support for Ubiquiti UniFi AP Pro
This adds support for the Ubiquiti UniFi AP Pro to the ath79 target. The
device was previously supported on the now removed ar71xx target.

SoC   Atheros AR9344
WiFi  Atheros AR9344 & Atheros AR9280
ETH   Atheros AR8327
RAM   128M DDR2
FLASH 16M SPI-NOR

Installation
------------

Follow the Ubiquiti TFTP recovery procedure for this device.

1. Hold down the reset button while connecting power for 10 seconds.
2. Transfer the factory image via TFTP to the AP (192.168.1.20)
3. Wait 2 minutes for the AP to write the firmware to flash. The device
   will automatically reboot to OpenWrt.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-09-19 18:44:27 +08:00
Adrian Schmutzler
08fe581029 ath79: consistently use "info" label for default-mac partition
The tp-link safeloader devices typically contain a partition
"default-mac" which stores the MAC addresses. It is followed by other
partitions containing device info, like

  {"default-mac", 0x610000, 0x00020},
  {"pin", 0x610100, 0x00020},
  {"product-info", 0x611100, 0x01000},

In DTS, we typically assign a 0x10000 sized partition for these,
which is mostly labelled "mac" or "info". In rarer cases, the
partitions have been enclosed in a larger "tplink" or "config"
partition.

However, when comparing different devices, the implementation appears
relatively arbitrary at the moment.
Thus, this PR aims at harmonizing these partitions by always using
the name "info" for the DTS partition containing "default-mac".
"info" is preferred over "mac" as we never just have "default-mac"
alone, but always some other device-info partitions as well.

While at it, this also establishes a similar partitioning for the
few devices where the "info" partitions are part of a bigger
unspecific "config" partition or similar.

Besides the harmonization itself, this also allows to merge a few
cases in 11-ath10k-caldata.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-19 18:42:47 +08:00
Adrian Schmutzler
f2477b827a ath79: fix button types for WZR-HP-AG300H and WZR-600DHP
Router and Movie "keys" are actually switches for both devices
according to the manual. This has been properly implemented in ar71xx,
but overlooked when porting to ath79.

Fixes: 480bf28273 ("ath79: add support for Buffalo WZR-HP-AG300H")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-19 18:36:09 +08:00
Adrian Schmutzler
22b938c654 ath79: add support for Buffalo WZR-600DHP
The hardware of this device seems to be identical to WZR-HP-AG300H.
It was already implemented as a clone in ar71xx.

Specification:
- 680 MHz CPU (Qualcomm Atheros AR7161)
- 128 MiB RAM
- 32 MiB Flash
- WiFi 5 GHz a/n
- WiFi 2.4 GHz b/g/n
- 5x 1000Base-T Ethernet
- 1x USB 2.0

Installation of OpenWRT from vendor firmware:
- Connect to the Web-interface at http://192.168.11.1
- Go to “Administration” → “Firmware Upgrade”
- Upload the OpenWrt factory image

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-19 18:35:49 +08:00
Sander Vanheule
5d13d4c40a ath79: support for TP-Link EAP225-Wall v2
TP-Link EAP225-Wall v2 is an AC1200 (802.11ac Wave-2) wall plate access
point. UART access and debricking require fine soldering.

The device was kindly provided for porting by Stijn Segers.

Device specifications:
* SoC: QCA9561 @ 775MHz
* RAM: 128MiB DDR2
* Flash: 16MiB SPI-NOR (GD25Q127CSIG)
* Wireless 2.4GHz (SoC): b/g/n, 2x2
* Wireless 5Ghz (QCA9886): a/n/ac, 2x2 MU-MIMO
* Ethernet (SoC): 4× 100Mbps
  * Eth0 (back): 802.3af/at PoE in
  * Eth1, Eth2 (bottom)
  * Eth3 (bottom): PoE out (can be toggled by GPIO)
* One status LED
* Two buttons (both work as failsafe)
  * LED button, implemented as KEY_BRIGHTNESS_TOGGLE
  * Reset button

Flashing instructions, requires recent firmware (tested on 1.20.0):
* ssh into target device and run `cliclientd stopcs`
* Upgrade with factory image via web interface

Debricking:
* Serial port can be soldered on PCB J4 (1: TXD, 2: RXD, 3: GND, 4: VCC)
    * Bridge unpopulated resistors R162 (TXD) and R165 (RXD)
      Do NOT bridge R164
    * Use 3.3V, 115200 baud, 8n1
* Interrupt bootloader by holding CTRL+B during boot
* tftp initramfs to flash via sysupgrade or LuCI web interface

MAC addresses:
MAC address (as on device label) is stored in device info partition at
an offset of 8 bytes. ath9k device has same address as ethernet, ath10k
uses address incremented by 1.
From OEM ifconfig:
    br0       Link encap:Ethernet  HWaddr 50:...:04
    eth0      Link encap:Ethernet  HWaddr 50:...:04
    wifi0     Link encap:UNSPEC  HWaddr 50-...-04-...
    wifi1     Link encap:UNSPEC  HWaddr 50-...-05-...

Signed-off-by: Sander Vanheule <sander@svanheule.net>
[fix IMAGE_SIZE]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-19 18:35:32 +08:00
Andre Heider
69bc20dceb arm-trusted-firmware-mvebu: add support for espressobin
Use build variants to cover all 11 hardware options [0]:
espressobin-512mb
espressobin-v3-v5-1gb-1cs
espressobin-v3-v5-1gb-1cs-emmc
espressobin-v3-v5-1gb-2cs
espressobin-v3-v5-1gb-2cs-emmc
espressobin-v3-v5-2gb
espressobin-v3-v5-2gb-emmc
espressobin-v7-1gb
espressobin-v7-1gb-emmc
espressobin-v7-2gb
espressobin-v7-2gb-emmc

CLOCKSPRESET is set to CPU_800_DDR_800 for all builds, which is the only
stable configuration. That actually matches what Globalscale shipped as
CPU_1000_DDR_800 combined with kernel versions < v4.19.42. [1][2].

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-09-19 11:40:58 +08:00
Andre Heider
2e430f1c91 arm-trusted-firmware-mvebu: update a3700-utils
Update to current head of the branch A3700_utils-armada-18.12-fixed:
0967979 ddr: Add DDR3 2CS layout for EspressoBin v5 2GB board
486523e ddr: fix typo for ESPRESSObin 2GB layout
490b2b3 TBB: Fix building for Crypto++ 6.0 and later
0141dd1 TBB: Split INCDIR from LIBDIR

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-09-19 11:40:21 +08:00
Andre Heider
f029cbcffe arm-trusted-firmware-mvebu: update to v2.3
Switch to release tarballs and add missing license information while
here.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-09-19 11:39:59 +08:00
Andre Heider
49b3a6928f arm-trusted-firmware-mvebu: install to own subdir
Lift the dependency on the build order, where flash-image.bin may be missing
from the u-boot dir.

While at it, also install the uart images for rescue purposes.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-09-19 11:39:37 +08:00
Andre Heider
0bb0e09eb0 arm-trusted-firmware-mvebu: fix compiler spam
Gets rid of these warnings:
cc1: note: someone does not honour COPTS correctly, passed 0 times

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-09-19 11:39:10 +08:00
Andre Heider
329223480e arm-trusted-firmware-mvebu: reuse default prepare target
Don't wipe internal state files, fixes e.g. refreshing patches.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-09-19 11:38:48 +08:00
Andre Heider
51a86e0a20 uboot-mvebu: add support for espressobin
This builds two u-boot binaries: one for boards without eMMC and one
with.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-09-19 11:38:20 +08:00
Andre Heider
2235e64fd3 uboot-mvebu: update to v2020.10-rc4
TODO: switch to release v2020.10 once released.

Remove one merged patch, refresh the rest.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2020-09-19 11:33:42 +08:00
Tan Zien
624a40d269 kernel: add module support Intel Ethernet Controller I225 Series
add kernel module igc support Intel Ethernet Controller I225 Series.

Signed-off-by: Tan Zien <nabsdh9@gmail.com>
2020-09-19 11:30:22 +08:00
CN_SZTL
db2b8b9ca0 Merge Mainline 2020-09-19 00:33:44 +08:00
Roger Pueyo Centelles
4ef51153ba ath79/mikrotik: fix soft_config location for SXT 5n
The soft_config partition for these devices lays between 0xe000 and
0xf000 (as correctly detected by the RouterBoard platform driver),
before the bootloader2 partition which starts at 0x10000.

This commit correctly sorts the partitions, fixing the parsing error.

Fixes: FS#3314

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Reviewed-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-09-18 17:17:37 +08:00
Martin Schiller
bea9e73092 lantiq: use uniform "u-boot-env" mtd label
This is the most popular choice in the linux kernel tree.

Within OpenWrt, this change will establish consistency with ath79
and ramips targets.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
[extend commit message, include netgear_dm200, update base-files]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-18 17:16:59 +08:00
Vladimir Vid
bdc38615b2 mvebu: image: add check for fdt_add_r and kernel_addr_r variables
fdt_addr and kernel_addr variables are getting obsolete in the mainline
u-boot in favor of fdt_addr_r and kernel_addr_r.

By checking if the new variables exist, we can make sure that devices with newer
version of u-boot will work while not breaking support for the existing ones.

Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
Acked-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
2020-09-18 17:13:27 +08:00
Felix Fietkau
b5f15c5d6b mediatek: fix hardware flow offload
Add support for dealing with DSA ports

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-18 17:12:44 +08:00
Robert Marko
bf94f92714 ipq806x: import bootargs-append from IPQ40xx
This imports the patch that adds bootargs-append support from IPQ40xx.

This way we can append additional boot arguments from DTS instead of only being able to overwrite them.

This way dual firmware devices can use the rootfs number that bootloader passes to decide from what to boot.
But we still need to append console info and ubi root info.

This is used by Edgecore ECW5410.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-09-18 16:34:58 +08:00
Robert Marko
afead2999a ipq806x: add GSBI1 node to DTSI
IPQ806x series also has a GSBI1 with UART and I2C peripherals, so lets add the node for it.

Its needed for Edgecore ECW5410 which uses the UART from GSBI1 as second UART for Bluetooth.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-09-18 16:34:19 +08:00
Robert Marko
09f947272e ipq806x: 5.4: enable AT803X driver
Its needed for Edgecore ECW5410 which does not use QCA8337 switch,
but rather 2x AR8033 PHY-s directly connected to GMAC-s.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2020-09-18 16:33:54 +08:00
Aleksander Jan Bajkowski
85556bb368 lantiq: remove trailing whitespaces in dts
Remove trailing whitespaces in dts files.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2020-09-17 11:48:36 +08:00
Adrian Schmutzler
34c4fe04f4 ath79: use common device definition for Buffalo devices
The Buffalo devices in ath79 share their image generation code,
so let's create a shared Device definition for them.

Since most of them use BUFFALO_HWVER := 3, this is moved as
default to the shared definition as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-17 11:47:27 +08:00
Adrian Schmutzler
46eee7a353 rtl838x: fix incorrect assignment from kstrtoul in serial.c
Assign return value of kstrtoul to error variable instead of
conversion value.

Suggested-by: Birger Koblitz <git@birger-koblitz.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-17 11:44:09 +08:00
Adrian Schmutzler
1314e18bf4 rtl838x: refresh config
Use "make kernel_oldconfig" to update and sort target config.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-17 11:43:35 +08:00
Adrian Schmutzler
b735b350ee rtl838x: remove some debug output in rtl838x-nor.c
Seems like leftovers from development, remove them.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-17 11:42:55 +08:00
CN_SZTL
9c42babb3e Merge Mainline
Droped changes for ipq40xx.
2020-09-16 13:42:04 +08:00
AmadeusGhost
19eb5875db ipq40xx: sync official source code 2020-09-16 11:40:30 +08:00
Adrian Schmutzler
7b1152a773 rtl838x: remove and add some empty lines
Do some minor empty lines cleanup, i.e. remove those at EOF and
add some for cosmetic reasons/consistency.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-16 11:23:45 +08:00
Birger Koblitz
bcd068e47d rtl838x: add new architecture
This adds support for the RTL838x Architecture.
SoCs of this type are used in managed and un-managed Switches and Routers
with 8-28 ports. Drivers are provided for SoC initialization, GPIOs, Flash,
Ethernet including a DSA switch driver and internal and external PHYs used
with these switches.

Supported SoCs:

	RTL8380M
	RTL8381M
	RTL8382M

The kernel will also boot on the following RTL839x SoCs, however driver
support apart from spi-nor is missing:

	RTL8390
	RTL8391
	RTL8393

The following PHYs are supported:

	RTL8214FC (Quad QSGMII multiplexing GMAC and SFP port)
	RTL8218B internal: internal PHY of the RTL838x chips
	RTL8318b external (QSGMII 8-port GMAC phy)
	RTL8382M SerDes for 2 SFP ports
	Initialization sequences for the PHYs are provided in the form of
	firmware files.

Flash driver supports 3 / 4 byte access

DSA switch driver supports VLANs, port isolation, STP and port mirroring.

The ALLNET ALL-SG8208M is supported as Proof of Concept:

	RTL8382M SoC
	1 MIPS 4KEc core @ 500MHz
	8 Internal PHYs (RTL8218B)
	128MB DRAM (Nanya NT5TU128MB)
	16MB NOR Flash (MXIC 25L128)
	8 GBEthernet ports with one green status LED each (SoC controlled)
	1 Power LED (not configurable)
	1 SYS LED (configurable)
	1 On-Off switch (not configurable)
	1 Reset button at the right behind right air-vent (not configurable)
	1 Reset button on front panel (configurable)
	12V 1A barrel connector
	1 serial header with populated standard pin connector and with markings
	  GND TX RX Vcc(3.3V), connection properties: 115200 8N1

To install, upload the sysupgrade image to the OEM webpage.

Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
2020-09-15 11:38:57 +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
Klaus Kudielka
50bdb9d45a uboot-envtools: mvebu: update uci defaults for Turris Omnia
On the Turris Omnia 2019, u-boot environment is located at 0xF0000, instead
of 0xC0000. The switch happened with u-boot-omnia package version 2019-04-2
(May 10, 2019).

Check the installed u-boot release, and set the default accordingly.

Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
[bump PKG_RELEASE, use lower case for hex offset]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-14 10:37:00 +08:00
Chuanhong Guo
cbd9698e7d ramips: mt7621: pbr-m1: fix firmware size
This board is equipped with Winbond W25Q256FV 32M SPI-NOR.
Fix partition size for that.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-09-14 10:36:30 +08:00
Chuanhong Guo
7d81d223ac ramips: mt7621: pbr-m1: increase SPI clock to 50MHz
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-09-14 10:34:26 +08:00
Chuanhong Guo
222d2fee59 ramips: mt7621: pbr-m1: add pcie reset for asm1061
this board has a pcie to sata bridge connected to pcie2 with a
separated pcie reset on gpio7.
add reset-gpios and corresponding pinctrl nodes into dts.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-09-14 10:34:02 +08:00
Felix Fietkau
061059eb72 ramips/mediatek: improve GRO performance, fix PPE packet parsing
Backport upstream changes to initialize GDM settings and reset PPE
Allow GMAC to recognize the special tag to fix PPE packet parsing
Improve GRO performance by passing PPE L4 hash as skb hash

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-14 10:33:36 +08:00
David Bauer
bb6caeda30 rockchip: refresh NanoPi R2S patches with upstream feedback 2020-09-13 16:43:32 +08:00
Zhong Jianxin
11a064d5c9 ath79: add support for Mercury MW4530R v1
Mercury MW4530R is a TP-Link TL-WDR4310 clone.

Specification:

* SOC: Atheros AR9344 (560 MHz)
* RAM: 128 MiB
* Flash: 8192 KiB
* Ethernet: 5 x 10/100/1000 (4 x LAN, 1 x WAN) (AR8327)
* Wireless:
  - 2.4 GHz b/g/n (internal)
  - 5 GHz a/n (AR9580)
* USB: yes, 1 x USB 2.0

Installation:

Flash factory image via OEM web interface.

Signed-off-by: Zhong Jianxin <azuwis@gmail.com>
2020-09-13 11:02:29 +08:00
CN_SZTL
7ccd66cdea Merge Mainline 2020-09-12 23:35:51 +08:00
CN_SZTL
876258d192 kernel: bump 5.4 to 5.4.65
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-09-12 23:34:20 +08:00
CN_SZTL
b2a586b53d Merge Mainline 2020-09-12 19:20:52 +08:00
John Audia
aa7a0c85cc kernel: bump 5.4 to 5.4.64
Remove upstreamed patches:
 generic-backport
  701-v5.5-net-core-use-listified-Rx-for-GRO_NORMAL-in-napi_gro.patch

Manually merged:
 mediatek/patches-5.4
  0603-net-dsa-mt7530-Extend-device-data-ready-for-adding-a.patch

All other modifications made by update_kernel.sh

Build-tested: ipq806x, lantiq/xrx200, mvebu, x86/64
Run-tested: ipq806x (R7800), mvebu (mamba, rango),
  lantiq/xrx200 (Easybox 904 xDSL), x86/64

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
[add community build/run tests to commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-12 18:00:59 +08:00
AmadeusGhost
c4ad5d73a1 uboot-envtools: sync upstream source code 2020-09-12 15:05:03 +08:00
AmadeusGhost
a061a24d75 ramips: sync official source code 2020-09-12 15:01:12 +08:00
Chen Minqiang
bbed7ed187 ramips: add mt7620-nand driver for NAND flash
This add the mt7620-nand driver
and enable nand ubifs for subtarget mt7620

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-09-12 11:58:02 +08:00
AmadeusGhost
233d1d5bb3 target/5.4: move common patches into generic 2020-09-12 11:50:15 +08:00
Adrian Schmutzler
ca171c7cc4 kernel: use proper upstream inclusion version for patch
The patch is only included in kernel 5.5.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-12 11:35:50 +08:00
CN_SZTL
d5b5d474b8 Merge Mainline 2020-09-12 00:39:22 +08:00
CN_SZTL
c75f41d557 Merge Mainline 2020-09-11 18:08:47 +08:00
DoveKi
b551a0006b Update Xiaomi R4 get lan_mac 2020-09-11 17:20:54 +08:00
Chen Minqiang
cd49540742 kernel: Make kmod-sfp depend on kmod-libphy
With kernel 5.4 kmod-sfp is depending on kmod-libphy, add this
missing dependency.

This also make phylink tristate so that kmod build work

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-09-11 17:20:32 +08:00
Sergey Ryazanov
e64338c8d1 ath25: fix preinit Ethernet port configuration
vconfig is no more installed by default to a firmware image. So, replace
vconfig calls for VLAN subinterface configuration by coresponding
ip-link commands.

Also drop few useless comments from the preinit hook script, while we
are at it.

I have no chance to test this fix since I have no board with a subject
switch IC, but this is still better then call an utility that is
unavailable in the firmware for years.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
[use documented syntax for ip link add]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-11 17:18:17 +08:00
Adrian Schmutzler
70b20031ff kernel: add recently introduced CONFIG_MTD_SPLIT_ELF_FW
The config symbol was introduced in drivers, but not added to
generic kernel config files. This will halt build asking for the
value.

Fix it by adding the value (setting it to disabled).

Fixes: 3f7047db7a ("kernel: mtdsplit: support ELF loader splitting")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-10 17:32:22 +08:00
Sander Vanheule
75f21773f3 firmware-utils/tplink-safeloader: add compat level
TP-Link has introduced a compatibility level to prevent certain
downgrades. This information is stored in the soft-version partition,
changing the data length from 0xc to 0x10.

To remain compatible with existing devices and not produce different
images, the image builder doesn't store a compatibility level if it is
zero.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-09-10 17:30:01 +08:00
Sander Vanheule
e201f383d6 firmware-utils/tplink-safeloader: soft-version magic is data length
The soft-version partition actually contains a header and trailing data:
* header: {data length, [zero]}
* data: {version, bcd encoded date, revision}

The data length is currently treated as a magic number, but should
contain the length of the partition data.

This header is also present the following partitions (non-exhaustive):
* string-based soft-version
* support-list

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-09-10 17:28:38 +08:00
Sander Vanheule
fa649f5a62 ath79: enable elf mtd splitter
Enabled the ELF firmware partition splitter 4.19 and 5.4 in preparation
for the TP-Link EAP245v3 device support.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-09-10 17:28:10 +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
Felix Fietkau
06874dc37a mediatek/ramips: remove an ethernet optimization patch that was reported to cause a regression
In some tests, crashes were observed

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-10 17:26:54 +08:00
Felix Fietkau
5e01182887 mediatek: backport the latest version of the mt7531 support patches
Fixes unknown unicast flooding issue

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-10 17:23:55 +08:00
CN_SZTL
8789090f9c Merge Mainline 2020-09-08 09:15:47 +08:00
Sergey Ryazanov
24c982031d ath25: eth: fix crash on skb DMA (un-)map
AR2315 Ethernet driver pass NULL instead of a real device pointer to DMA
(un-)map calls. With kernel version 5.4 such behaviour causes a kernel
panic. Fix this issue by preserving device pointer during the probe
procedure and pass it to each skb data DMA (un-)map call.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
2020-09-07 17:08:58 +08:00
Sergey Ryazanov
339b5b1118 ath25: fix ethernet supported link modes for ar2313
Rework ethernet supported link modes to linkmode bitmask.

This is needed to suppress compilation errors:

   drivers/net/ethernet/atheros/ar231x/ar231x.c:1153:20: ...
     error: assignment to expression with array type
     phydev->supported &= (SUPPORTED_10baseT_Half
                       ^~

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
[cut out of bigger patch, adjust commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-07 17:08:29 +08:00
Adrian Schmutzler
df6da38da3 ath25: fix compilation for AR2315 MTD driver
Kernel commit e7bfb3fdbde3 ("mtd: Stop updating erase_info->state
and calling mtd_erase_callback()") removed erase_info->state
updates and calls of mtd_erase_callback().

Drop these erase callback invocations from AR2315 MTD driver as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-07 17:08:08 +08:00
Adrian Schmutzler
96558113a2 ath25: update config for kernel 5.4
Update config with make kernel_oldconfig.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-07 17:07:47 +08:00
Adrian Schmutzler
7bd2c02e2e ath25: refresh patches for kernel 5.4
Refresh patches to make them apply to kernel 5.4.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-07 17:07:19 +08:00
Adrian Schmutzler
77800c0330 ath25: add back target support
Discussion on the mailing list reveals that this target has active
users. As we are finally able to upgrade this target to kernel 5.4,
add it back to master.

This reverts commit 7d29a55714 ("ath25: drop target") and
immediately moves the relevant files to 5.4, without touching
the content.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-07 17:06:52 +08:00
Adrian Schmutzler
ce9e7a710b ath79: drop Build/loader-kernel-cmdline
This is the same as  loader-kernel since the KERNEL_CMDLINE
parameter has been removed in [1] and not used at all anyway.

Remove it.

[1] f77db1a590 ("ath79: cleanup image build code")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Paul Spooren <mail@aparcar.org>
2020-09-07 17:03:07 +08:00
Felix Fietkau
5a519166f0 kernel: backport improved checksum function for ARM64
Improves network performance in some cases when checksum offload is not
available

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-07 17:02:37 +08:00
Felix Fietkau
e893a30975 kernel: backport GRO improvements
Improves network performance

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-07 17:02:15 +08:00
Felix Fietkau
046f3566fb mediatek/mt7622: adjust kernel cpu features to match the hardware
Disable unnecessary errata/features
Enable potentially needed ones

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-07 17:01:37 +08:00
Thibaut VARÈNE
2f034f1e36 packages/boot: remove rbcfg
The new sysfs soft_config driver makes buggy rbcfg obsolete and
entirely replaces it.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-09-07 11:26:05 +08:00
CN_SZTL
ebe0b1bb23 uboot-ar71xx: drop residual files 2020-09-07 11:14:37 +08:00
CN_SZTL
3f14b2487d Merge Mainline 2020-09-06 20:03:11 +08:00
John Audia
36833db556 kernel: bump 5.4 to 5.4.63
Manual merged:
 hack-5.4
  230-openwrt_lzma_options.patch (with Adrian Schmutzler's help)
 bcm27xx
  950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
 x86
  patches-5.4
	 011-tune_lzma_options.patch (with Adrian Schmutzler's help)

Remove upstreamed patches in collaboration with Ansuel Smith:
 ipq806x
  093-1-v5.8-ipq806x-PCI-qcom-Add-missing-ipq806x-clocks-in-PCIe-driver.patch
  093-2-v5.8-ipq806x-PCI-qcom-Change-duplicate-PCI-reset-to-phy-reset.patch
  093-3-v5.8-ipq806x-PCI-qcom-Add-missing-reset-for-ipq806x.patch

All other modifications made by update_kernel.sh

Build system: x86_64
Run-tested: ipq806x (R7800)

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2020-09-06 19:56:39 +08:00
CN_SZTL
a484539511 ath79: sync with upstream source 2020-09-06 19:53:51 +08:00
Adrian Schmutzler
c325a923f7 ar71xx: drop target
This target has been mostly replaced by ath79 and won't be included
in the upcoming release anymore. Finally put it to rest.

This also removes all references in packages, tools, etc. as well as
the uboot-ar71xx and vsc73x5-ucode packages.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-06 18:19:14 +08:00
Adrian Schmutzler
c882874fc6 tools: drop unused upslug2 and wrt350nv2-builder
These tools have been used by the orion target which has been
removed in Jan 2020 [1].

Both were specifically meant for the WRT350Nv2, which is not
supported anymore.

So, let's remove them as well.

[1] 89f2deb372 ("orion: remove unmaintained target")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-06 18:05:24 +08:00
CN_SZTL
b06b6f405c tools: drop ar71xx target 2020-09-06 18:04:37 +08:00
CN_SZTL
9fff61c268 Merge Mainline 2020-09-06 14:35:11 +08:00
CN_SZTL
1462ae50e8 qntfs-driver: drop outdated package 2020-09-06 12:50:33 +08:00
CN_SZTL
2864a42d2d Merge Mainline 2020-09-06 12:49:42 +08:00
Jayantajit Gogoi
bb521879e1 sunxi: add support for NanoPi R1
Specification:

-CPU: Allwinner H3, Quad-core Cortex-A7 Up to 1.2GHz
-DDR3 RAM: 512MB/1GB
-Network:
    10/100/1000M Ethernet x 1,
    10/100M Ethernet x 1
-WiFi: 802.11b/g/n, with SMA antenna interface
-Bluetooth:4.0 dual mode
-USB Host: Type-A x2
-MicroSD Slot x 1
-MicroUSB: for OTG and power input
-Debug Serial Port: 3Pin 2.54mm pitch pin-header
-UART: 4Pin 2.54mm pitch pin-header
-LED:
    nanopi:red:pwr
    nanopi:green:wan
    nanopi:green:lan
-KEY:
    reset
-Power Supply: DC 5V/2A

Installation:

-Burn the image to and SD Card
-Boot NanoPi from the SD Card

Signed-off-by: Jayantajit Gogoi <jayanta.gogoi525@gmail.com>
2020-09-06 12:45:11 +08:00
CN_SZTL
f5d864691f uboot-sunxi: bump to 2020.04 2020-09-06 12:44:57 +08:00
CN_SZTL
a28742101a sunxi: sync with upstream source 2020-09-06 12:40:53 +08:00
CN_SZTL
271aafdfae sunxi: drop kernel 4.14 2020-09-06 12:31:13 +08:00
CN_SZTL
08b71c12e6 sunxi: drop support for nanopi duo2/r1/r1s 2020-09-06 12:30:21 +08:00
Christian Lamparter
de40a4cb42 apm821xx: provide legacy interrupts for PCIe in DT
Devices with PCIe-Switches like the WNDR4700, MR24 and WNDAP660
need to have the interrupts property specified in the device-tree
for the legacy pci interrupt signaling method to work.

If the proper interrupt value is not specified, the default INTA
IRQ 12 is taken for all devices. This is especially bad, if the
device is setup to use INTC, because these interrupts will not
be serviced.

Russell Senior reported his experience on the MR24:
"The symptom is client devices can't see the beacons.
Wifi ifaces appear, can scan and hear other networks,
but clients can't see the MR24's SSIDs."

(The interrupts-property on the WNDAP620 was optional since it
uses INTA by default. Likewise the MX60W is in the same category)

Reported-by: Russell Senior <russell@personaltelco.net>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-09-06 11:38:32 +08:00
Yangbo Lu
77598b04d0 layerscape: fix linux headers install issue
The linux upstream commit had treated config leak as error.
5967577 scripts: headers_install: Exit with error on config leak

It is causing below build issue. Provide a kernel patch to fix
it by replacing CONFIG_COMPAT kernel option with FM_COMPAT instead.

  HDRINST usr/include/linux/fmd/integrations/integration_ioctls.h
  HDRINST usr/include/linux/fmd/Peripherals/fm_port_ioctls.h
error: include/uapi/linux/fmd/Peripherals/fm_port_ioctls.h: leak
CONFIG_COMPAT to user-space
scripts/Makefile.headersinst:63: recipe for target
'usr/include/linux/fmd/Peripherals/fm_port_ioctls.h' failed
make[5]: *** [usr/include/linux/fmd/Peripherals/fm_port_ioctls.h] Error 1
Makefile:1198: recipe for target 'headers' failed
make[4]: *** [headers] Error 2

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-09-06 11:38:03 +08:00
CN_SZTL
0fa25f1cab sunxi: disable duo2/r1/r1s build 2020-09-05 14:50:46 +08:00
Felix Fietkau
7e8018f215 mediatek: enable coherent DMA for ethernet and PCI
Improves performance by eliminating the need for extra cache flushes

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-05 11:39:48 +08:00
Felix Fietkau
e2318b9cf4 mediatek: fix an irq handling issue
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-05 11:39:25 +08:00
Felix Fietkau
ecf69f886c mediatek/ramips: add patch to avoid unnecessary rearming of interrupts
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-05 11:39:02 +08:00
Felix Fietkau
838b7fe375 mediatek: disable packet steering by default
mt76 now spreads the load over multiple CPUs more smoothly, processing
ethernet packets should be faster running on one core

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-05 11:38:38 +08:00
Felix Fietkau
e26811c2fb mediatek: enable kernel PCIe ASPM support, refresh kernel config
Improves performance on PCIe devices

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-05 11:37:34 +08:00
Hauke Mehrtens
d81ce5abe7 mac80211: Fix potential endless loop
Backport a fix from kernel 5.8.3.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-09-05 11:04:12 +08:00
Hauke Mehrtens
063900fb6c mac80211: Fix build on mpc85xx target
This fixes the following compile error seen on the mpc85xx target:
  CC [M]  /linux-mpc85xx_p2020/backports-5.7-rc3-1/drivers/net/wireless/intersil/orinoco/main.o
In file included from /builder/shared-workdir/build/staging_dir/toolchain-powerpc_8540_gcc-8.4.0_musl/include/stddef.h:17,
                 from /linux-mpc85xx_p2020/backports-5.7-rc3-1/include/uapi/linux/wireless.h:77,
                 from /linux-mpc85xx_p2020/backports-5.7-rc3-1/include/linux/wireless.h:13,
                 from /linux-mpc85xx_p2020/backports-5.7-rc3-1/drivers/net/wireless/intersil/orinoco/main.c:89:
/builder/shared-workdir/build/staging_dir/toolchain-powerpc_8540_gcc-8.4.0_musl/include/bits/alltypes.h:106:15: error: conflicting types for 'ptrdiff_t'
 typedef _Addr ptrdiff_t;
               ^~~~~~~~~
In file included from /linux-mpc85xx_p2020/backports-5.7-rc3-1/backport-include/linux/types.h:4,
                 from ./include/linux/list.h:5,
                 from /linux-mpc85xx_p2020/backports-5.7-rc3-1/backport-include/linux/list.h:3,
                 from ./include/linux/module.h:9,
                 from /linux-mpc85xx_p2020/backports-5.7-rc3-1/backport-include/linux/module.h:3,
                 from /linux-mpc85xx_p2020/backports-5.7-rc3-1/drivers/net/wireless/intersil/orinoco/main.c:79:
./include/linux/types.h:65:28: note: previous declaration of 'ptrdiff_t' was here
 typedef __kernel_ptrdiff_t ptrdiff_t;
                            ^~~~~~~~~
scripts/Makefile.build:265: recipe for target '/linux-mpc85xx_p2020/backports-5.7-rc3-1/drivers/net/wireless/intersil/orinoco/main.o' failed

Fixes: 3f57fae66b ("mac80211: Update to 5.4.56-1")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-09-05 11:03:26 +08:00
CN_SZTL
3f57fae66b mac80211: Update to 5.4.56-1 2020-09-05 10:56:12 +08:00
CN_SZTL
a7bba40e46 Merge Mainline 2020-09-05 06:53:57 +08:00
CN_SZTL
4afad7690d Merge Mainline 2020-09-04 15:53:54 +08:00
Felix Fietkau
ce1558cff6 mediatek/ramips: unify ethernet driver fixes and add performance optimizations
Increase DMA burst size and tx ring size and optimize tx processing

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-02 11:36:26 +08:00
AmadeusGhost
f04c82b5bd Merge Mainline 2020-09-01 19:06:02 +08:00
John Crispin
01421e4328 mediatek: pull in some fixes fromt he latest SDK
Signed-off-by: John Crispin <john@phrozen.org>
2020-09-01 19:04:00 +08:00
John Crispin
0d39879c2e uboot-mediatek: update to latest version
Signed-off-by: John Crispin <john@phrozen.org>
2020-09-01 19:03:37 +08:00
AmadeusGhost
fb8ad74ba4 Merge Mainline 2020-08-31 12:00:01 +08:00
Hannu Nyman
e9c68aa795 kernel: add missing symbol NET_DSA_TAG_RTL4_A
Fix build breakage caused by the missing kernel config symbol.

Fixes: 8735997686 ("kernel: backport RTL8366RB patches")
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2020-08-31 11:09:50 +08:00
Adrian Schmutzler
4cfabd2167 ath79: increase kernel partition for ar9344 TP-Link CPE/WBS
The kernel has become too big again for the ar9344-based TP-Link
CPE/WBS devices which still have no firmware-partition splitter.

Current buildbots produce a kernel size of about 2469 kiB, while
the partition is only 2048 kiB (0x200000). Therefore, increase it
to 0x300000 to provide enough room for this and, hopefully, the
next kernel.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-31 11:07:57 +08:00
Christian Lamparter
7bec3adfe2 apm821xx: fix typos in .dts files
This patch fixes various typos or tab-vs-space issues in
the APM821XX device targets Device-Tree source files.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-30 12:05:48 +08:00
Christian Lamparter
8968818e66 apm821xx: use SPDX-License-identifiers
Please note that the DTS are based on really old .DTS from vendors
themselves.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-30 12:05:18 +08:00
Christian Lamparter
ff67e57641 apm821xx: apm821xx.dtsi fix comment styles
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-30 12:04:45 +08:00
Christian Lamparter
1c883cf460 apm821xx: MX60W: enumerate PCIe in device-tree
This patch adds the pcie-switch and bridge configuration for
the Meraki MX60W.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-30 12:04:08 +08:00
Christian Lamparter
96e4a96ede apm821xx: WNDR4700: delete wndr4700 board file
Thanks to the PCIE OF enumeration patch, this is technically
no longer needed.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-30 12:03:38 +08:00
Christian Lamparter
5f228c20cb apm821xx: MR24: enumerate PCIe in device-tree
This patch adds the pcie-switch and bridge configuration for
the Meraki MR24.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-30 12:03:14 +08:00
Christian Lamparter
18fcbf1a1a apm821xx: add missing cells-values for IIC1
These are copied over from the IIC0.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-30 12:02:43 +08:00
Christian Lamparter
45440f87ff apm821xx: DTB: fix warnings related to sata-port warnings
This patch silences the following warnings:
>netgear-wndr4700.dts:168.3-13:Warning (reg_format): /plb/sata@bffd1800/sata-port@0:reg:property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
>netgear-wndr4700.dts:167.26-170.4: Warning (avoid_default_addr_size):/plb/sata@bffd1800/sata-port@0: Relying on default #address-cells value
>netgear-wndr4700.dts:167.26-170.4: Warning (avoid_default_addr_size):/plb/sata@bffd1800/sata-port@0: Relying on default #size-cells value

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-30 12:00:07 +08:00
Christian Lamparter
c47692cf9c apm821xx: WNDAP6x0: enumerate PCIe in device-tree
This patch adds the pcie-switch and bridge configuration of the
WNDAP620 and WNDAP660.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-30 11:59:41 +08:00
Christian Lamparter
0445f0d4f4 apm821xx: WNDR4700: enumerate PCIe in device-tree
This patch adds the pcie-switch and bridge configuration of the
WNDR4700.

This allows to get rid of the legacy firmware monikers and drop
the usbport LED declaration.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-30 11:59:09 +08:00
CN_SZTL
d9b34c8617 Merge Mainline 2020-08-30 05:13:54 +08:00
CN_SZTL
a3f1d304fd kernel/5.4: fix SUBARCH patch
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-30 04:39:43 +08:00
AmadeusGhost
1be70136a5 rockchip: move the dependency of config to config 2020-08-29 12:38:21 +08:00
AmadeusGhost
4676d35be5 mt76: rollback to version 03-10 2020-08-29 12:35:37 +08:00
Daniel Golle
3d69c2dc40 oxnas: kd20: revert accedintally commited change
Changing the factory image of KD20 was used during testing and wasn't
intended to be included in the commit fixing a SATA bug on oxnas.
Revert that part of the commit.

Fixes: 5793112f75 ("oxnas: reduce size of ATA DMA descriptor space")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-08-29 12:08:24 +08:00
CN_SZTL
b68cc062b9 Merge Mainline 2020-08-29 02:23:27 +08:00
CN_SZTL
3786bddc80 mvebu: drop kernel 4.14 support 2020-08-29 02:01:12 +08:00
CN_SZTL
6154c9053c mvebu: drop compat info 2020-08-29 01:45:27 +08:00
CN_SZTL
0669f927c1 mvebu: make sysupgrade compatible with existing scripts 2020-08-29 01:37:30 +08:00
CN_SZTL
2ee0e86dbe mvebu: sync with upstream source 2020-08-29 01:35:33 +08:00
Hauke Mehrtens
2fbf5961de pistachio: Use kernel 5.4 by default
Kernel 5.4 should be stable enough.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-29 01:35:07 +08:00
Perry Melange
0ffddff986 ramips: rt3883: use lzma-loader for DIR-645
The DIR-645 fails to boot if the kernel is large.
Enabling lzma-loader resolves the issue.

Run-tested on D-Link DIR-645.

Signed-off-by: Perry Melange <isprotejesvalkata@gmail.com>
2020-08-28 09:29:05 +08:00
Adrian Schmutzler
152511f634 at91: explicitly set CONFIG_USB_SUPPORT for sam9x subtarget
The at91 target sets

  FEATURES:=usb usbgadget ...

in the target Makefile, which sets CONFIG_USB_SUPPORT=y in the
.config file for both subtargets.

However, when building with all kmods, the build fails with the
following error message:

  ERROR: module [...]/drivers/bluetooth/btusb.ko is missing.

It appears that only a part of the bluetooth files are compiled.
The package depends @USB_SUPPORT.

This can be easily healed by adding CONFIG_USB_SUPPORT=y to the
sam9x subtarget configuration. Before the 4.14->5.4 bump, the
same was also set in the target's config-4.14 file along with
several other USB config options that are not reimplemented.

Still, it remains a mystery to me why setting the same symbol
via target kernel config creates a different result than the
feature setting the same symbol in target-metadata.pl.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-28 09:28:31 +08:00
wevsty
170f467e07 rockchip: support hardware random number generator for RK3328 and RK3399
Signed-off-by: wevsty <ty@wevs.org>
2020-08-28 02:52:59 +08:00
CN_SZTL
cce3094319 Merge Mainline 2020-08-28 01:59:52 +08:00
CN_SZTL
20c62b1558 kernel: bump 5.4 to 5.4.61
Resolve conflicted:
 - 011-kbuild-export-SUBARCH.patch
 - 701-net-0262-net-dsa-ocelot-add-tagger-for-Ocelot-Felix-switches.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-27 05:42:59 +08:00
CN_SZTL
9458060f9a Merge Mainline 2020-08-27 04:30:47 +08:00
CN_SZTL
a543bda389 Merge Mainline 2020-08-27 03:41:44 +08:00
CN_SZTL
04a36a95a8 Merge Mainline 2020-08-26 15:34:27 +08:00
Adrian Schmutzler
95a47fcd06 at91: introduce vendor_model scheme and drop board names
This introduces the vendor_model scheme to this target in order to
harmonize device names within the target and with the rest of
OpenWrt. In addition, custom board names are dropped in favor
of the generic script which takes the compatible.

Use the SUPPORTED_DEVICES variable to store the compatible where it
deviates from the device name, so we can use it in build recipes.

While at it, harmonize a few indents as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-26 11:56:25 +08:00
Adrian Schmutzler
fa9219ed19 uboot-at91: harmonize indent in Makefile
The indent in Makefile is mixed, harmonize it where reasonable.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-26 11:53:46 +08:00
Adrian Schmutzler
fe68b97f8d at91bootstrap: harmonize indent in Makefiles
The indent in Makefiles is mixed, harmonize it where reasonable.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-26 11:53:14 +08:00
Hauke Mehrtens
18dc8de3bc at91: Refresh kernel config
This was done by running:
make kernel_oldconfig CONFIG_TARGET=subtarget

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-26 11:51:30 +08:00
Sandeep Sheriker M
eb9e6918cd at91: change dtb file path
Changing dtb file path since the dtb files are build in KDIR folder
with image- prefix.

Signed-off-by: Sandeep Sheriker M <sandeep.sheriker@microchip.com>
[remove commented lines]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-26 11:51:03 +08:00
Sandeep Sheriker M
25c7b68000 uboot-at91: bump version to linux4sam-2020.04
Bump version to linux4sam-2020.04 and add patch to fix Wformat-security
warnings.

Signed-off-by: Sandeep Sheriker M <sandeep.sheriker@microchip.com>
2020-08-26 11:50:40 +08:00
Sandeep Sheriker M
40e51dd763 at91bootstrap: bump version to v3.9.3
Signed-off-by: Sandeep Sheriker M <sandeep.sheriker@microchip.com>
2020-08-26 11:50:12 +08:00
Sandeep Sheriker M
2839bdbb20 at91: bump linux version to 5.4
Move patches to 5.4, put config only in subtarget directories.

Signed-off-by: Sandeep Sheriker M <sandeep.sheriker@microchip.com>
[refresh patches, add commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-26 11:49:43 +08:00
Pawel Dembicki
9deccb9479 layerscape: add flashing manual for LS1012FRDM
LS1012FRDM is supported but there's no flashing instruction in README.

This patch adds it.

While at it, add a missing saveenv for MAC address setup.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
[add comment about saveenv]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-26 11:49:07 +08:00
CN_SZTL
7d9a642185 Merge Mainline 2020-08-25 20:56:57 +08:00
CN_SZTL
bf5e052d23 Merge Mainline 2020-08-25 13:51:56 +08:00
Adrian Schmutzler
365347a0a4 kernel: bump 5.4 to 5.4.60
Deleted upstream patches:
  generic:
    041-genirq-affinity-Make-affinity-setting-if-activated-o.patch
  ipq806x:
    093-5-v5.8-ipq806x-PCI-qcom-Define-some-PARF-params-needed-for-ipq8064-SoC.patch
    093-6-v5.8-ipq806x-PCI-qcom-Add-support-for-tx-term-offset-for-rev-2_1_0.patch

Merged manually:
  ipq806x:
    093-4-v5.8-ipq806x-PCI-qcom-Use-bulk-clk-api-and-assert-on-error.patch
  layerscape:
    804-crypto-0016-MLKU-114-1-crypto-caam-reduce-page-0-regs-access-to-.patch

Build-tested: ath79/generic, ipq806x, layerscape/armv7, layerscape/armv8_64b
Run-tested: ipq806x (R7800)

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-25 13:51:00 +08:00
Ansuel Smith
4898404a10 ipq806x: replace pci patchset with upstream version
Changes:
- Update patches
- Update dts with new binding
    Tx term offset dropped and replaced with a new compatible

Removed:
- 0071-5-PCI-qcom-Programming-the-PCIE-iATU-for-IPQ806x
    Pci init does the same exact thing (was needed in older kernel version)
- 0071-7-pcie-Set-PCIE-MRRS-and-MPS-to-256B
    Rejected upstream, can't find any reason to have this. No regression with
    testing it on R7800.

Tested on R7800 (ipq8065), R7500 v2 ("ipq8064-v2")

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Tested-by: Paul Blazejowski <paulb@blazebox.homeip.net> [R7800]
[rebase and refresh]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-25 13:50:47 +08:00
CN_SZTL
d9f8d5195c rockchip: add cpu idle state for rk3328
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-25 13:14:48 +08:00
mohammad rasim
18e7ce327c kernel: add ar5523 driver
The driver currently only support managed and monitor mode

Changes since v1:
- drop the @DRIVER_11N_SUPPORT dependency

Signed-off-by: mohammad rasim <mohammad.rasim96@gmail.com>
2020-08-25 12:26:14 +08:00
Linus Walleij
f878e9a2d6 kernel: backport RTL8366RB patches
These upstream patches makes the RTL8366RB DSA switch work
properly with OpenWrt, the D-Link DIR-685 gets network and
can be used as a router, and the same should be applicable
for any other device that want to enable the RTL8366RB
through Device Tree.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-08-25 12:25:47 +08:00
Adrian Schmutzler
3661a3913c kernel: set WATCHDOG_CORE dependency in kmod-hwmon-sch5627
For many target we have added CONFIG_WATCHDOG_CORE=y to the target
config due to the following error:

 Package kmod-hwmon-sch5627 is missing dependencies for the following
 libraries:
 watchdog.ko

However, actually the proper way appears to be setting the
dependency for the kmod-hwmon-sch5627 package, as the error message
demands.

Do this in this patch and remove the target config entries added
due to this issue.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-25 12:25:14 +08:00
Rustam Gaptulin
1b318db41c ramips: mt7621: use lzma-loader for ZBT-WG3526
The wg3526 fails to boot if the kernel is large.
Enabling lzma-loader resolves the issue on both the wg3526-16m
and wg3526-32m.

Fixes: FS#3143

Signed-off-by: Rustam Gaptulin <rascal6@gmail.com>
[commit message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-25 12:24:21 +08:00
CN_SZTL
34f47bb0c3 Merge Mainline 2020-08-24 12:47:17 +08:00
CN_SZTL
59ae1d77c8 rockchip: add missing description in patch 2020-08-24 03:18:32 +08:00
CN_SZTL
c01a8ce70f rockchip: format patches 2020-08-24 03:11:04 +08:00
CN_SZTL
2d68a5a672 Merge Mainline 2020-08-23 23:58:39 +08:00
CN_SZTL
520c8d9258 Merge Mainline 2020-08-23 23:48:32 +08:00
CN_SZTL
daea828bc3 Merge Mainline 2020-08-23 04:16:24 +08:00
CN_SZTL
f3eca9a203 Merge Mainline 2020-08-23 02:15:59 +08:00
CN_SZTL
abc38b2132 Merge Mainline 2020-08-23 01:30:00 +08:00
Felix Fietkau
935505591a uml: update to linux 5.4
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-08-23 01:14:31 +08:00
Hauke Mehrtens
00a41cd174 kernel: Use new symbol to deactivate MIPS FPU support
With kernel 5.4 the upstream kernel supports deactivating the FPU
support on MIPS. Use this new upstream feature instead of our older
patch which was removed when porting the kernel patches to kernel 5.4.

This way both options are set which should work for older kernel
versions and also new ones.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-22 12:35:56 +08:00
CN_SZTL
43e2f2cd3a layerscape: fix typo error in patch
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-22 03:59:33 +08:00
CN_SZTL
2105d78e8a kernel: bump 5.4 to 5.4.60
Resolve conflicted:
- 804-crypto-0016-MLKU-114-1-crypto-caam-reduce-page-0-regs-access-to-.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-22 03:33:14 +08:00
CN_SZTL
a4c3b23569 Merge Mainline 2020-08-22 02:27:01 +08:00
Adrian Schmutzler
1168a25232 pistachio: use generic diag.sh
Remove local diag.sh in favor of generic one and add the required
led-* aliases to DTS.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-22 01:43:31 +08:00
Adrian Schmutzler
5cdd113782 pistachio: use vendor_model scheme for device/image name
This uses the vendor_model scheme for the device/image name in
order to make this consistent to most other targets.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-22 01:43:21 +08:00
Hauke Mehrtens
e55708d010 pistachio: Add kmod-ca8210 wpan-tools by default
A ca8210 chip is soldered onto the board, add the driver by default.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-22 01:42:39 +08:00
Hauke Mehrtens
f10710474a kernel: wpan: Add kmod-ca8210
This device is found on the pistachio marduk board.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-22 01:41:51 +08:00
Aleksander Jan Bajkowski
079b4dda1b lantiq: remove vmmc node from FritzBox 7412 dts
As described in commit commit 891a700759 ("lantiq: enable second VPE
on Fritz!Box 7412"):

 The AVM Fritz!Box 7412 does not use the VMMC part of the Lantiq chip but
 rather a proprietary solution based on the DECT chip for the FXS ports.

We can remove last traces of vmmc in dts.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2020-08-22 01:39:24 +08:00
Hauke Mehrtens
d505b07070 kernel: Add GigaDevice GD5F4GQ4xC SPI NAND flash
This flash was found on the Imagination Technologies Creator Ci40 (Marduk).

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-22 01:38:59 +08:00
Hauke Mehrtens
c56dbae70c pistachio: Add SC16IS7XX device driver
This device is used to control extra UARTs and LEDs on the board.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-22 01:38:29 +08:00
Hauke Mehrtens
0e567c21a8 pistachio: Add extra devices to dts file
This adds some extra devices to the DTS file.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-22 01:38:22 +08:00
Hauke Mehrtens
ddb8ca921b pistachio: Add mtd device name from dts
Parse the "linux,mtd-name" property also for SPI NAND flashes.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-22 01:37:48 +08:00
Hauke Mehrtens
40d839135e pistachio: Fix Null pointer access in pwm-img.c
This fixes a crash when booting the board.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-22 01:37:40 +08:00
Hauke Mehrtens
bd993ba2c6 pistachio: Make patches and configuration apply on to of 5.4
This refreshes the patches, removes patches already applied upstream and
removes the SPI NAND framework to use the upstream version.

In addition it also refreshes the kernel configuration.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-22 01:37:20 +08:00
Hauke Mehrtens
665e9da6a7 pistachio: Copy kernel 4.14 to 5.4
This only copies the patches and configuration without doing any
modification to the files.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-22 01:37:02 +08:00
CN_SZTL
ec793d52b8 Merge Mainline 2020-08-20 20:27:21 +08:00
CN_SZTL
cd21df1186 Merge Mainline 2020-08-20 05:23:31 +08:00
Adrian Schmutzler
03ff14f157 layerscape: remove useless pairs of kernel patches
The layerscape kernel patches appears to be just some uncleaned local
development tree, where patches are sometimes directly followed by
their revert. While this does not seem a problem in the first place,
it becomes incredibly unpleasant when the upstream kernel changes in
the relevant areas and requires rebase.

This removes all these patch-revert pairs and refreshs the rest.

It removes about 44000 lines of entirely useless code.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-20 05:21:54 +08:00
Adrian Schmutzler
9ba2692668 bcm27xx: remove no-op patch pair
Patch 1 introduces a change, and patch 2 reverts it again. Remove
both patches and achieve the same outcome.

Refreshed patches for the target as well.

Cc: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-20 05:20:59 +08:00
CN_SZTL
84eb37bcb3 kernel: bump 5.4 to 5.4.59
Resolve conflicted:
- 950-0163-staging-vchiq_arm-Fix-platform-device-unregistration.patch
- 950-0338-staging-vchiq_arm-Unify-the-unload-handling-of-platf.patch
- 801-audio-0005-Revert-ASoC-fsl_sai-Add-support-for-SAI-new-version.patch
- 805-display-0043-gpu-Move-ipu-v3-to-imx-folder.patch

Remove upstreamed:
- 950-0428-staging-vchiq_arm-Add-a-matching-unregister-call.patch
- 0800-spi-lantiq-ssc-Fix-warning-by-using-WQ_MEM_RECLAI.patch

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-20 04:30:19 +08:00
CN_SZTL
0817390727 Merge Mainline 2020-08-20 04:23:58 +08:00
AmadeusGhost
185f608133 Revert "kernel/crypto: add rk3328 crypto support"
This reverts commit 030785fa60 due to this
module only supports rk3288 and has never been initialized.
2020-08-19 12:12:05 +08:00
AmadeusGhost
ee6b2fee3a Revert 'treewide: adjust sysupgrade script' 2020-08-19 12:10:43 +08:00
Thibaut VARÈNE
cecb64364e ath79: mikrotik: erase firmware on SPI NOR before install
On Mikrotik SPI NOR devices, the firmware partition must be erased when
flashing from stock firmware, otherwise leftover bits (in particular a
kernel signature) can trigger a boot loop.

When booted from initramfs (the only way to install OpenWRT on these
devices), this patch unconditionally erases the firmware partition in
the do_upgrade() stage for all supported SPI NOR devices.

This is forward-ported from ed49d0876 and 20452a8db

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-08-19 01:07:43 +08:00
CN_SZTL
848f964c9f Merge Mainline 2020-08-19 01:07:23 +08:00
Adrian Schmutzler
d3be1c51d2 Revert "bcm53xx: remove useless echo in 02_network"
This reverts commit b1f6a5d9df.

In this particular case, the echo command was _not_ useless, but
converted the newlines back to spaces.

Add a comment into the code to make that obvious for the next one
looking at it like me.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-19 01:05:18 +08:00
David Bauer
abb0ba46c0 dnsmasq: abort dhcp_check on interface state
Abort the link-check based on the interface instead of the carrier
state. In cases where the interface is up but the carrier is down,
netifd won't case a dnsmasq reload, thus dhcp won't be active on thsi
interface.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-08-18 21:39:06 +08:00
CN_SZTL
0763f9abe7 Merge Mainline 2020-08-18 17:21:04 +08:00
Adrian Schmutzler
eb7d6c63c6 ltq-dsl-base: remove useless echos in lantiq_dsl.sh
The is no reason to catch the output by $() and then echo it again.

Remove the useless echos.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-18 11:46:46 +08:00
Adrian Schmutzler
1e9a63a20c bcm53xx: remove useless echo in 02_network
The output is already produced in the inner $() brackets, no need
to catch and echo it again.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-18 11:46:22 +08:00
Adrian Schmutzler
d4923e38c5 rockchip: remove useless echo in 40-net-smp-affinity
The command in the $() brackets will already provide the same output.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-18 11:45:57 +08:00
Adrian Schmutzler
3cfd29c08f apm821xx: tidy up 10-fix-wifi-mac
This applies some cosmetic style fixes:
- remove useless echo
- remove double equal sign (specific to bash)
- add quotes for -n check

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-18 11:45:31 +08:00
Adrian Schmutzler
e9b9b3140d ath79: fix syntax error in ar7240_tplink_tl-wa.dtsi
The node needs to be terminated by a semicolon.

Fixes: 8484a764df ("ath79: ar724x: make sure builtin-switch is
enabled in DT")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-18 11:45:01 +08:00
Adrian Schmutzler
25bd1050ca ipq806x: move further common nodes to the DTSI files
The moves a few additional common nodes to the common DTSI files
for qcom-ipq8064-v2.0 and qcom-ipq8065 devices.

Remove a few redundant definitions on the way.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-18 11:43:45 +08:00
Adrian Schmutzler
7146e78c7e ath79: ar724x: make sure builtin-switch is enabled in DT
On ar7240/ar7241 the mdioX node with the builtin-switch is enabled
in the DTSI files, but the parent ethX node is left disabled. It
only gets enabled per device or device family, and has not been
enabled at all yet for the TP-Link WA devices with ar7240, making
the switch unavailable there.

This patch makes sure &eth0/&eth1 nodes are enabled together with
the &mdio0/&mdio1 nodes containing the builtin-switch.
For ar7240_tplink_tl-wa.dtsi, &eth0 is properly hidden again via
  compatible = "syscon", "simple-mfd";

This partially fixes FS#2887, however it seems dmesg still does
not show cable (dis)connect in dmesg for ar7240 TP-Link WA
devices.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-18 11:40:22 +08:00
Adrian Schmutzler
975fb3d016 at91: drop obsolete empty Makefiles
This files have been emptied during subtarget consolidation, but
not removed. Remove them now.

Fixes: aff084adf3 ("at91: Merge SAMA5 subtargets")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-18 11:39:34 +08:00
Donald Hoskins
412d743159 octeon: determine sysupgrade-* directory for upgrade automatically
So far, the sysupgrade-* folder used during upgrade in octeon was
hardcoded to contain the board name. Therefore, changing board name
or BOARD_NAME variable in image/Makefile might have broken upgrade.

Improve this by adding a step to determine the folder name via
a wildcard, as it is done for generic nand_upgrade_tar() in
lib/upgrade/nand.sh.

While this still does not remove the problem for existing devices
(which still have the old script), it will entirely remove the
issue on newly added devices on this platform.

Signed-off-by: Donald Hoskins <grommish@gmail.com>
[split into separate patch, add commit message, add return values]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-18 11:38:20 +08:00
Adrian Schmutzler
50afea8f36 bcm63xx: reorganize board patches
This renames board patches to make finding devices easier
and reorders them based on their board.

The devices are grouped based on the board/cpu_id. New device
patches should be numbered based on their group.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-18 11:37:57 +08:00
CN_SZTL
da5e20d5a4 Merge Mainline 2020-08-17 00:30:55 +08:00
David Bauer
9bdc246315 rockchip: refresh NanoPi R2S patch with upstream feedback
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-08-17 00:30:41 +08:00
CN_SZTL
039d06db24 Merge Mainline 2020-08-16 02:32:54 +08:00
CN_SZTL
bea2d0d431 uboot-rockchip: drop useless defconfig for nanopi-r2s
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-16 02:31:47 +08:00
Tony Ambardar
557867c14a kernel: mips: fix init crash/bootloop on 64-bit systems
The malta subtargets for mips64 and mips64el fail to start the init process
at boot, resulting in a boot loop. The issue was raised and analyzed within
FS#3277. Investigation suggested code near the [vdso] memory area of the
process was long jumping into a region inaccessible to the process, e.g.

 init: - preinit -
 init: Launched preinit instance, pid=522
 do_page_fault(): sending SIGSEGV to init for invalid read access from 0000000000000360
 epc = 0000000000000360 in init[aaab42b000+4000]
 ra  = 000000fffee385e0 in
 Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
 Rebooting in 1 seconds..

Note the low-memory read access and epc are the same. Upstream kernel 5.6
included a relevant patch and discussion:

  * d3f703c4359f ("mips: vdso: fix 'jalr t9' crash in vdso code")

Disassembly of the failing kernel's vdso.so confirmed presence of the
telltale long jumps, e.g.:

00000000000007c0 <__vdso_clock_getres@@LINUX_2.6>:
 [...]
 7dc:   0320f809        jalr    t9
 [...]

Restore booting mips64/mips64el malta by backporting the above commit:
  * 310-v5.6-mips-vdso-fix-jalr-t9-crash-in-vdso-code.patch

Fixes: 54310a3aa0 ("malta: add kernel 5.4 config")
Fixes: FS#3277
Ref: https://bugs.openwrt.org/index.php?do=details&task_id=3277

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2020-08-15 02:09:22 +08:00
Yuan Tao
0bb3a30765 uboot-rockchip: fix nanopi-r2s failed to boot on some sd cards
Add regulator-boot-on parameters to vcc_sd.
Add startup-delay-us parameters to vcc_sdio.
This will improve the problem that in some SD cards are failing to boot up.

Signed-off-by: Yuan Tao <ty@wevs.org>
2020-08-15 01:58:59 +08:00
CN_SZTL
32b62283d7 rockchip: format nanopi r2s i2c0 patch
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-15 01:52:38 +08:00
CN_SZTL
faf76aaf01 rockchip: fix patch with upstream changes
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-14 22:08:47 +08:00
David Bauer
a4e214deca rockchip: refresh NanoPi R2S patch with upstream feedback
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-08-14 22:03:42 +08:00
CN_SZTL
fcf53a6b13 Merge Mainline 2020-08-14 21:46:50 +08:00
AmadeusGhost
715404f8e1 treewide: adjust sysupgrade script 2020-08-14 18:36:30 +08:00
AmadeusGhost
787d71db74 treewide: fix undeclared function about backup in upgrade 2020-08-14 12:28:09 +08:00
Ansuel Smith
87e4b03f4c kernel: usb: move phy-qcom-ipq806x-usb to ipq806x modules.mk
This driver is only used by ipq806x SoCs. Move it there and drop
dependency from ipq40xx since it's not used anywere.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[rebase on changes to previous patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Paul Blazejowski <paulb@blazebox.homeip.net> [R7800]
2020-08-14 12:08:01 +08:00
Ansuel Smith
f6d615b680 ipq806x: replace nvmem qcom patch with upstream version
- Replace nvmem qcom patch with upstream version
- Update compatible

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[refresh patches, minor commit message rewording]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Paul Blazejowski <paulb@blazebox.homeip.net> [R7800]
2020-08-14 12:07:28 +08:00
Ansuel Smith
f4d6cc039e ipq806x: replace phy dwc3 patch with upstream version
- Replace dwc3 phy patch with upstream version
- Rework the dts to use the upstream bindings
- Update changed config flags
- Rename module to reflect config name

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[fix qcom,tx-deamp_3_5db typo, refresh patches, rename kmod]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Paul Blazejowski <paulb@blazebox.homeip.net> [R7800]
2020-08-14 12:06:50 +08:00
AmadeusGhost
fe141dc248 ipq806x: sync upstream source code 2020-08-14 12:00:20 +08:00
Adrian Schmutzler
3c9eac25ce mpc85xx: tidy up 10-fix-wifi-mac
This applies some cosmetic style fixes, mostly by removing useless
echo commands.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-14 11:37:18 +08:00
CN_SZTL
56f4fab2b5 kernel/5.4: remove useless patch
It was fixed more generically upstream so no longer required.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-14 03:04:43 +08:00
CN_SZTL
b37fafcb78 Merge Mainline 2020-08-14 02:30:28 +08:00
CN_SZTL
1ded17ef08 Merge Mainline 2020-08-13 23:43:29 +08:00
John Thomson
621f30046a ramips: use gpio-export for Mikrotik RouterBOARD 750Gr3 beeper
This beeper hardware requires a PWM driver for frequency selection.
Since the GPIO driver does not provide that, revert the beeper
support to a simple gpio-export.

This effectively reverts the corresponding changes from
6ba58b7b02 ("ramips: cleanup the RB750Gr3 support")

Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
[commit title/message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-13 12:01:47 +08:00
Adrian Schmutzler
8b24d5301d kernel: add CGROUPS and IOSCHED_BFQ back to config
After those symbols have been removed from generic kernel config,
they were added to the target config during every kernel config
refresh. As that's not desirable, add them back to the generic
config.

Fixes: d1a8217d87 ("kernel: clean-up build-configurable kernel config symbols")
Fixes: cfe235c436 ("kernel: modules: add package kmod-iosched-bfq")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-13 11:57:54 +08:00
Felix Fietkau
af2c35a726 mediatek: disable btif in device tree to make the WMAC work again
btif and wmac access the same resources and at the moment enabling one
breaks the other

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-08-13 11:54:01 +08:00
Felix Fietkau
a6599b7139 mediatek: fix PCI device tree node for elecom wrc-2533gent
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-08-13 11:53:39 +08:00
Michael Yartys
e18c93b1e1 ath10k-ct-firmware: update firmware images
Not a large change from last time, but should fix at least one rare wave-2
crash. The htt-mgt-community builds are trimmed for supporting lots of
stations (typically 150+ stations per radio).

Tested on Netgear R7800.

Signed-off-by: Michael Yartys <michael.yartys@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-13 11:53:03 +08:00
David Woodhouse
5ba2b6a874 uboot-mediatek: resync patches with upstream
Now that my patches have been merged into upstream U-Boot, resync the
cosmetic changes and the commit IDs from the final commits.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-08-13 11:49:07 +08:00
Hauke Mehrtens
335ad64a6f kernel: Create UBIFS v5 volume
In commit 87b35c16ad ("kernel: ubifs: create use file system format 4
by default") we changed the default UBIFS version used when the kernel
creates a new volume from 5 to 4. UBIFS v5 was added in kernel 4.10 and
only kernel 4.10 and later can read it.
We changed the kernel to create version 4 volumes also on more recent
kernel versions to make it possible to downgrade to an OpenWrt version
with kernel 4.9, the upgrade still works. This is probably not needed
any more and we can remove this patch.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-13 11:45:13 +08:00
AmadeusGhost
58132eead4 rtl8821cu: fix build on arm64 2020-08-12 21:05:45 +08:00
AmadeusGhost
e81dd8b416 rtl88x2bu: fix build on arm64 2020-08-12 17:26:06 +08:00
CN_SZTL
d58524dc6f Merge Mainline 2020-08-12 16:52:52 +08:00
CN_SZTL
76c217e8df Merge Mainline 2020-08-12 14:49:43 +08:00
CN_SZTL
f72cdc669e luci-app-turboacc: adjust order 2020-08-12 13:46:35 +08:00
CN_SZTL
00d423c45f luci-app-turboacc: adjust depends 2020-08-12 13:27:21 +08:00
AmadeusGhost
347febc347 rtl88x2bu/8821cu: add missing patches 2020-08-12 11:08:29 +08:00
CN_SZTL
417b4db30f rtl8812au-ct: drop wrong patch 2020-08-12 04:01:45 +08:00
CN_SZTL
138c3e0495 Revert "mt76: update to 2020-07-22"
This reverts commit 940391fb0e.
2020-08-12 03:56:01 +08:00
Felix Fietkau
940391fb0e mt76: update to 2020-07-22
7bc58ca2b375 mt76: add missing lock configuring coverage class
43febd452110 mt76: mt7615: fix lmac queue debugsfs entry
0b9975254694 mt76: mt7615: fix hw queue mapping
4058595e146e mt76: overwrite qid for non-bufferable mgmt frames
49c7131dd0c5 mt76: mt76x02: do not access uninitialized NAPI structs
f185d90ec51c update mt7915 firmware to the latest version
0ed6a335ebc2 mt76: mt7615: re-enable offloading of sequence number assignment
2a52eabbddc5 mt76: usb: rely on mt76_for_each_q_rx
90fc1d8614e1 mt76: mt7663: introduce ARP filter offload
b57223dd01b9 mt76: mt7615: fix up typo in Kconfig for MT7663U
ec4057d685c0 mt76: add script for generating single-sku device tree data
769b030de636 mt76: add functions for parsing rate power limits from DT
1d2aedb248d0 mt76: extend DT rate power limits to support 11ax devices
a3e17ff8e624 mt76: mt7615: implement support for using DT rate power limits
a48a4ae32d48 mt76: allow more channels, allowed in ETSI domain
869ba618ef54 mt76: fix include in pci.h
b1ddec840aa4 mt76: rely on register macros
d6d9a7ea428d mt76: add U-APSD support on AP side
ee13b78367db mt76: mt7615: fix EEPROM buffer size
82a94173b162 mt76: mt7915: add missing CONFIG_MAC80211_DEBUGFS
c0dbbd930d32 mt76: mt7615: add .set_tsf callback
84d54df76996 mt76: mt7915: add a fixed AC queue mapping
dacc2d29672d mt76: mt7915: add MU-MIMO support
1ce4660a0ea3 mt76: mt7915: use ieee80211_tx_queue_params to avoid open coded
53891242a682 mt76: mt7915: add support for DT rate power limits
b3a4d78914f6 mt76: mt7915: rework the flow of txpower setting
c6ea163c019b mt76: mt7915: directly read per-rate tx power from registers
8ae83adc73a8 mt76: mt7915: overwrite qid for non-bufferable mgmt frames
740b0bfdf279 mt76: mt76x2e: rename routines in pci.c
b5eee1b52234 mt76: mt7615: schedule tx tasklet and sta poll on mac tx free
72f34107248e mt76: mt7615: add support for accessing mapped registers via bus ops
46bc8a0b5347 mt76: mt7615: add support for accessing RF registers via MCU
882cec420609 mt76: mt7615: use full on-chip memory address for WF_PHY registers
b1ddb8e35ca2 mt76: vif_mask to struct mt76_phy
3a1ea7287eb2 mt76: add API for testmode support
d7467bc018e5 mt76: mt7615: implement testmode support
3ea5da1639fe add utility for using testmode support
6789a2db7246 mt7615: fix getting wideband RSSI in test mode
7941217ffe46 mt76: mt7915: remove unused parameters in mt7915_puts_rate_txpower()
13ab1d648684 mt76: mt7915: update HE capabilities
3f0e66dc25de mt76: mt76x2: fix pci suspend/resume on mt7612e
c605f2b6940b mt76: mt76x2u: enable HC-M7662BU1
ca2b797ee52d mt76: mt7915: avoid memcpy in rxv operation
dad3f93e8f6a mt76: mt7615: avoid polling in fw_own for mt7663
ec303bfad299 mt76: move mt76 workqueue in common code
0bf82270568a mt76: mt7615: add mt7615_pm_wake utility routine
091e9b5df6af mt76: mt7615: introduce mt7615_mutex_{acquire,release} utilities
e3850966d74c mt76: mt7615: wake device before accessing regmap in debugfs
e6dcb71d7992 mt76: mt7615: wake device before configuring hw keys
050f8cd9cbe7 mt76: mt7615: introduce pm_power_save delayed work
56779a6c7dec mt76: mt7615: wake device in mt7615_update_channel before access regmap
b0bcdd66ccaa mt76: mt7615: acquire driver_own before configuring device for suspend
58369fdce235 mt76: mt7615: wake device before performing freq scan
2c188db1f7c7 mt76: mt7615: add missing lock in mt7615_regd_notifier
6fdb20a025eb mt76: mt7615: run mt7615_mcu_set_wmm holding mt76 mutex
36a789c00e4f mt76: mt7615: run mt7615_mcu_set_roc holding mt76 mutex
b8cdce45c131 mt76: mt7615: wake device before pulling packets from mac80211 queues
82e8e0525d6c mt76: mt7615: wake device before pushing frames in mt7615_tx
65ccc40c14e1 mt76: mt7615: run mt7615_pm_wake in mt7615_mac_sta_{add,remove}
2107caf92e71 mt76: mt7615: check MT76_STATE_PM flag before accessing the device
28a2f5fa6eed mt76: mt7615: do not request {driver,fw}_own if already granted
94519eac69c3 mt76: mt7615: add runtime-pm knob in mt7615 debugfs
ccc90dafea66 mt76: mt7615: enable beacon hw filter for runtime-pm
29f2bebe1a1e mt76: mt7615: add idle-timeout knob in mt7615 debugfs
58057d1f232b mt76: mt7615: improve mt7615_driver_own reliability
a873b7c8e3de mt76: mt7663u: sync probe sampling with rate configuration
b469c59c616c mt76: mt7615: avoid scheduling runtime-pm during hw scan
f1ff52acb6a7 mt76: mt7615: reschedule ps work according to last activity
1f670a534451 mt76: mt7663u: fix memory leak in set key
afff00ad2b60 mt76: mt7663u: fix potential memory leak in mcu message handler
4c9309f47ddf mt76: mt7615: fix potential memory leak in mcu message handler
379445b4aa7f mt76: mt7915: potential array overflow in mt7915_mcu_tx_rate_report()
750797b61ba8 mt76: fix copy&paste error in mt76_testmode_cmd
f9a7a2f7dbc2 testmode: fix setting tx_power
1641aa201682 mt76: mt7615: fix mt7615_mcu_set_test_param set non-bool parameters
6838d002f9de mt76: mt7615: fix tx_frames setup
8c0a25d6a38c mt76: mt7615: take into account sdio bus configuring txwi
c0cbef79eb45 mt76: mt76u: add mt76_skb_adjust_pad utility routine
98412356c959 mt76: mt7615: sdio code must access rate/key regs in preocess context
fa16627d7e3a mt76: mt7615: introduce mt7663-usb-sdio-common module
bf88e70c7a68 mt76: introduce mt76_sdio module
aa97be8e02de mt76: mt7615: introduce mt7663s support
1eb8b7d689a3 mt76: testmode: fix tx_done accounting on enqueue failures
632ce698e8ee mt76: mt7615: fix antenna settings for test mode
4d2f622190b6 mt76: mt76s: move queue accounting in mt76s_tx_queue_skb
9a3723c8febc mt76: mt7915: fix potential memory leak in mcu message handler
88fa973f59c2 mt76: mt7615: fix possible memory leak in mt7615_mcu_wtbl_sta_add
2fff7d77befd mt76: mt76u: add missing release on skb in __mt76x02u_mcu_send_msg
b5df0fbb1847 mt7615: update firmware to version 20200629

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-08-12 03:45:21 +08:00
CN_SZTL
673b44fd31 rtl8812au-ct: sync with snapshot 2020-08-12 03:43:36 +08:00
CN_SZTL
fdfd3f7f4d package: drop kernel 4.9 support 2020-08-12 03:38:44 +08:00
CN_SZTL
cd73b85ee0 target: drop kernel 4.9 support 2020-08-12 03:17:56 +08:00
CN_SZTL
0296565a92 orion: drop outdated target 2020-08-12 03:03:52 +08:00
CN_SZTL
4af6d0f5ea ixp4xx: drop outdated target 2020-08-12 03:03:33 +08:00
CN_SZTL
365d4416ae ar7: drop outdated target 2020-08-12 03:03:10 +08:00
CN_SZTL
9c00895f0a ar71xx: switch to kernel 4.14 2020-08-12 03:00:47 +08:00
AmadeusGhost
d1b15673f7 rtl88x2bu: build with mac80211 2020-08-12 00:45:09 +08:00
AmadeusGhost
d1cdca9297 rtl8821cu: build with mac80211 2020-08-12 00:43:53 +08:00
CN_SZTL
b1da07102b kernel: bump 5.4 to 5.4.58
Resolve conflicted:
- 950-0132-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch

Remove upstreamed:
- 0402-net-ethernet-mtk_eth_soc-Always-call-mtk_gmac0_rgmii.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-12 00:21:47 +08:00
CN_SZTL
e595ad050e Merge Mainline 2020-08-12 00:18:55 +08:00
Tony Ambardar
86829afe28 malta: disable unnecessary built-in CDROM support
The CDROM is not needed for booting and can be included by selecting the
loadable module as a package instead.

This also avoids triggering a memory allocation failure during probing of
the CDROM due to lack of low 16MB DMA memory, as decribed in FS#3278:
https://bugs.openwrt.org/index.php?do=details&task_id=3278

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/3289
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2020-08-11 18:16:05 +08:00
Daniel Golle
ecb18e33cc oxnas: reduce size of ATA DMA descriptor space
After years of trying to find the reason for random kernel crashes
while both CPU and SATA are under load it has been found.
Some odd commented-out #defines in kref's single-port driver [1] which
were copied from the vendor driver made me develop a theory:
The IO-mapped memory area for DMA descriptors apparetly got some holes
just before the alignment boundaries.
This feels like an off-by-one bug in the hardware or maybe those fields
are used internally by the SATA controller's firmware.
Whatever the cause is: they cannot be used and trying to use them
results in reading back unexpected stuff and ends up with oopsing
Unable to handle kernel paging request at virtual address d085c004

Work around the issue by reducing the area used for bmdma descriptors.
This reduces SATA performance (iops) quite a bit, but finally makes
things work reliably. Possibly one could optimize this much more by
really just skipping the holes in that memory area -- however, that
seems to be non-trivial with the driver and libata in it's current form
(suggestions are welcome).
The 'proper' way to have good SATA performance would be to make use of
the hardware RAID features (one can use the JBOD mode to access even
just a single disc transparently through the RAID controller integrated
in the SATA host instead of accessing the SATA ports 'raw' as we do
now).

[1]: https://github.com/kref/linux-oxnas/blob/master/drivers/ata/sata_oxnas.c#L25

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-08-11 18:15:51 +08:00
Hauke Mehrtens
8d141be934 kernel: Move CONFIG_IONIC to generic kernel config
It is deactivated everywhere, just set this in the generic config.

Acked-by: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-11 18:15:38 +08:00
Tony Ambardar
dd76623273 toolchain/binutils: fix broken build of binutils 2.34 on mips64
Commit 53470bdf32 ("toolchain/binutils: Add binutils 2.34") logs refreshed
patches, but also adds a typo causing failed builds on mipsel64 platforms,
including the malta subtarget. Update the patch to fix this.

This fixes the following build error:
make[7]: *** No rule to make target 'elf64ltsmip.o', needed by 'ld-new'.  Stop.

Fixes: FS#3276
Fixes: 53470bdf32 ("toolchain/binutils: Add binutils 2.34")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2020-08-11 18:15:17 +08:00
Hauke Mehrtens
fa8f3a78a4 malta: Refresh kernel configuration
This refreshes the kernel configuration on top of kernel 5.4.
It now builds without asking to select some kernel options on all 4
subtargets.
It still does not boot up, there is a different problem.

Tested-By: Yousong Zhou <yszhou4tech@gmail.com>
Acked-By: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-11 18:15:00 +08:00
Hauke Mehrtens
cea107f34d bintuils: Pack libctf-nobfd.so in addition
readelf is linked against this library on MIPS64BE
This fixes a build problem on MIPS64BE.

In addition also explicitly activate it in the configure command.

Fixes: 60f595daab ("binutils: update to version 2.34")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-11 18:14:34 +08:00
Álvaro Fernández Rojas
23179f24e1 bcm63xx: switch to upstream CFE detection patch
This patch has been merged in linux 5.9.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-11 18:13:21 +08:00
Hauke Mehrtens
d2669e0b38 mac80211: Update to version 5.4.36-1
This updates the mac80211 backport to the latest minor version.

The removed patch was a backport from the upstream kernel which is now
integrated.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-11 17:49:41 +08:00
AmadeusGhost
1c4f782c55 ipq40xx: simplified source code
Refresh all patches about driver.

Signed-off-by: AmadeusGhost <amadeus@openjmu.xyz>
2020-08-10 22:29:04 +08:00
AmadeusGhost
b8874d9057 ramips: improve ramoops support 2020-08-10 22:09:18 +08:00
AmadeusGhost
e5603c8218 fix git merge 2020-08-10 21:39:36 +08:00
AmadeusGhost
481e226f95 Merge Mainline 2020-08-10 21:25:06 +08:00
AmadeusGhost
d7226b8757 Revert "rtl8192du: fix build with mac80211-5.8"
This branch isn't needed this, and it will broken the compilation.
2020-08-10 19:32:16 +08:00
CN_SZTL
73b0e0710e rtl8192du: drop useless option SUBDIRS"" 2020-08-10 16:58:42 +08:00
CN_SZTL
314e3e9a26 Merge Mainline 2020-08-10 16:39:54 +08:00
CN_SZTL
b652899bf3 Merge Mainline 2020-08-10 00:06:16 +08:00
AmadeusGhost
a2c53ada81 Revert 'rtl88x2bu/8821cu: linux 5.8 build support 2020-08-10 00:00:36 +08:00
AmadeusGhost
4ac2271b15 rtl8821cu: linux 5.8 build support
ref: tomaspinho/rtl8821ce/pull/149
2020-08-10 00:00:30 +08:00
AmadeusGhost
d59af4c805 rtl88x2bu: linux 5.8 build support
ref: cilynx/rtl88x2bu/pull/58
2020-08-09 23:59:46 +08:00
AmadeusGhost
24b16e508c rtl8192du: fix build with mac80211-5.8 2020-08-09 23:58:44 +08:00
Ansuel Smith
31cc0bb9a1 ipq806x: replace patches with upstream version
Replace all the custom patches with the backported upstream version

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[refresh patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-09 23:57:55 +08:00
Adrian Schmutzler
0b8bb0ea6b ath79: drop redundant kmods-leds-gpio
The ath79 target has CONFIG_LEDS_GPIO=y set in kernel config, so
no need to pull the kmod-leds-gpio module for specific devices.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-09 23:56:45 +08:00
Sungbo Eo
29167d5ea4 ramips: adjust LZMA_TEXT_START for 32MB RAM devices
Currently the lzma-loader is placed in RAM at 32MB offset, which does not
make sense for devices with only 32MB RAM. If we adjust LZMA_TEXT_START to
24MB offset, then the lzma-loader can be used on those devices and still
about 24MB memory will be available for uncompressed image, which should be
enough for most use cases.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-08-09 23:55:24 +08:00
Sungbo Eo
69e962bd06 ramips: use lzma-loader for RT5350F-OLinuXino devices
The bootloader fails to extract a big kernel, e.g. v5.4 kernel image
with ALL_KMODS enabled. This can be fixed by using lzma-loader.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-08-09 23:55:08 +08:00
Adrian Schmutzler
dc655c9fba ramips/mt7620: fix portmap based on board.d port assignment
When comparing to the port assignment in board.d/02_network, many
devices seem to use the wrong setup of mediatek,portmap.

The corrects the values for mt7620 subtarget based on the location
of the wan port.

A previous cleanup of obviously wrong values has already been done in
d3c0a94405 ("ramips: mt7620/mt7621: remove invalid mediatek,portmap")

Cc: Sungbo Eo <mans0n@gorani.run>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-09 23:54:51 +08:00
CN_SZTL
f614b39f22 README: rename branch to openwrt-18.06-k5.4 2020-08-08 13:53:33 +08:00
CN_SZTL
b0e9557632 Merge Mainline 2020-08-07 19:44:17 +08:00
CN_SZTL
975b277c77 kernel: bump 5.4 to 5.4.57
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-07 19:28:50 +08:00
Álvaro Fernández Rojas
cc23a4d864 bcm63xx: add missing endif board comnents
This provides better context for board patches.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-07 18:31:52 +08:00
Álvaro Fernández Rojas
997a207a48 bcm63xx: merge RTA770BW and RTA770W board patches
The only difference between both boards is the DSL annex.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-07 18:31:34 +08:00
Álvaro Fernández Rojas
6edfd246bc bcm63xx: add missing fallback SPROMs
A couple of SPROM IDs are missing.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-07 18:31:11 +08:00
Álvaro Fernández Rojas
f17ae713ff bcm63xx: add missing OHCI nodes
All boards with EHCI enabled should also have OHCI enabled.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-07 18:30:18 +08:00
Álvaro Fernández Rojas
0d9e372348 bcm63xx: remove invalid EHCI nodes
There's no EHCI controller on BCM6348.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-07 18:28:37 +08:00
Álvaro Fernández Rojas
f80c1bd6ce bcm63xx: refactor board patches
Current board patches format is crazy.
Let's try to put some order.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-07 18:26:59 +08:00
Adrian Schmutzler
80a27d90cd ramips: switch rt3883 subtarget to kernel 5.4
The target has testing support for kernel 5.4 for quite a while,
compiles fine for all devices, and has been run-tested on Asus
RT-N56U successfully.

Let's set it to kernel 5.4 by default to increase the audience
before an 20.xx stable branch.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Eneas U de Queiroz <cotequeiroz@gmail.com> [Asus RT-N56U]
2020-08-07 18:25:39 +08:00
Álvaro Fernández Rojas
e26eb729f6 bcm63xx: switch to upstream CFE version detection patch
The patch improving CFE version detection has been merged (linux 5.9).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-07 18:25:18 +08:00
Álvaro Fernández Rojas
41c293cda6 bcm63xx: switch to upstream endif comments patch
This allows better context for board patches and we no longer need a
downstream patch for that.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-07 18:24:59 +08:00
Álvaro Fernández Rojas
f0c5ac6485 bcm63xx: switch to upstream LED patch
The patch adding support for the second LED HW blinking interval has been
merged (linux 5.9).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-08-07 18:17:19 +08:00
Adrian Schmutzler
282b079aea ramips: tidy up MAC address setup for Linkit Smart and Omega2
Linkit Smart 7688 and Onion Omega 2(+) are one-port devices, and
have their port set to LAN by default. Setting up a WAN MAC address
for them doesn't make any sense, as no wan interface will be created
in uci config. Despite, these devices also set lan_mac in 02_network,
although mtd-mac-address sets a different address for the ethernet
interface in DTS.

Clean this up by moving the lan_mac value into DTS and dropping the
entries in 02_network completely. That way, the effective address
on the LAN interface should stay the same, but we get rid of the
extra (re)assignments.

As I don't have access to the devices, this does not tell anything
about whether 0x2e is actually a good choice, it just preserves
the existing assignment.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-07 18:15:18 +08:00
Tobias Welz
37fbf982af ramips: WizFi630S use macs from factory partion
WIZnet WizFi630s has three mac addresses in the factory partition:
0x04 (also on the label), 0x28 for wan mac and 0x2e as lan mac.
All three macadresses are sequential series of addresses.
This is making use of them.

While at it, also add the label MAC address to 02_network.

MAC addresses as verified by OEM firmware:

use      interface   source
WLAN     ra0         factory 0x04 (label)
WAN      eth0.2      factory 0x28 (label + 1)
LAN      eth0.1      factory 0x2e (label + 2)

Signed-off-by: Tobias Welz <tw@wiznet.eu>
[fix sorting in 02_network, commit message adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-07 18:12:47 +08:00
Tobias Welz
394f34abd6 ramips: correct WizFi630S pin mappings
WizFi630S had some pins changed in the release version of the board.
The run led, wps button and a slide switch where affected.
This patch is correcting this.
i2c is removed as it is sharing a pin with the run (system) led.
uart2 is enabled as it is also enabled in the OEM firmware.

Signed-off-by: Tobias Welz <tw@wiznet.eu>
2020-08-07 18:12:33 +08:00
Adrian Schmutzler
e31581a4f4 ipq40xx: refresh kernel 5.4 config
Refresh config with make kernel_oldconfig.

After d1a8217d87 ("kernel: clean-up build-configurable kernel
config symbols"), the routine wants to add an additional
CONFIG_CGROUPS (=n), which has been removed manually again, as
this seems unintended.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-07 18:11:19 +08:00
Felix Fietkau
2675e744f4 kernel: unify CONFIG_GPIO_SYSFS in kernel configs
Enable it for all platforms

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-08-07 18:08:33 +08:00
Alexey Dobrovolsky
fcea5b24a6 ramips: switch rt305x subtarget to kernel 5.4
RT3x5x seems to work fine with kernel 5.4. Set the default kernel
version to 5.4 to bring this to a broader audience.

Since 4 of 6 targets are on kernel 5.4 now, invert the kernel
version setup logic in Makefile/target.mk files.

Tested on ZyXEL Keenetic.

Signed-off-by: Alexey Dobrovolsky <dobrovolskiy.alexey@gmail.com>
[invert version setup logic]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-07 18:03:27 +08:00
CN_SZTL
e91e5cb732 Merge Mainline 2020-08-06 02:41:23 +08:00
CN_SZTL
f0fa1207de Merge Mainline 2020-08-06 00:16:54 +08:00
CN_SZTL
2699f91b6a Merge Mainline 2020-08-05 23:32:41 +08:00
David Bauer
fe62156c1a rockchip: use LZMA compressed FIT image for NanoPi R2S
This uses a LZMA compressed U-Boot FIT image for the NanoPi R2S. This
way, the resulting sysupgrade image uses ~1M les space compared to using
an uncompressed kernel.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-08-05 21:06:26 +08:00
David Bauer
be49374ad9 rockchip: make sysupgrade image generation reusable
This refactors the sysupgrade image generation code to make it reusable
for all devices generating an SD card image.

While at it, move the bootscripts to their own subdirectory.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-08-05 21:06:11 +08:00
CN_SZTL
af00d574dc Merge Mainline 2020-08-05 21:05:43 +08:00
DoveKi
aa023c778b ramips: use mt proprietary driver for XiaoMI MI R4 2020-08-05 20:58:09 +08:00
CN_SZTL
a3949e4b15 kernel: bump 5.4 to 5.4.56
Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-05 20:38:24 +08:00
CN_SZTL
b898719475 Merge Mainline 2020-08-05 20:36:43 +08:00
CN_SZTL
cf410390c7 target/ipq806x: switch to kernel 5.4 2020-08-05 00:05:52 +08:00
Rafał Miłecki
e92b71df5e bcm47xx: switch to kernel 5.4
Switch, LEDs, USB, buttons, sysupgrade testedon BCM4706.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2020-08-05 00:01:06 +08:00
Rafał Miłecki
57d1710eca bcm53xx: switch to kernel 5.4
Switch, USB, WiFi, buttons tested on BCM47094.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2020-08-05 00:00:31 +08:00
Rafał Miłecki
750e16c5f5 bcm53xx: set HW_RANDOM_BCM2835=y
This enables Random Number Generator support on Northstar (described in
DT with brcm,bcm5301x-rng).

It's also a workaround for OpenWrt bug with kernel config causing:
Broadcom BCM2835/BCM63xx Random Number Generator support (HW_RANDOM_BCM2835) [Y/n/m/?] (NEW)

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2020-08-05 00:00:20 +08:00
Rafał Miłecki
47863064a2 bcm53xx: update kernel 5.4 DTS to upstream 5.9 state
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2020-08-05 00:00:01 +08:00
Rafał Miłecki
ecd6b0b7f8 bcm53xx: update kernel 5.4 config
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2020-08-04 23:59:53 +08:00
CN_SZTL
6756bee51d Merge Mainline 2020-08-04 23:59:22 +08:00
CN_SZTL
afda1d2a63 Merge Mainline 2020-08-04 02:43:35 +08:00
CN_SZTL
c839962c04 Merge Mainline 2020-08-04 01:53:59 +08:00
CN_SZTL
34db960402 Merge Mainline 2020-08-03 23:10:32 +08:00
CN_SZTL
c584f55ce0 Merge Mainline 2020-08-03 21:02:18 +08:00
CN_SZTL
c6c6853164 Merge Mainline 2020-08-03 03:24:55 +08:00
CN_SZTL
798781952e Merge Mainline 2020-08-03 02:40:35 +08:00
CN_SZTL
79dc412747 Merge Mainline 2020-08-03 01:55:38 +08:00
CN_SZTL
042648871a Merge Mainline 2020-08-03 00:45:53 +08:00
Adrian Schmutzler
0fa3b81a12 ath79/mikrotik: create shared device definitions for nor and nand
Move the image preparation and nand-utils package selection into
common device definitions for NOR/NAND devices.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-03 00:37:47 +08:00
Rui Salvaterra
2ca8be092c uboot-envtools: ath79: add support for the Nanostation M (XM)
Tested on an AirGrid M2 (AG‑HP‑2G16).

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2020-08-03 00:37:45 +08:00
Rosen Penev
de6f4b338a staging: remove staging exfat driver
This will be replaced with the driver found in newer kernels.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-08-03 00:33:10 +08:00
Christian Lamparter
54d34fc7e2 apm821xx: disable WNDR4700 5.4 image
The compressed image that the buildbots are building is too large for
the netgear uboot and it crashes and soft-bricks the device.

| Uncompressing Kernel Image ...
| LZMA: uncompress or overwrite error 1 - must RESET board to recover

The whole target likely needs to be switched zImage which is a major
hassle due to powerpc's legacy bootwrapper setup as compared to ARM.
So for now, disable the device.

Reported-by: Wiktor Stasiak (FS#3258)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-08-03 00:20:07 +08:00
Tony Ambardar
b0e052f99b base-files: mount bpffs at boot
Explicitly mount the BPF filesystem if available. This is used for pinning
eBPF programs and maps, making them accessible to other eBPF programs or
from userspace with the help of libbpf or bpftool.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
[daniel@makrotopia.org: bumped PKG_RELEASE]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-08-03 00:19:13 +08:00
Tony Ambardar
d6283216bd kernel: mips: restore missing MIPS32 cBPF JIT
Kernel v5.1 included an eBPF JIT for MIPS32 kernels, but problems were
discovered [1] and the changes later reverted in kernel v5.5 with commits:

  * f8fffebdea75 ("MIPS: BPF: Disable MIPS32 eBPF JIT")
  * 36366e367ee9 ("MIPS: BPF: Restore MIPS32 cBPF JIT")

Only the first of these was backported to LTS kernel 5.4, leaving cBPF
programs without a JIT and introducing a performance regression for any
such users e.g. libpcap, tcpdump, etc.

Restore cBPF performance by backporting the second commit above:
  * 070-v5.5-MIPS-BPF-Restore-MIPS32-cBPF-JIT.patch

[1] https://lore.kernel.org/bpf/20191205182318.2761605-1-paulburton@kernel.org/

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2020-08-03 00:18:37 +08:00
CN_SZTL
87175210f6 Merge Mainline 2020-08-01 03:05:48 +08:00
CN_SZTL
f0c4f73481 Merge Mainline 2020-08-01 02:17:20 +08:00
CN_SZTL
0113142456 kernel: bump 5.4 to 5.4.55
Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-08-01 02:15:38 +08:00
CN_SZTL
e6b52447eb Merge Mainline 2020-07-31 21:46:49 +08:00
Adrian Schmutzler
028d33e9cc ath79: cosmetic fixes for partition node of D-Link DIR-825 B1
Make the node name match the reg property and remove the unused
DT label.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-31 20:27:10 +08:00
Luochongjun
3858cc8c9a ath79: add support for gl-e750
The gl-e750 is a portable travel router that gives you safe access to
the internet while traveling.

Specifications:
- SoC: Qualcomm Atheros AR9531 (650MHz)
- RAM: 128 MB DDR2
- Flash: 16 MB SPI NOR (W25Q128FVSG) + 128 MB SPI NAND (GD5F1GQ4UFYIG)
- Ethernet: 10/100: 1xLAN
- Wireless: QCA9531 2.4GHz (bgn) + QCA9887 5GHz (ac)
- USB: 1x USB 2.0 port
- Switch: 1x switch
- Button: 1x reset button
- OLED Screen: 128*64 px

MAC addresses based on vendor firmware:
LAN *:a0 art 0x0
2.4GHz *:a1 art 0x1002
5GHz *:a2 art calculated from art 0x0 + 2

Flash firmware:
Since openwrt's kernel already exceeds 2MB, upgrading from the official
version of GL-inet (v3.100) using the sysupgrade command will break the
kernel image. Users who are using version 3.100 can only upgrade via
uboot. The official guidance for GL-inet is as follows:
https://docs.gl-inet.com/en/3/troubleshooting/debrick/

In the future, GL-inet will modify the firmware to support the sysupgrade
command, so users will be able to upgrade directly with the sysupgrade
command in future releases.

OLED screen control:
OLED controller is connected to QCA9531 through serial port, and can send
instructions to OLED controller directly through serial port.
Refer to the links below for a list of supported instructions:
https://github.com/gl-inet/GL-E750-MCU-instruction

Signed-off-by: Luochongjun <luochongjun@gl-inet.com>
[fix alphabetic sorting in 10-fix-wifi-mac, drop check-kernel-size]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-31 02:05:31 +08:00
CN_SZTL
d9cd663f1e Merge Mainline 2020-07-30 00:47:11 +08:00
CN_SZTL
2cf36a6b10 Merge Mainline 2020-07-29 23:32:52 +08:00
CN_SZTL
ec012f816a kernel: bump 5.4 to 5.4.54
Resolve conflicted:
- 701-net-0231-enetc-Use-DT-protocol-information-to-set-up-the-port.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-07-29 18:04:27 +08:00
CN_SZTL
e37e44305b mediatek: switch to kernel 5.4 and drop 4.14 2020-07-29 18:02:44 +08:00
CN_SZTL
41c575f63f Merge Mainline 2020-07-29 18:00:36 +08:00
CN_SZTL
8beb28ab29 Merge Mainline 2020-07-29 17:46:34 +08:00
CN_SZTL
284fa3a7b6 target/rockchip: sync with upstream source 2020-07-29 00:19:47 +08:00
Adrian Schmutzler
2a9caf409b arc770: update kernel version to 5.4
Update config with make kernel_oldconfig and copy/refresh patch.

Add CONFIG_WATCHDOG_CORE=y to fix the following error as done for
several targets already:

 Package kmod-hwmon-sch5627 is missing dependencies for the following
 libraries:
 watchdog.ko

Directly switch to kernel 5.4.

This patch is compile-tested only. However, the target is essentially
pure upstream with a single patch, and it has been reported that
kernel 5.4 has been run on this target successfully already.

Note that in my local tests building with all packages/kmods failed
since openvswitch selects libunwind, which doesn't build for arc with
the following error:

checking if we should build libunwind-ptrace... yes
checking if we should build libunwind-setjmp... yes
checking for build architecture... x86_64
checking for host architecture... arc
checking for target architecture... arc
checking for target operating system... linux-gnu
checking for ELF helper width... configure: error: Unknown ELF target: arc
make[3]: *** [Makefile:65: /data/openwrt/build_dir/target-arc_arc700_uClibc/
   libunwind-1.3.1/.configured_68b329da9893e34099c7d8ad5cb9c940] Error 1

Deselecting all kmod-openvswitch* packages will have the build run through.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-28 20:49:14 +08:00
CN_SZTL
61eae149de Merge Mainline 2020-07-28 16:09:13 +08:00
acooler15
aef2479c63 add check and format 'security' parameter in function scan_app , and function connect_ap add bssid option
* check and format security

* apcli add bssid option

* updat PKG_RELEASE to 16
2020-07-28 15:21:35 +08:00
CN_SZTL
1cf3fa37d5 rockchip: distribute net interrupts
This adds a hotplug script for distributing interrupts of eth0 and eth1
across different cores. Otherwise the forwarding performance between
eth0 and eth1 is severely affected.

The existing SMP distribution mechanic in OpenWrt can't be used here, as
the actual device IRQ has to be moved to dedicated cores. In case of
eth1, this is in fact the USB3 controller.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-28 15:13:02 +08:00
CN_SZTL
d9460dc42a Merge Mainline 2020-07-28 03:51:20 +08:00
David Bauer
3cf47cb176 arm64: dts: rockchip: Add txpbl node for RK3399/RK3328
Some rockchip SoCs like the RK3399 and RK3328 exhibit an issue
where tx checksumming does not work with packets larger than 1498.

The default Programmable Buffer Length for TX in these GMAC's is
not suitable for MTUs higher than 1498. The workaround is to disable
TX offloading with 'ethtool -K eth0 tx off rx off' causing performance
impacts as it disables hardware checksumming.

This patch sets snps,txpbl to 0x4 which is a safe number tested ok for
the most popular MTU value of 1500.

For reference, see https://lkml.org/lkml/2019/4/1/1382.

Signed-off-by: Carlos de Paula <me@carlosedp.com>
Link: https://lore.kernel.org/r/20200218221040.10955-1-me@carlosedp.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-28 03:46:45 +08:00
David Bauer
a8cc53b33b fixup! rockchip: add NanoPi R2S support 2020-07-28 03:11:23 +08:00
CN_SZTL
2ccc95ff19 Merge Mainline 2020-07-27 22:24:04 +08:00
CN_SZTL
f7411dbc7c target/rockchip: refresh kernel configs 2020-07-27 21:39:57 +08:00
David Bauer
7573ee64c8 target/rockchip: sync with recently changes from upstream 2020-07-27 20:07:32 +08:00
Adrian Schmutzler
d48423592b lantiq: fix cosmetic issues with partition offsets and sizes
This fixes a few cosmetic issues with partition offset and size
that are inconsistent probably due to copy/pasting.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-27 19:48:19 +08:00
Adrian Schmutzler
78c74b6d2b imx6: use device-tree compatible for board name
In imx6, we currently use the model from DTS to derive a board name
manually in /lib/imx6.sh.

However, if we have individual DTS files anyway, we can exploit
generic 02_sysinfo and use the compatible as board name directly.

While at it, remove the wildcards from /lib/upgrade/platform.sh as
these might make code shorter, but are quite unpleasant when grepping
for a specific device.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-27 19:48:10 +08:00
Adrian Schmutzler
68277e7846 layerscape: harmonize device strings
OpenWrt lately has harmonized device (definition) names to the
pattern vendor_model to improve overall consistency, also with
other values like the DTS compatible.

This patch applies that scheme to the layerscape target.

Since this (intentionally) creates a bigger overlap between DTS names,
compatible, and device definition name, it also moves DEVICE_DTS and
SUPPORTED_DEVICES definitions to the Device/Default blocks.

Apart from that, it also modifies several packages to use consistent
naming in order to keep the $(1) file references working.

While at it, remove one layer of complexity for the setup in
tfa-layerscape package.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-27 19:47:59 +08:00
David Woodhouse
2ecc92d67b target/mediatek: sync with upstream source 2020-07-27 19:47:01 +08:00
Bjoern Dobe
2322bf98c2 ath79: mikrotik: use base mac on lan for RBwAPG-5HacT2HnD
The Mikrotik RBwAPG-5HacT2HnD has only a single ethernet interface
(lan), and the vendor uses the base (label) MAC address for it.

Signed-off-by: Bjoern Dobe <bjoern@dobecom.de>
[commit title/message improvement]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-27 19:43:36 +08:00
Adrian Schmutzler
a7be0052ce mediatek: remove condition in Device/Default
The current condition with part of the variables set dependent on
the subtarget in Device/Default isn't really nice to read and also
defeats the purpose of having a default node.

This removes the special settings for mt7623 and moves them to the
individual devices, which is not much of a problem as there are
actually just two of them and they partly use different settings
anyway.

While at it, slightly adjust the order of variables and wrap some
long lines.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-27 19:43:09 +08:00
Adrian Schmutzler
09f08ef8d6 oxnas: use vendor_model scheme for ox810se
Most newer targets have been converted to consistently use
vendor_model scheme for device definitions/image names, ox820 is
using it as well, so let's just convert ox810se for consistency.

While at it, use generic setup for DEVICE_DTS and add SUPPORTED_DEVICES.
The latter have been introduced for ox820 already in
cf7896117b ("oxnas: enable image metadata by setting SUPPORTED_DEVICES")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-27 19:42:47 +08:00
CN_SZTL
96658e0cfd Merge Mainline 2020-07-27 19:41:46 +08:00
CN_SZTL
628d31dbe1 Merge Mainline 2020-07-27 19:36:31 +08:00
AmadeusGhost
a5eea1bab3 ramips/mtwifi: disable bind apcli interface to lan by default
The apcli interface can be bound to either lan or wan, so cancel the
default settings.
2020-07-27 18:37:22 +08:00
CN_SZTL
155a854f6a Merge Mainline 2020-07-25 20:45:44 +08:00
CN_SZTL
3cd4b8b12d Merge Mainline 2020-07-25 19:59:18 +08:00
CN_SZTL
42eb37e191 Merge Mainline 2020-07-25 19:48:56 +08:00
CN_SZTL
b4bedd7ef9 Merge Mainline 2020-07-25 19:04:37 +08:00
CN_SZTL
34f761d9c5 target/rockchip: fix define of usb 3.0 2020-07-25 18:35:14 +08:00
CN_SZTL
c2bc3f5e91 target/rockchip: backport more patches
Reference: jayanta525/openwrt-nanopi-r2s.
2020-07-25 17:31:57 +08:00
CN_SZTL
abc3581f44 Merge Mainline 2020-07-25 00:27:32 +08:00
CN_SZTL
e0e9a24cc3 Merge Mainline 2020-07-24 20:54:40 +08:00
Hauke Mehrtens
6df36ec6d7 lantiq: Fix warning in SPI driver
This fixes a warning in the SPI driver at bootup. This warning is seen
in kernel 5.4 on lantiq deives.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-07-24 19:59:55 +08:00
CN_SZTL
4df558cc5a target/rockchip: fix dependency 2020-07-24 03:51:17 +08:00
CN_SZTL
4aa6119e75 target/rockchip: add missing dependency 2020-07-24 03:24:00 +08:00
AmadeusGhost
f1a2f32050 luci-app-mtwifi: add wifi relay support (#5168)
* luci-app-mtwifi: add wifi relay support

Source code: Nossiac/mtk-openwrt-feeds
Based on commit 'wireless: wext: remove ndo_do_ioctl fallback'

* luci-app-mtwifi: fix ap-scan failed

* luci-app-mtwifi: show overview when relay is enabled
2020-07-23 22:49:50 +08:00
CN_SZTL
e941758ba2 Merge Mainline 2020-07-23 22:49:02 +08:00
David Bauer
f4321098b5 ramips: switch MT7620 subtarget to 5.4
MT7620 seems to work fine with kernel 5.4. Set the default kernel
version to 5.4 to bring this to a broader audience.

Tested on Archer C2 v1 / Archer C20i

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-23 22:48:49 +08:00
David Bauer
5302c79953 ath79: re-enable image generation for GL-AR750S
The bootloader only writes the first 2MB of the image to the NOR flash
when installing the NAND factory image. The bootloader is capable of
booting larger kernels as it boots from the memory mapped SPI flash.

Disable the NAND factory image. The NAND can be bootstrapped by writing
the NAND initramfs image using the NOR upgrade method in the bootloader
web-recovery and sysupgrading from there. The NOR variant is not
affected.

Also refactor the partition definitions in the DTS to make them less
annoying to read.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-23 22:48:07 +08:00
David Bauer
903f30b801 ramips: increase SPI frequency for MT7620 Archer
Increase the SPI frequency for the MT7620 based TP-Link Archer
series to 30MHz.

TP-Link uses different SPI flash chips for the same board
revision, so be conservative to not break boards with a
different chip. 30MHz should be well supported by all chips.

Tested on Archer C2 v1 (GD25Q64B) and Archer C20i (W25Q64FV).

Archer C20i (before)
====================
root@OpenWrt:~# time dd if=/dev/mtd1 of=/tmp/test.bin bs=64k
122+0 records in
122+0 records out
real	0m 15.30s
user	0m 0.00s
sys	0m 15.29s

Archer C20i (after)
===================
root@OpenWrt:~# time dd if=/dev/mtd1 of=/tmp/test.bin bs=64k
122+0 records in
122+0 records out
real	0m 5.99s
user	0m 0.00s
sys	0m 5.98s

Signed-off-by: David Bauer <mail@david-bauer.net>
Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-23 22:47:48 +08:00
Adrian Schmutzler
1c9cd3b359 arc770: use generic 02_sysinfo
Currently arc770 sets a board name from compatible for no apparent
reason. Just use the compatible directly instead.

This theoretically removes a board name "generic" when no compatible
was present, however, there is no case where this "generic" board
name was actually used.

This also fixes an issue where snps,axs101 would not have been
properly detected anyway, as its case was not set up syntactically
correct.

Fixes: 576621f1e3 ("linux: add support of Synopsys ARC770-based boards")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-23 22:47:18 +08:00
Adrian Schmutzler
5786f1efaa archs38: use generic 02_sysinfo
Currently archs38 sets a board name from compatible for no apparent
reason. Just use the compatible directly instead.

This theoretically removes a board name "generic" when no compatible
was present, however, there is no case where this "generic" board
name was actually used.

This also fixes an issue where snps,axs103 would not have been
properly detected anyway, as its case was not set up syntactically
correct.

Fixes: 73015c4cb3 ("linux: add support of Synopsys ARCHS38-based boards")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-23 22:47:13 +08:00
CN_SZTL
75f51faaab Merge Mainline 2020-07-23 17:42:33 +08:00
CN_SZTL
15871ca98e Merge Mainline 2020-07-23 17:25:14 +08:00
CN_SZTL
0b8a71d166 Merge Mainline 2020-07-23 02:02:02 +08:00
CN_SZTL
5f347d3243 Merge Mainline 2020-07-23 01:20:42 +08:00
CN_SZTL
1fe4e25cff kmod-sched-cake-oot: fix depends 2020-07-23 00:55:21 +08:00
CN_SZTL
074b9da09f Merge Mainline 2020-07-22 21:34:38 +08:00
CN_SZTL
102ed1c668 Merge Mainline 2020-07-22 17:48:51 +08:00
CN_SZTL
69e815a417 kernel: bump 5.4 to 5.4.53
Resolve conflicted:
- 395-v5.8-net-sch_cake-Take-advantage-of-skb-hash-where-appropriate.patch
- 641-sch_cake-fix-IP-protocol-handling-in-the-presence-of.patch

Remove upstreamed:
- 022-v5.8-mtd-rawnand-brcmnand-correctly-verify-erased-pages.patch
- 024-v5.8-mtd-rawnand-brcmnand-fix-CS0-layout.patch
- 742-v5.5-net-sfp-add-support-for-module-quirks.patch
- 743-v5.5-net-sfp-add-some-quirks-for-GPON-modules.patch

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-07-22 16:59:36 +08:00
CN_SZTL
1095ef2dc7 Merge Mainline 2020-07-22 03:31:43 +08:00
CN_SZTL
b1c13dfe62 target/rockchip: rework nanopi-r2s rtl8152 LEDs
Reference: jayanta525/openwrt-nanopi-r2s@d1679edd38.
2020-07-22 03:18:33 +08:00
CN_SZTL
f40c065781 Merge Mainline 2020-07-21 15:13:18 +08:00
CN_SZTL
9506b2d815 Merge Mainline 2020-07-21 14:35:29 +08:00
CN_SZTL
27674e9260 Merge Mainline 2020-07-21 13:55:27 +08:00
CN_SZTL
ce5ee290c9 target/rockchip: drop iqrbanlance 2020-07-21 13:20:42 +08:00
CN_SZTL
9b62880d61 Merge Mainline 2020-07-20 22:56:18 +08:00
CN_SZTL
e5998aedf2 target/rockchip: enable thermal module 2020-07-20 21:29:00 +08:00
CN_SZTL
2a5d05992f Merge Mainline 2020-07-20 18:11:30 +08:00
CN_SZTL
774a16483a Merge Mainline 2020-07-20 17:58:33 +08:00
CN_SZTL
049df6eded Merge Mainline 2020-07-20 01:32:24 +08:00
CN_SZTL
ab3b31991a Merge Mainline 2020-07-20 00:06:48 +08:00
CN_SZTL
3689a1b5ef target/rockchip: add default packages 2020-07-19 21:04:55 +08:00
CN_SZTL
67c3cb0870 target/ramips: mt7621: fix typo error 2020-07-19 20:50:49 +08:00
CN_SZTL
203af7e529 target/ramips: XiaoMi AC2100: unlock BootLoader 2020-07-19 20:12:07 +08:00
CN_SZTL
758881dc27 mt-drivers/mt7615d: enable LED control 2020-07-19 20:10:10 +08:00
CN_SZTL
f2c53c3f81 target/ramips: sync with recently changes from Lean 2020-07-19 20:08:03 +08:00
CN_SZTL
030785fa60 kernel/crypto: add rk3328 crypto support
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-07-19 18:02:52 +08:00
CN_SZTL
cbe0f5269d Merge Mainline 2020-07-19 15:05:53 +08:00
CN_SZTL
f6049b8d42 target/rockchip: allow higher frequency 2020-07-19 11:50:27 +08:00
CN_SZTL
80198f886f target/rockchip: enable thermal module 2020-07-19 11:41:24 +08:00
CN_SZTL
523ea0f65f Merge Mainline 2020-07-18 22:06:12 +08:00
CN_SZTL
cacdf88ce6 Merge Mainline 2020-07-18 21:37:55 +08:00
CN_SZTL
a05a50c212 sunxi: switch to kernel 5.4 2020-07-18 14:52:23 +08:00
CN_SZTL
50d65eacd1 kernel/4.19: drop outdated patch 2020-07-18 14:40:55 +08:00
CN_SZTL
e5d384584a target/rockchip: improve r2s support 2020-07-18 14:08:23 +08:00
CN_SZTL
efb6f74258 Merge Mainline 2020-07-18 13:43:33 +08:00
Salvatore Mesoraca
0e287eab00 ramips: add arl_table support for MT7530
Use switch.h API to expose MT7530's ARL table to
user space.

Signed-off-by: Salvatore Mesoraca <salvatore@samknows.com>
2020-07-18 13:32:39 +08:00
David Bauer
6cdea00cac rockchip: add NanoPi R2S support
Hardware
--------
RockChip RK3328 ARM64 (4 cores)
1GB DDR4 RAM
2x 1000 Base-T
3 LEDs (LAN / WAN / SYS)
1 Button (Reset)
Micro-SD slot
USB 2.0 Port

Installation
------------
Uncompress the OpenWrt sysupgrade and write it to a micro SD card using
dd.

MAC-address
-----------
The vendor code supports reading a MAC address from an EEPROM connected
via i2c0 of the SoC. The EEPROM (address 0x51) should contain the MAC
address in binary at offset 0xfa. However, my two units didn't come with
such an EEPROM soldered on. The EEPROM should be placed between the SoC
and the GPIO pins on the board. (U10)

Generating rendom MAC addresses works around this issue. Otherwise, all
boards running the same image have identical MAC addresses.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-18 13:25:53 +08:00
David Bauer
df6134528b rockchip: allow for multiple boot-scripts
Add support for select a bootscript depending on the device built. This
is necessary, as the FriendlyARM NanoPi R2S needs a different bootcmd in
order to produce output on the debug UART.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-18 13:25:47 +08:00
David Bauer
f11241f0fc base-files: add function for generating random MAC
This adds a function for generating a valid random MAC address (unset MC
bit / set locally administered bit).

It is necessary for devices which do not have a MAC address programmed
by the manufacturer.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-18 13:25:37 +08:00
David Bauer
e0582ab4bf uboot-rockchip: add NanoPi R2S support
Add support for the FriendlyARM NanoPi R2S.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-18 13:25:21 +08:00
David Bauer
12dac33b23 uboot-rockchip: update to v2020.07
Update the U-Boot to version v2020.07. Also replace the Makefile rewrite
with a proper patch, explaining why this hack is needed.

Run-tested: FriendlyARM NanoPi R2S

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-18 13:25:02 +08:00
Lucian Cristian
c3ce089078 atf-rockchip: update to 2.3
also install the firmware for all the supported boards

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
[fix ATF blob path in uboot-rockchip]
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-18 13:24:44 +08:00
CN_SZTL
735fed7a18 target/rockchip: drop garbage codes 2020-07-18 13:24:35 +08:00
AmadeusGhost
dc2f0cf368 ramips/mt7621: re-added hwnat support for kernel 5.4 (#5120)
* ramips: mt7621.dtsi: add missing pinctrl to ethernet node

Add rgmii1_pins (1st GMAC) and mdio_pins to ethernet node
pinctrl to ensure they are set to correct mode

* ramips: kernel: ralink-eth support mt7621

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>

* ramips: some devices use ralink-eth driver

Also re-added mt7621 hwnat support for some devices.

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: AmadeusGhost <amadeus@openjmu.xyz>

* ramips/mt7621: re-added hwnat support

Co-authored-by: LGA1150 <dqfext@gmail.com>
Co-authored-by: Chen Minqiang <ptpt52@gmail.com>
2020-07-18 01:18:45 +08:00
CN_SZTL
c9787e86db mtk-eip93: move to ctcgfw 2020-07-18 00:58:18 +08:00
CN_SZTL
018633c100 target/mt7621: fix typo 2020-07-17 23:39:15 +08:00
CN_SZTL
daeabbdf23 target/mt7621: enable hw crypto 2020-07-17 23:34:39 +08:00
CN_SZTL
102c3f1a52 Revert "ipq40xx: merge all ar40xx patches into one single patch"
This reverts commit 6904465982 and 9c7c886eba.
2020-07-17 19:02:09 +08:00
CN_SZTL
15a791c6ba Merge Mainline 2020-07-17 18:58:14 +08:00
CN_SZTL
48b563cf18 Merge Mainline 2020-07-17 17:41:41 +08:00
CN_SZTL
68296dc307 Merge Mainline 2020-07-17 17:09:50 +08:00
CN_SZTL
ac1153ba1b Merge Upstream 2020-07-16 23:07:03 +08:00
John Crispin
6904465982 ipq40xx: fix ethernet vlan double tagging
As the the SoC uses implicit vlan tagging for dual MAC support, the
offload feature breaks when using double tagging.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: John Crispin <john@phrozen.org>
2020-07-16 20:39:52 +08:00
John Crispin
9c7c886eba ipq40xx: merge all ar40xx patches into one single patch
Signed-off-by: John Crispin <john@phrozen.org>
2020-07-16 20:38:47 +08:00
John Crispin
2950c057b4 mediatek: backport latest pci/e driver from upstream
Signed-off-by: John Crispin <john@phrozen.org>
2020-07-16 20:37:23 +08:00
John Crispin
78a790477c mediatek: generate UBI images for the rev board
Signed-off-by: John Crispin <john@phrozen.org>
2020-07-16 20:37:12 +08:00
John Crispin
458e03c93b mediatek: minor fix to eip97 driver
This patch makes the driver work on the newer v2.3 core.

Signed-off-by: John Crispin <john@phrozen.org>
2020-07-16 20:36:58 +08:00
CN_SZTL
dc78a80d9f Merge Upstream 2020-07-16 20:36:17 +08:00
CN_SZTL
ad98ac5065 kernel: bump 5.4 to 5.4.52
Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-07-16 20:31:57 +08:00
David Bauer
c945b45947 rockchip: don't disable timer LED trigger
The timer LED trigger is enabled in all targets (except for lantiq
xway-legacy). It's necessary for the OpenWrt preinit LED pattern to
work.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-16 20:23:19 +08:00
David Bauer
59bb5e002f rockchip: use downstream GPIO button implementation
Use the OpenWrt netlink GPIO button implementation to forward button
presses to procd. This is necessary to make failsafe-mode access
using a button possible.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-16 20:23:06 +08:00
CN_SZTL
6dfbbfb43b duktape: drop dependency of python 2020-07-14 10:26:36 +08:00
CN_SZTL
421859180c Merge Mainline 2020-07-13 21:58:50 +08:00
CN_SZTL
89b4dd5541 luci-app-sfe: drop kernel limitation 2020-07-12 23:58:59 +08:00
CN_SZTL
bc11a5b764 mt-drivers: fix dependency 2020-07-12 23:29:00 +08:00
AmadeusGhost
c3991c204a Merge Mainline 2020-07-12 18:15:13 +08:00
AmadeusGhost
518e5e5c00 ramips: add mt7621 hwcrypto engine support 2020-07-12 18:08:03 +08:00
AmadeusGhost
fc4afdfaa9 ipq806x: m520: fix startup on kernel 4.19/5.4 (thx chilauhe) 2020-07-12 18:02:22 +08:00
Chuanhong Guo
d687105133 ath79: qihoo,c301: use phy-supply for usb vbus
Linux phy subsystem provides support for a phy regulator defined via
phy-supply property. Use it to turn on usb power only when usb is
probed.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-07-12 17:56:05 +08:00
Daniel González Cabanelas
390523eb27 bcm63xx: R5010UNv2: fix flash partitions for 16MB flash
The router Nucom R5010UN v2 has the partitions defined for a 8MB flash,
but the flash chip is 16MB size. We are wasting half of the flash.

Fix it and use generic names for partitions.

Fixes: 474cde6123 ("brcm63xx: probe SPI flash through DT")

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-07-12 12:37:55 +08:00
DENG Qingfang
6c0e96bfd3 ramips: mt7621: refactor set affinity script
The current one only looks for mt76x2e and mt7603e, and
does not work for 2 or more same Wi-Fi chips.
Refactor the script to cover those cases.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-07-12 12:36:45 +08:00
Sebastian Kemper
d4dfec8578 ltq-vmmc: update permission handling
The firmware is currently just copied. It can end up with o= on the
device (this is the case for voice_ar9_firmware.bin for instance).
Instead of copying it the Makefile is changed to use the macro
"$(INSTALL_DATA)" in order for the file to be world-readable.

While at it refactor the device node creation in the init script with
loop.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
[removed 2nd part with custom group handling for device nodes]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-07-12 12:36:12 +08:00
Yangbo Lu
9956949859 layerscape: define IMAGE_SIZE and LS_SYSUPGRADE_IMAGE_SIZE
Define 64m IMAGE_SIZE for flash firmware.bin since the flash size
is 64MB. Define 48m LS_SYSUPGRADE_IMAGE_SIZE for flash sysupgrade.bin
which contains maximum 16MB kernel and 32MB rootfs according to
memory map.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-07-12 12:35:26 +08:00
Yangbo Lu
f27a015e1c layerscape: support sysupgrade for SD card ext4 rootfs
Support sysupgrade for SD card ext4 rootfs.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-07-12 12:34:59 +08:00
Yangbo Lu
f56ec5ddd1 layerscape: support sysupgrade for squashfs rootfs
Support sysupgrade for all Layerscape boards with squashfs
rootfs.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-07-12 12:34:26 +08:00
Yangbo Lu
93a59cfa0e layerscape: fix board name for SD card boot
Many Layerscape boards support both flash boot and SD card boot.
And different firmware and sysupgrade.bin are built for the two
boot methods. To identify them, a fix could be done on board name
by adding a postfix "-sdboot" for SD card boot.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-07-12 12:34:00 +08:00
Yangbo Lu
8264e55005 layerscape: add compatible for board ls1043ardb
Backport a dts patch which added compatible for ls1043ardb.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-07-12 12:33:34 +08:00
Yangbo Lu
40d5b48399 layerscape: convert to squashfs rootfs for QSPI NOR boot
There had been an issue in Layerscape QSPI driver for very long
time, which made squashfs,jffs2 rootfs not work on QSPI NOR.
And the ubifs had been used as a workaround.
Now the issue has been fixed. So convert to use squashfs,jffs2
rootfs on QSPI NOR for Layerscape boards (LS1012ARDB/LS1046ARDB/
LS1088ARDB), and update u-boot bootargs for booting.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-07-12 12:33:12 +08:00
Alexey Dobrovolsky
1992609fc0 ramips: kernel: fix awake-rt305x-dwc2 patch
At this point in v5.4 kernel we cannot use dwc2_readl() and
dwc2_writel() since they rely on the value hsotg->needs_byte_swap
which cannot be obtained before the controller wakes up.
We should use readl() and writel() to wake up the controller before
calling dwc2_check_core_endianness().

Fixes: 6be0da90a1 ("ramips: refresh patches")
Signed-off-by: Alexey Dobrovolsky <dobrovolskiy.alexey@gmail.com>
[fixed Fixes: tag]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-07-12 12:32:17 +08:00
Willem van den Akker
8bbf42f174 lantiq: set correct gphy pins for Zyxel P-2812
This fixes the gphy LED pins for Zyxel P-2812 devices. The have
been accidentally altered during a tidy-up operation (see Fixes:
below).

No ports were available, dmesg reported:

[ 0.658577] pinctrl-xway 1e100b10.pinmux: pin io5 already requested by
            1e100bb0.stp; cannot claim for 1e108000.eth
[ 0.667566] pinctrl-xway 1e100b10.pinmux: pin-5 (1e108000.eth) status -22
[ 0.685238] lantiq,xrx200-net 1e108000.eth: Error applying setting,
            reverse things back
[ 0.693270] lantiq,xrx200-net: probe of 1e108000.eth failed with error -22

Fixes: FS#3188
Fixes: 660200e53d ("lantiq: dts: assign the GPHY LED pins to the
Ethernet controller node")

Suggested-by: Mathias Kresin <dev@kresin.me>
Signed-off-by: Willem van den Akker <wvdakker@wilsoft.nl>
[commit message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-12 12:30:01 +08:00
CN_SZTL
4cc3ccb124 kernel: bump 5.4 to 5.4.51
Remove upstreamed:
* 350-MIPS-Add-missing-EHB-in-mtc0-mfc0-sequence-for-DSPen.patch

Resolve conflicted:
* 0024-MIPS-lantiq-revert-DSA-switch-driver-PMU-clock-chang.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-07-10 22:46:01 +08:00
David Woodhouse
b26db66233 mediatek: fix bashism in gen_banana_pi_img.sh
There was a bashism in the script. This fixes the script so that it
doesn't actually require bash, and can be run with any POSIX shell as
its shebang suggests.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-10 12:17:18 +08:00
Sungbo Eo
c70db1130b mediatek: re-add u3phy2 phy-switch patch
This patch is required for pcie@2,0 in mt7623 to work. The patch was originally
added in kernel 4.14, but it has not been ported to 4.19 and later.

Fixes: FS#3217
Tested-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-07-10 12:16:54 +08:00
Sungbo Eo
f36d6904b0 mediatek: do not create device nodes in uci-defaults script
Since commit 298814e6be ("base-files: config_generate: split macaddr with
multiple ifaces") uci MAC address setup will create a device node for each
member iface. But this script might override the device nodes and interfere
with the MAC address setup.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-07-10 12:16:24 +08:00
David Woodhouse
2393ccbac5 mediatek: Implement sysupgrade support for Banana Pi R2
Based on work by Alexey Loukianov <lx2@lexa2.ru> and others.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:30:46 +08:00
David Woodhouse
93ba50fbc0 mediatek: store MAC address in boot partition on Banana Pi R2
Like many boards, the Banana Pi R2 doesn't have permanant storage of
its MAC address, and we store the first random one that the kernel
generates in order to use it later and at least be consistent.

Store it in the FAT boot partition, just as the U7623 board (and others)
do.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:27:35 +08:00
David Woodhouse
9ab244a39e mediatek: add SD card image creation for Banana Pi R2
Based on work by Alexey Loukianov <lx2@lexa2.ru> and others.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:27:01 +08:00
David Woodhouse
d2fb51a58b mediatek: use U-Boot FAT environment support for Banana Pi R2
Instead of building in a default environment which loads our environment
from the FAT partition....  just ask U-Boot to do it.

Submitted upstream at
https://patchwork.ozlabs.org/project/uboot/list/?series=184688

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:25:11 +08:00
David Woodhouse
91066899a5 mediatek: fix U-Boot pinctrl setup for mt7623 eMMC
The U-Boot pinctrl driver for mt7623 was incomplete and didn't handle the
settings required for eMMC to work.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:24:44 +08:00
David Woodhouse
87d1671a9e mediatek: add mt7623 u-boot build for Banana Pi R2
For building full SD/eMMC images for Banana Pi R2 we'll want a u-boot
image built for that platform.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:24:06 +08:00
David Woodhouse
ba6d9543c9 mediatek: new mt7623n preloader package for Banana Pi
Download the boot preloader code from the Banana Pi github repo and make
it available for bootable SD card image creation.

Supports only Banana Pi R2 for now.

Based on work by Alexey Loukianov <lx2@lexa2.ru> and others.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:23:20 +08:00
David Woodhouse
8d61b31b77 mediatek: enable SATA for mt7623
The MT7623 SoC has the same SATA block as the MT7622, so enable it in
MT7623 builds too and add it to the DEVICE_PACKAGES for those boards.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:22:54 +08:00
David Woodhouse
f7f0fc3bf9 mediatek/mt7623: unify features and packages, add ext4 and usb
The supported MT7623 boards are mostly identical (what with being a
System-on-Chip and all), so unify the DEVICE_PACKAGES for them, and add
ext4 and usb support for them.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:22:29 +08:00
David Woodhouse
5ce68e9e16 firmware-utils/ptgen: allow explicit placement of partitions
For Banana Pi R2 we need to place the U-Boot partition at precisely 0x50000.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:22:03 +08:00
David Woodhouse
8fd47b1698 mediatek: mt7623: refresh 5.4 kernel config
Some options were not explicitly specified, causing the kernel build to
drop to interactive mode. Set the missing options.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-07-09 12:21:32 +08:00
John Audia
def5f18a6d ipq806x: compile in schedutil governor
Gives users a third option to augment ondemand and performance. Kernel
docs[1] explain differences and this PR empowers users w/ the choice to
select between the older ondemand and newer and more simplistic schedutil
should they wish to use one that is not the performance governor.

1. Documentation/admin-guide/pm/cpufreq.rst

Signed-off-by: John Audia <graysky@archlinux.us>
[fixed From: to match SoB:]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-07-09 12:20:43 +08:00
Furkan Alaca
554b45fbda ramips: mt7621: use lzma-loader for ra21s & rg21s
The rg21s fails to boot if the kernel is larger than about
2,376 KiB. The ra21s is virtually identical hardware.
Enabling lzma-loader resolves the issue on both the rg21s
and ra21s (see FS#3057 on the issue tracker).

Fixes: FS#3057
Signed-off-by: Furkan Alaca <furkan.alaca@queensu.ca>
2020-07-09 12:20:13 +08:00
AmadeusGhost
1a9e4e80ff Merge Mainline 2020-07-08 12:15:03 +08:00
Hans Dedecker
ce0ee2f756 nat46: fix translation of ICMP protocol unreachable
Refresh patch

1182f30 nat46-core: Fix translation of ICMP protocol unreachable

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2020-07-08 12:08:43 +08:00
David Bauer
0f26adcd61 build: conditionally enable testing-kernel feature
Only enable the testing-kernel feature for the target when the testing
kernel version does not match the stable kernel version.

This way, the option for building the testing kernel in the build config
menu is only exposed when there's a testing kernel available.

Signed-off-by: David Bauer <mail@david-bauer.net>
Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-08 12:07:43 +08:00
Lars Wessels
4d7cc90afb lantiq: added switch-config for ARV752DPW
Add missing switch config (4 LAN-Ports + CPU).

Grey WAN port (used for ADSL) is not part of the switch.

Signed-off-by: Lars Wessels <software@bytebox.org>
[rework commit message]
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-08 12:07:04 +08:00
Lars Wessels
d2f0e1b42f lantiq: wifi mac fix for ARV752DPW
Set wifi mac from flash partition 'board_config' to
match the label on the device (Easybox 802).

Currently the wifi mac is always set to 00:0c:43:28:60:00.
eth0 and WiFi will now share the same mac (as in original firmware).

Signed-off-by: Lars Wessels <software@bytebox.org>
[improve commit message]
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-08 12:06:38 +08:00
Matthew Gyurgyik
f15f2487ec kernel/pcengines-apu2: detect apuv4 board
Upstream commit 3d00da1de3 ("platform/x86: pcengines-apuv2: detect apuv4
board")

On 5.4, this module fails on APUv4 due to non-matching DMI data. With this
patch, the module will match DMI data for the APUv4.

Signed-off-by: Matthew Gyurgyik <matthew@gyurgyik.io>
[include upstream patch description]
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-07-08 12:04:26 +08:00
CN_SZTL
bc6fae0672 Merge Mainline 2020-07-07 17:41:18 +08:00
AmadeusGhost
d85993ac98 mtwifi: update dual 7615 config (Thx zmzhuai and MeIsReallyBa) (#5025) 2020-07-07 17:40:42 +08:00
Aleksander Jan Bajkowski
a20c5ea6be lantiq: set port numbers corresponding to reg value
Fix inconsistencies found in DTS files and sort ethernet ports based on
updated names.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
[squash two separate patches, rephrase commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-07 12:37:31 +08:00
Aleksander Jan Bajkowski
dcf67df51f lantiq: remove redundant includes from fritz736x DTS files
The removed lines are already included in vr9_avm_fritz736x.dtsi

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
[rephrase commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-07 12:36:54 +08:00
Martin Blumenstingl
63615fc040 lantiq: dts: Move the &usb_vbus nodes out of &gpio
Move the USB VBUS regulator nodes out of the GPIO controller node. This
fixes a problem where the "regulator-fixed" driver wasn't probed for
these regulators because the GPIO driver doesn't scan the child-nodes
and based on the dt-bindings documentation it's not supposed to.

This fixed the following error reported by Luca Olivetti:
  ...
  dwc2 1e101000.usb: DWC OTG Controller
  dwc2 1e101000.usb: new USB bus registered, assigned bus number 1
  dwc2 1e101000.usb: irq 62, io mem 0x1e101000
  dwc2 1e101000.usb: startup error -517
  dwc2 1e101000.usb: USB bus 1 deregistered
  dwc2 1e101000.usb: dwc2_hcd_init() FAILED, returning -517

Fixes: FS#1634
Cc: Luca Olivetti <luca@ventoso.org>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2020-07-07 12:35:43 +08:00
Sunguk Lee
5e32eb2c13 ramips: reduce spi-max-frequency for ipTIME A8004T
Reduce spi-max-frequency for ipTIME A8004T and disable
m25p,fast-read option.

In this case, openwrt can't detect the partition information,
it would write the inccorect data to the firmware partition and
also it would occur the bootlooping after sysupgrade.

Signed-off-by: Sunguk Lee <d3m3vilurr@gmail.com>
[minor commit title/message adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-07 12:35:14 +08:00
Adrian Schmutzler
f196ac4e1d ipq806x: move serial0 to DTSI files
All device DTS files in the target set the serial0 property to the
same value (*). So, let's move the definitions to the DTSI files.

That's also where the kernel defines it (qcom-ipq8064-v1.0.dtsi).

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-07 12:34:29 +08:00
Adrian Schmutzler
8153668700 ipq806x: move stdout-path to DTSI files
All device DTS files in the target set the stdout-path to the same
value. So, let's move the definitions to the DTSI files.

That's also where the kernel defines it (qcom-ipq8064-v1.0.dtsi).

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-07 12:32:27 +08:00
Adrian Schmutzler
dcc841e50f ipq806x: disentangle and clean up SoC DTSI files
So far, the DTSI files on ipq806x had a linear inheritance:

  qcom-ipq8064.dtsi
  v
  qcom-ipq8064-v1.0.dtsi
  v
  qcom-ipq8064-v2.0.dtsi
  v
  qcom-ipq8065.dtsi

This poses problems when one wants to set something that is specific
to an architecture closer to the top of the tree.

In this patch, we remove the chain-like inheritance and have all
other files derived from qcom-ipq8064.dtsi (changing this name to
something more generic is not possible due to upstream use).

The removal of inheritance will require a few entries to be copied
from qcom-ipq8064-v2.0.dtsi to qcom-ipq8065.dtsi. However, it also
opens an opportunity for some clean-up:

- Many definitions can be improved by just using the innermost labels.

- Instead of disabling the CPU_SPC node for ipq8065, it is now off by
  default and enabled where needed.

- Instead of patching phy-tx0-term-offset into qcom-ipq8064.dtsi and
  then having it changed for qcom-ipq8064-v2.0/qcom-ipq8065, just have
  the appropriate settings done in the lower DTSI files directly.

- For the opp_table0 adjustments for ipq8065, just redefine what's
  changed, but don't add all the untouched properties again.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-07 12:30:30 +08:00
Sungbo Eo
d2a662d482 ipq806x: move common pinmux nodes to SoC DTSI
As almost same pinmux nodes are repeated in each device dts,
let's define them once in the ipq8064 dtsi and remove the rest.

* uart0_pins : Did not touch.
* i2c4_pins  : This node seems to be not used at all in dts.
               Added the most common form in the dtsi. Did not touch rpm_pins.
* spi_pins   : The common mux node is already present in the dtsi.
               Removed the duplicate nodes from dts.
* nand_pins  : Moved the entire node.
* mdio0_pins : Moved the common mux node.
* rgmii2_pins: Moved the common mux node. "pins" property is overrided in ap161.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-07-07 12:29:52 +08:00
AmadeusGhost
01ff13c79f Merge Mainline 2020-07-07 12:02:51 +08:00
coolsnowwolf
04383e7dc9 wireless: wext: remove ndo_do_ioctl fallback 2020-07-06 12:56:53 +08:00
coolsnowwolf
58bc0d0c85 default-settings: remove sqm.zh-cn.po 2020-07-06 12:37:04 +08:00
CN_SZTL
e139ce8eb2 uci: roll back to 2019-05-17 2020-07-06 12:36:52 +08:00
AmadeusGhost
e6e5a536b9 ramips: adjust device settings 2020-07-06 12:32:29 +08:00
AmadeusGhost
2a4bc4a3ef mtwifi: add mt7603 and mt7612 support (Thx MeIsReallyBa and TangHaili) 2020-07-06 12:26:10 +08:00
coolsnowwolf
5bce2927c6 ipq40xx: less ess_edma ipv6 log output 2020-07-06 12:13:20 +08:00
coolsnowwolf
e143c31d57 ramips:improve R6850 support 2020-07-06 12:12:48 +08:00
AmadeusGhost
9de0e1582f Merge Mainline 2020-07-05 21:36:02 +08:00
Scott Roberts
2de813f94a mvebu: config define i2c pxa slave
We are setting CONFIG_I2C_PXA is not set
If you do set pxa to y then you have issues if you do not have
CONFIG_I2C_PXA_SLAVE is not set

Fixes: dd13add3ce ("kernel: i2c-pxa: remove slave")
Signed-off-by: Scott Roberts <ttocsr@gmail.com>
2020-07-05 13:35:18 +08:00
Hauke Mehrtens
b497128b5f kernel: Update kernel 5.4 to version 5.4.50
Run tested: ath79, ipq40xx
Build tested: ath79, ipq40xx

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-07-05 13:29:49 +08:00
Hauke Mehrtens
83ee408688 kernel: Fix ath79 DSP exception at bootup
This resolves a hazard between a mtc0 and a mfc0 instruction after
activating the DSP support. Without this fix the CPU could use the old
value again and the DSP support would not be active.

Fixes: FS#2928, FS#2899
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de> [ath79/tl-wdr3600; ath79/tl-wdr4300]
Tested-by: David Bauer <mail@david-bauer.net> [ocedo_koala/ocedo_raccoon]
2020-07-05 11:40:48 +08:00
AmadeusGhost
633037bc6c Merge Mainline 2020-07-04 12:12:57 +08:00
John Audia
08781d0058 ipq806x: refresh config
Based on "make kernel_menuconfig CONFIG_TARGET=generic" and 5.4.49

CONFIG_LEDS_TRIGGER_DISK has been removed by the refresh and added
back manually in order to not revert f93fcf8923 ("ipq806x: enable
disk-activity LED trigger").

Signed-off-by: John Audia <graysky@archlinux.us>
[extend commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-04 12:08:27 +08:00
Adrian Schmutzler
8340bc6786 ath79: drop redundant status for gpio target-wide
All definitions of gpio in SoC DTSI files do not set status, i.e.
have it enabled. This drops all remaining redundant "status = okay"
definitions in descendent files (mostly older ones).

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-04 12:06:32 +08:00
Adrian Schmutzler
d7cc2aa901 ath79: enable gpio on ar933x by default
All other SoC DTSI files have gpio enabled by default, only
ar9330/ar9331 disable it by default, only to have it enabled again
afterwards for each individual device.

So, do not disable it in the first place, and drop all device-specific
status statements afterwards.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-04 12:05:04 +08:00
doveki
344007a517 ramips: mt7621: update Xiaomi Mi Router 4 2020-07-03 18:08:43 +08:00
Sungbo Eo
f68103e88c ath79: rearrange nand node by register address
All other nodes in the DTS are placed in order of address space. Harmonize
the nand nodes as well.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-07-03 12:38:36 +08:00
AmadeusGhost
88819f8ee0 generic/5.4: patch kernel to support sfe 2020-07-02 23:16:12 +08:00
AmadeusGhost
5600477a3d Merge Mainline 2020-07-02 18:39:46 +08:00
Álvaro Fernández Rojas
dbb5c33f82 ath10k-ct: update to version 2020-06-30
Backports commit "a1769bb68a850508a492e3674ab1e5e479b11254", which reverts
upstream commit "76d164f582150fd0259ec0fcbc485470bcd8033e" (ath10k: fix DMA
related firmware crashes on multiple devices).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-07-02 11:38:21 +08:00
AmadeusGhost
09caf07d9a ipq806x/5.4: fix pcie probe with some bootcmd 2020-07-01 12:18:21 +08:00
Kevin Darbyshire-Bryant
81ff917f00 kernel: cake: backport upstream tweaks & fixes
From upstream:
b8392808eb3f sch_cake: add RFC 8622 LE PHB support to CAKE diffserv handling
3f608f0c4136 sch_cake: fix a few style nits
8c95eca0bb8c sch_cake: don't call diffserv parsing code when it is not needed
9208d2863ac6 sch_cake: don't try to reallocate or unshare skb unconditionally

From netdev not yet accepted:
sch_cake: fix IP protocol handling in the presence of VLAN tags

The VLAN tag handling is actually wider than just cake so upstream are
working out how to fix it generically.  We fix it here just for cake.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2020-07-01 12:08:17 +08:00
Kevin Darbyshire-Bryant
3a6828fc6a kernel: cake: backport unused var patch to 5.4
This was backported to 4.19 and I clearly expected it to land in 5.4 but
it didn't (5.5) so backport it to 5.4 for consistency.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2020-07-01 12:00:18 +08:00
Kevin Darbyshire-Bryant
742d90ccaa kernel: cake: renumber backport patches
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2020-07-01 11:58:30 +08:00
ElonH
cb297f222e feat(fuse): add dependence of fuse-utils
Rclone can mount cloud storage by fuse-utils
2020-06-29 23:58:57 +08:00
ElonH
98e997e88d luci-app-rclone: fixed dependences 2020-06-29 23:58:13 +08:00
AmadeusGhost
f7604f933a rockchip: refresh config 2020-06-29 18:09:44 +08:00
Jayantajit Gogoi
767914185d rockchip: add support for FriendlyARM NanoPi R2S
Instruction:
- LAN: rtl8153
- WAN: rtl8211E

Signed-off-by: Jayantajit Gogoi <jayanta.gogoi525@gmail.com>
2020-06-29 18:00:29 +08:00
Jayantajit Gogoi
1544c2246e rockchip: add support for rk3328 radxa rock pi e
Signed-off-by: Jayantajit Gogoi <jayanta.gogoi525@gmail.com>
2020-06-29 17:59:59 +08:00
Adrian Schmutzler
e23478870f treewide: simplify inclusion of subtarget image files
Many target use a repetitive if-include scheme for their subtarget
image files, though their names are consistent with the subtarget
names.

This patch removes these redundant conditions and just uses the
variable for the include where the target setup allows it.

For sunxi, this includes a trivial rename of the subtarget image
Makefiles.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-29 17:59:32 +08:00
Tobias Mädel
aac14fcc2e rockchip: add support for Pine64 RockPro64
This adds the new rockchip target and support for RockPro64 RK3399

Flash:    16 MiB SPI NOR
RAM:      2 GiB/4 GiB LPDDR4
SoC:      RK3399
USB:      2x USB 2.0, 1x USB 3.0, 1x USB-C
Ethernet: 1x GbE
PCIe:     PCIe 2.0, 4 lanes
Storage:  eMMC or SD card
Optional SDIO wifi/bt module

The Pine64 RockPro64 is a single-board-computer with a 4x PCIe connector,
6 ARM64 cores (4 little, 2 big), plenty of RAM and storage.

By default the single Gigabit-Ethernet port is configured as the
LAN port.

Installation of the firware is possible by dd'ing the image
to an SD card or the eMMC flash.

Serial: 3v3 1500000 8n1

U-boot is build from the mainline tree and
integrated into the images. Required ATF to build u-boot
is downloaded from a CI build bot.

Signed-off-by: Tobias Mädel <t.maedel@alfeld.de>
Tested-by: Tobias Schramm <t.schramm@manjaro.org>
2020-06-29 17:59:06 +08:00
Tobias Mädel
3fa1ff6b91 uboot-rockchip: add new package
This package is needed for the rockchip target.

Signed-off-by: Tobias Mädel <t.maedel@alfeld.de>
Tested-by: Tobias Schramm <t.schramm@manjaro.org>
2020-06-29 17:58:35 +08:00
Tobias Mädel
7e3008e13c arm-trusted-firmware-rockchip: add new package
This is needed to build the uboot-rockchip, needed for the rockchip target

Signed-off-by: Tobias Mädel <t.maedel@alfeld.de>
Tested-by: Tobias Schramm <t.schramm@manjaro.org>
[replaced `mkdir -p` with INSTALL_DIR variable]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-29 17:58:11 +08:00
AmadeusGhost
e316266768 ramips: k2p: adjust vlan configuration 2020-06-29 17:54:27 +08:00
David Bauer
0d72554e6a ath79: replace custom uImageArcher generation
The replaces the custom uImageArcher build step with the generic uImage
build step. The only different between these two is the difference in
the generated name.

Tested on: TP-Link Archer C59 v1

Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-06-29 12:04:30 +08:00
Adrian Schmutzler
aada5fdb0d mvebu: move definition of factory.img out of Device/Default
The Device/Default definition in mvebu defines an IMAGE/factory.img
which is not included in IMAGES, and only used twice in the
individual definitions. Move it out of the default definition
to keep it closer to the reassignment of IMAGES and make it more
consistent with respect to other values of IMAGE/factory.img

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-29 12:03:53 +08:00
Adrian Schmutzler
ad31f59741 ath79: do not build TP-Link tiny images by default
For quite some time, the tiny (4M flash) TP-Link sysupgrade and
factory images cannot be built anymore by the buildbots, just
the initramfs-kernel.bin files are still there.

Disable these images for the buildbots and prevent useless builds.

Note that these devices still build fine with default settings,
even for kernel 5.4.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-29 12:02:57 +08:00
AmadeusGhost
ea0f145c3e Merge Mainline 2020-06-28 18:16:21 +08:00
Adrian Schmutzler
72694a19d8 mvebu: remove non-existant board name solidrun,clearfog-a1
In 02_network, the board name solidrun,clearfog-a1 is used in a
case, but it does not seem to be used/exist anywhere else in OpenWrt.

The valid strings are:
- solidrun,clearfog-pro-a1
- solidrun,clearfog-base-a1

Fixes: 12795ec9f1 ("mvebu: split interface configuration for
clearfog pro and base")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-28 11:55:01 +08:00
Hauke Mehrtens
96250e41ed uboot-kirkwood: Revert "uboot-kirkwood: enable sata in nsa310 uboot"
This reverts commit 930f3c0148.

The build fails with the following build error:
arm-openwrt-linux-muslgnueabi-ld.bfd: drivers/built-in.o: in function `ide_init':
build_dir/target-arm_xscale_musl_eabi/u-boot-nsa310/u-boot-2020.04/drivers/block/ide.c:750: undefined reference to `ide_preinit'
make[4]: *** [Makefile:1700: u-boot] Error 1

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-06-28 11:54:38 +08:00
Aleksander Jan Bajkowski
6e2770178e lantiq: remove unused PHY drivers on xrx200
All boards on xrx200 use builtin switch and there is no supported device
with external switch.
It was copy paste from xway subtarget and was added in commit 18b76c66fb.

Save 20.3 kB flash memory.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2020-06-27 12:35:50 +08:00
Qin Wei
b61395e2a4 ramips: fix sd polling
This is fixed in 18.06, it appears again in 19.07.
Currently mt7628 sdcard driver do not support polling mode which is for
the device do not have card-detect pin to detect sd card insert. Without
this patch, device will not detect sdcard is inserted. This patch is a
fix of that.

Signed-off-by: Qin Wei <support@vocore.io>
2020-06-27 12:35:24 +08:00
Scott Roberts
c54f6a700d kernel: i2c-pxa: remove slave
Removing i2c pxa slave

The i2c-pxa is typically not use in slave mode. It does not make sense
to have slave mode enabled by default.
Having slave mode enabled prevents the i2c controller from being reset
if a real slave device such as an SFP is attached to the i2c-pxa bus and
locks it up.
Disable slave mode so that the i2c controller can be reset if the bus is
locked up.
If someone actually has a need for pxa slave mode this can be enabled in
kernel config.

Signed-off-by: Scott Roberts <ttocsr@gmail.com>
2020-06-27 12:35:01 +08:00
Alberto Bursi
e310f7b493 uboot-kirkwood: enable sata in nsa310 uboot
the uboot of nsa310 cannot use the network chip
as it is a realtek on the PCIe lanes and not a
Marvell ethernet from the SoC.

Therefore tftp is not possible on this device
and the only way to install is by loading files
from a USB drive.
If the USB subsystem is dead there is no way to
install OpenWrt.
Enable sata support and commands so it can be
used as a fallback in case of USB issues.

Signed-off-by: Alberto Bursi <bobafetthotmail@gmail.com>
2020-06-27 12:34:18 +08:00
Florian Eckert
050d91a5b0 target/hack-5.4: platform/x86/pcengines: revert led simswich compromise
With this change the LED subsystem is abused in the kernel to switch the
simswap. This change will be reverted, so we could use again the gpio
subsystem.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-06-27 12:28:35 +08:00
Adrian Schmutzler
d2e4554bd2 ath79: drop and consolidate redundant chosen/bootargs
In ath79, for several SoCs the console bootargs are defined to the
very same value in every device's DTS. Consolidate these definitions
in the SoC dtsi files and drop further redundant definitions elsewhere.

The only device without any bootargs set has been OpenMesh OM5P-AC V2.
This will now inherit the setting from qca955x.dtsi

Note that while this tidies up master a lot, it might develop into a
frequent pitfall for backports.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-26 12:32:53 +08:00
Adrian Schmutzler
9ce66b01e7 ramips: drop redundant chosen/bootargs
chosen/bootargs are defined to the same value in device DTS files
that is already set in the SoC DTSI. Remove the redundant definitions.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-26 12:27:46 +08:00
AmadeusGhost
a420784ef3 Update CONTRIBUTED.md 2020-06-26 00:04:07 +08:00
AmadeusGhost
a0539f468b mt-wifi: bump to 5.0.4.0 2020-06-25 19:00:23 +08:00
AmadeusGhost
b7f6684091 Revert "mtwifi: remove outdated package"
This reverts commit 5a192cf749.
2020-06-25 18:35:11 +08:00
AmadeusGhost
9dde07cf0e x86/i386: add missing 5.4 config 2020-06-24 19:50:02 +08:00
CN_SZTL
f000ebc1ee Merge Mainline 2020-06-24 18:29:27 +08:00
Edward Matijevic
2fa01e122c bcm47xx: add support for NETGEAR R6200 V1
This patch adds supports for the NETGEAR R6200 V1
This device is mainlined in Linux as of 5.4

Specification:
   - SOC: Broadcom BCM4718A1 (480 MHz)
   - Flash: 16MB (Macronix MX25L128)
   - RAM: 128MB DDR2
   - SWITCH: BCM53125
   - Ethernet: 5x GE (1 WAN + 4 LAN, Inverted order)
   - WLAN 2.4G: In SOC
   - WLAN 5GHz: miniPCIe card, BCM4352 (ID: 4360)
   - USB: 1x USB 2.0 port (Type A)
   - Buttons: Reset, WLAN, WPS
   - LED: Amber for Power, others need a workaround
   - UART: 1x UART on PCB

LED Issues: They are controlled by a 74HC164 via bit banging(GPIO 6/7)

Firmware Install Instructions
=============================
Using the device specific .chk, use that file to perform
a normal device upgrade in the OEM admin page.

Signed-off-by: Edward Matijevic <motolav@gmail.com>
2020-06-24 12:08:32 +08:00
Jose Olivera
77b7203160 mvebu: fix default EU regdomain for Linksys WRT AC devices
The mwlwifi driver sets the default country code for EU (fi-
rmware region code 0x30) certified devices to FR (France),
not DE (Germany). Whilst this is a trivial fix, novice users
may not know how mwlwifi negatively reacts to a non-matching
country code and may leave the setting alone. Especially si-
nce it is under the advanced settings section in LuCI.

The mwlwifi driver readme states "Please don't change country
code and let mwlwifi set it for you." However, OpenWrt's current
behaviour does not adhere to this with its default, 'just flashed
from factory' setting for EU devices.

Signed-off-by: Jose Olivera <oliverajeo@gmail.com>
[rebase, extend commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-24 12:05:46 +08:00
Petr Štetiar
6bb53d7728 armvirt,x86: fix build breakage of crypto ccp module
Upstream in commit f9f8f0c24203 ("crypto: ccp -- don't "select"
CONFIG_DMADEVICES") removed dependency on CONFIG_DMADEVICES symbol which
leads to build breakage of ccp crypto module, so fix this by adding that
symbol back in the kernel config.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-24 12:05:03 +08:00
Petr Štetiar
39e6189308 kernel: bump 5.4 to 5.4.48
Resolved merge conflict in the following patches:

 layerscape: 701-net-0213-dpaa2-eth-Add-CEETM-qdisc-support.patch
 ramips: 0013-owrt-hack-fix-mt7688-cache-issue.patch

Refreshed patches, removed upstreamed patch:

 bcm63xx: 020-v5.8-mtd-rawnand-brcmnand-fix-hamming-oob-layout.patch

Run tested: qemu-x86-64
Build tested: x86/64

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-23 12:10:47 +08:00
Daniel González Cabanelas
55a1e6da25 bcm63xx: AV4202N: add missing PCI pinmux
The ADB P.DG AV4202N device has a wifi chipset connected via PCI. But the
PCI pinmux is missing and without it the wifi won't work properly.

Add the pinctrl_pci to enable the missing PCI pins for this device.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-06-23 12:08:34 +08:00
Petr Štetiar
664266bd89 ath79: image: fix initramfs for safeloader devices
Currently it's not possible to tftpboot initramfs image on archer-c7-v5
as the image contains tplink-v1-header which leads to:

 ath> bootm
 ## Booting image at 81000000 ...
 Bad Magic Number

as U-Boot expects uImage wrapped image.

where tplink-v1 defines KERNEL_INITRAMFS with tplink-v1-header and it's
then used by all devices inheriting from tplink-safeloader. Fix this by
overriding KERNEL_INITRAMFS to KERNEL variable again.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-23 12:07:59 +08:00
CN_SZTL
6be0617500 Merge Mainline 2020-06-21 00:39:01 +08:00
Daniel González Cabanelas
608af4a820 bcm63xx: DGND3700v1: fix port order
Fix the switch LAN labels for the DGND3700v1/DGND3800B router,
the order is reversed.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
[cut out of bigger patch, adjust commit title/message accordingly]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-20 12:00:49 +08:00
Daniel González Cabanelas
e1035ff107 bcm63xx: HG622: enable LAN LEDs
The Huawei Echolife HG622 has hardware controlled LAN LEDs.

Add the ephy led pinctrl to let the router show LAN activity on these
LEDs.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-06-20 12:00:32 +08:00
Adrian Schmutzler
ebe7a8750d ath79: set &eth1 status for TP-Link CPE devices in parent DTSI
The status is set to "okay" for all devices on ar9344, so just move
this to the parent DTSI.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-19 11:59:50 +08:00
Kuan-Yi Li
87980872d2 base-files: gpio switch: add named GPIO support
Previously, gpio_switch only accepts GPIO pin number as input. Once a
GPIO pin is exported and named by device tree, its pin state cannot be
configured and saved across reboots by UCI.

This patch adds support for named GPIO pins. Thus GPIO pin can be
exported by device tree with active high/low correctly configured,
having human-readable name in /sys/class/gpio/ is also now possible.

More importantly, GPIO pins which are referenced by name will be immune
from pin mapping breakage while unintentional pin number changes are
introduced by kernel or driver updates.

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2020-06-19 11:58:15 +08:00
Hannu Nyman
2ac58fa26e ath79: define CONFIG_MFD_RB4XX_CPLD to fix build breakage
Define the kernel config symbol CONFIG_MFD_RB4XX_CPLD=n
to fix build breakage on non-mikrotik targets.

The driver was added for all ath79, but the symbol was only
defined for mikrotik subtarget.

Fixes: fa70b3a4bb ("ath79: add Mikrotik rb4xx series drivers")

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
[rearrange commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-18 08:09:09 +08:00
Adrian Schmutzler
bbf4c59df9 lantiq: drop "CONFIG_HZ_100 is not set"
CONFIG_HZ_100 is not set to "y" in generic config anymore since
3a761c90af ("treewide: Don't diverge from upstream default HZ
settings on 4.19"), so we don't need to disable it anymore either.

This was the only remaining case in the entire tree.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-18 08:08:34 +08:00
Petr Štetiar
360a484ced kernel: bump 5.4 to 5.4.46
Refreshed patches.

Run tested: qemu-x86-64, wrt3200acm
Build tested: x86/64, imx6, mvebu/cortexa9, sunxi/a53

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-17 12:08:25 +08:00
Petr Štetiar
2bf0673832 mvebu: fix bootloader kernel commandline mangling
Currently I'm unable to boot initramfs image with `console=ttyS0,115200`
kernel commandline as the kernel commandline mangling resets kernel
commandline if there is no `root=` option provided, efectively clearing
whatever I pass to the kernel, making the `root=` option mandatory.

So if the kernel commandline mangling is not appropriate just leave the
kernel commandline as it is.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-17 12:06:23 +08:00
Sungbo Eo
da99b21736 mediatek: mt7623: refresh kernel 5.4 config
By running make kernel_oldconfig and selecting relevant options.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-06-17 12:05:53 +08:00
Daniel González Cabanelas
761099ebba bcm63xx: use the generic nand upgrade on Sercomm devices
The Sercomm devices don't need the jffs2 cleanmarkers for the kernel
partition. With the stock firmware they are only added when the
bootloader partition is upgraded.

Furthermore, on the Sercomm H500-s, the specific cfe_jffs2_upgrade_tar
function causes OOB corruption. As a result of this, combined with the
nature of the mtdsplit driver, the upgrade procedure ends in a bricked
device.

Use the generic nand_do_upgrade provided by the OpenWrt common functions.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-06-17 12:05:19 +08:00
Adrian Schmutzler
0f249ca5da mediatek: fix IPv4-only corner case and commit in 99-net-ps
The uci config section network.globals set up in /bin/config_generate
will only be created if /proc/sys/net/ipv6 exists.

Correspondingly, lacking IPv6 support, the command
uci set network.globals.packet_steering=1
will fail with "uci: Invalid argument" as the network.globals config
has not been set up.

Fix that by adding the setup there as well.

While at it, limit the uci commit to the network config file.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-17 12:04:46 +08:00
Adrian Schmutzler
85f984b9eb treewide: drop shebang from non-executable target files
This drops the shebang from all target files for /lib and
/etc/uci-defaults folders, as these are sourced and the shebang
is useless.

While at it, fix the executable flag on a few of these files.

This does not touch ar71xx, as this target is just used for
backporting now and applying cosmetic changes would just complicate
things.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-17 12:04:16 +08:00
Adrian Schmutzler
29c42508bf base-files: remove shebang from uci-defaults files
uci-defaults are sourced and non-executable, so they do not require
a shebang.

While at it, apply consistent naming scheme.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-17 12:02:04 +08:00
AmadeusGhost
a006bbea67 Merge Mainline 2020-06-16 18:20:13 +08:00
Christopher Hill
bb05e8143f ath79: add support for MikroTik RouterBOARD 493G (rb4xx series)
This patch adds support for the MikroTik RouterBOARD RB493G, ported
from the ar71xx target.

See https://routerboard.com/RB493G for details

Specification:
- SoC Qualcomm Atheros AR7161
- RAM: 256 MiB
- Storage: 128MiB NAND
- Ethernet: 9x 1000/100/10 Mbps
- USB 1x 2.0 / 1.0 type A
- PCIe: 3x Mini slot
- MicroSD slot

Working:
- Board/system detection
- Ethernet
- SPI
- NAND
- LEDs
- USB
- Sysupgrade

Enabled (but untested due to lack of hardware):
- PCIe - ath79_pci_irq struct has the slot/pin/IRQ mappings if needed

Installation methods:
- tftp boot initramfs image, scp then flash via "sysupgrade -n"
- nand boot existing OpenWrt, scp then flash via "sysupgrade -n"

Notes:
- initramfs image will not work if uncompressed image size over ~8.5Mb
- The "rb4xx" drivers have been enabled

Signed-off-by: Christopher Hill <ch6574@gmail.com>
2020-06-16 12:05:24 +08:00
Christopher Hill
dcbc57b508 ath79: add Mikrotik rb4xx series drivers
This adds 3 Mikrotik rb4xx series drivers as follows:

rb4xx-cpld: This is in the mfd subsystem, and is the parent CPLD device
that interfaces between the SoC SPI bus and its two children below.
rb4xx-gpio: This is the GPIO expander.
rb4xx-nand: This is the NAND driver.

The history of this code comes in three phases.

1. The first is a May 2015 attempt to push the equivalient ar71xx rb4xx
drivers upstream. See https://lore.kernel.org/patchwork/patch/940880/.

Module-author: Gabor Juhos <juhosg@openwrt.org>
Module-author: Imre Kaloz <kaloz@openwrt.org>
Module-author: Bert Vermeulen <bert@biot.com>

2. Next several ar71xx patches were applied bringing the code current.

commit 7bbf4117c6
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

commit af79fdbe4a
commit 889272d92d
commit e21cb649a2
commit 7c09fa4a74
Signed-off-by: Felix Fietkau <nbd@nbd.name>

3. Finally a heavy refactor to split the driver into the three new
subsystems, and updated to work with the device tree configuration, plus
updates and review feedback incorporated

Reviewed-by: Thibaut VARÈNE <hacks@slashdirt.org>
Signed-off-by: Christopher Hill <ch6574@gmail.com>
2020-06-16 12:01:15 +08:00
Christopher Hill
83766c51aa ath79: patch upstream Mikrotik rb4xx-spi driver to be device tree aware
Backport upstream patches that make drivers/spi/spi-rb4xx.c device tree
aware, plus a null pointer fix.

Signed-off-by: Christopher Hill <ch6574@gmail.com>
2020-06-16 12:00:31 +08:00
Daniel González Cabanelas
913c0b61e4 bcm63xx: a226m-fwb: fix linux partition offset
The Pirelli A226M-FWB has a wrong linux partition offset, caused
by a copy-paste error. As of result of this, OpenWrt is currently
broken in this unit.

Fix it.

While at it, also use generic node names and fix the addresses
there as well.

Fixes: a27d59bb42 ("brcm63xx: switch to new partition layout
specification")

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
[also fix/update node names, extend commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-16 11:58:07 +08:00
David Bauer
d48ec56e9a ath79: ag71xx: don't warn on RGMII_RXID and RGMII_TXID
Currently, ag71xx will trigger a warning when TX xor RX-Delay modes are
enabled.

Handle them identical to the already implemented RGMII modes, as they
are only different for the attached PHY.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-06-16 11:57:09 +08:00
Adrian Schmutzler
2646aee68c ramips: fix IPv4-only corner case in 01_enable_packet_steering
The uci config section network.globals set up in /bin/config_generate
will only be created if /proc/sys/net/ipv6 exists.

Correspondingly, lacking IPv6 support, the command
uci set network.globals.packet_steering=1
will fail with "uci: Invalid argument" as the network.globals config
has not been set up.

Fix that by adding the setup there as well.

Fixes: dfd62e575c ("ramips: enable packet steering by default on mt7621")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-15 12:15:06 +08:00
David Bauer
42d8bd456f ipq40xx: check kernel-size for NBG6617
The ZyXEL NBG6617 has a separate kernel partition which is 4MiB large.

Add the kernel size to validate the kernel won't be bigger than this
fixed limit.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-06-15 12:13:45 +08:00
DENG Qingfang
398c2d87ac ipq40xx: disable DSA and Switchdev
ipq40xx is still using swconfig based switch management. This might
change in he future, however disable the DSA and Switchdev support for
now.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
[rephrased commit message]
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-06-14 11:21:23 +08:00
Sven Eckelmann
413c07cf33 ipq40xx: essedma: Disable TCP segmentation offload for IPv6
It was noticed that the the whole MAC can hang when transferring data from
one ar40xx port (WAN ports) to the CPU and from the CPU back to another
ar40xx port (LAN ports). The CPU was doing only NATing in that process.

Usually, the problem first starts with a simple data corruption:

  $ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.4.0-amd64-netinst.iso -O /dev/null
  ...
  Connecting to saimei.ftp.acc.umu.se (saimei.ftp.acc.umu.se)|2001:6b0:19::138|:443... connected.
  ...
  Read  error at byte 48807936/352321536 (Decryption has failed.). Retrying.

But after a short while, the whole MAC will stop to react. No traffic can
be transported anymore from the CPU port from/to the AR40xx PHY/switch and
the MAC has to be resetted.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Acked-by: John Crispin <john@phrozen.org>
2020-06-14 11:09:55 +08:00
Adrian Schmutzler
96c8960aad ramips: drop useless label-mac-device for RouterBOARD 750Gr3
With the new driver, MAC addresses are not set up in DTS anymore,
and therefore label-mac-device will be useless there.

Setup is done properly in 02_network, so this just removes the
obsolete alias.

Fixes: 5e50515fa6 ("ramips/mt7621: mikrotik: don't use
mtd-mac-address in DTS")

Suggested-by: John Thomson <git@johnthomson.fastmail.com.au>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-14 11:09:25 +08:00
Adrian Schmutzler
9ef6dd9562 bcm47xx: move device definitions to subfiles
With several subtargets, the image/Makefile becomes crowded after a
while. Many targets have moved their device definitions to $subtarget.mk
files to have them more organized, let's do this here as well.

Cc: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-14 11:08:28 +08:00
Stijn Tintel
94ed5b1d54 ath79: enable wrgg MTD splitter
This is required for the D-Link DAP-2695-A1.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2020-06-12 12:17:02 +08:00
Stijn Tintel
e64de3da65 mtd: enable wrgg support for ath79
This is required for the D-Link DAP-2695-A1.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2020-06-12 12:16:34 +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
Chen Minqiang
8dbca10d14 ramips: add ramoops dts 2020-06-11 18:16:21 +08:00
Chen Minqiang
78527a150d ramips: enable pstore 2020-06-11 18:15:58 +08:00
Álvaro Fernández Rojas
5bba255dff bcm63xx: switch to upstream NAND patches
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-11 17:58:03 +08:00
Adrian Schmutzler
8208ae9f30 apm821xx: move device definitions to subfiles
With several subtargets, the image/Makefile becomes crowded after a
while. Many targets have moved their device definitions to $subtarget.mk
files to have them more organized, let's do this here as well.

While at it, also move subtarget-specific build recipes.

Cc: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Christian Lamparter <chunkeey@gmail.com>
2020-06-11 12:19:01 +08:00
Adrian Schmutzler
c2999beca3 ath79: rename DTSI for Netgear WNDR devices based on ar7161
This renames the DTSI for Netgear WNDR devices based on ar7161 to
indicate that the file is not limited to WNDR3700 models.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-11 12:11:51 +08:00
Adrian Schmutzler
d394a9944f ramips: limit uci commit to the changed config file
Since 01_enable_packet_steering only touches the network config,
limit the uci commit to this as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-11 12:11:17 +08:00
Felix Fietkau
cc46bdf855 ramips: add mt7621 ethernet driver improvements
- Speed up MDIO bus access
- Improve performance on tx completion

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-06-11 12:10:41 +08:00
Felix Fietkau
5098fe8b85 kernel: backport upstream DSA GRO support
Should improve performance

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-06-11 12:10:14 +08:00
Felix Fietkau
4d215d2148 ramips: enable packet steering by default on mt7621
It provides a significant performance boost, especially with flow offloading
enabled

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-06-11 12:09:50 +08:00
Daniel Golle
e849ba54ad oxnas: build with 8021Q VLAN support
CONFIG_VLAN_8021Q was explicitely disabled in oxnas kernel config.
Don't do that, so VLANs can be used on the target.

Fixes: dcc34574ef ("oxnas: bring in new oxnas target")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-06-10 12:15:58 +08:00
Petr Štetiar
9778a02591 kernel: bump 5.4 to 5.4.45
Fixes CVE-2020-10757 via upstream commit df4988aa1c96 ("mm: Fix mremap
not considering huge pmd devmap").

Resolved merge conflict in the following patches:

 bcm27xx: 950-0128-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch

Refreshed patches, removed upstreamed patch:

 generic: 751-v5.8-net-dsa-mt7530-set-CPU-port-to-fallback-mode.patch
 generic: 754-v5.7-net-dsa-mt7530-fix-roaming-from-DSA-user-ports.patch

Run tested: qemu-x86-64
Build tested: x86/64, imx6, sunxi/a53

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-10 12:15:08 +08:00
John Crispin
4b993d11d7 mediatek: fix image/mt7622.mk
Signed-off-by: John Crispin <john@phrozen.org>
2020-06-08 12:29:28 +08:00
Álvaro Fernández Rojas
e22f9e8dca bcm63xx: bcm6328: switch to upstream boot sel patch
BCM6328 boot selection fix has been upstreamed.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-08 12:29:00 +08:00
Daniel González Cabanelas
bb897cc8be bcm63xx: add support for the Sercomm H500-s
Sercomm H500-s is an xDSL dual band wireless router based on Broadcom
BCM63167 SoC.

Hardware:
   SoC:          Broadcom BCM63167
   CPU:          BMIPS4350 V8.0, 400 MHz, 2 cores
   Flash:        NAND 128 MiB
   RAM:          DDR3 128 MiB
   Ethernet:     4x 10/100/1000 Mbps
   Switch:       BCM53134S
   Wireless:     802.11b/g/n: BCM435f (integrated)
                 802.11ac:    Quantenna QT3740BC (onboard SoC)
   USB:          1x 2.0
   LEDs/Buttons: 11x / 2x

Flash instruction, web UI:
  1. Reset to defaults using the reset button if the admin password is
     unknown
  2. Login into the web UI as admin.
     Address:  http://192.168.0.1
     User:     admin
     Password: VF-ESVodafone-H-500-s or l033i-h500s
  3. Go to Settings -> Firmware Update, and select the Openwrt factory
     firmware
  4. Update the firmware.
  5. Wait until it finish, the device will reboot with Openwrt installed
     on the alternative image partitions keeping the stock firmware in
     the former.

Notes:
  - The patch also adds support for the lowi version. Only the factory
    firmware is different.
  - The integrated Wifi in the Broadcom Soc isn't still supported.
  - The Quantenna 802.11ac wifi works ok, but needs to be configured with
    the Quantenna client application. It can't be configured with Luci
    nor any iw command since it's a separated subsystem linked via
    ethernet.
  - The BCM53134S external switch is managed via MDIO which isn't
    supported in this target. Therefore it will behave as a dumb switch.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-06-08 12:28:32 +08:00
Álvaro Fernández Rojas
20e43d7699 bcm63xx: image: support device-specific load address
Some CFEs are located at the address currently used for relocation and lzma
loader load address, so we need to provide a way to override it.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-08 12:23:29 +08:00
Daniel González Cabanelas
50819c6642 bcm63xx: image: don't add the CFE to the sercomm factory
There is no need to include the CFE bootloader in the Sercomm factory
images.

There might be a case when this could be useful:
  - We are running the stock firmware on the first Sercomm image
  - The second partition storing the botloader was erased (unlikely)
Even in this case flashing an image without a bootlader is harmless.

Don't include the bootloader in the factory image creation and rid of the
risk of flashing factory images with an untested bootloader partition.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-06-08 12:22:35 +08:00
Daniel González Cabanelas
5ac9452176 bcm63xx: kernel: add BCM63167 cpuid variant
The BCM63167 is a BCM63268 SoC with a different physical packaging.

Add the CPU ID to allow supporting routers with this SoC (i.e Sercomm
H500-s)

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
2020-06-08 12:22:09 +08:00
Álvaro Fernández Rojas
c59f592a67 bcm63xx: vr-3032u: add missing compatible property
SoC is a BCM63168.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-08 12:21:30 +08:00
Álvaro Fernández Rojas
060404193b bcm63xx: vg-8050: add missing compatible property
SoC is a BCM63169.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-08 12:21:05 +08:00
John Crispin
2a0088d6e4 mediatek: add mt7531 DSA support
Signed-off-by: John Crispin <john@phrozen.org>
2020-06-08 12:18:07 +08:00
John Crispin
82ad4e9bcc mediatek: add bpi-r64 emmc support
Signed-off-by: John Crispin <john@phrozen.org>
2020-06-08 12:16:52 +08:00
John Crispin
f8f418f330 mediatek: make emmc image generation work on mt7622
Signed-off-by: John Crispin <john@phrozen.org>
2020-06-08 12:16:11 +08:00
John Crispin
35fc4e5be1 mediatek: switch over to extended upstream eip97 driver
Signed-off-by: John Crispin <john@phrozen.org>
2020-06-08 12:15:41 +08:00
Sungbo Eo
219a4a024f mediatek: tidy up image subtarget Makefiles
- sort device recipes alphabetically
- adjust board name of ELECOM WRC-2533GENT
- harmonize line wrapping

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
[rebased]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-08 12:13:55 +08:00
AmadeusGhost
2115e1b978 Merge Mainline 2020-06-07 18:16:02 +08:00
CN_SZTL
05c36e29c6 Merge Mainline 2020-06-06 22:57:01 +08:00
CN_SZTL
bef3c8f54e Merge Mainline 2020-06-06 22:28:48 +08:00
Kevin Darbyshire-Bryant
445b8a7f52 kernel: sch_cake: use skb hash improve wireguard compatibility
While the other fq-based qdiscs take advantage of skb->hash and doesn't
recompute it if it is already set, sch_cake does not.

This was a deliberate choice because sch_cake hashes various parts of the
packet header to support its advanced flow isolation modes. However,
foregoing the use of skb->hash entirely loses a few important benefits:

- When skb->hash is set by hardware, a few CPU cycles can be saved by not
  hashing again in software.

- Tunnel encapsulations will generally preserve the value of skb->hash from
  before the encapsulation, which allows flow-based qdiscs to distinguish
  between flows even though the outer packet header no longer has flow
  information.

It turns out that we can preserve these desirable properties in many cases,
while still supporting the advanced flow isolation properties of sch_cake.
This patch does so by reusing the skb->hash value as the flow_hash part of
the hashing procedure in cake_hash() only in the following conditions:

- If the skb->hash is marked as covering the flow headers (skb->l4_hash is
  set)

AND

- NAT header rewriting is either disabled, or did not change any values
  used for hashing. The latter is important to match local-origin packets
  such as those of a tunnel endpoint.

The immediate motivation for fixing this was the recent patch to WireGuard
to preserve the skb->hash on encapsulation. As such, this is also what I
tested against; with this patch, added latency under load for competing
flows drops from ~8 ms to sub-1ms on an RRUL test over a WireGuard tunnel
going through a virtual link shaped to 1Gbps using sch_cake. This matches
the results we saw with a similar setup using sch_fq_codel when testing the
WireGuard patch.

Fixes: 046f6fd5daef ("sched: Add Common Applications Kept Enhanced (cake) qdisc")
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2020-06-06 12:18:14 +08:00
DENG Qingfang
b3008938c6 mvebu: remove ClearFog Pro SUPPORTED_DEVICES
A direct upgrade from previous swconfig version with
incompatible settings to DSA will break the internet.
Remove SUPPORTED_DEVICES so users cannot upgrade directly.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
[rebase after Linksys rename, adjust title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-06 12:17:13 +08:00
Paul Spooren
191ced3559 mvebu: rename Linksys devices based on their common names
The Linksys devices in mvebu target feature a mixed naming,
where parts are based on the official product name (device
node, image; e.g. WRT3200ACM) and parts are based on the
internal code name (DTS file name, compatible, LED labels;
e.g. rango). This inconsistent naming has been perceived
as quite confusing.

A recent attempt by Paul Spooren to harmonize this naming
in kernel has been declined there. However, for us it still
makes sense to apply at least a part of these changes
locally.

Primarily, this patch changes the compatible in DTS and thus
the board name used in various scripts to have them in line
with the device, model and image names. Due to the recent
switch from swconfig to DSA, this allows us to drop
SUPPORTED_DEVICES and thus prevent seamless upgrade between
these incompatible setups.

However, this does not include the LED label rename from
Paul's initial patch: I don't think it's worth keeping the
enormous diff locally for this case, as we can implement
this much easier in 01_leds if we have to live with the
inconsistency anyway.

Signed-off-by: Paul Spooren <mail@aparcar.org>
[rebase, extend to all devices, drop DT LED changes]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-06-06 12:16:41 +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
DENG Qingfang
452e5c16b1 generic: mt7530: support adjusting EEE
Add support for adjusting EEE with ethtool

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:24:17 +08:00
DENG Qingfang
09d398ac18 generic: mt7530: fix roaming from DSA user ports
When a client moves from a DSA user port to a software port in a bridge,
it cannot reach any other clients that connected to the DSA user ports.
That is because SA learning on the CPU port is disabled, so the switch
ignores the client's frames from the CPU port and still thinks it is at
the user port.

Fix it by enabling SA learning on the CPU port.

To prevent the switch from learning from flooding frames from the CPU
port, set skb->offload_fwd_mark to 1 for unicast and broadcast frames,
and let the switch flood them instead of trapping to the CPU port.
Multicast frames still need to be trapped to the CPU port for snooping,
so set the SA_DIS bit of the MTK tag to 1 when transmitting those frames
to disable SA learning.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:23:45 +08:00
DENG Qingfang
f381d7055e generic: fix DSA VLAN filtering
Currently enabling VLAN filtering blocks all traffic in the bridge
immediately. That is because DSA ignores all VLAN setup when VLAN
filtering is disabled, and when it is enabled, there is no VLAN entry
in the VLAN table, causing all traffic to be blocked.

Add patches to allow VLAN setup even if VLAN filtering is disabled.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:22:42 +08:00
DENG Qingfang
2dc8a32250 generic: mt7530: set CPU port to fallback mode
Currently, setting a bridge's self PVID to other value and deleting
the default VID 1 renders untagged ports of that VLAN unable to talk to
the CPU port:

	bridge vlan add dev br0 vid 2 pvid untagged self
	bridge vlan del dev br0 vid 1 self
	bridge vlan add dev sw0p0 vid 2 pvid untagged
	bridge vlan del dev sw0p0 vid 1
	# br0 cannot send untagged frames out of sw0p0 anymore

That is because the CPU port is set to security mode and its PVID is
still 1, and untagged frames are dropped due to VLAN member violation.

Set the CPU port to fallback mode so untagged frames can pass through.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:21:47 +08:00
Felix Fietkau
e8a762af78 kernel: fix portability issue with perf on linux 5.4
Remove dependencies on core kernel headers in host tools used to build perf,
which break on any non-linux system

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-06-05 12:21:19 +08:00
DENG Qingfang
5ee51ffe55 mvebu: rename Linksys Mamba WAN port
Rename it to wan to match Linksys Armada 385 series

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:19:54 +08:00
DENG Qingfang
33f1758c8a mvebu: remove swconfig package
Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:19:16 +08:00
DENG Qingfang
5d91935ff7 generic: backport mv88e6xxx port mirroring support
Backport port mirroring support for mv88e6xxx

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:18:51 +08:00
DENG Qingfang
0e2dcf1fef mvebu: drop 06_set_iface_mac preinit script
MAC address is set in board.d script
Interface swapping is not needed anymore as switching to DSA breaks
previous configuration anyway

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:18:13 +08:00
DENG Qingfang
8b201a06f5 mvebu: use ucidef to set up MAC address
Use ucidef to set up MAC address instead of preinit script

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:17:29 +08:00
DENG Qingfang
f84d88d2d4 mvebu: use eth0 as DSA CPU port for Linksys WRT
eth0 has HW MAC address while eth2 does not.
Use eth0 instead so we don't have to set LAN MAC manually.
Disable unused eth2, until multi CPU port is supported.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:16:22 +08:00
DENG Qingfang
191c992f39 mvebu: update default config for DSA
Update network/LED configuration for DSA driver.
sysupgrade from images prior to this commit with config preserved
will break the ethernet.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:15:33 +08:00
DENG Qingfang
8483693a5d mvebu: remove swconfig symbols from kernel config
Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:14:35 +08:00
DENG Qingfang
600febb000 mvebu: drop swconfig patches
Drop swconfig patches for Clearfog and Linksys WRT

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-06-05 12:12:45 +08:00
Tim Harvey
0fd583ecc3 octeontx: fix mcp251x can controller
Update the can-mcp251x-convert-to-half-duplex-SPI patch to fix reception

Some SPI host controllers such as the Cavium Thunder TX do not support
full-duplex SPI. Using half-duplex transfers allows the driver to work
with those host controllers.

This patch fixes the fact that mcp251x_hw_rx_frame was still relying on
a full-duplex transfer where bits were being shifted on MOSI at the same time
as MISO. After splitting the transaction into a spi_write_then_read() care
must be taken to ignore the first byte.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2020-06-05 12:06:38 +08:00
Tim Harvey
8e45ded19b octeontx: fix gpio irq request
This fixes a regression in 5.4 that causes a crash when a driver requests
an ARM GPIO for an IRQ.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2020-06-05 12:06:10 +08:00
Tim Harvey
01d89d79d9 octeontx: refresh kernel 5.4 config
refresh kernel config by running make kernel_menuconfig and saving changes

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2020-06-05 12:05:30 +08:00
Tim Harvey
aeda2d3ed2 imx6: image: increase max ubifs file-system size
The latest 2GiB NAND flash parts used by Gateworks ventana are 2K page-size.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2020-06-05 12:04:19 +08:00
Tim Harvey
ce5e77684e imx6: backport v5.8 imx6qdl-gw dt patches
- add fxos8700 support to GW52xx/GW53xx/GW54xx
- add USB_OTG support to GW552x
- add LSM9DS1 IMU support to GW560x
- add LSM9DS1 IMU support to GW5904
- add CC1352 UART to GW5910
- add BCM4330 support to GW5910
- fix wlan regulator for GW5910

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2020-06-05 12:03:47 +08:00
AmadeusGhost
db3b7c767b Merge Mainline 2020-06-04 18:38:04 +08:00
Álvaro Fernández Rojas
733e1434ef bcm63xx: vg-8050: fix WFI partition size
Each image can take up to 0x3d60000, which means 128k more per image.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-04 17:45:41 +08:00
Álvaro Fernández Rojas
5e8e1f6f6b bcm63xx: vr-3032u: fix WFI partition size
Each image can take up to 0x3d60000, which means 128k more per image.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-04 17:45:10 +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
Tobias Schramm
70b5a104fa ramips: mt7621: use higher SPI clock speed on Mikrotik rbm11g and rbm33g
Previously the dts were using a value determined by empirical testing,
because of a spi driver/clock bug. The bug was fixed quite some time
ago. 33 MHz is the default clock frequency used by RouterBOOT and thus
safe.

Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
2020-06-04 12:35:54 +08:00
Sungbo Eo
5bf66b323e bcm47xx: fix brcm-wl module loading
_dma_cache_wback_inv needs to be exported to load wl module successfully.

root@OpenWrt:/# insmod wl
[  363.867779] wl: Unknown symbol _dma_cache_wback_inv (err -2)
failed to insert /lib/modules/5.4.40/wl.ko

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
Cc: Rafał Miłecki <rafal@milecki.pl>
2020-06-04 12:35:18 +08:00
Johann Neuhauser
e76e330c53 ath79: phy-ar7200-usb: do not print error on defered init
This is only a cosmetic correction, as the driver works as expected.
However, the error message confuses users about a missing reset definition.

On a defered init we don't see the following error message now:
[    0.078292] ar7200-usb-phy usb-phy: phy reset is missing

Tested-by: Lech Perczak <lech.perczak@gmail.com>
Signed-off-by: Johann Neuhauser <johann@it-neuhauser.de>
2020-06-04 12:26:32 +08:00
Tomasz Maciej Nowak
7ebc34dfe0 mvebu: espressobin: fix SATA and USB 3.0 ports detection
This commit removes changes from upstream commits:
8e18c8e58da6 arm64: dts: marvell: armada-3720-espressobin: declare SATA
PHY property
bd3d25b07342 arm64: dts: marvell: armada-37xx: link USB hosts with their
PHYs
For most boards which have factory bootloader this caused that devices
connected to USB 3.0 and SATA port were not detected. For them to
function users would need to upgrade the bootloader to version with ARM
Trusted Firmware 2.1 or later. Unfortunately there is no official
bootloader image with updated ATF component, therefore drop these
properties from nodes. This change was also tested briefly with
bootloader with updated ATF and the ports functioned properly.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
2020-06-04 12:23:44 +08:00
Thomas Albers
03d79b30ac ipq806x: enable disk-activity LED trigger
Enable the disk-activity LED trigger for ipq806x, since this SoC has an
onboard SATA controller.

Signed-off-by: Thomas Albers <thomas.gameiro@googlemail.com>
[split into separate commit]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-04 12:19:01 +08:00
Thomas Albers
2d4a8204a4 base-files: fix LED IDE trigger
This changes the ide-disk LED trigger to the generic disk-activity as
ide-disk trigger was removed in upstream commit eb25cb9956cc ("leds:
convert IDE trigger to common disk trigger").

Signed-off-by: Thomas Albers <thomas.gameiro@googlemail.com>
[split into separate commit, commit description facelift]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-04 12:16:00 +08:00
Thomas Albers
2e73352ee1 linux/generic: remove obsolete config option LEDS_TRIGGER_IDE_DISK
Kernel config option LEDS_TRIGGER_IDE_DISK was renamed in kernel 4.8 to
CONFIG_LEDS_TRIGGER_DISK in upstream commit eb25cb9956cc ("leds: convert
IDE trigger to common disk trigger").

Removing it as it should be added only on targets which has usage for
this trigger.

Signed-off-by: Thomas Albers <thomas.gameiro@googlemail.com>
[commit description facelift]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-04 12:14:21 +08:00
Alexey Dobrovolsky
849db300a6 ramips: add kmod-usb-dwc2 to ZyXEL Keenetic image
ZyXEL Keenetic has a USB port. Thus, DWC2 USB controller driver should
be in the default image for this device.

Fixes: a7cbf59e0e ("ramips: add new device ZyXEL Keenetic as kn")
Signed-off-by: Alexey Dobrovolsky <dobrovolskiy.alexey@gmail.com>
[fixed whitespace issue]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-04 12:13:53 +08:00
Alexey Dobrovolsky
9c7103749a ramips: remove patches for USB-dwc2
In FS#2738 we can see that patch first introduced in
e8ebcff ("ramips: add a explicit reset to dwc2")
breaks USB functionality since 18.06. Thus, this patch should be removed.

Removed:
- 0032-USB-dwc2-add-device_reset.patch

Fixes: FS#2738
Fixes: FS#2964

Signed-off-by: Alexey Dobrovolsky <dobrovolskiy.alexey@gmail.com>
2020-06-04 12:13:24 +08:00
Daniel Golle
91e9cf3d36 malta: add missing symbols for kernel 5.4
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-06-04 12:07:06 +08:00
Álvaro Fernández Rojas
d1bc3f61c1 bcm63xx: lzma-loader: allow bigger ramdisks
Some (older) CFEs are loaded at 0x80401000 and ramdisks are loaded at
0x80010000, which means that ramdisk size limit is 0x3F1000 (almost 4M).
Therefore, current ramdisks (~4MB) are overwritting CFE in these devices,
which results in a crash.

This commit changes the address where ramdisks are loaded to 0x80a00000,
which is the same address where kernel is loaded when booting from the flash.
Therefore, lzma-loader will now be loaded at 0x80a00000, but it will still
decompress the kernel at 0x80010000.

Tested with huawei,hg556a-b, which has its CFE loaded at 0x80401000.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-04 12:06:33 +08:00
Álvaro Fernández Rojas
b832697ad9 bcm63xx: ad1018: remove cfe.bin image support
Apparently, Sercomm allows loading a BCM WFI image via CFE, but this image
destroys "serial" and "protect" nand partitions, which is wrong.
It will also set both bootflags to the same value, which causes booting
issues with cferam (cferom will alternatively boot from cferam1 or cferam2
each time the device is rebooted).
Now that OEM Sercomm images are supported it's time to remove this hacky
cfe.bin image support.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-04 12:04:37 +08:00
Álvaro Fernández Rojas
92d36e334a bcm63xx: ad1018: add missing partitions
This partitions were missing when support for this device was added.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-04 12:04:02 +08:00
Álvaro Fernández Rojas
afcb0b7dd8 bcm63xx: stop using legacy lzma for all devices
BCM6368 and newer devices are compatible with any lzma compression parameters.
Add a new legacy device definition and use it on BCM6358 and older devices.

Compressed kernel size is reduced by ~1.35%.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-04 12:03:28 +08:00
Petr Štetiar
77770aabe5 kernel: bump 5.4 to 5.4.43
Refreshed patches, removed upstreamed patch:

 bcm27xx: 950-0642-component-Silence-bind-error-on-EPROBE_DEFER.patch

Run tested: qemu-x86-64
Build tested: x86/64, imx6, sunxi/a53

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-06-03 11:54:29 +08:00
Álvaro Fernández Rojas
a580aaf578 bcm63xx: vg-8050: switch to bcm-wfi-split
Allows to keep a backup firmware in case active firmware is corrupted.
Also fix hsspi address warning.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-03 11:51:17 +08:00
Álvaro Fernández Rojas
2cde1ab846 bcm63xx: vr-3032u: switch to bcm-wfi-split
Allows to keep a backup firmware in case active firmware is corrupted.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-03 11:49:56 +08:00
Álvaro Fernández Rojas
e4c4f87f40 bcm63xx: nand: order devices alphabetically
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-03 11:49:22 +08:00
Álvaro Fernández Rojas
ff025b53b9 bcm63xx: nand: add CFE_WFI_VERSION values for each device
CFE_WFI_VERSION should be defined per device instead of using a generic value.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-03 11:48:54 +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
a94de80d10 bcm63xx: nand: sercomm: switch to sercomm-load script
xxd is not a valid dependency and shouldn't be used.
Fixes buildbot failure.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-03 11:43:50 +08:00
Álvaro Fernández Rojas
b2c312a1ea scripts: support Sercomm load tags
Header consists in Sercomm PID bytes, followed by a SHA256 hash of the
input binary.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-03 11:42:15 +08:00
Álvaro Fernández Rojas
fadff5e098 bcm63xx: ad1018: support Sercomm factory images
This images can be flashed from the official firmware, as opposed to CFE
images, which can only be flashed from CFE and require opening the case.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-02 18:12:16 +08:00
Álvaro Fernández Rojas
9333a690b0 bcm63xx: nand: support Sercomm firmwares
Add support for Sercomm factory firmwares (AES 256 CBC encrypted).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-02 18:11:18 +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
697d5d2520 bcm63xx: ad1018: switch to Sercomm WFI
Support Sercomm firmware partition split.
WFI partition must be defined after bootflag partitions in order for the
parser to properly find bootflag1 and bootflag2 partitions.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-02 18:10:31 +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
Álvaro Fernández Rojas
d86f009cbd scripts: support Sercomm crypto
Sercomm firmwares are encrypted with AES 256 CBC.
The key is generated with a custom algorithm from the firmware tag:
	char key[32];
	char version[32];
	char iv[32];
	char random[32];
	char size[32];
Key must be generated with Sercomm's algorithm. However, the rest of the
header can be empty. IV and random are set to 0 on purpose.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-02 18:08:36 +08:00
Álvaro Fernández Rojas
79aea6a03e scripts: support Sercomm partition tags
Sercomm uses a custom layout for partition tags:
	char part_name[32];
	char size[32];
	char part_version[32];
	char reserved[32];
	char rootfs_version[32];

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-06-02 18:08:09 +08:00
AmadeusGhost
72671ce4e7 Merge Mainline 2020-05-30 21:26:11 +08:00
AmadeusGhost
e176999a8a generic: 5.4: refresh config 2020-05-29 19:25:10 +08:00
AmadeusGhost
87e4757b27 bcm27xx: update to latest patches 2020-05-29 12:26:40 +08:00
AmadeusGhost
2a12903b64 Merge Mainline 2020-05-29 12:18: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
Jakov Petrina
ee0826e536 linux: mvebu: backport mvneta XDP support fixes
This patch backports additional fixes for XDP support in the mvneta driver. These
changes are found upstream as commits:

b37fa92e20ef2 net: mvneta: fix build skb for bm capable devices
f383b2950070c net: mvneta: rely on page_pool_recycle_direct in mvneta_run_xdp
79572c98c554d mvneta driver disallow XDP program on hardware buffer management
44efc78d0e464 net: mvneta: fix XDP support if sw bm is used as fallback

Signed-off-by: Jakov Petrina <jakov.petrina@sartura.hr>
2020-05-28 18:34:56 +08:00
Jakov Petrina
a68b68ef5f linux: mvebu: backport mvneta XDP support
This patch backports XDP support in the mvneta driver used by Marvell ARMADA 37x,
38x and 37xx series SoCs. Supported actions are:

- XDP_DROP
- XDP_PASS
- XDP_REDIRECT
- XDP_TX

Patches are present upstream as following commits:

* b0a43db9087a net: mvneta: add XDP_TX support
* 9e58c8b41065 net: mvneta: make tx buffer array agnostic
* fa383f6b77a2 net: mvneta: move header prefetch in mvneta_swbm_rx_frame
* 0db51da7a8e9 net: mvneta: add basic XDP support
* 8dc9a0888f4c net: mvneta: rely on build_skb in mvneta_rx_swbm poll routine
* 568a3fa24a95 net: mvneta: introduce page pool API for sw buffer manager
* ff519e2acd46 net: mvneta: introduce mvneta_update_stats routine

Signed-off-by: Jakov Petrina <jakov.petrina@sartura.hr>
2020-05-28 18:34:01 +08:00
Adrian Schmutzler
e94702885e ramips: fix LED DT label for Zyxel Keenetic Start
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-28 12:13:06 +08:00
Sebastian Schaper
e12c6743c5 ath79: increase spi clock for D-Link DIR-842
AHB is 258 MHz for this device (CPU_PLL / 3), but there is no difference
between 64 MHz and 50 MHz for spi-max-frequency, thus increase to 50 MHz.

Tested on revisions C1 and C3.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
2020-05-27 18:03:57 +08:00
Sebastian Schaper
5e00d891df ath79: define switch reset-gpios for D-Link DIR-842
GPIO 11 needs to be pulled high for the external gigabit switch to work,
this is currently solved via gpio-hog. Replace with phy0 reset-gpios.

Tested on revisions C1 and C3. Reset button is still working for reboot,
to enter failsafe, and to enter bootloader http recovery.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
2020-05-27 18:03:29 +08:00
Sebastian Schaper
f8cab16267 ath79: fix LEDs for D-Link DIR-842
The device has a total of 8 LEDs, 5 of which are controlled by the switch
(LAN 1-4, WAN). Only power, wifi and wps are controlled by the SoC.

 * led_power is on GPIO 5 (not 15), boot flashing sequence is now visible
 * remove led 'internet', since it is only connected to the switch
 * remove ucidef_set_led_switch for WAN from 01_leds, as it has no effect

Tested on revisions C1 and C3.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
[adjust commit title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-27 18:03:06 +08:00
AmadeusGhost
c8a3e6838a ramips: dir878/jdcloud: convert to DSA 2020-05-27 16:10:51 +08:00
Yousong Zhou
522db861ae generic: support mtd-mac-address-ascii
It supports formats of both 001122334455 and 00:11:22:33:44:55

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2020-05-27 16:06:20 +08:00
CN_SZTL
9e3a1b33a0 Merge Mainline 2020-05-26 22:04:47 +08:00
CN_SZTL
5d9a7686c4 Merge Mainline 2020-05-26 20:32:18 +08:00
Roger Pueyo Centelles
d380746138 ath79/mikrotik: add missing kernel config symbol for 5.4
The UBIFS_FS_ZSTD is exposed when UBIFS is enabled.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
[adjust commit title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-26 18:15:35 +08:00
AmadeusGhost
1b4120f24f layerscape: remove support for kernel 4.14
Remove support for kernel 4.14, and NXP Layerscape SDK
had not supported kernel 4.14 since LSDK-20.04 either.
2020-05-26 12:00:04 +08:00
Adrian Schmutzler
124b599380 kernel: properly insert local mtd partition parsers
Between 4.19 and 5.4, the kernel moved the partition parsers into
the parsers subdirectory. This led to some necessary rebasing of
our local patches for parsers, which partially has been performed
without caring about where the code was inserted.

This commit tries to adjust our local patches so that parsers are
inserted at the "proper" positions with respect to alphabetic sorting
(if possible). Thus, the commit is cosmetic.

While this might look useless now, it will make life easier when
adding other parsers in the future or for rebasing on kernel changes.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-26 11:53:45 +08:00
Adrian Schmutzler
7e50b18acd kernel: remove a bunch of trailing whitespaces
These trailing whitespaces were reported during kernel patch refresh.

While at it, harmonize a few indents as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-26 11:53:19 +08:00
Adrian Schmutzler
4c5d70b1d8 kernel: drop backported gpio emulated open drain output fix
This patch has been backported to stable kernel 5.4 already.

Remove our local patch explicitly now, as by applying the patch
(or refreshing) the relevant code is actually added a second time.

Refresh remaining patches as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-26 11:53:08 +08:00
AmadeusGhost
8d5e621b10 Merge Mainline 2020-05-25 19:39:32 +08:00
Álvaro Fernández Rojas
b16faf31d5 bcm63xx: ar-5315u: expose LEDs through controller
Exposing LEDs through LED controller instead of gpio-leds takes
advantage of HW blinking.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-25 12:03:38 +08:00
Álvaro Fernández Rojas
f0aaf51c3a bcm63xx: ar-5387un: expose LEDs through controller
Exposing LEDs through LED controller instead of gpio-leds takes
advantage of HW blinking.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-25 12:03:05 +08:00
Álvaro Fernández Rojas
d7465705e3 bcm63xx: ar-5381u: expose LEDs through controller
Exposing LEDs through LED controller instead of gpio-leds takes
advantage of HW blinking.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-25 12:02:33 +08:00
AmadeusGhost
961f0ce0f4 x86: 5.4: add missing config 2020-05-24 23:28:33 +08:00
CN_SZTL
917cc30ade Merge Mainline 2020-05-24 22:41:44 +08:00
AmadeusGhost
396ebfaa33 ramips: sync upstream source code
Also fix commit b3cf46c550
2020-05-24 15:00:03 +08:00
Adrian Schmutzler
f67d2a9db9 lantiq: drop outdated kernel version switches from patches-5.4
This drops some ancient kernel version switches from patches on
lantiq target. The patch only adjusts the latest kernel 5.4, as
doing it a second time for an older kernel seems a waste of time
for a cosmetic change.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-24 11:37:54 +08:00
Adrian Schmutzler
00be0e5386 bcm27xx: drop outdated kernel version switches from patches-5.4
This drops some ancient kernel version switches from patches on
bcm27xx target. The patch only adjusts the latest kernel 5.4, as
doing it a second time for an older kernel seems a waste of time
for a cosmetic change.

Refresh remaining target patches.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-24 11:37:29 +08:00
Russell Senior
6cd08dc8fa ramips: fix 04_led_migration case syntax for mt7621
Commit f761f4052c had bogus case syntax, the uci-defaults script threw
errors as a result and exited non-zero, probably didn't do what was
intended, but tried over and over since the non-zero exit prevents the
script from being deleted.

Fixes: f761f4052c ("ramips: mt7621: harmonize naming scheme for Mikrotik")

Signed-off-by: Russell Senior <russell@personaltelco.net>
[extend commit title, add Fixes]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-24 11:10:11 +08:00
Adrian Schmutzler
ac95d31b25 bcm63xx: use model part of board name as variable in 01_leds
This extracts the model part of the board name and uses it for the
LED string identifiers in 01_leds. As this makes statements more
generic, it will allow to merge more cases in the future.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-24 11:09:01 +08:00
Adrian Schmutzler
d7d535cb49 bcm63xx: replace further "ok" with "okay" in DTS files
While "ok" is recognized in DT parsing, only "okay" is actually
mentioned as valid value. Replace it accordingly.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-24 11:08:23 +08:00
Álvaro Fernández Rojas
a5ad3b93b9 bcm63xx: add Huawei HG253s v2 support
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-24 11:07:41 +08:00
AmadeusGhost
518aee2887 Merge Mainline 2020-05-23 22:38:34 +08:00
Álvaro Fernández Rojas
007dd1fae9 bcm63xx: nand: support CFE partition tags
Introduce support for generating JFFS2 CFE partition tags.
This is used in NAND devices in order to verify the integrity of the JFFS2
partition.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-22 11:58:17 +08:00
Álvaro Fernández Rojas
5b7642dd47 scripts: add CFE Partition Tags support
Some BCM63xx NAND devices require a specific JFFS2 partition tag to verify
the JFFS2 partition validity:
	u32 part_id;
	u32 part_size;
	u16 flags;
	char part_name[33];
	char part_version[21];
	u32 part_crc32;

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-22 11:57:41 +08:00
Álvaro Fernández Rojas
8c3e960d89 bcm63xx: improve rgmii ctrl overrides
There are older devices which require overriding the RGMII ports, so this
shouldn't be limited and forced to BCM63268.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-22 11:56:56 +08:00
Álvaro Fernández Rojas
055aa4fb70 bcm63xx: dgnd3700-v1: add NAND support
NAND is used as extra storage on this device.

Signed-off-by: Daniel Gonzalez Cabanelas <dgcbueu@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-22 11:56:00 +08:00
Álvaro Fernández Rojas
da8688a6fd bcm63xx: nand: fix v2.1 controller support
Page size shift is different from v2.2+ controllers

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-22 11:55:22 +08:00
Russell King
fada7f5ff3 kernel: backport the I2C bus recovery for uDPU
Backport the I2C bus recovery DT configuration for the uDPU that has
been queued for 5.8.

Signed-off-by: Russell King <linux@armlinux.org.uk>
2020-05-22 11:54:40 +08:00
Russell King
f42c2667ca kernel: backport v5.8 i2c-pxa updates
Add i2c-pxa updates queued for v5.8, which add bus recovery to this
driver; this is needed for the uDPU platform.

Signed-off-by: Russell King <linux@armlinux.org.uk>
2020-05-22 11:54:12 +08:00
Russell King
55e2b2778f kernel: backport gpio emulated open drain output fix
Backport the GPIO emulated open drain output fix from v5.5, which is
required for the i2c-pxa backport.

Signed-off-by: Russell King <linux@armlinux.org.uk>
2020-05-22 11:53:23 +08:00
Petr Štetiar
53384190e2 kernel: bump 5.4 to 5.4.42
Refreshed patches, removed upstreamed patch:

 generic/pending: 001-v5.4-pinctrl-qcom-fix-wrong-write-in-update_dual_edge.patch.patch

Run tested: qemu-x86-64
Build tested: x86/64, ath79/nand, imx6, sunxi/a53

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-05-21 11:56:00 +08:00
Alberto Bursi
c4d34d1207 x86: fix generic kernel 5.4 config
The last kernel update done with commit 500a02bc29 ("x86: Update
configuration") placed most of the updated config only in the x86_64
target.

Move the options needed by the other targets too in the x86 base config,
and add an additional option needed by those targets.

Fixes: 500a02bc29 ("x86: Update configuration")
Signed-off-by: Alberto Bursi <bobafetthotmail@gmail.com>
[commit subject/description tweaks]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-05-21 11:49:03 +08:00
Álvaro Fernández Rojas
d8f321e906 bcm63xx: lzma-loader: rely on CHIP_ID for UART address
lzma-loader uart output wasn't working on BCM3380/BCM6362 because these
SoCs have the same processor ID.
Let's use CHIP_ID for establishing the UART base address.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-21 11:48:18 +08:00
Álvaro Fernández Rojas
7c06d05ea3 bcm63xx: lzma-loader: remove unused definitions
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-21 11:47:08 +08:00
Álvaro Fernández Rojas
a017c11278 bcm63xx: image: add CVG834G CHIP_ID
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-21 11:46:08 +08:00
Álvaro Fernández Rojas
26f9cf0bad bcm63xx: image: rename CFE_CHIP_ID to CHIP_ID
Rename CFE_CHIP_ID to a generic name that doesn't involve CFE.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-21 11:45:38 +08:00
Álvaro Fernández Rojas
c19ee01510 bcm63xx: fix AD1018 WLAN led
Standard AD1018 has lower case LEDs.

Fixes: 5f82691923 ("bcm63xx: add unmodded SERCOMM AD1018 support")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-20 17:51:58 +08:00
Álvaro Fernández Rojas
8b25ebe7f1 bcm63xx-cfe: fix build with CONFIG_AUTOREMOVE
When CONFIG_AUTOREMOVE is enabled, CFE binaries are removed before the
image creation.
Install CFE binaries to kernel directory and let autoremove clean the
files in PKG_BUILD_DIR.
Also drop unneeded tar cmd/options.

Fixes: dcee4eaa42 ("bcm63xx-cfe: add package with CFE RAM binaries")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-20 17:51:12 +08:00
AmadeusGhost
8f0b9b7f3f bcm27xx/ipq40xx/x86: set 5.4 as default kernel 2020-05-20 12:20:09 +08:00
AmadeusGhost
7d2c039edc bcm63xx: remove kernel 4.14 support 2020-05-20 12:15:51 +08:00
Sungbo Eo
c4350a6c76 ramips: fix MAC address setup for RT5350F-OLinuXino devices
Olimex RT5350F-OLinuXino devices do not have a default MAC address, and there is
nothing at the 0x4 offset in the factory partition. Using a local address, which
is randomly generated by the kernel, would be a better choice.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-05-20 12:08:58 +08:00
Sungbo Eo
fa052c4782 ramips: 5.4: handle ERR_PTR properly
of_get_mac_address can return ERR_PTR since 5.2, so the return pointer should be
checked before used. Otherwise it might cause an oops during boot.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-05-20 12:08:21 +08:00
INAGAKI Hiroshi
8ba203a5ee ramips: fix initramfs image for I-O DATA mt7621 devices
This is additional fix of c998ae7f0e.

The sysupgrade image of I-O DATA MT7621 devices manufactured by MSTC
(MitraStar Technology Corp.) faced to the booting issue. This was caused
by imcomplete extraction of large kernel image by U-Boot, and this issue
is occurred in initramfs image after fixing of sysupgrade image.
So, use lzma-loader for initramfs image to fix the issue.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Co-developed-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
Tested-by: Yanase Yuki <dev@zpc.sakura.ne.jp> [wn-ax2033gr]
2020-05-20 12:07:50 +08:00
Chuanhong Guo
ee4eb2f7c9 ramips: remove default switch setup in 02_network
ramips images now relies on explicit switch setup for proper failsafe
functionality. Remove default cases where it relies on vlan setup in
dts and add switch setup for devices affected.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-05-20 12:06:37 +08:00
Adrian Schmutzler
12ee46b2f2 ramips: set WAN address in DTS for ASUS RT-AC51U/RT-AC54U
The location 0x28 in factory partition is the common one used for
ethernet address on this architecture. Despite, it contains the label
MAC address for the devices at hand.

Consequently, this patch moves 0x28 to the &ethernet node in DTS files
(setting the WAN MAC address there) and sets up the lan_mac from 0x22
in 02_network. As a benefit, this allows to use label-mac-device in
DTS instead of ucidef_set_label_macaddr.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-20 12:00:13 +08:00
Adrian Schmutzler
a90d27e44b ramips: use DT trigger for 2G WiFi on ASUS RT-AC51U
Like for the RT-AC54U, this uses a DT trigger for WiFi also at the
RT-AC51U. While at it, rename node and label to wifi2g.

Note that the 5g WiFi LED still isn't supported (see PR #3017 for
further details: https://github.com/openwrt/openwrt/pull/3017 )

Tested-by: Davide Fioravanti <pantanastyle@gmail.com>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-20 11:57:23 +08:00
Adrian Schmutzler
964fad63d0 ramips: fix MAC address assignment for ASUS RT-AC51U
The current MAC address assignment for the ASUS RT-AC51U is "wrong",
it actually should be the same as for the RT-AC54U. Fix it.

Thanks to Davide Fioravanti for checking this on his device.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-20 11:55:04 +08:00
Álvaro Fernández Rojas
0c188b6452 bcm63xx: add unmodded SERCOMM AD1018 support
Until now only HW modded SPI flash version was supported.

BCM6328 with 64M RAM and 128M NAND.
More info: https://openwrt.org/toh/sercomm/ad1018

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-20 11:49:57 +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
b3d87dc5cd bcm63xx: bcm6328: fix strapbus boot sel
Boot selection bit is 18, not 28.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-20 11:48:24 +08:00
Álvaro Fernández Rojas
c4c2fa9ebc bcm63xx: reorganize board patches
Let's put some order on board patches.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-20 11:47:39 +08:00
Álvaro Fernández Rojas
392b4b1fbc bcm63xx: add Comtrend VG-8050 support
BCM63169 with 128M RAM, 128M NAND and BCM53125 switch.
Switch is connected by HSSPI to CS5.
More info: https://openwrt.org/toh/comtrend/vg8050

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-20 11:47:05 +08:00
Álvaro Fernández Rojas
09fe88e512 bcm63xx: add NETGEAR DGND3700v2 support
BCM6362 with 64M RAM, 32M NAND and BCM53125 switch.
Switch is connected by MMAP, which is currently unsupported (no VLANs).
More info: https://openwrt.org/toh/netgear/dgnd3700v2

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-20 11:46:27 +08:00
Álvaro Fernández Rojas
ce076f1f2a base-files: switch_to_ramfs: add nand-utils
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-20 11:45:42 +08:00
Álvaro Fernández Rojas
4071149766 bcm63xx: bcm6328-leds: improve HW blinking
Add support for second HW blinking interval.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-19 18:08:43 +08:00
Álvaro Fernández Rojas
2c4e2e4b40 scripts: cfe-wfi-tag: fix shebang
Fixes: 72985233a6 ("scripts: support CFE WFI images")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-19 18:06:04 +08:00
Álvaro Fernández Rojas
7cbeafd7f8 scripts: cfe-bin-header: fix shebang
Fixes: e575a7f777 ("scripts: support tags for CFE binaries")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-19 18:03:46 +08:00
Fabian Bläse
bb7a0efbe3 mt7621: Make ER-X-SFP factory image compatible with EP-R6
The version inside the compat file determines, if a firmware supports
a specific device. I have not yet fully understood, how this is checked,
but it only seems to indicate which devices are supported by a specific
version of the combined vendor firmware. Devices assume that subsequent
versions, starting with the version that initially added support for a
specific device, are always compatible.

The first compat version that added support for the EP-R6 was '21001:7',
but OpenWrt did use '21001:6' before. This is why the factory image could
not be flashed using the vendor software, but only using TFTP.

The compat version has been bumped by the vendor a few times, but more
devices have been added since (e.g. ER-10X). Because OpenWrt currently
only supports the ER-X, ER-X-SFP and EP-R6, the compat version is
incremented to the version that first supported the EP-R6, which is
'21001:7'.

This allows the factory image to be flashed on EP-R6 without TFTP.

Signed-off-by: Fabian Bläse <fabian@blaese.de>
2020-05-19 12:01:00 +08:00
David Bauer
ad9e8372f0 mpc85xx: restructure image receipts
Move the image receipts into separate per-subtarget files like it is
done on most other targets.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-05-19 12:00:01 +08:00
David Bauer
d399ec2745 mpc85xx: rename generic subtarget to p1010
The mpc85xx-generic subtarget supports the QorIQ SoCs of the p1010
family. Rename the subtarget to reflect this affiliation as it's the
case with the other mpc85xx subtargets.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-05-19 11:59:01 +08:00
Álvaro Fernández Rojas
688c5b7606 bcm63xx: add support for Comtrend VR-3032u
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-19 11:56:29 +08:00
Álvaro Fernández Rojas
027668d9e5 bcm63xx: smp: add NAND support
NAND controller is present on BCM6328, BCM6362, BCM6368 and BCM63268.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-19 11:55:40 +08:00
Álvaro Fernández Rojas
c914713f7d bcm63xx-cfe: add package with CFE RAM binaries
CFE RAM is a second stage bootloader which is usually loaded by CFE ROM
(first stage bootloader) from a JFFS2 partition stored on the NAND.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-19 11:54:20 +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
Álvaro Fernández Rojas
0137c9acc9 scripts: support CFE WFI images
CFE WFI (Whole Flash Image) consists in 20 byte footer:
- u32: CRC32
- u32: WFI Version
- u32: Chip ID
- u32: Flash Type
- u32: Flags

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-19 11:53:02 +08:00
Álvaro Fernández Rojas
ba8a6bc50b scripts: support tags for CFE binaries
CFE loads binaries based on a 12 byte header which corresponds to:
- u32: Load Address
- u32: Entry Address
- u32: Size

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-19 11:51:19 +08:00
Álvaro Fernández Rojas
a2f03a114b bcm63xx: mask interrupts on init
Fixes BCM6348/BCM6358 hangs while booting:
https://bugs.openwrt.org/index.php?do=details&task_id=2202

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-18 11:55:35 +08:00
Adrian Schmutzler
e8e125eb9f ramips: drop non-existant ralink,port-map for Ravpower WD03
The property "ralink,port-map" has been obsolete long before
this device was added, and the device is a one-port anyway.
Just remove it.

Fixes: 5ef79af4f8 ("ramips: add support for Ravpower WD03")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-18 11:54:54 +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
CN_SZTL
9aac694f8b Merge Mainline 2020-05-16 21:22:33 +08:00
CN_SZTL
db90e04e2e Merge Mainline 2020-05-16 19:48:45 +08:00
CN_SZTL
f3b9af1bdc Merge Mainline 2020-05-16 19:02:47 +08:00
Daniel Gonzalez Cabanelas
7ab2a4bcf4 bcm63xx: periph_intc: report effective affinity
The bcm6345-periph-intc driver only targets a single CPU at a time, even
if the notional affinity is wider. Let's inform the core code about this.

This patch gets rid of the kernel message:
"genirq: irq_chip bcm6345-periph-intc did not update eff. affinity mask
of irq 52"

Signed-off-by: Daniel Gonzalez Cabanelas <dgcbueu@gmail.com>
2020-05-15 11:43:39 +08:00
Álvaro Fernández Rojas
d1acb0ea52 bcm63xx: ext_intc: fix warning
In file included from ./arch/mips/include/asm/io.h:34,
                 from ./arch/mips/include/asm/mmiowb.h:5,
                 from ./include/linux/spinlock.h:60,
                 from ./include/linux/irq.h:14,
                 from drivers/irqchip/irq-bcm6345-ext.c:10:
drivers/irqchip/irq-bcm6345-ext.c: In function 'bcm6345_ext_intc_of_init':
./arch/mips/include/asm/mach-bcm63xx/ioremap.h:48:9: warning: 'base' may be used uninitialized in this function [-Wmaybe-uninitialized]
  return is_bcm63xx_internal_registers((unsigned long)addr);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/irqchip/irq-bcm6345-ext.c:255:16: note: 'base' was declared here
  void __iomem *base;
                ^~~~

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-15 11:43:06 +08:00
Álvaro Fernández Rojas
6ee8d22936 bcm63xx: periph_intc: fix warning
drivers/irqchip/irq-bcm6345-periph.c: In function 'bcm6345_periph_irq_handle':
drivers/irqchip/irq-bcm6345-periph.c:55:21: warning: 'block' may be used uninitialized in this function [-Wmaybe-uninitialized]
  struct intc_block *block;
                     ^~~~~

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-15 11:42:16 +08:00
Álvaro Fernández Rojas
f12f8e33eb bcm63xx: redboot: fix warning
drivers/mtd/parsers/redboot.c: In function 'parse_redboot_partitions':
drivers/mtd/parsers/redboot.c:194:59: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]
     fis_origin = (buf[i].flash_base & (master->size << 1) - 1);
                                       ~~~~~~~~~~~~~~~~~~~~^~~

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-15 11:41:34 +08:00
Álvaro Fernández Rojas
e0cff49fd8 bcm63xx: bcm6362: fix pinctrl bug
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-15 11:40:51 +08:00
Álvaro Fernández Rojas
dcb71fa85f bcm63xx: image: remove unused definition
KERNEL_ENTRY isn't used by lzma-loader.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-15 11:40:20 +08:00
Koen Vandeputte
d385eacd81 kernel: bump 5.4 to 5.4.41
Refreshed all patches.

Compile-tested on: imx6
Runtime-tested on: imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2020-05-15 11:38:46 +08:00
AmadeusGhost
c65a4fc513 Merge Mainline 2020-05-14 12:00:36 +08:00
Adrian Schmutzler
ecf35c4624 ipq40xx: replace "ok" with "okay" for status in DTS files
While "ok" is recognized in DT parsing, only "okay" is actually
mentioned as valid value. Replace it accordingly.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-13 12:08:29 +08:00
Adrian Schmutzler
7f1b1d5590 bcm63xx: replace "ok" with "okay" for status in DTS files
While "ok" is recognized in DT parsing, only "okay" is actually
mentioned as valid value. Replace it accordingly.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-13 12:06:05 +08:00
Adrian Schmutzler
59f9fd0aed bcm63xx: use generic diag.sh
This commit removes the target-specific diag.sh script. This way, the
generic one is used for the target, which uses DT-aliases to specify the
LEDs used.

Though generic diag.sh allows to use different LEDs to indicate different
states, this patch just moves the old assignment and does not try to
"improve" the assignment by using additional colors.
However, individual proposals to do so are welcome.

For the few cases where status_led2 was used in old diag.sh, only the
primary LED was migrated.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-13 12:04:25 +08:00
Álvaro Fernández Rojas
43d5b9eeb6 bcm63xx: loader-lzma: use default lzma
Specific CFE LZMA parameters aren't needed for LZMA Loader.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-13 12:00:30 +08:00
Álvaro Fernández Rojas
41ad45fd8e bcm63xx: image: rename LOADADDR to KERNEL_LOADADDR
Also remove KERNEL_ENTRY, since it's the same as KERNEL_LOADADDR

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-05-13 12:00:11 +08:00
Koen Vandeputte
ceb72c57a9 kernel: bump 5.4 to 5.4.40
Refreshed all patches.

Compile-tested on: imx6
Runtime-tested on: imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2020-05-12 21:00:04 +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
Andrey Kunitsyn
ad0fd298fc bcm27xx: label to boot partition
Get fat partition name allow easy partition identification
for user.

Signed-off-by: Andrey Kunitsyn <blackicebox@gmail.com>
2020-05-11 11:39:41 +08:00
CN_SZTL
40637f9479 Merge Mainline 2020-05-10 14:45:51 +08:00
CN_SZTL
4ede6d50d1 Merge Mainline 2020-05-10 12:00:19 +08:00
AmadeusGhost
c5ac0034f8 Merge Mainline 2020-05-10 11:39:25 +08:00
Sungbo Eo
7e42c78a27 ramips: dts: fix incorrect flash reg property
Most work was done in commit 021c893658 ("ramips: fix size-cells on spi
nodes"), but a few more DTS files using the old reg style have been added
since then. This commit fixes them.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-05-10 11:02:38 +08:00
Sungbo Eo
8b70d6eab0 ramips: dts: use generic node name for flash
In DTS Checklist[1] we're now demanding proper generic node names, as
the name of a node should reflect the function of the device and use
generic name for that[2]. Everybody seems to be copy&pasting from DTS
files available in the repository today, so let's unify that naming
there as well and provide proper examples.

While at it, remove unused m25p80 label.

Tested on rt5350 (for spi-nor) and rt3662 (for cfi-flash).

1. https://openwrt.org/submitting-patches#dts_checklist
2. https://github.com/devicetree-org/devicetree-specification/blob/master/source/devicetree-basics.rst#generic-names-recommendation

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-05-10 11:01:51 +08:00
Jakov Petrina
4c441e5c97 mvebu: uDPU: switch default kernel and U-Boot PHY mode
Certain SFP modules (most notably Nokia GPON ones) first check
connectivity on 1000base-x, and switch to 2500base-x afterwards. This
is considered a quirk so the phylink switches the interface to
2500base-x as well.

However, after power-cycling the uDPU device, network interface/SFP module
will not work correctly until the module is re-seated. This patch
resolves this issue by forcing the interface to be brought up in
2500base-x mode by default.

Signed-off-by: Jakov Petrina <jakov.petrina@sartura.hr>
Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
Cc: Luka Perkov <luka.perkov@sartura.hr>
2020-05-10 11:00:21 +08:00
Sungbo Eo
a6cddd708c ramips: simplify palmbus/{i2c,spi} in device DTS files
As the node is already defined and labeled in SoC DTSI file, we can refer to it
outside of root node and reduce redundancy.

While at it, remove unused pcf8563 label.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-05-09 11:55:59 +08:00
Sungbo Eo
6bf11e5699 ramips: use hex notation for *-mtd-eeprom property
Change "0" to "0x0" for consistency. This is an extension of commit 34abfb6e91
("ramips: convert mediatek,mtd-eeprom from decimal to hex notation").

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-05-09 11:54:01 +08:00
Koen Vandeputte
cda29241c3 generic: fix patching error on kernel 5.4
Fixes a build error seen when applying the kernel patches.

Applying patch generic/435-mtd-add-routerbootpart-parser-config.patch
patching file drivers/mtd/parsers/Kconfig
Hunk #1 FAILED at 160.
1 out of 1 hunk FAILED -- rejects in file drivers/mtd/parsers/Kconfig
patching file drivers/mtd/parsers/Makefile
Hunk #1 FAILED at 10.
1 out of 1 hunk FAILED -- rejects in file drivers/mtd/parsers/Makefile

This was missed as 5.4 is currently set as testing kernel
while the main kernel being used is 4.19

Fixes: 2976e423dc ("generic: routerboot partition build bits")
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2020-05-09 11:50:13 +08:00
Thibaut VARÈNE
0057441fee ramips/mt7621: mikrotik: don't use mtd-mac-address in DTS
As evidenced here[1] the device MAC address can be stored at a random
offset in the hard_config partition. Rely on sysfs to update the MAC
address correctly.

Adjust config so that WAN is base MAC and LAN is base MAC +1 to better
match label and vendor OS.

[1] https://github.com/openwrt/openwrt/pull/2850#issuecomment-610809021

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:49:43 +08:00
Thibaut VARÈNE
f806044adb ath79/mikrotik: don't use mtd-mac-address in DTS
As evidenced here[1] the device MAC address can be stored at a random
offset in the hard_config partition. Rely on sysfs to update the MAC
address correctly.

To match sticker and vendor OS behavior, WAN MAC is set to the device
base MAC and LAN MAC is incremented from that.

Note: this will trigger a harmless kernel message during boot:
ag71xx 19000000.eth: invalid MAC address, using random address

There is no clean workaround to prevent this message from being emitted.

[1] https://github.com/openwrt/openwrt/pull/2850#issuecomment-610809021

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:47:40 +08:00
Thibaut VARÈNE
1323b98e14 generic: platform/mikrotik: support LZOR encoding
Some newer MikroTik RouterBOARD devices use a new encoding scheme
for their WLAN calibration data. This patch provides support for
decoding this new scheme.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:45:44 +08:00
Thibaut VARÈNE
fa006defcc ramips/mt7621: enable mikrotik platform driver
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:45:05 +08:00
Thibaut VARÈNE
9d4406bd46 ath79/mikrotik: enable mikrotik platform driver
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:43:05 +08:00
Thibaut VARÈNE
669cdc689d generic: mikrotik platform build bits
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:42:25 +08:00
Thibaut VARÈNE
157bf3fb0c generic: routerboot sysfs platform driver
This driver exposes the data encoded in the "hard_config" flash segment
of MikroTik RouterBOARDs devices. It presents the data in a sysfs folder
named "hard_config". The WLAN calibration data is available on demand via
the 'wlan_data' sysfs file in that folder.

This driver permanently allocates a chunk of RAM as large as the
"hard_config" MTD partition (typically 4KB), although it is technically
possible to operate entirely from the MTD device without using a local
buffer (except when requesting WLAN calibration data), at the cost of a
performance penalty.

This driver does not reuse any of the existing code previously found in
routerboot.c.

This driver has been successfully tested on BE (ath79) and LE (ipq40xx
and ramips) hardware.

Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Tested-by: Baptiste Jonglez <git@bitsofnetworks.org>
Tested-by: Tobias Schramm <t.schramm@manjaro.org>
Tested-by: Christopher Hill <ch6574@gmail.com>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:41:15 +08:00
Thibaut VARÈNE
898d82daa0 ramips: mikrotik: use routerbootpart partitions
Enable routerbootpart partitions on MikroTik devices.

Tested-by: Tobias Schramm <t.schramm@manjaro.org>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:38:41 +08:00
Thibaut VARÈNE
1f67898c56 ramips/mt7621: enable CONFIG_MTD_ROUTERBOOT_PARTS
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:38:05 +08:00
Thibaut VARÈNE
c94a125d58 ath79/mikrotik: use routerbootpart partitions
Enable routerbootpart partitions on MikroTik devices.

Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:36:44 +08:00
Thibaut VARÈNE
84dd1ca83d ath79/mikrotik: enable CONFIG_MTD_ROUTERBOOT_PARTS
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:36:07 +08:00
Thibaut VARÈNE
2421583542 generic: routerboot partition build bits
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:35:20 +08:00
Thibaut VARÈNE
f6f0843828 generic: routerbootpart MTD parser for RouterBoot
This driver provides an OF MTD parser to properly assign the RouterBoot
partitions on the flash. This parser builds from the "fixed-partitions"
one (see ofpart.c), but it can handle dynamic partitions as found on
routerboot devices.

The parent node must contain the following:
	compatible = "mikrotik,routerboot-partitions";
	#address-cells = <1>;
	#size-cells = <1>;

Children routerbootpart DTS nodes are defined as follows:
For fixed partitions
	node-name@unit-address {
		reg = <prop-encoded-array>;
		label = <string>;
		read-only;
		lock;
	};

All properties but reg are optional.

For dynamic partitions:
	node-name {
		size = <prop-encoded-array>;
		label = <string>;
		read-only;
		lock;
	};

size property is mandatory unless the next partition is a fixed one or
a "well-known" one (matched from the strings defined below) in which case
it can be omitted or set to 0; other properties are optional.

By default dynamic partitions are appended after the preceding one, except
for "well-known" ones which are automatically located on flash.

Well-known partitions (matched via label or node-name):
 - "hard_config"
 - "soft_config"
 - "dtb_config"

This parser requires the DTS to list partitions in ascending order as
expected on the MTD device.

This parser has been successfully tested on BE (ath79) and LE (ipq40xx
and ramips) hardware.

Tested-by: Baptiste Jonglez <git@bitsofnetworks.org>
Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Tested-by: Tobias Schramm <t.schramm@manjaro.org>
Tested-by: Christopher Hill <ch6574@gmail.com>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
2020-05-09 11:32:34 +08:00
Stijn Tintel
f8d88d39a0 kernel: add missing symbol to 5.4 config
This symbol is exposed if KERNEL_PROVE_LOCKING is enabled.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2020-05-09 11:20:06 +08:00
Yangbo Lu
1c76f00abb layerscape: update restool to LSDK-20.04
Update restool to latest LSDK-20.04.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-05-08 08:48:16 +08:00
Yangbo Lu
aa98d54c16 layerscape: update firmware to LSDK-20.04
Update firmware to latest LSDK-20.04.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-05-08 08:46:57 +08:00
Yangbo Lu
b433a85fe6 layerscape: update tfa to LSDK-20.04
Update tfa package to latest LSDK-20.04 dropping one patch
which had already been integrated.

Add fixes,
- Fix DEPENDS/PKG_BUILD_DEPENDS.
- Remove HIDDEN:=1.
- Move intermediate files installing into Build/InstallDev.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-05-08 08:40:13 +08:00
AmadeusGhost
794c6b71f0 layerscape: update u-boot to LSDK-20.04 2020-05-08 08:35:20 +08:00
Yangbo Lu
35f580805b layerscape: update ls-rcw to latest LSDK-20.04
Update ls-rcw to latest LSDK-20.04.
Update patch 0001 with a new one.
Drop patch 0002 since it had been integrated.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-05-08 08:32:03 +08:00
Yangbo Lu
b40c245409 layerscape: define only one package for ls-rcw
We do not have to define package for each board, and
consider variant's building/installing.
It is easier to maintain ls-rcw with only one package
installing all boards RCW binaries as intermediate
files, each of which is just about hundreds of bytes.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-05-08 08:31:13 +08:00
AmadeusGhost
b3e8a12c65 layerscape: add kernel 5.4 support from official commit 2020-05-08 08:25:49 +08:00
Petr Štetiar
0503cdbc89 kernel: bump 5.4 to 5.4.39
Refreshed patches.

Run tested: qemu-x86-64
Build tested: x86/64, imx6, sunxi/a53, layerscape/armv7+armv8_64b

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-05-08 08:18:53 +08:00
Chuanhong Guo
fcc5b35ffc generic: ar8216: fix unknown packet flooding for ar8229/ar8236
ar8229 and ar8236 don't allow unknown unicast/multicast frames and
broadcast frames to be flooded to cpu port. This isn't desired behavior
for swconfig as we treat it as a standalone switch.
Current code doesn't enable unicast frame flooding for ar8229 and uses
wrong setup for ar8236. This commit fixes both of them by enabling port
0 flooding for all unknown frames.

Fixes: FS#2848
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-05-06 12:09:15 +08:00
Adrian Schmutzler
4c3e74b6c3 sunxi: remove unneeded shebang for preinit files
preinit files are sourced and they have no execute bit set, so remove
their shebang.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-06 12:08:40 +08:00
Adrian Schmutzler
de51cfed9a sunxi: tidy up cases in base-files
This removes unnecessary quotes in cases and applies alphabetic
order to members.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-05-06 12:08:11 +08:00
John Crispin
ddeaed80d5 mediatek: fix image building
Signed-off-by: John Crispin <john@phrozen.org>
2020-05-05 11:53:18 +08:00
John Crispin
08781baf5b mediatek: update patches
Signed-off-by: John Crispin <john@phrozen.org>
2020-05-05 11:51:42 +08:00
Stijn Tintel
dea63928af bcm27xx: backup /boot/cmdline.txt and restore early
If you want to use the Raspberry Pi UART, "console=serial0,115200" needs
to be removed from the kernel cmdline. This is done by editing
/boot/cmdline.txt. However, this file is not currently backed up during
sysupgrade, so this effectively breaks HATs that require the use of the
UART every sysupgrade.

Backup this file during sysupgrade, and restore it before rebooting.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2020-05-05 11:50:21 +08:00
AmadeusGhost
53a25bebe3 octeontx: refresh 5.4 patches 2020-05-05 11:50:15 +08:00
CN_SZTL
435f94e6ec Merge Mainline 2020-05-05 11:37:27 +08:00
CN_SZTL
89a0bf36df Merge Mainline 2020-05-04 19:29:35 +08:00
CN_SZTL
a61ba7aabd Merge Mainline 2020-05-04 17:23:20 +08:00
CN_SZTL
3c3f9c1540 Merge Mainline 2020-05-04 17:18:30 +08:00
CN_SZTL
f5e3bd13ef Merge Mainline 2020-05-04 16:11:02 +08:00
AmadeusGhost
b6388e8b7f ipq40xx: 5.4: add c526a support 2020-05-03 12:05:54 +08:00
CN_SZTL
cc14f99583 kernel: bump 5.4 to 5.4.38
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-05-02 23:54:26 +08:00
CN_SZTL
ceb6b1fa4c Merge Mainline 2020-05-02 20:12:16 +08:00
Richard Huynh
ecc72b7a5f ramips: Add support for Xiaomi Redmi Router AC2100 (RM2100)
Specification:
- CPU: MediaTek MT7621A
- RAM: 128 MB DDR3
- FLASH: 128 MB ESMT NAND
- WIFI: 2x2 802.11bgn (MT7603)
- WIFI: 4x4 802.11ac (MT7615)
- ETH: 3xLAN+1xWAN 1000base-T
- LED: Power, WAN, in Amber and White

Signed-off-by: Richard Huynh <voxlympha@gmail.com>
2020-05-02 19:25:28 +08:00
CN_SZTL
4170e91d1e kernel: bump 5.4 to 5.4.37
Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-05-02 16:28:55 +08:00
AmadeusGhost
7d17073c14 treewide: adjust sysupgrade script 2020-05-01 16:29:04 +08:00
CN_SZTL
920cf867f4 Merge Mainline 2020-05-01 10:38:39 +08:00
Petr Štetiar
2197351ec6 kernel: bump 5.4 to 5.4.36
Refreshed patches, removed upstreamed patch:

 generic/hack: 551-loop-Better-discard-support-for-block-devices.patch

Added generic config symbol `ARM64_ERRATUM_1542419` due to Fixes:
f2791551cedb ("arm64: errata: Hide CTR_EL0.DIC on systems affected by
Neoverse-N1 #1542419").

Run tested: qemu-x86-64, apalis, nbg6617
Build tested: x86/64, imx6, ipq40xx, sunxi/a53

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-04-30 08:26:17 +08:00
Daniel Golle
2ef3fba9e6 ath79: fix dts of Teltonika RUT9xx devices
The previous commits were missing a semicolon.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-04-30 08:26:12 +08:00
Daniel Golle
6386cb9c27 ath79: add support for Teltonika RUT955 H7V3C0
This board was previously supported in ar71xx as 'RUT9XX'. The
difference between that and the other RUT955 board already supported in
ath79 is that instead of the SPI shift registers driving the LEDs and
digital outputs that model got an I2C GPIO expander instead.

To support LEDs during early boot and interrupt-driven digital inputs,
I2C support as well as support for PCA953x has to be built-in and
cannot be kernel modules, hence select those symbols for ath79/generic.

Specification:

- 550/400/200 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- 4x 10/100 Mbps Ethernet, with passive PoE support on LAN1
- 2T2R 2,4 GHz (AR9344)
- built-in 4G/3G module (example: Quectel EC-25EU)
- internal microSD slot (spi-mmc, buggy and disabled for now)
- RS232 on D-Sub9 port (Cypress ACM via USB, /dev/ttyACM0)
- RS422/RS485 (AR934x high speed UART, /dev/ttyATH1)
- analog 0-24V input (MCP3221)
- various digital inputs and outputs incl. a relay
- 11x LED (4 are driven by AR9344, 7 by PCA9539)
- 2x miniSIM slot (can be swapped via GPIO)
- 2x RP-SMA/F (Wi-Fi), 3x SMA/F (2x WWAN, GPS)
- 1x button (reset)
- DC jack for main power input (9-30 V)
- debugging UART available on PCB edge connector

Serial console (/dev/ttyS0) pinout:

- RX: pin1 (square) on top side of the main PCB (AR9344 is on top)
- TX: pin1 (square) on bottom side

Flash instruction:

Vendor firmware is based on OpenWrt CC release. Use the "factory" image
directly in GUI (make sure to uncheck "keep settings") or in U-Boot web
based recovery. To avoid any problems, make sure to first update vendor
firmware to latest version - "factory" image was successfully tested on
device running "RUT9XX_R_00.06.051" firmware and U-Boot "3.0.1".

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-04-30 08:19:51 +08:00
Daniel Golle
6ea96fec81 ath79: split Teltonika RUT955 to support other RUT9xx models
Split device-tree of Teltonika RUT955 into a generic RUT9xx part and
a part specific to that version of RUT955 already supported.
Also harmonize GPIO and LED names with what is used by the vendor
firmware and assign RS485 DTR signal.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-04-30 08:18:16 +08:00
David Bauer
14ab4369bc kernel: hwmon: add Analog Devices AD741x support
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-30 08:15:11 +08:00
AmadeusGhost
153e8546e9 kirkwood: remove kernel 4.14 & 4.19 support 2020-04-29 08:15:50 +08:00
Adrian Schmutzler
edf504aafe ath79: add SUPPORTED_DEVICES based on ar71xx for some devices
This adds some still-missing board names for old TP-Link devices
to ath79 SUPPORTED_DEVICES.

Fixes: FS#3017

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-29 08:11:00 +08:00
Adrian Schmutzler
7b5442e220 Revert "ramips: explicitly disable built-in switch for lan-only devices"
This reverts commit a1693bf626.

The rt288x and rt3883 devices in question don't have switches.
Only keep the merged case for rt305x.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-29 08:10:21 +08:00
Pawel Dembicki
f56535d230 kirkwood: switch from swconfig to dsa
This patch removes support for swconfig and switches to dsa driver.

swconfig and switch drivers are removed. DSA driver is enabled and
configuration is adjusted.

In kirkwood only two devices have switches: Linksys EA3500 and EA4500.

WAN MAC configuration in 02_network is required because otherwise WAN
would have the same MAC address as lan interfaces. In swconfig solution
the WAN address was assigned in u-Boot to eth1. Now, as eth1 is disabled
and wan is part of the switch, we have to set it manually.

Compile tested: EA3500, EA4500
Run tested: EA4500

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
[minor commit title/message adjustments, remove swconfig package
for devices]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-29 08:09:46 +08:00
DENG Qingfang
82cc3dcd55 ramips: fix MikroTik 750Gr3 ports MAC addresses
According to a user in OpenWrt forum, on RouterOS the MAC addresses are
ether1(WAN) = MAC
ether2(LAN2) = MAC+1
ether3(LAN3) = MAC+2
etc.

Fix the MAC addresses in OpenWrt.

Ref: https://forum.openwrt.org/t/few-dumb-question-about-mt7530-rb750gr3-dsa/61608
Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
[remove label_mac in 02_network]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-29 08:08:36 +08:00
AmadeusGhost
74c7cd6dbf omap: add support for kernel 5.4 2020-04-28 11:00:38 +08:00
Adrian Schmutzler
fe82c8445c ath79: indicate boot/failsafe/upgrade for NanoBeam/Nanostation AC
Like for Ubiquiti PowerBeam 5AC Gen2, the highest RSSI LED can
be exploited to indicate boot/failsafe/upgrade for the NanoBeam AC
and Nanostation AC as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-28 10:51:47 +08:00
Adrian Schmutzler
230538cbe1 ramips: rt3883: remove swconfig from individual DEVICE_PACKAGES
In rt3883 subtarget, several devices add swconfig to their DEVICE_PACKAGES.
This is redundant as the package is already provided via DEFAULT_PACKAGES.

Remove the redundant inclusions.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-28 10:49:37 +08:00
Adrian Schmutzler
ef19bc7b76 ramips: remove (kmod-)swconfig DEVICE_PACKAGES for Sitecom WL-351
These definitions are not required since swconfig is selected for
the target anyway and kmod-swconfig is pulled as dependency by
kmod-switch-rtl8366rb.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-28 10:46:17 +08:00
Sungbo Eo
3aad5d79e2 ramips: explicitly disable built-in switch for lan-only devices
Commit 8f6334eb94 ("ramips: explicitly disable built-in switch when needed")
did not fix rt288x and rt3883 devices. This patch deals with them.

While at it, consolidate duplicate cases in interface setup.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-04-28 10:44:06 +08:00
Adrian Schmutzler
16d80420b6 ramips: create common definition for I-O DATA NAND devices
Three of the I-O DATA devices with NAND flash share a lot of
variables. Create a common definition for them to reduce duplicate
code.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-28 10:42:47 +08:00
Yong-hyu, Ban
9f10ea5055 mediatek: fix compile error caused by upstreamed mtk_m32 function
This fixes following compile error:

```
  CC      drivers/net/ethernet/mediatek/mtk_eth_soc.o
drivers/net/ethernet/mediatek/mtk_eth_soc.c:70:5: error: conflicting types for 'mtk_m32'
 u32 mtk_m32(struct mtk_eth *eth, u32 mask, u32 set, unsigned reg)
     ^~~~~~~
In file included from drivers/net/ethernet/mediatek/mtk_eth_soc.c:25:
drivers/net/ethernet/mediatek/mtk_eth_soc.h:964:6: note: previous declaration of 'mtk_m32' was here
 void mtk_m32(struct mtk_eth *eth, u32 clear, u32 set, unsigned reg);
      ^~~~~~~
```

which caused by 5.4.34 mainlining of mtk_m32 function.

Fixes: faf668be35 ("kernel: bump 5.4 to 5.4.34")
Signed-off-by: Yong-hyu, Ban <perillamint@quendi.moe>
2020-04-28 10:36:55 +08:00
INAGAKI Hiroshi
4f5c070c16 ramips: use lzma-loader for I-O DATA mt7621 devices
The official sysupgrade images for I-O DATA devices manufactured by
MSTC (MitraStar Technology Corp.) cannot be booted normally and the
kernel panics after switching to kernel 5.4.

This commit fixes the issue by using lzma-loader.

Note:
  These devices use Z-LOADER to read the kernel from NAND flash and boot
  it. Z-LOADER cannot load and start plain lzma-loader, so additional
  lzma-compression is needed.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Co-developed-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
Tested-by: Yanase Yuki <dev@zpc.sakura.ne.jp> [wn-ax2033gr]
2020-04-28 10:35:53 +08:00
INAGAKI Hiroshi
faaa299929 ramips: use lzma-loader for Japanese mt7621 devices
In several Japanese routers with MT7621 SoC, the official sysupgrade
image cannot be booted properly after switching to kernel 5.4.

This commit fixes the issue by using lzma-loader.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2020-04-28 10:35:13 +08:00
Szabolcs Hubai
e85d410a79 ramips: mt7621: use lzma-loader for D-Link DIR-860L B1
This device has trouble extracting big kernel from flash,
and supports LZMA compressed kernels only.

Using OpenWrt kernel loader saves us 64 KB compared to the dictionary
size limiting workaround.

Factory image sizes (commit: 5f126c541a) with "CONFIG_ALL_KMODS=y":
- original ("-d23", default): 4784188 bytes, LZMA ERROR 1
- with "-d19": 4915260, LZMA ERROR 1
- with "-d18": 4915260, diff to original: +128 KB
- with "-d17": 4980796, diff to original: +192 KB
- with this patch: 4849724, diff to original: +64 KB

To save some CPU cycle, use minimal compression ("-a0") for the LZMA
compressed uImage.

The most robust solution would use a different loader,
which reads the compressed kernel directly from the flash.
See the thread at [0] for more details!

[0] http://lists.infradead.org/pipermail/openwrt-devel/2020-April/022926.html

Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
Tested-by: Stijn Segers <foss@volatilesystems.org>
[fixed identation]
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-28 10:33:41 +08:00
David Bauer
75579f926f ath79: enable SGMII workaround for affected boards
These boards suffer from a sudden inability to establish a link on the
SGMII. Enable the workaround to fix the link when it dies.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-28 10:32:55 +08:00
David Bauer
1484f9f350 ath79: ag71xx: unify version dependent code
Use IS_ERR_OR_NULL macro to use the same code on kernel 4.19 as well as
5.4.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-28 10:30:41 +08:00
David Bauer
47a669d3e4 ath79: ag71xx: remove code for legacy kernels
ath79 does not support kernels prior to 4.19 anymore.
Remove legacy code for those kernels from the ag71xx driver.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-28 10:30:17 +08:00
David Bauer
6b4aae8a65 ath79: remove unused TP-Link partition parser
This parser was added with the target, but no device seems to use it
currently, as all partitions are specified in the device-tree.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-28 10:28:46 +08:00
Adrian Schmutzler
a51b43b9fa mvebu: tidy up support for GL.iNet GL-MV1000
This fixes a bunch of cosmetic issues with GL.iNet GL-MV1000:

- apply alphabetic sorting in multiple files
- use armada-3720 prefix for DTS like for other devices
- fix vendor capitalization for model in DTSes
- remove trivial comment in DTS files
- use DEVICE_VENDOR/DEVICE_MODEL
- remove redundant SUPPORTED_DEVICES
- use SOC instead of DEVICE_DTS
- remove empty line at EOF

Fixes: 050c24f05c ("mvebu: add support for GL.iNet GL-MV1000")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-27 08:47:41 +08:00
Li Zhang
d63319113c mvebu: add support for GL.iNet GL-MV1000
This patch adds supports for GL-MV1000.

Specification:
	- SOC: Marvell Armada 88F3720 (1GHz)
	- Flash: 16MB (W25Q128FWSIG)
	- RAM: 1GB DDR4
	- Ethernet: 3x GE (1 WAN + 2 LAN)
	- EMMC: 8GB EMMC (KLM8G1GETF-B041)
	- MicroSD: 1x microSD slot
	- USB: 1x USB 2.0 port(TypeA),1x USB 3.0 port(TypeC)
	- Button: 1x reset button,1x slide switch
	- LED: 3x greed LED
	- UART: 1x UART on PCB (JP1: 3.3V, RX, TX, GND)

	Update firmware instructions
	============================
	In the compiled,please gzip -d xxx.img.gz,then update firmware on uboot web.

Signed-off-by: Li Zhang <li.zhang@gl-inet.com>
[Copied dts file to files-5.4]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-27 08:45:28 +08:00
Sungbo Eo
7194d0b046 ramips: remove unnecessary DEVICE_PACKAGES for Belkin F7C027
kmod-usb-dwc2 and kmod-usb-ledtrig-usbport are not target default packages, and
Belkin F7C027 does not have a USB port anyway. Just drop it.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-04-27 08:42:51 +08:00
Sungbo Eo
9963d43e08 ramips: fix SUPPORTED_DEVICES for Mercury MAC1200R v2
Currently SUPPORTED_DEVICES only contains the old device string. Fix it by
removing the first assignment.

Fixes: c2334ad60d ("ramips/mt76x8: Synchronize Makefiles with DTS compatible")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-04-27 08:42:08 +08:00
Sungbo Eo
a9b1e81ff8 oxnas: move service file to correct place
This service file has been misplaced from the very beginning.

Fixes: dcc34574ef ("oxnas: bring in new oxnas target")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-04-27 08:41:17 +08:00
David Bauer
d545ddacb4 kernel: netdev: fix kmod-sfp symbols
Fixes: ec2f7a47d3 ("kernel: add module to support SFP cages")

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-27 08:40:17 +08:00
David Bauer
8f584b5398 kernel: netdev: fix kmod-sfp description capitalization
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-27 08:38:29 +08:00
David Bauer
f0b2de05f4 kernel: netdev: add phylink dependency for sfp
Fixes: ec2f7a47d3 ("kernel: add module to support SFP cages")

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-27 08:37:06 +08:00
David Bauer
5faf865d71 kernel: netdev: add kmod-phylink
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-27 08:35:12 +08:00
René van Dorst
c46d3459a1 ramips: enable SFP port for Ubiquiti ER-X-SFP
SFP cage of this device is connected via a AT8031 phy to port 5 of the switch.
This phy act as a RGMII-to-SerDes converter.

Also a I2C clock gate needs to be enabled in order to access the SFP module via I2C bus.
SFP cage also has module detect pin which is connected to I2C gpio expander.

With this patch the kernel/PHYLINK now can detect, readout and use the SFP module/port.

NOTE: SFP cage / AT8033 PHY only support 1000base-X encoding!
This means that some SGMII modules can work and only at forced 1GBit/full-duplex!

Signed-off-by: René van Dorst <opensource@vdorst.com>
2020-04-26 12:02:00 +08:00
René van Dorst
d2763883a6 kernel: add module to support SFP cages
Enables kernel SFP case support.

Signed-off-by: René van Dorst <opensource@vdorst.com>
2020-04-26 12:01:22 +08:00
DENG Qingfang
c79fa65943 ramips: phy: at803x: support RGMII-to-SerDes and SFP support
Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
Signed-off-by: René van Dorst <opensource@vdorst.com>
2020-04-26 11:56:09 +08:00
DENG Qingfang
4f19971fbe kernel: backport support for clause 37 1000Base-X auto-negotiation
This patch is needed for clause 37 1000Base-X encoding used in many SFP modules.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
Signed-off-by: René van Dorst <opensource@vdorst.com>
2020-04-26 11:55:26 +08:00
Petr Štetiar
8b75e5797a imx6: add back perf monitor related config symbol
Commit 0543eb1110 ("imx6: 5.4: add missing kernel perf monitor
symbol") has added missing kernel config symbol FSL_IMX8_DDR_PMU which
is exposed only when building perf, so add it back.

Fixes: 8d9b36270b ("imx6: refresh kernel config")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-04-26 11:54:43 +08:00
Petr Štetiar
a7bf3d97d5 kernel: bump 5.4 to 5.4.35
Refreshed one patch.

Run tested: qemu-x86-64
Build tested: x86/64, imx6, sunxi/a53, rockchip/armv8

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-04-25 21:05:03 +08:00
Alexander Couzens
425ad82d0f lantiq/fritz 7312: set maximum speed to 100 mbit
The fritz 7312 does not support 1000 gbit. Advertising it makes it
worse. Some NIC will change to 1000 gibt and turn off and on again for
ever.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2020-04-25 12:10:56 +08:00
CN_SZTL
0b4f23bcb3 Merge branch '18.06-kernel5.4' of github.com:project-openwrt/openwrt into 18.06-kernel5.4 2020-04-25 11:44:13 +08:00
CN_SZTL
a89aeebf92 Merge Mainline 2020-04-25 11:43:44 +08:00
David Bauer
58a381efda ath79: fix QCA953x DDR and GPIO compatible bindings
The memory as well as GPIO controller had the wrong SoC name used for
their compatible binding.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-25 11:39:31 +08:00
CN_SZTL
11789d9335 kernel: fix myloader on 4.9 2020-04-25 11:34:17 +08:00
David Bauer
22c9f8d75b ath79: correct QCA9550 machine compatible binding
Some boards using a QCA9556 or QCA9558 had their machine compatible
binding incorrectly set to qca,qca9557.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-25 11:33:52 +08:00
David Bauer
b16924954d ath79: rename qca9557.dtsi to qca955x.dtsi
There are at least 3 different chips in the Scorpion series of SoCs.
Rename the common DTSI to better reflect it's purpose for the whole
series.

Also rename the compatible bindings from qca,ar9557 and qca,qca9557
to qca,qca9550.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-04-25 11:32:37 +08:00
Adrian Schmutzler
26aa165e23 ath79: move tplinkpart.c parser to patches
Between 4.19 and 5.4, mtd parsers have been moved to "parsers"
subdirectory. Like for myloader.c in the previous patch,
this patch moves tplinkpart.c to the kernel patches, so the
code and the kernel includes are at the same location and
the path can be adjusted per kernel.

While at it, remove some outdated kernel version switches from
the C code.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-25 11:29:59 +08:00
Adrian Schmutzler
9bac15ce47 kernel: fix include of myloader.o since kernel 5.4
Between 4.19 and 5.4, mtd parsers have been moved to "parsers"
subdirectory. Based on this, the selection of myloader.o in OpenWrt
was also moved to that subdirectory, while the Kconfig and our local
myloader.c file remained in /drivers/mtd.

This resulted in linking errors like the following (on ath25@5.4):

make[8]: *** No rule to make target 'drivers/mtd/parsers/myloader.o', ...
   needed by 'drivers/mtd/parsers/built-in.a'.  Stop.
make[7]: *** [scripts/Makefile.build:500: drivers/mtd/parsers] Error 2
make[6]: *** [scripts/Makefile.build:500: drivers/mtd] Error 2

Since myloader.c is not too big, this patch moves it to the kernel patches,
allowing to adjust the path for kernel 5.4 and keeping Makefiles and
file paths better in sync.

Other patches have been refreshed accordingly.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-25 11:28:20 +08:00
Adrian Schmutzler
1abda0fe4d kernel: replace "+@" IPV6 dependency by "+"
The combination +@IPV6:kmod-ipsec6 is not valid, the +a:b
syntax implies the @. Fix it.

Fixes: 2e6b6f9fca ("kernel: add @IPv6 dependency to ipv6 modules")

Reported-by: Oldřich Jedlička (@oldium)
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-25 11:25:59 +08:00
CN_SZTL
38032f3a97 Merge Mainline 2020-04-25 08:43:48 +08:00
CN_SZTL
5a192cf749 mtwifi: remove outdated package 2020-04-25 08:42:58 +08:00
CN_SZTL
b3cf46c550 mt7621/76x8: switch to kernel 5.4 2020-04-25 08:35:17 +08:00
Leon M. George
e420613151 ipq40xx: wpj428: fix missing MDIO GPIO reset and pinmux
The bootloader does not always initialize the MDIO pins before booting
Linux. E.g. on version "U-Boot 2012.07 [Chaos Calmer 15.05.1,r35193] (Jul
25 2017 - 11:36:26)" this is the case when booting automatically without
activating the U-Boot console.

Without this change, the kernel boot will complain about missing PHYs:

 libphy: ipq40xx_mdio: probed
 ar40xx c000000.ess-switch: Probe failed - Missing PHYs!
 libphy: Fixed MDIO Bus: probed

With this change it will work as expected:

 libphy: ipq40xx_mdio: probed
 ESS reset ok!
 ESS reset ok!
 libphy: Fixed MDIO Bus: probed

Ref: GH-2835
Tested-by: Fredrik Olofsson <fredrik.olofsson@anyfinetworks.com>
Signed-off-by: Leon M. George <leon@georgemail.eu>
[commit description from Fredrik, subject facelift]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-04-24 21:16:31 +08:00
Adrian Schmutzler
f998fdb8d6 ramips: remove config-4.14 for mt7621/mt76x8
mt7621 and mt76x8 subtargets have been moved to kernel 5.4 and their
DTS(I) files are incompatible to kernel 4.14.

Remove the corresponding kernel config files to signal that more
boldly and to prevent accidentally patching the wrong kernel when
pulling in older config patches.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-24 08:18:16 +08:00
AmadeusGhost
58cf0e0bca octeon: add support for kernel 5.4 2020-04-24 08:15:26 +08:00
AmadeusGhost
83f3fc7c9d ath79: add kernel 5.4 support 2020-04-23 12:00:03 +08:00
AmadeusGhost
a18cb784eb mediatek: sync upstream source code 2020-04-23 08:20:22 +08:00
CN_SZTL
682cb19496 Merge Mainline 2020-04-23 03:12:44 +08:00
CN_SZTL
91c64798df Merge Mainline 2020-04-23 02:54:31 +08:00
CN_SZTL
8e2e62cb6f Merge Mainline 2020-04-22 23:18:30 +08:00
John Crispin
c6f0dcd2be generic: fix flow table hw offload
Make the driver work with recent upstream changes.

Signed-off-by: John Crispin <john@phrozen.org>
2020-04-22 17:50:13 +08:00
AmadeusGhost
7c28f81c70 hostapd: reduce to a single instance per service 2020-04-22 17:26:39 +08:00
AmadeusGhost
96e7e840b4 iw: bump to 5.4 2020-04-22 12:21:23 +08:00
Petr Štetiar
b181b86a1d kernel: bump 5.4 to 5.4.34
Refreshed patches.

Run tested: qemu-x86-64, apalis, a64-olinuxino
Build tested: x86/64, imx6, sunxi/a53

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-04-22 09:09:42 +08:00
CN_SZTL
d42417c49c Merge Mainline 2020-04-21 23:22:58 +08:00
Koen Vandeputte
efb8986b2f imx6: refresh kernel config
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2020-04-21 23:22:28 +08:00
Pawel Dembicki
96ee6cae9c uboot-kirkwood: update to 2020.04
Update U-Boot to current 2020.04 release for kirkwood platform.

Catch up with upstream and move some configuration options from
the header files to the corresponding defconfig files.

Compile tested: all devices
Run tested: nsa310, pogoplugv4

Tested-by: Cezary Jackiewicz <cezary@eko.one.pl> [nsa310]
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
2020-04-21 09:22:31 +08:00
CN_SZTL
800441b632 Merge Upstream 2020-04-21 09:22:13 +08:00
CN_SZTL
5104595381 Merge Mainline 2020-04-20 18:52:54 +08:00
AmadeusGhost
b8a25fb41c mpc85xx: change thermal to bool 2020-04-20 09:38:01 +08:00
AmadeusGhost
6577d6ae05 bcm47xx/63xx: add kernel 5.4 support 2020-04-20 08:30:18 +08:00
CN_SZTL
33e571e012 Merge Mainline 2020-04-19 20:04:51 +08:00
CN_SZTL
8b41b12f5b Merge Mainline 2020-04-19 19:58:30 +08:00
Sungbo Eo
6dc2b70c09 ramips: replace pinctrl property names for ipTIME A1004ns
The pinctrl driver had been replaced with the upstream one in b756ea2a90
("ramips: replace pinctrl property names"), but the initial A1004ns support
patch did not reflect the changes. This commit updates its pinctrl property
names.

Fixes: 9169482f64 ("ramips: add support for ipTIME A1004ns")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2020-04-19 19:05:17 +08:00
AmadeusGhost
b7650efddd ramips: sync upstream source code 2020-04-19 12:29:05 +08:00
Mantas Pucka
0bdcaa1189 generic: spi-nor: fix 4-byte opcode support for w25q256
There are 2 different chips (w25q256fv and w25q256jv) that share
the same JEDEC ID. Only w25q256jv fully supports 4-byte opcodes.
Use SFDP header version to differentiate between them.

Fixes broken reboot on 8devices Habanero since f0f35fdac

Signed-off-by: Mantas Pucka <mantas@8devices.com>
2020-04-19 12:21:00 +08:00
CN_SZTL
0def38e520 Merge Upstream 2020-04-18 12:21:38 +08:00
AmadeusGhost
ac180a0535 firmware-utils: sync upstream source code 2020-04-18 12:15:09 +08:00
CN_SZTL
f7697d198d sched-cake-oot: fix recursive dependency 2020-04-17 23:31:00 +08:00
CN_SZTL
d99fa18f83 Merge pull request #140 from 1715173329/op-dev
kmod-sched-cake: rename to kmod-sched-cake-oot
2020-04-17 23:18:53 +08:00
Kevin Darbyshire-Bryant
d506227aa6 kmod-sched-cake: rename to kmod-sched-cake-oot
In preparation for dropping the out of tree cake module and using
in tree cake from upstream, rename the package to kmod-sched-cake-oot
(out of tree)

Initially add a PROVIDES kmod-sched-cake so that package dependencies
can be satisfied.

Ultimately this package will be removed when linux 4.14 is removed.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2020-04-17 23:15:20 +08:00
CN_SZTL
2dfdeef0c9 Merge pull request #139 from 1715173329/op-dev
Merge Downstream Source
2020-04-17 22:46:05 +08:00
Petr Štetiar
51332ec1c3 kernel: bump 5.4 to 5.4.33
Refreshed patches, removed upstreamed patches:

 oxnas: 001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch
 oxnas: 002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch

Run tested: qemu-x86-64, apalis
Build tested: x86/64, imx6, sunxi/a53

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-04-17 22:44:22 +08:00
CN_SZTL
7f9ab3cee4 Merge Upstream 2020-04-17 22:40:20 +08:00
CN_SZTL
cd1cfdace5 Merge Upstream 2020-04-17 21:54:28 +08:00
ElonH
da93ca09f7 Merge Upstream 2020-04-17 21:48:27 +08:00
CN_SZTL
25c4523b26 Merge Upstream 2020-04-17 21:04:52 +08:00
AmadeusGhost
3994147b98 kernel: update linux modules 2020-04-17 17:35:06 +08:00
Koen Vandeputte
e111a8a555 kernel: add support for GD25D05 SPI NOR (5.4)
This chip is used on newer RB912UAG-5HPnD r2 and 922UAGS-5HPacD boards:

Before:

[    0.824562] spi-nor spi0.0: unrecognized JEDEC id bytes: c8 40 10 c8 40 10
[    0.831607] spi-nor: probe of spi0.0 failed with error -2

After:

[    0.825347] spi-nor spi0.0: gd25d05 (64 Kbytes)
[    0.830291] 1 routerbootpart partitions found on MTD device spi0.0
[    0.836577] Creating 1 MTD partitions on "spi0.0":
[    0.841448] 0x000000000000-0x000000010000 : "partitions"
[    0.848418] 4 routerbootpart partitions found on MTD device partitions
[    0.855092] Creating 4 MTD partitions on "partitions":
[    0.860318] 0x000000000000-0x00000000c000 : "routerboot"
[    0.866548] 0x00000000c000-0x00000000d000 : "hard_config"
[    0.872832] 0x00000000d000-0x00000000e000 : "bios"
[    0.878580] 0x00000000e000-0x00000000f000 : "soft_config"

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2020-04-17 05:34:06 +08:00
CN_SZTL
4f03cd721f Merge pull request #138 from 1715173329/op-dev
ramips: init kernel 5.4 support
2020-04-17 04:44:38 +08:00
CN_SZTL
14cd0c3225 Merge Upstream 2020-04-17 03:57:30 +08:00
AmadeusGhost
5ab8650479 ramips: add kernel 5.4 support 2020-04-16 22:15:27 +08:00
CN_SZTL
de3a2e8655 Merge pull request #137 from 1715173329/op-dev
Merge Downstream Source
2020-04-16 20:52:44 +08:00
AmadeusGhost
691d6d0cba ramips: correct mk 2020-04-16 20:42:44 +08:00
CN_SZTL
447dce768b Merge Upstream 2020-04-16 20:23:36 +08:00
AmadeusGhost
04c2018c4f ramips: remove testing-kernrl 2020-04-16 19:53:42 +08:00
AmadeusGhost
d2c3833012 mpc85xx/mvebu/mxs/octeontx/oxnas/sunxi/tegra/zynq: add kernel 5.4 support 2020-04-16 19:38:37 +08:00
AmadeusGhost
caf22aa4ce apm821xx/archs38/armvirt/gemini/imx6/kirkwood/lantiq/malta: add kernel 5.4 support 2020-04-16 18:09:15 +08:00
AmadeusGhost
00568e07ed ramips: add basic support for kernel 5.4 2020-04-16 10:00:29 +08:00
AmadeusGhost
ea16f633ac ipq806x: 5.4: add more gmac config for m520
status: fail to startup
2020-04-16 09:06:04 +08:00
CN_SZTL
1daec6448a Merge Upstream 2020-04-16 03:19:36 +08:00
CN_SZTL
9379c3f0e5 Merge pull request #135 from 1715173329/op-dev
Kernel: init kernel 5.4 support for some target
2020-04-16 01:16:32 +08:00
CN_SZTL
8042cac5c5 automount: fix typo 2020-04-16 00:29:59 +08:00
CN_SZTL
4c05596690 kernel/fs: use native exFAT driver for Kernel 5.4+ 2020-04-16 00:19:36 +08:00
CN_SZTL
71bdb47a9b Revert "ramips: mt7530 disable eee"
This reverts commit 9d1ac8192c.
2020-04-15 21:29:23 +08:00
CN_SZTL
1d9a198011 Merge Upstream 2020-04-15 21:15:07 +08:00
Chuanhong Guo
0208bbc1ed ramips: mt7621: enable lzma-loader for some devices
ubnt er-x/xiaomi/netgear sercomm devices are known to have troble
extracting a big kernel from flash and has support for uncompressed
uimage
This commit uses uncompressed uimage with lzma-loader for these devices
to fix boot issue.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-04-15 20:40:57 +08:00
Chen Minqiang
9d1ac8192c ramips: mt7530 disable eee
This disable eee for mt7530 on LINUX_5_4

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-04-15 20:39:55 +08:00
Chuanhong Guo
de6e7cb5d8 ramips: define image recipe for uncompressed uimage with loader
Some devices have bootloaders with broken lzma code resulting in failed
decompression or corrupted kernel code.
This image recipe allows to sacrifice 5KB for OpenWrt LZMA loader and
take over the task of decompress kernel.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-04-15 20:38:04 +08:00
CN_SZTL
7237a93e72 Merge Upstream 2020-04-15 20:30:47 +08:00
Ansuel Smith
a44de85704 ipq806x: add patch to fix broken buttons
From kernel 4.20 msm-gpio driver is broken and cause the
malfunction of the buttons on every ipq806x target.
Add a patch to fix this.

Tested-by: Hannu Nyman <hannu.nyman@iki.fi>
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2020-04-15 19:55:27 +08:00
AmadeusGhost
e7c65ce31c generic: refresh phy driver 2020-04-15 18:05:10 +08:00
AmadeusGhost
61bad53e93 ipq806x: 5.4: rewrite dts 2020-04-15 10:26:33 +08:00
CN_SZTL
f5c9391d0a ipq806x: add Kernel 5.4 (Testing) 2020-04-15 02:06:48 +08:00
CN_SZTL
90f7bbabb1 bcm27xx/bcm53xx: add Kernel 5.4 (Testing) 2020-04-15 02:02:43 +08:00
CN_SZTL
9fd7fa88c8 target/bcm53xx: adjust nand config 2020-04-15 01:28:16 +08:00
CN_SZTL
20ee2055dc kernel: bump 5.4 to 5.4.32
Remove upstreamed:
* 746-stable-net-dsa-mt7530-fix-null-pointer-dereferencing-in-por.patch

Refreshed all generic patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-04-15 01:19:50 +08:00
LGA1150
88ecff8632 bcm53xx: enable NAND 2020-04-15 01:05:39 +08:00
CN_SZTL
c5dd056449 mediatek: init kernel 5.4 support 2020-04-15 00:36:20 +08:00
CN_SZTL
b209e03f86 ramips: add Kernel 5.4 (Testing) 2020-04-15 00:30:01 +08:00
CN_SZTL
82c8447db8 target: make TESTING_KERNEL selectable 2020-04-14 23:56:07 +08:00
CN_SZTL
08d3bda9ab ramips: mt7621/76x8 add Kernel 5.4 (Testing) 2020-04-14 23:45:24 +08:00
CN_SZTL
6861ca0a6a ipq806x: init kernel 5.4 support 2020-04-14 23:21:08 +08:00
CN_SZTL
d69b57c2bc bcm27xx: init kernel 5.4 support 2020-04-14 23:09:10 +08:00
CN_SZTL
e1cde65dc2 bcm53xx: init kernel 5.4 support 2020-04-14 21:39:46 +08:00
CN_SZTL
e07120f1fb Merge Upstream 2020-04-14 21:11:11 +08:00
CN_SZTL
fbcb6ed522 mtwifi: support kernel 4.14 only 2020-04-14 21:01:37 +08:00
CN_SZTL
85887a5586 ramips: init kernel 5.4 support 2020-04-14 20:45:04 +08:00
CN_SZTL
a6c483f2f9 target/ipq40xx: add Kernel 5.4 (Testing) 2020-04-14 20:42:50 +08:00
CN_SZTL
534f1abc20 Merge Upstream 2020-04-14 20:33:17 +08:00
CN_SZTL
f92f7a9e0f Merge Upstream 2020-04-14 19:40:47 +08:00
AmadeusGhost
138d9a3926 ipq40xx: 5.4: refresh patches 2020-04-14 16:25:14 +08:00
CN_SZTL
d7ccf4a3dc ipq40xx: add dts files for kernel 5.4 2020-04-14 09:30:02 +08:00
Chen Minqiang
d8e1bff4b3 Package: kmod-ipt-nat6 drop xt_MASQUERADE.ko
kmod-ipt-nat6 depends on kmod-ipt-nat, where
contains xt_MASQUERADE.ko already.

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-04-14 09:10:09 +08:00
CN_SZTL
9daa977cac target/x86: add Kernel 5.4 (Testing) 2020-04-14 07:03:36 +08:00
Jeffery To
8b57e6e520 cryptodev-linux: Fix error when compiling with 5.4 kernel
Currently, cryptodev-linux fails to compile with a
'"crypto_givcipher_type" undefined' error for targets on the 5.4 kernel,
e.g. armvirt[1].

This backports an upstream patch[2] that fixes this error.

[1]: https://downloads.openwrt.org/snapshots/faillogs/aarch64_generic/base/cryptodev-linux/compile.txt
[2]: f971e0cd4a

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-04-14 05:46:51 +08:00
CN_SZTL
468ae867b8 target/ipq40xx: init kernel 5.4 support 2020-04-14 05:19:58 +08:00
CN_SZTL
8853e1aa06 kernel/video: fix dependency 2020-04-14 04:19:28 +08:00
CN_SZTL
d3f103f38b target/x86: zen: copy kernel 4.19 config to 5.4 2020-04-14 04:16:07 +08:00
CN_SZTL
0df7c96021 x86_64: add kernel config 2020-04-14 04:12:53 +08:00
Adrian Schmutzler
4ebd92c226 kernel: use older kernel for explicitly setting dependencies
It is generally more desirable to use older kernel versions for
dependencies, as this will require less changes when newer kernels
are added (they will by default select the newer packages).

Since we currently only have two kernels (4.14 and 4.19) in master,
this patch applies this logic by converting all LINUX_4_19 symbols
to their inverted LINUX_4_14 equivalents.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-14 04:09:17 +08:00
Luiz Angelo Daros de Luca
2ce89e258d kernel: load rtl8366_smi and rtl8367b on boot
This external switch driver should be loaded on boot for network support
in failsafe mode.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
[alter commit message]
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-04-14 03:59:07 +08:00
Tim Harvey
f71e92e373 kernel: fix lib-xor for ARM64
use LINUX_KARCH in directory path to avoid failures in non-arm targets.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2020-04-14 03:57:02 +08:00
Eneas U de Queiroz
d9aea0982c kernel: add @IPV6 dependency to ipv6 modules
IPv6 modules should all depend on @IPV6, to avoid circular dependencies
problems, especially if they select a module that depends on IPV6 as
well.  In theory, if a package A depends on IPV6, any package doing
'select A' (DEPENDS+= A) should also depend on IPV6; otherwise selecting
A will fail.  Sometimes the build system is forgiving this, but
eventually, and unexpectedly, it may blow up on some other commit.

Alternatively one can conditionally add IPv6 dependencies only if
CONFIG_IPV6 is selected: (DEPENDS+= +IPV6:package6).

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2020-04-14 03:56:47 +08:00
Mathias Kresin
adab38ed12 generic: make all phy drivers kernel 5.0 compatible
It adjusts the code to upstream changes from the commit 3c1bcc8614db
("net: ethernet: Convert phydev advertize and supported from u32 to link
 mode")

Signed-off-by: Mathias Kresin <dev@kresin.me>
2020-04-14 03:55:42 +08:00
Hauke Mehrtens
6642f92907 kernel: Add of_touchscreen.ko to kmod-input-touchscreen-ads7846
kmod-input-touchscreen-ads7846 depends on of_touchscreen.ko since
kernel 5.4.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-14 03:54:16 +08:00
Koen Vandeputte
11e9533e23 kernel: mode_beet mode_transport mode_tunnel xfram modules
This adds the new xfrm4_mode_beet, xfrm4_mode_transport,
xfrm4_mode_tunnel and their IPv6 versions on kernel 5.4. These modules
were newly added in kernel 5.2.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2020-04-14 03:53:04 +08:00
Norbert van Bolhuis
732fc5e9cd linux-atm: Include linux/sockios.h for SIOCGSTAMP
Since linux kernel commit 0768e17073dc527ccd18ed5f96ce85f9985e9115
(2019-04-19) the asm-generic/sockios.h header no longer defines
SIOCGSTAMP. Instead it provides only SIOCGSTAMP_OLD.

The linux/sockios.h header now defines SIOCGSTAMP using either
SIOCGSTAMP_OLD or SIOCGSTAMP_NEW as appropriate. This linux only
header file is not included so we get a build failure.

Signed-off-by: Norbert van Bolhuis <nvbolhuis@aimvalley.nl>
2020-04-14 03:52:54 +08:00
Chen Minqiang
7b93b863e8 x86: make crashdump works
1. KERNEL_CRASH_DUMP should depends on KERNEL_PROC_KCORE (kexec use it)
2. select crashkernel mem size by totalmem
   mem <= 256M disable crashkernel by default
   mem >= 4G use 256M for crashkernel
   mem >= 8G use 512M for crashkernel
   default use 128M
3. set BOOT_IMAGE in kdump.init
4. resolve a "Unhandled rela relocation: R_X86_64_PLT32" error

Tested on x86_64

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-04-14 03:51:40 +08:00
Hauke Mehrtens
af18655142 kernel: Adapt moved crodic.ko module
The module was moved in the kernel, adapt OpenWrt.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-14 03:51:27 +08:00
Koen Vandeputte
8ea57eb6d2 kernel: Include xt_MASQUERADE for kernel 5.2 and later
Instead of ip6t_MASQUERADE, include xt_MASQUERADE on kernel >= 5.2.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2020-04-14 03:50:14 +08:00
CN_SZTL
b83e6fc529 kernel/fs: exFAT: fix dependency 2020-04-14 03:44:32 +08:00
CN_SZTL
37ebeddeca kernel/usb: adjust dependency 2020-04-14 03:41:15 +08:00
CN_SZTL
070cc9bdfd kernel/fs: init exFAT fs driver for Kernel 5.4 2020-04-14 03:38:32 +08:00
Mathias Kresin
2111c6e03f kernel: swconfig: make compatible with kernel 5.2
Since kernel 5.2 within netlink messages the NLA_F_NESTED nested flag is
validated. But swconfig/swlib doesn't set the flag for
SWITCH_ATTR_OP_VALUE_PORTS related netlink messages and assigning ports
to vlans via

  swconfig dev switch0 vlan 1 set ports '0 1 2 3 4 6t'

Errors put with "Failed to set attribute: Invalid input data or
parameter".

Relax the validation rules and use the deprecated functions, to use the
same level of validation as it was till kernel 5.1. Depending on who has
swconfig related netlink messages implemented, there might be more
broken tools out there and we should keep backward compatibility if
possible.

Signed-off-by: Mathias Kresin <dev@kresin.me>
Tested-by: Rafał Miłecki <rafal@milecki.pl>
2020-04-14 02:59:41 +08:00
Hauke Mehrtens
04f18e584d kernel: Remove chash.ko from kmod-drm-amdgpu
This module was added with kernel 4.15, but is was removed again with
kernel version 5.3. OpenWrt does not support specifying a kernel version
range so just break it with kernel 4.14 and only support recent kernel
versions.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-14 02:56:11 +08:00
Adrian Schmutzler
ae10bb2273 broadcom-wl: fix compilation with kernel >= 4.15
Since kernel 4.15, init_timer is not available anymore, and has been
replaced by timer_setup. The fixes compilation of wl_linuc.c, which
returned the following errors beforehand (line-wrapped manually):

.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c: In function 'wl_init_timer':
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c:2576:2: error: implicit
	declaration of function 'init_timer'; did you mean 'init_timers'?
	[-Werror=implicit-function-declaration]
  init_timer(&t->timer);
  ^~~~~~~~~~
  init_timers
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c:2577:10: error:
	'struct timer_list' has no member named 'data'
  t->timer.data = (ulong) t;
          ^
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c:2578:20: error: assignment
	to 'void (*)(struct timer_list *)' from incompatible pointer type
	'void (*)(ulong)' {aka 'void (*)(long unsigned int)'}
	[-Werror=incompatible-pointer-types]
  t->timer.function = wl_timer;

This should fix build of several devices on bcm63xx with testing
kernel (4.19).

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-04-14 02:55:38 +08:00
Martin Blumenstingl
21d1be2d07 lantiq: ltq-deu: fix compatibility with Linux 5.3+
Upstream commit 84ede58dfcd1d ("crypto: hash - remove
CRYPTO_ALG_TYPE_DIGEST") drops the CRYPTO_ALG_TYPE_DIGEST define because
it has the same value as CRYPTO_ALG_TYPE_HASH. This was the case for
earlier kernels as well. Switch to CRYPTO_ALG_TYPE_HASH to fix building
against Linux 5.4.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2020-04-14 02:54:21 +08:00
Koen Vandeputte
f5f2193e3f kernel: Make kmod-rtc-pcf2123 depend on kmod-regmap-spi
In kernel 5.4 kmod-rtc-pcf2123 depends on kmod-regmap-spi, add this missing
dependency.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2020-04-14 02:52:32 +08:00
Mathias Kresin
0cc005294a ltq-atm: add Linux 5.0+ compatibility
Upstream commit 96d4f267e40f95 ("Remove 'type' argument from access_ok()
function") removes the first argument to access_ok.
Adjust the code so it builds with Linux 5.4.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Mathias Kresin <dev@kresin.me>
2020-04-14 02:52:08 +08:00
Hauke Mehrtens
1fb04b0c7e kernel: Add roles.ko to kmod-usb-chipidea
kmod-usb-chipidea depends on roles.ko since kernel 5.4.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-14 02:51:26 +08:00
Hauke Mehrtens
9b6bfe6e35 kernel: Make kmod-gpio-pca953x depend on kmod-regmap-i2c
In kernel 5.4 kmod-gpio-pca953x depends on kmod-regmap-i2c.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-14 02:42:57 +08:00
Hauke Mehrtens
b5f1fb38f9 kernel: module v4l2-common.ko was removed
The content of v4l2-common.ko was merged into videodev.ko and it was
removed in kernel 5.4.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-14 02:42:51 +08:00
Hauke Mehrtens
fd921218ba kernel: Make kmod-fs-f2fs depend on kmod-nls-base
Since kernel 5.4 kmod-fs-f2fs is depending on kmod-nls-base.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-14 02:41:29 +08:00
Hauke Mehrtens
b94070de6f nat46: Fix compile with kernel 5.4
nf_reset() was renamed to nf_reset_ct() in upstream Linux commit
895b5c9f206e ("netfilter: drop bridge nf reset from nf_reset)"

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-14 02:41:14 +08:00
CN_SZTL
2d1746ff2b kernel/linux: netfilter: adjust dependency 2020-04-14 02:20:04 +08:00
CN_SZTL
e179005f27 kernel/linux: adjust dependency 2020-04-14 02:14:05 +08:00
Hauke Mehrtens
01d9db21c1 kernel: Remove kmod-gigaset for kernel 5.4
gigaset was moved to staging in kernel 5.4, just deactivate it on
recent kernel versions instead of adapting it.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-14 00:34:49 +08:00
Hauke Mehrtens
dff7db7060 kernel: Make kmod-ixgbe depend on kmod-libphy
With kernel 5.4 kmod-ixgbe is depending on kmod-libphy, add this
missing dependency.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-04-14 00:31:59 +08:00
AmadeusGhost
87eff41c80 i40e: adjust dependency 2020-04-14 00:30:32 +08:00
ElonH
f121547284 i40evf: driver has been merged in iavf
drivers/net/ethernet/intel/iavf/iavf_main.c
56:MODULE_ALIAS("i40evf");
2020-04-14 00:29:08 +08:00
CN_SZTL
c91df68a6c r8125: do not support kernel5.4 2020-04-14 00:18:52 +08:00
CN_SZTL
9cbd449674 kernel: init kernel 5.4 support 2020-04-14 00:08:05 +08:00
Tomasz Maciej Nowak
387c09fb6f kernel: replace SUBDIRS with M in package recipes
The SUBDIRS variable has been removed in kernel 5.4, and was deprecated
since the beginnig of kernel git history in favour of M or KBUILD_EXTMOD.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
2020-04-14 00:04:04 +08:00
Rafał Miłecki
a1aeb10921 kernel: backport mtd partition address fix sent upstream
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2020-04-13 23:43:08 +08:00
15225 changed files with 3001856 additions and 1781607 deletions

View File

@@ -46,6 +46,14 @@ menu "Global build settings"
comment "General build options"
config TESTING_KERNEL
bool "Use the testing kernel version"
depends on HAS_TESTING_KERNEL
default n
help
If the target supports a newer kernel version than the default,
you can use this config option to enable it
config DISPLAY_SUPPORT
bool "Show packages that require graphics support (local or remote)"
default n

View File

@@ -13,11 +13,12 @@ menu "Target Images"
choice
prompt "Compression"
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_apm821xx
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ar71xx
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ath79_mikrotik
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ipq40xx
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_lantiq
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_mpc85xx
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips
default TARGET_INITRAMFS_COMPRESSION_XZ if USES_SEPARATE_INITRAMFS
default TARGET_INITRAMFS_COMPRESSION_NONE
depends on TARGET_ROOTFS_INITRAMFS
help
@@ -36,13 +37,19 @@ menu "Target Images"
bool "lzma"
config TARGET_INITRAMFS_COMPRESSION_LZO
depends on !TARGET_ROOTFS_INITRAMFS_SEPARATE
bool "lzo"
config TARGET_INITRAMFS_COMPRESSION_LZ4
depends on !TARGET_ROOTFS_INITRAMFS_SEPARATE
bool "lz4"
config TARGET_INITRAMFS_COMPRESSION_XZ
bool "xz"
config TARGET_INITRAMFS_COMPRESSION_ZSTD
depends on !LINUX_5_4 && !LINUX_4_19
bool "zstd"
endchoice
config EXTERNAL_CPIO
@@ -53,11 +60,20 @@ menu "Target Images"
Kernel uses specified external cpio as INITRAMFS_SOURCE.
config TARGET_INITRAMFS_FORCE
bool "Force"
depends on TARGET_ROOTFS_INITRAMFS
default n
help
Ignore the initramfs passed by the bootloader.
bool "Force"
depends on TARGET_ROOTFS_INITRAMFS
default n
help
Ignore the initramfs passed by the bootloader.
config TARGET_ROOTFS_INITRAMFS_SEPARATE
bool "separate ramdisk"
depends on USES_SEPARATE_INITRAMFS && TARGET_ROOTFS_INITRAMFS && !TARGET_INITRAMFS_FORCE
default y if USES_SEPARATE_INITRAMFS
help
Generate separate initrd.cpio instead of embedding it.
This is useful for generating images with a dedicated
ramdisk e.g. in U-Boot's uImage and uImage.FIT formats.
comment "Root filesystem archives"
@@ -292,7 +308,7 @@ menu "Target Images"
config TARGET_ROOTFS_PARTSIZE
int "Root filesystem partition size (in MiB)"
depends on USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS || TARGET_mvebu || TARGET_rb532 || TARGET_sunxi || TARGET_uml
depends on USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS || TARGET_mvebu
default 800 if BUILDBOT
default 160
help

View File

@@ -33,6 +33,10 @@ config KERNEL_SWAP
bool "Support for paging of anonymous memory (swap)"
default y if !SMALL_FLASH
config KERNEL_PROC_STRIPPED
bool "Strip non-essential /proc functionality to reduce code size"
default y if SMALL_FLASH
config KERNEL_DEBUG_FS
bool "Compile the kernel with debug filesystem enabled"
default y
@@ -42,8 +46,8 @@ config KERNEL_DEBUG_FS
write to these files. Many common debugging facilities, such as
ftrace, require the existence of debugfs.
config KERNEL_MIPS_FPU_EMULATOR
bool "Compile the kernel with MIPS FPU Emulator"
config KERNEL_MIPS_FP_SUPPORT
bool
default y
depends on (mips || mipsel || mips64 || mips64el)
@@ -145,6 +149,40 @@ config KERNEL_FUNCTION_PROFILER
depends on KERNEL_FUNCTION_TRACER
default n
config KERNEL_IRQSOFF_TRACER
bool "Interrupts-off Latency Tracer"
depends on KERNEL_FTRACE
help
This option measures the time spent in irqs-off critical
sections, with microsecond accuracy.
The default measurement method is a maximum search, which is
disabled by default and can be runtime (re-)started
via:
echo 0 > /sys/kernel/debug/tracing/tracing_max_latency
(Note that kernel size and overhead increase with this option
enabled. This option and the preempt-off timing option can be
used together or separately.)
config KERNEL_PREEMPT_TRACER
bool "Preemption-off Latency Tracer"
depends on KERNEL_FTRACE
help
This option measures the time spent in preemption-off critical
sections, with microsecond accuracy.
The default measurement method is a maximum search, which is
disabled by default and can be runtime (re-)started
via:
echo 0 > /sys/kernel/debug/tracing/tracing_max_latency
(Note that kernel size and overhead increase with this option
enabled. This option and the irqs-off timing option can be
used together or separately.)
config KERNEL_DEBUG_KERNEL
bool
default n
@@ -214,6 +252,10 @@ config KERNEL_AIO
bool "Compile the kernel with asynchronous IO support"
default y if !SMALL_FLASH
config KERNEL_IO_URING
bool "Compile the kernel with io_uring support"
default y if !SMALL_FLASH
config KERNEL_FHANDLE
bool "Compile the kernel with support for fhandle syscalls"
default y if !SMALL_FLASH
@@ -740,6 +782,15 @@ if KERNEL_IPV6
config KERNEL_IPV6_PIMSM_V2
def_bool n
config KERNEL_IPV6_SEG6_LWTUNNEL
bool "Enable support for lightweight tunnels"
default y if !SMALL_FLASH
help
Using lwtunnel (needed for IPv6 segment routing) requires ip-full package.
config KERNEL_LWTUNNEL_BPF
def_bool n
endif
#

View File

@@ -1,4 +1,4 @@
src-git packages https://github.com/immortalwrt/packages.git;openwrt-18.06
src-git luci https://github.com/immortalwrt/luci.git;openwrt-18.06
src-git routing https://github.com/openwrt/routing.git;openwrt-19.07
src-git telephony https://github.com/openwrt/telephony.git;openwrt-21.02
src-git luci https://github.com/immortalwrt/luci.git;openwrt-18.06-k5.4
src-git routing https://github.com/openwrt/routing.git;openwrt-22.03
src-git telephony https://github.com/openwrt/telephony.git;openwrt-22.03

View File

@@ -3,18 +3,39 @@
IMAGE_KERNEL = $(word 1,$^)
IMAGE_ROOTFS = $(word 2,$^)
define ModelNameLimit16
$(shell expr substr "$(word 2, $(subst _, ,$(1)))" 1 16)
endef
define rootfs_align
$(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1))))))
endef
define Build/uImage
mkimage -A $(LINUX_KARCH) \
-O linux -T kernel \
-C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
-n '$(if $(UIMAGE_NAME),$(UIMAGE_NAME),$(call toupper,$(LINUX_KARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION))' -d $@ $@.new
mv $@.new $@
define Build/package-kernel-ubifs
mkdir $@.kernelubifs
cp $@ $@.kernelubifs/kernel
$(STAGING_DIR_HOST)/bin/mkfs.ubifs \
$(KERNEL_UBIFS_OPTS) \
-r $@.kernelubifs $@
rm -r $@.kernelubifs
endef
define Build/append-image
dd if=$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1) >> $@
endef
ifdef IB
define Build/append-image-stage
dd if=$(STAGING_DIR_IMAGE)/$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))-$(DEVICE_NAME)-$(1) >> $@
endef
else
define Build/append-image-stage
dd if=$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1) of=$(STAGING_DIR_IMAGE)/$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))-$(DEVICE_NAME)-$(1)
dd if=$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1) >> $@
endef
endif
define Build/buffalo-enc
$(eval product=$(word 1,$(1)))
$(eval version=$(word 2,$(1)))
@@ -48,6 +69,39 @@ define Build/buffalo-dhp-image
mv $@.new $@
endef
define Build/elecom-wrc-gs-factory
$(eval product=$(word 1,$(1)))
$(eval version=$(word 2,$(1)))
$(eval hash_opt=$(word 3,$(1)))
$(MKHASH) md5 $(hash_opt) $@ >> $@
( \
echo -n "ELECOM $(product) v$(version)" | \
dd bs=32 count=1 conv=sync; \
dd if=$@; \
) > $@.new
mv $@.new $@
endef
define Build/elx-header
$(eval hw_id=$(word 1,$(1)))
$(eval xor_pattern=$(word 2,$(1)))
( \
echo -ne "\x00\x00\x00\x00\x00\x00\x00\x03" | \
dd bs=42 count=1 conv=sync; \
hw_id="$(hw_id)"; \
echo -ne "\x$${hw_id:0:2}\x$${hw_id:2:2}\x$${hw_id:4:2}\x$${hw_id:6:2}" | \
dd bs=20 count=1 conv=sync; \
echo -ne "$$(printf '%08x' $$(stat -c%s $@) | fold -s2 | xargs -I {} echo \\x{} | tr -d '\n')" | \
dd bs=8 count=1 conv=sync; \
echo -ne "$$($(MKHASH) md5 $@ | fold -s2 | xargs -I {} echo \\x{} | tr -d '\n')" | \
dd bs=58 count=1 conv=sync; \
) > $(KDIR)/tmp/$(DEVICE_NAME).header
$(call Build/xor-image,-p $(xor_pattern) -x)
cat $(KDIR)/tmp/$(DEVICE_NAME).header $@ > $@.new
mv $@.new $@
rm -rf $(KDIR)/tmp/$(DEVICE_NAME).header
endef
define Build/eva-image
$(STAGING_DIR_HOST)/bin/lzma2eva $(KERNEL_LOADADDR) $(KERNEL_LOADADDR) $@ $@.new
mv $@.new $@
@@ -142,6 +196,13 @@ define Build/append-dtb
cat $(KDIR)/image-$(firstword $(DEVICE_DTS)).dtb >> $@
endef
define Build/append-dtb-elf
$(TARGET_CROSS)objcopy \
--set-section-flags=.appended_dtb=alloc,contents \
--update-section \
.appended_dtb=$(KDIR)/image-$(firstword $(DEVICE_DTS)).dtb $@
endef
define Build/install-dtb
$(call locked, \
$(foreach dts,$(DEVICE_DTS), \
@@ -153,15 +214,32 @@ define Build/install-dtb
)
endef
define Build/initrd_compression
$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),.bzip2) \
$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),.gzip) \
$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),.lzma) \
$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),.xz) \
$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD),.zstd)
endef
define Build/fit
$(TOPDIR)/scripts/mkits.sh \
-D $(DEVICE_NAME) -o $@.its -k $@ \
$(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \
-C $(word 1,$(1)) $(if $(word 2,$(1)),\
$(if $(DEVICE_DTS_OVERLAY),-d $(KERNEL_BUILD_DIR)/image-$$(basename $(word 2,$(1))),\
-d $(word 2,$(1)))) \
$(if $(findstring with-rootfs,$(word 3,$(1))),-r $(IMAGE_ROOTFS)) \
$(if $(findstring with-initrd,$(word 3,$(1))), \
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE), \
-i $(KERNEL_BUILD_DIR)/initrd.cpio$(strip $(call Build/initrd_compression)))) \
-a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
$(if $(DEVICE_FDT_NUM),-n $(DEVICE_FDT_NUM)) \
-c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config@1") \
$(if $(DEVICE_DTS_DELIMITER),-l $(DEVICE_DTS_DELIMITER)) \
$(if $(DEVICE_DTS_OVERLAY),$(foreach dtso,$(DEVICE_DTS_OVERLAY), -O $(dtso):$(KERNEL_BUILD_DIR)/image-$(dtso).dtb)) \
-c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config-1") \
-A $(LINUX_KARCH) -v $(LINUX_VERSION)
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage $(if $(findstring external,$(word 3,$(1))),\
-E -B 0x1000 $(if $(findstring static,$(word 3,$(1))),-p 0x1000)) -f $@.its $@.new
@mv $@.new $@
endef
@@ -235,7 +313,7 @@ define Build/append-ubi
$(if $(UBOOTENV_IN_UBI),--uboot-env) \
$(if $(KERNEL_IN_UBI),--kernel $(IMAGE_KERNEL)) \
$(foreach part,$(UBINIZE_PARTS),--part $(part)) \
$(IMAGE_ROOTFS) \
--rootfs $(IMAGE_ROOTFS) \
$@.tmp \
-p $(BLOCKSIZE:%k=%KiB) -m $(PAGESIZE) \
$(if $(SUBPAGESIZE),-s $(SUBPAGESIZE)) \
@@ -245,6 +323,18 @@ define Build/append-ubi
rm $@.tmp
endef
define Build/ubinize-kernel
cp $@ $@.tmp
sh $(TOPDIR)/scripts/ubinize-image.sh \
--kernel $@.tmp \
$@ \
-p $(BLOCKSIZE:%k=%KiB) -m $(PAGESIZE) \
$(if $(SUBPAGESIZE),-s $(SUBPAGESIZE)) \
$(if $(VID_HDR_OFFSET),-O $(VID_HDR_OFFSET)) \
$(UBINIZE_OPTS)
rm $@.tmp
endef
define Build/append-uboot
dd if=$(UBOOT_PATH) >> $@
endef
@@ -287,12 +377,16 @@ define Build/check-size
}
endef
define Build/combined-image
-sh $(TOPDIR)/scripts/combined-image.sh \
"$(IMAGE_KERNEL)" \
"$@" \
"$@.new"
@mv $@.new $@
define Build/elecom-product-header
$(eval product=$(word 1,$(1)))
$(eval fw=$(if $(word 2,$(1)),$(word 2,$(1)),$@))
( \
echo -n -e "ELECOM\x00\x00$(product)" | dd bs=40 count=1 conv=sync; \
echo -n "0.00" | dd bs=16 count=1 conv=sync; \
dd if=$(fw); \
) > $(fw).new
mv $(fw).new $(fw)
endef
define Build/linksys-image
@@ -412,6 +506,21 @@ metadata_json = \
} \
}'
define Build/uImage
mkimage \
-A $(LINUX_KARCH) \
-O linux \
-T kernel \
-C $(word 1,$(1)) \
-a $(KERNEL_LOADADDR) \
-e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
-n '$(if $(UIMAGE_NAME),$(UIMAGE_NAME),$(call toupper,$(LINUX_KARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION))' \
$(if $(UIMAGE_MAGIC),-M $(UIMAGE_MAGIC)) \
$(wordlist 2,$(words $(1)),$(1)) \
-d $@ $@.new
mv $@.new $@
endef
define Build/append-metadata
$(if $(SUPPORTED_DEVICES),-echo $(call metadata_json,$(SUPPORTED_DEVICES)) | fwtool -I - $@)
[ ! -s "$(BUILD_KEY)" -o ! -s "$(BUILD_KEY).ucert" -o ! -s "$@" ] || { \

View File

@@ -1,93 +0,0 @@
ifneq ($(CONFIG_TARGET_ROOTFS_UBIFS),)
define Image/mkfs/ubifs/generate
$(CP) ./ubinize$(1).cfg $(KDIR)
( cd $(KDIR); \
$(STAGING_DIR_HOST)/bin/ubinize \
$(if $($(PROFILE)_UBI_OPTS),$($(PROFILE)_UBI_OPTS),$(shell echo $(UBI_OPTS))) \
-o $(KDIR)/root$(1).ubi \
ubinize$(1).cfg \
)
endef
define Image/mkfs/ubifs/legacy
$(if $($(PROFILE)_UBIFS_OPTS)$(UBIFS_OPTS),
$(STAGING_DIR_HOST)/bin/mkfs.ubifs \
$(if $($(PROFILE)_UBIFS_OPTS),$($(PROFILE)_UBIFS_OPTS),$(UBIFS_OPTS)) \
$(if $(CONFIG_TARGET_UBIFS_FREE_SPACE_FIXUP),--space-fixup) \
$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_NONE),--compr=none) \
$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_LZO),--compr=lzo) \
$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_ZLIB),--compr=zlib) \
$(if $(shell echo $(CONFIG_TARGET_UBIFS_JOURNAL_SIZE)),--jrn-size=$(CONFIG_TARGET_UBIFS_JOURNAL_SIZE)) \
--squash-uids \
-o $(KDIR)/root.ubifs \
-d $(TARGET_DIR)
)
$(call Image/Build,ubifs)
$(if $($(PROFILE)_UBI_OPTS)$(UBI_OPTS),
$(if $(wildcard ./ubinize.cfg),$(call Image/mkfs/ubifs/generate,))
$(if $(wildcard ./ubinize-overlay.cfg),$(call Image/mkfs/ubifs/generate,-overlay))
)
$(if $(wildcard ./ubinize.cfg),$(call Image/Build,ubi))
endef
endif
LegacyDevice/Dump = $(Device/Dump)
define LegacyDevice/Check
$(Device/Check/Common)
_TARGET_PREPARE := $$(if $$(_PROFILE_SET),legacy-images-prepare,prepare-disabled)
_TARGET := $$(if $$(_PROFILE_SET),legacy-images,install-disabled)
$$(if $$(_PROFILE_SET),install: legacy-images-make)
ifndef IB
$$(if $$(_PROFILE_SET),kernel_prepare: legacy-images-prepare-make)
endif
endef
ifdef TARGET_PER_DEVICE_ROOTFS
define Image/Build/Profile/Filesystem
cp $(KDIR)/root.$(2)+pkg=$(3) $(KDIR)/root.$(2)
$(call Image/Build/$(2),$(2))
$(call Image/Build/Profile,$(1),$(2))
endef
else
Image/Build/Profile/Filesystem = $(Image/Build/Profile)
endif
define LegacyDevice/Build
$$(_TARGET): legacy-image-$(1)
$$(_TARGET_PREPARE): legacy-image-prepare-$(1)
.PHONY: legacy-image-prepare-$(1) legacy-image-$(1)
legacy-image-prepare-$(1):
$$(call Image/Prepare/Profile,$(1))
ifndef IB
ifdef CONFIG_TARGET_PER_DEVICE_ROOTFS
ROOTFS/$(1) := $(foreach fs,$(TARGET_FILESYSTEMS), \
$(KDIR)/root.$(fs)$$(strip $(if $(CONFIG_TARGET_PER_DEVICE_ROOTFS),+pkg=$$(ROOTFS_ID/$(1)))) \
)
$$(ROOTFS/$(1)): target-dir-$$(ROOTFS_ID/$(1))
legacy-images-make: $$(if $$(_PROFILE_SET),$$(ROOTFS/$(1)))
endif
endif
legacy-image-$(1):
$$(call Image/BuildKernel/Profile,$(1))
$(foreach fs,$(TARGET_FILESYSTEMS),
$$(call Image/Build/Profile/Filesystem,$(1),$(fs),$$(ROOTFS_ID/$(1)))
)
endef
define LegacyDevice
$(call Device/InitProfile,$(1))
$(call Device/Default,$(1))
$(call LegacyDevice/Default,$(1))
$(call LegacyDevice/$(1),$(1))
$(call LegacyDevice/Check,$(1))
$(call LegacyDevice/$(if $(DUMP),Dump,Build),$(1))
endef

View File

@@ -14,7 +14,6 @@ ifndef IB
endif
endif
include $(INCLUDE_DIR)/image-legacy.mk
include $(INCLUDE_DIR)/feeds.mk
include $(INCLUDE_DIR)/rootfs.mk
@@ -153,18 +152,12 @@ DTC_FLAGS += \
-Wno-unit_address_format \
-Wno-pci_bridge \
-Wno-pci_device_bus_num \
-Wno-pci_device_reg
ifeq ($(strip $(call kernel_patchver_ge,4.17.0)),1)
DTC_FLAGS += \
-Wno-avoid_unnecessary_addr_size \
-Wno-alias_paths
endif
ifeq ($(strip $(call kernel_patchver_ge,4.18.0)),1)
DTC_FLAGS += \
-Wno-graph_child_address \
-Wno-graph_port \
-Wno-unique_unit_address
endif
-Wno-pci_device_reg \
-Wno-avoid_unnecessary_addr_size \
-Wno-alias_paths \
-Wno-graph_child_address \
-Wno-graph_port \
-Wno-unique_unit_address
define Image/pad-to
dd if=$(1) of=$(1).new bs=$(2) conv=sync
@@ -190,6 +183,7 @@ define Image/BuildDTB
-o $(2).tmp $(1)
$(LINUX_DIR)/scripts/dtc/dtc -O dtb \
-i$(dir $(1)) $(DTC_FLAGS) $(4) \
$(if $(CONFIG_HAS_DT_OVERLAY_SUPPORT),-@) \
-o $(2) $(2).tmp
$(RM) $(2).tmp
endef
@@ -248,35 +242,6 @@ define Image/mkfs/squashfs
endef
endif
# $(1): board name
# $(2): rootfs type
# $(3): kernel image
# $(4): compat string
ifneq ($(CONFIG_NAND_SUPPORT),)
define Image/Build/SysupgradeNAND
mkdir -p "$(KDIR_TMP)/sysupgrade-$(if $(4),$(4),$(1))/"
echo "BOARD=$(if $(4),$(4),$(1))" > "$(KDIR_TMP)/sysupgrade-$(if $(4),$(4),$(1))/CONTROL"
[ -z "$(2)" ] || $(CP) "$(KDIR)/root.$(2)" "$(KDIR_TMP)/sysupgrade-$(if $(4),$(4),$(1))/root"
[ -z "$(3)" ] || $(CP) "$(3)" "$(KDIR_TMP)/sysupgrade-$(if $(4),$(4),$(1))/kernel"
(cd "$(KDIR_TMP)"; $(TAR) cvf \
"$(BIN_DIR)/$(IMG_PREFIX)-$(1)-$(2)-sysupgrade.tar" sysupgrade-$(if $(4),$(4),$(1)) \
$(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
)
endef
# $(1) board name
# $(2) ubinize-image options (e.g. --uboot-env and/or --kernel kernelimage)
# $(3) rootfstype (e.g. squashfs or ubifs)
# $(4) options to pass-through to ubinize (i.e. $($(PROFILE)_UBI_OPTS)))
define Image/Build/UbinizeImage
sh $(TOPDIR)/scripts/ubinize-image.sh $(2) \
"$(KDIR)/root.$(3)" \
"$(KDIR)/$(IMG_PREFIX)-$(1)-$(3)-ubinized.bin" \
$(4)
endef
endif
define Image/mkfs/ubifs
$(STAGING_DIR_HOST)/bin/mkfs.ubifs \
$(UBIFS_OPTS) $(call param_unmangle,$(call param_get,fs,$(1))) \
@@ -421,11 +386,14 @@ define Device/Init
DEVICE_DTS :=
DEVICE_DTS_CONFIG :=
DEVICE_DTS_DELIMITER :=
DEVICE_DTS_DIR :=
DEVICE_DTS_OVERLAY :=
DEVICE_FDT_NUM :=
SOC :=
BOARD_NAME :=
UIMAGE_MAGIC :=
UIMAGE_NAME :=
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
IMAGE_METADATA :=
@@ -441,7 +409,8 @@ DEFAULT_DEVICE_VARS := \
DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_INITRAMFS_IMAGE KERNEL_SIZE \
CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI BLOCKSIZE PAGESIZE SUBPAGESIZE \
VID_HDR_OFFSET UBINIZE_OPTS UBINIZE_PARTS MKUBIFS_OPTS DEVICE_DTS \
DEVICE_DTS_CONFIG DEVICE_DTS_DIR DEVICE_FDT_NUM SOC BOARD_NAME UIMAGE_NAME \
DEVICE_DTS_CONFIG DEVICE_DTS_DELIMITER DEVICE_DTS_DIR DEVICE_DTS_OVERLAY \
DEVICE_FDT_NUM DEVICE_IMG_PREFIX SOC BOARD_NAME UIMAGE_MAGIC UIMAGE_NAME \
SUPPORTED_DEVICES IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR UBOOT_PATH \
IMAGE_SIZE DEVICE_PACKAGES DEVICE_VENDOR DEVICE_MODEL DEVICE_VARIANT \
DEVICE_ALT0_VENDOR DEVICE_ALT0_MODEL DEVICE_ALT0_VARIANT \
@@ -561,7 +530,7 @@ endef
endif
define Device/Build/kernel
$$(eval $$(foreach dts,$$(DEVICE_DTS), \
$$(eval $$(foreach dts,$$(DEVICE_DTS) $$(DEVICE_DTS_OVERLAY), \
$$(call Device/Build/dtb,$$(notdir $$(dts)), \
$$(if $$(DEVICE_DTS_DIR),$$(DEVICE_DTS_DIR),$$(DTS_DIR)), \
$$(dts) \
@@ -762,8 +731,6 @@ define BuildImage
prepare:
compile:
clean:
legacy-images-prepare:
legacy-images:
image_prepare:
ifeq ($(IB),)
@@ -779,9 +746,6 @@ define BuildImage
rm -rf $(BUILD_DIR)/json_info_files
$(call Image/Prepare)
legacy-images-prepare-make: image_prepare
$(MAKE) legacy-images-prepare BIN_DIR="$(BIN_DIR)"
else
image_prepare:
mkdir -p $(BIN_DIR) $(KDIR)/tmp
@@ -795,17 +759,12 @@ define BuildImage
$(call Image/InstallKernel)
$(foreach device,$(TARGET_DEVICES),$(call Device,$(device)))
$(foreach device,$(LEGACY_DEVICES),$(call LegacyDevice,$(device)))
install-images: kernel_prepare $(foreach fs,$(filter-out $(if $(UBIFS_OPTS),,ubifs),$(TARGET_FILESYSTEMS) $(fs-subtypes-y)),$(KDIR)/root.$(fs))
$(foreach fs,$(TARGET_FILESYSTEMS),
$(call Image/Build,$(fs))
)
legacy-images-make: install-images
$(call Image/mkfs/ubifs/legacy)
$(MAKE) legacy-images BIN_DIR="$(BIN_DIR)"
install: install-images
$(call Image/Manifest)

2
include/kernel-5.10 Normal file
View File

@@ -0,0 +1,2 @@
LINUX_VERSION-5.10 = .134
LINUX_KERNEL_HASH-5.10.134 = ec3513acdf033dd8f8ac2545cd1bb826b0669e151185e5f70408a5c9fe273269

2
include/kernel-5.4 Normal file
View File

@@ -0,0 +1,2 @@
LINUX_VERSION-5.4 = .203
LINUX_KERNEL_HASH-5.4.203 = fc933f5b13066cfa54aacb5e86747a167bad1d8d23972e4a03ab5ee36c29798a

View File

@@ -132,6 +132,7 @@ define BuildKernel
$(LINUX_DIR)/.modules: export STAGING_PREFIX=$$(STAGING_DIR_HOST)
$(LINUX_DIR)/.modules: export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig
$(LINUX_DIR)/.modules: export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig
$(LINUX_DIR)/.modules: export FAIL_ON_UNCONFIGURED=1
$(LINUX_DIR)/.modules: $(STAMP_CONFIGURED) $(LINUX_DIR)/.config FORCE
$(Kernel/CompileModules)
touch $$@

View File

@@ -3,7 +3,7 @@
# Copyright (C) 2006-2020 OpenWrt.org
ifdef CONFIG_STRIP_KERNEL_EXPORTS
KERNEL_MAKEOPTS += \
KERNEL_MAKEOPTS_IMAGE += \
EXTRA_LDSFLAGS="-I$(KERNEL_BUILD_DIR) -include symtab.h"
endif
@@ -21,7 +21,7 @@ Kernel/Patch:=$(Kernel/Patch/Default)
ifneq (,$(findstring .xz,$(LINUX_SOURCE)))
LINUX_CAT:=xzcat
else
LINUX_CAT:=zcat
LINUX_CAT:=gzip -dc
endif
ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
@@ -43,10 +43,20 @@ else
rmdir $(LINUX_DIR); \
fi
ln -s $(CONFIG_EXTERNAL_KERNEL_TREE) $(LINUX_DIR)
if [ -d $(LINUX_DIR)/user_headers ]; then \
rm -rf $(LINUX_DIR)/user_headers; \
fi
endef
endif
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE),y)
define Kernel/SetInitramfs/PreConfigure
grep -v -e CONFIG_BLK_DEV_INITRD $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config
echo 'CONFIG_BLK_DEV_INITRD=y' >> $(LINUX_DIR)/.config
echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config
endef
else
ifeq ($(strip $(CONFIG_EXTERNAL_CPIO)),"")
define Kernel/SetInitramfs/PreConfigure
grep -v -e INITRAMFS -e CONFIG_RD_ -e CONFIG_BLK_DEV_INITRD $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config
@@ -59,14 +69,19 @@ ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
echo 'CONFIG_INITRAMFS_SOURCE="$(call qstrip,$(CONFIG_EXTERNAL_CPIO))"' >> $(LINUX_DIR)/.config
endef
endif
endif
define Kernel/SetInitramfs
rm -f $(LINUX_DIR)/.config.prev
mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old
$(call Kernel/SetInitramfs/PreConfigure)
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE),y)
echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_DIR)/.config
echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $(LINUX_DIR)/.config
echo "$(if $(CONFIG_TARGET_INITRAMFS_FORCE),CONFIG_INITRAMFS_FORCE=y,# CONFIG_INITRAMFS_FORCE is not set)" >> $(LINUX_DIR)/.config
else
echo "# CONFIG_INITRAMFS_FORCE is not set" >> $(LINUX_DIR)/.config
endif
echo "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE),CONFIG_INITRAMFS_COMPRESSION_NONE=y,# CONFIG_INITRAMFS_COMPRESSION_NONE is not set)" >> $(LINUX_DIR)/.config
echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),CONFIG_INITRAMFS_COMPRESSION_GZIP=y\nCONFIG_RD_GZIP=y,# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set\n# CONFIG_RD_GZIP is not set)" >> $(LINUX_DIR)/.config
echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),CONFIG_INITRAMFS_COMPRESSION_BZIP2=y\nCONFIG_RD_BZIP2=y,# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set\n# CONFIG_RD_BZIP2 is not set)" >> $(LINUX_DIR)/.config
@@ -74,6 +89,7 @@ ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),CONFIG_INITRAMFS_COMPRESSION_LZO=y\nCONFIG_RD_LZO=y,# CONFIG_INITRAMFS_COMPRESSION_LZO is not set\n# CONFIG_RD_LZO is not set)" >> $(LINUX_DIR)/.config
echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),CONFIG_INITRAMFS_COMPRESSION_XZ=y\nCONFIG_RD_XZ=y,# CONFIG_INITRAMFS_COMPRESSION_XZ is not set\n# CONFIG_RD_XZ is not set)" >> $(LINUX_DIR)/.config
echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZ4),CONFIG_INITRAMFS_COMPRESSION_LZ4=y\nCONFIG_RD_LZ4=y,# CONFIG_INITRAMFS_COMPRESSION_LZ4 is not set\n# CONFIG_RD_LZ4 is not set)" >> $(LINUX_DIR)/.config
echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD),CONFIG_INITRAMFS_COMPRESSION_ZSTD=y\nCONFIG_RD_ZSTD=y,# CONFIG_INITRAMFS_COMPRESSION_ZSTD is not set\n# CONFIG_RD_ZSTD is not set)" >> $(LINUX_DIR)/.config
endef
else
endif
@@ -111,7 +127,7 @@ endef
define Kernel/CompileModules/Default
rm -f $(LINUX_DIR)/vmlinux $(LINUX_DIR)/System.map
+$(KERNEL_MAKE) modules
+$(KERNEL_MAKE) $(if $(KERNELNAME),$(KERNELNAME),all) modules
# If .config did not change, use the previous timestamp to avoid package rebuilds
cmp -s $(LINUX_DIR)/.config $(LINUX_DIR)/.config.modules.save && \
mv $(LINUX_DIR)/.config.modules.save $(LINUX_DIR)/.config; \
@@ -137,19 +153,38 @@ define Kernel/CopyImage
}
endef
# Always add "modules" so a proper Module.symvers file is written that
# also contains symbols from the kernel modules. Without these symbols
# external packages that depend on exported symbols from kernel modules
# will fail to build.
define Kernel/CompileImage/Default
rm -f $(TARGET_DIR)/init
+$(KERNEL_MAKE) $(if $(KERNELNAME),$(KERNELNAME),all) modules
+$(KERNEL_MAKE) $(KERNEL_MAKEOPTS_IMAGE) $(if $(KERNELNAME),$(KERNELNAME),all) modules
$(call Kernel/CopyImage)
endef
# Here as well, always add "modules", see comment above.
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
define Kernel/CompileImage/Initramfs
$(call Kernel/Configure/Initramfs)
$(CP) $(GENERIC_PLATFORM_DIR)/other-files/init $(TARGET_DIR)/init
$(if $(SOURCE_DATE_EPOCH),touch -hcd "@$(SOURCE_DATE_EPOCH)" $(TARGET_DIR)/init)
rm -rf $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION)/usr/initramfs_data.cpio*
+$(KERNEL_MAKE) $(if $(KERNELNAME),$(KERNELNAME),all) modules
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE),y)
ifneq ($(qstrip $(CONFIG_EXTERNAL_CPIO)),)
$(CP) $(CONFIG_EXTERNAL_CPIO) $(KERNEL_BUILD_DIR)/initrd.cpio
else
( cd $(TARGET_DIR); find . | cpio -o -H newc -R root:root > $(KERNEL_BUILD_DIR)/initrd.cpio )
endif
$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),bzip2 -9 -c < $(KERNEL_BUILD_DIR)/initrd.cpio > $(KERNEL_BUILD_DIR)/initrd.cpio.bzip2)
$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),gzip -f -S .gzip -9n $(KERNEL_BUILD_DIR)/initrd.cpio)
$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),$(STAGING_DIR_HOST)/bin/lzma e -lc1 -lp2 -pb2 $(KERNEL_BUILD_DIR)/initrd.cpio $(KERNEL_BUILD_DIR)/initrd.cpio.lzma)
# ? $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),)
$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),$(STAGING_DIR_HOST)/bin/xz -9 -fz --check=crc32 $(KERNEL_BUILD_DIR)/initrd.cpio)
# ? $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZ4),)
$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD),$(STAGING_DIR_HOST)/bin/zstd -T0 -f -o $(KERNEL_BUILD_DIR)/initrd.cpio.zstd $(KERNEL_BUILD_DIR)/initrd.cpio)
endif
+$(KERNEL_MAKE) $(KERNEL_MAKEOPTS_IMAGE) $(if $(KERNELNAME),$(KERNELNAME),all) modules
$(call Kernel/CopyImage,-initramfs)
endef
else

View File

@@ -6,13 +6,12 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
LINUX_VERSION-4.9 = .317
LINUX_VERSION-4.14 = .282
LINUX_VERSION-4.19 = .246
KERNEL_DETAILS_FILE=$(INCLUDE_DIR)/kernel-$(KERNEL_PATCHVER)
ifeq ($(wildcard $(KERNEL_DETAILS_FILE)),)
$(error Missing kernel version/hash file for $(KERNEL_PATCHVER). Please create $(KERNEL_DETAILS_FILE))
endif
LINUX_KERNEL_HASH-4.9.317 = 7ea3369b915c99b38528dbf68c491f3f9324b2f4e56eac980dd7524d2fc30d1b
LINUX_KERNEL_HASH-4.14.282 = 6637c8470c3093a477d2de6fa9e0f63c55810438a411c73bcd723634371657a3
LINUX_KERNEL_HASH-4.19.246 = 00ad2f5a36c91221a2ade0078b93bf84b60d494bd1ef51eaccb5bdb6277dba3a
include $(KERNEL_DETAILS_FILE)
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

View File

@@ -115,7 +115,11 @@ KERNEL_MAKE_FLAGS = \
CONFIG_SHELL="$(BASH)" \
$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \
$(if $(PKG_BUILD_ID),LDFLAGS_MODULE=--build-id=0x$(PKG_BUILD_ID)) \
cmd_syscalls=
cmd_syscalls= \
$(if $(__package_mk),KBUILD_EXTRA_SYMBOLS="$(wildcard $(PKG_SYMVERS_DIR)/*.symvers)")
KERNEL_NOSTDINC_FLAGS = \
-nostdinc $(if $(DUMP),, -isystem $(shell $(TARGET_CC) -print-file-name=include))
ifeq ($(call qstrip,$(CONFIG_EXTERNAL_KERNEL_TREE))$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),)
KERNEL_MAKE_FLAGS += \
@@ -135,13 +139,7 @@ endif
PKG_EXTMOD_SUBDIRS ?= .
define populate_module_symvers
@mkdir -p $(PKG_INFO_DIR)
cat /dev/null > $(PKG_INFO_DIR)/$(PKG_NAME).symvers; \
for subdir in $(PKG_EXTMOD_SUBDIRS); do \
cat $(PKG_INFO_DIR)/*.symvers 2>/dev/null > $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers; \
done
endef
PKG_SYMVERS_DIR = $(KERNEL_BUILD_DIR)/symvers
define collect_module_symvers
for subdir in $(PKG_EXTMOD_SUBDIRS); do \
@@ -151,12 +149,12 @@ define collect_module_symvers
grep -F $$$$realdir $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers >> $(PKG_BUILD_DIR)/Module.symvers.tmp; \
done; \
sort -u $(PKG_BUILD_DIR)/Module.symvers.tmp > $(PKG_BUILD_DIR)/Module.symvers; \
mv $(PKG_BUILD_DIR)/Module.symvers $(PKG_INFO_DIR)/$(PKG_NAME).symvers
mkdir -p $(PKG_SYMVERS_DIR); \
mv $(PKG_BUILD_DIR)/Module.symvers $(PKG_SYMVERS_DIR)/$(PKG_NAME).symvers
endef
define KernelPackage/hooks
ifneq ($(PKG_NAME),kernel)
Hooks/Compile/Pre += populate_module_symvers
Hooks/Compile/Post += collect_module_symvers
endif
define KernelPackage/hooks

View File

@@ -64,9 +64,7 @@ $(eval $(if $(NF_KMOD),,$(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MARK, $(P_XT)
# kernel only
$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK,CONFIG_NF_CONNTRACK, $(P_XT)nf_conntrack),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK,CONFIG_NF_CONNTRACK_RTCACHE, $(P_XT)nf_conntrack_rtcache),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK,CONFIG_NF_DEFRAG_IPV4, $(P_V4)nf_defrag_ipv4),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK,CONFIG_NF_CONNTRACK_IPV4, $(P_V4)nf_conntrack_ipv4),))
$(eval $(call nf_add,IPT_CONNTRACK,CONFIG_NETFILTER_XT_MATCH_STATE, $(P_XT)xt_state))
$(eval $(call nf_add,IPT_CONNTRACK,CONFIG_NETFILTER_XT_TARGET_CT, $(P_XT)xt_CT))
@@ -112,13 +110,6 @@ $(eval $(call nf_add,IPT_FILTER,CONFIG_NETFILTER_XT_MATCH_BPF, $(P_XT)xt_bpf))
$(eval $(call nf_add,IPT_IMQ,CONFIG_IP_NF_TARGET_IMQ, $(P_V4)ipt_IMQ))
$(eval $(call nf_add,IPT_IMQ,CONFIG_NETFILTER_XT_TARGET_IMQ, $(P_XT)xt_IMQ))
# gargoyle-qos
$(eval $(call nf_add,IPT_BANDWIDTH,CONFIG_IP_NF_MATCH_BANDWIDTH, $(P_V4)ipt_bandwidth))
$(eval $(call nf_add,IPT_TIMERANGE,CONFIG_IP_NF_MATCH_TIMERANGE, $(P_V4)ipt_timerange))
$(eval $(call nf_add,IPT_WEBMON,CONFIG_IP_NF_MATCH_WEBMON, $(P_V4)ipt_webmon))
$(eval $(call nf_add,IPT_WEBURL,CONFIG_IP_NF_MATCH_WEBURL, $(P_V4)ipt_weburl))
# ipopt
$(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_DSCP, $(P_XT)xt_dscp))
@@ -131,7 +122,6 @@ $(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_STATISTIC, $(P_XT)xt_st
$(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_TCPMSS, $(P_XT)xt_tcpmss))
$(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_TARGET_CLASSIFY, $(P_XT)xt_CLASSIFY))
$(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_MATCH_DSCP, $(P_V4)ipt_dscp))
$(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_TARGET_ECN, $(P_V4)ipt_ECN))
$(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_ECN, $(P_XT)xt_ecn))
@@ -166,19 +156,15 @@ $(eval $(if $(NF_KMOD),$(call nf_add,NF_REJECT6,CONFIG_NF_REJECT_IPV6, $(P_V6)nf
$(eval $(if $(NF_KMOD),$(call nf_add,NF_IPT6,CONFIG_IP6_NF_IPTABLES, $(P_V6)ip6_tables),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK,CONFIG_NF_DEFRAG_IPV6, $(P_V6)nf_defrag_ipv6, ge 4.19),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK6,CONFIG_NF_DEFRAG_IPV6, $(P_V6)nf_defrag_ipv6, lt 4.19),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK6,CONFIG_NF_CONNTRACK_IPV6, $(P_V6)nf_conntrack_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK,CONFIG_NF_DEFRAG_IPV6, $(P_V6)nf_defrag_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_IPV6,CONFIG_IP6_NF_FILTER, $(P_V6)ip6table_filter),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_IPV6,CONFIG_IP6_NF_MANGLE, $(P_V6)ip6table_mangle),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_IPV6,CONFIG_IP6_NF_QUEUE, $(P_V6)ip6_queue),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_IPV6,CONFIG_NF_LOG_IPV6, $(P_V6)nf_log_ipv6),))
$(eval $(if $(NF_KMOD),,$(call nf_add,IPT_IPV6,CONFIG_IP6_NF_IPTABLES, ip6t_icmp6)))
$(eval $(call nf_add,IPT_IPV6,CONFIG_IP6_NF_TARGET_LOG, $(P_V6)ip6t_LOG))
$(eval $(call nf_add,IPT_IPV6,CONFIG_IP6_NF_TARGET_REJECT, $(P_V6)ip6t_REJECT))
# ipv6 extra
@@ -194,26 +180,18 @@ $(eval $(call nf_add,IPT_IPV6_EXTRA,CONFIG_IP6_NF_MATCH_RT, $(P_V6)ip6t_rt))
# kernel only
$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT, $(P_XT)nf_nat),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT_REDIRECT, $(P_XT)nf_nat_redirect, ge 3.19.0),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT_IPV4, $(P_V4)nf_nat_ipv4),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT_MASQUERADE_IPV4, $(P_V4)nf_nat_masquerade_ipv4, lt 4.18),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT6,CONFIG_NF_NAT_IPV6, $(P_V6)nf_nat_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT6,CONFIG_NF_NAT_MASQUERADE_IPV6, $(P_V6)nf_nat_masquerade_ipv6, lt 4.18),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT,CONFIG_NETFILTER_XT_NAT, $(P_XT)xt_nat),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT,CONFIG_IP_NF_NAT, $(P_V4)iptable_nat),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT6,CONFIG_IP6_NF_NAT, $(P_V6)ip6table_nat),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT6,CONFIG_IP6_NF_TARGET_MASQUERADE, $(P_V6)ip6t_MASQUERADE),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT6,CONFIG_IP6_NF_TARGET_NPT, $(P_V6)ip6t_NPT),))
# userland only
$(eval $(if $(NF_KMOD),,$(call nf_add,IPT_NAT,CONFIG_NF_NAT, ipt_SNAT ipt_DNAT)))
$(eval $(if $(NF_KMOD),,$(call nf_add,IPT_NAT6,CONFIG_IP6_NF_TARGET_NPT, ip6t_DNPT ip6t_SNPT)))
$(eval $(call nf_add,IPT_NAT,CONFIG_IP_NF_TARGET_MASQUERADE, $(P_V4)ipt_MASQUERADE, lt 5.2))
$(eval $(call nf_add,IPT_NAT,CONFIG_IP_NF_TARGET_MASQUERADE, $(P_XT)xt_MASQUERADE, ge 5.2))
$(eval $(call nf_add,IPT_NAT,CONFIG_IP_NF_TARGET_REDIRECT, $(P_XT)xt_REDIRECT))
$(eval $(call nf_add,IPT_NAT,CONFIG_NETFILTER_XT_TARGET_MASQUERADE, $(P_XT)xt_MASQUERADE))
$(eval $(call nf_add,IPT_NAT,CONFIG_NETFILTER_XT_TARGET_REDIRECT, $(P_XT)xt_REDIRECT))
# nat-extra
@@ -232,8 +210,6 @@ $(eval $(call nf_add,NF_NATHELPER,CONFIG_NF_NAT_FTP, $(P_XT)nf_nat_ftp))
$(eval $(call nf_add,NF_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_BROADCAST, $(P_XT)nf_conntrack_broadcast))
$(eval $(call nf_add,NF_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_AMANDA, $(P_XT)nf_conntrack_amanda))
$(eval $(call nf_add,NF_NATHELPER_EXTRA,CONFIG_NF_NAT_AMANDA, $(P_XT)nf_nat_amanda))
$(eval $(call nf_add,NF_NATHELPER_EXTRA,CONFIG_NF_CT_PROTO_GRE, $(P_XT)nf_conntrack_proto_gre))
$(eval $(call nf_add,NF_NATHELPER_EXTRA,CONFIG_NF_NAT_PROTO_GRE, $(P_V4)nf_nat_proto_gre))
$(eval $(call nf_add,NF_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_H323, $(P_XT)nf_conntrack_h323))
$(eval $(call nf_add,NF_NATHELPER_EXTRA,CONFIG_NF_NAT_H323, $(P_V4)nf_nat_h323))
$(eval $(call nf_add,NF_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_PPTP, $(P_XT)nf_conntrack_pptp))
@@ -270,11 +246,11 @@ $(eval $(call nf_add,IPT_DEBUG,CONFIG_NETFILTER_XT_TARGET_TRACE, $(P_XT)xt_TRACE
# tproxy
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NETFILTER_XT_MATCH_SOCKET, $(P_XT)xt_socket))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_SOCKET_IPV4, $(P_V4)nf_socket_ipv4, ge 4.10))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_SOCKET_IPV6, $(P_V6)nf_socket_ipv6, ge 4.10))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_SOCKET_IPV4, $(P_V4)nf_socket_ipv4))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_SOCKET_IPV6, $(P_V6)nf_socket_ipv6))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NETFILTER_XT_TARGET_TPROXY, $(P_XT)xt_TPROXY))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_TPROXY_IPV4, $(P_V4)nf_tproxy_ipv4, ge 4.18))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_TPROXY_IPV6, $(P_V6)nf_tproxy_ipv6, ge 4.18))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_TPROXY_IPV4, $(P_V4)nf_tproxy_ipv4))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_TPROXY_IPV6, $(P_V6)nf_tproxy_ipv6))
# led
$(eval $(call nf_add,IPT_LED,CONFIG_NETFILTER_XT_TARGET_LED, $(P_XT)xt_LED))
@@ -282,8 +258,8 @@ $(eval $(call nf_add,IPT_LED,CONFIG_NETFILTER_XT_TARGET_LED, $(P_XT)xt_LED))
# tee
$(eval $(call nf_add,IPT_TEE,CONFIG_NETFILTER_XT_TARGET_TEE, $(P_XT)xt_TEE))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_TEE,CONFIG_NF_DUP_IPV4, $(P_V4)nf_dup_ipv4, ge 4.3),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_TEE,CONFIG_NF_DUP_IPV6, $(P_V6)nf_dup_ipv6, ge 4.3),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_TEE,CONFIG_NF_DUP_IPV4, $(P_V4)nf_dup_ipv4),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_TEE,CONFIG_NF_DUP_IPV6, $(P_V6)nf_dup_ipv6),))
# u32
@@ -344,41 +320,31 @@ $(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_NFQUEUE, $(P_EBT)ebt_nf
# nftables
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES, $(P_XT)nf_tables),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES_INET, $(P_XT)nf_tables_inet, lt 4.17),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_EXTHDR, $(P_XT)nft_exthdr),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_META, $(P_XT)nft_meta),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_NUMGEN, $(P_XT)nft_numgen, ge 4.9.0),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_CT, $(P_XT)nft_ct),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_SET_RBTREE, $(P_XT)nft_set_rbtree, ge 4.9.0),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_RBTREE, $(P_XT)nft_rbtree, lt 4.9.0),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_SET_HASH, $(P_XT)nft_set_hash, ge 4.9.0),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_HASH, $(P_XT)nft_hash, lt 4.9.0),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES_SET, $(P_XT)nf_tables_set),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_COUNTER, $(P_XT)nft_counter),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_LOG, $(P_XT)nft_log),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_CT, $(P_XT)nft_ct),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_HASH, $(P_XT)nft_hash),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_LIMIT, $(P_XT)nft_limit),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_LOG, $(P_XT)nft_log),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_META, $(P_XT)nft_meta),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_NUMGEN, $(P_XT)nft_numgen),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_OBJREF, $(P_XT)nft_objref),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_QUOTA, $(P_XT)nft_quota),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_REDIR, $(P_XT)nft_redir),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_REJECT, $(P_XT)nft_reject $(P_V4)nft_reject_ipv4 $(P_V6)nft_reject_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_REJECT_INET, $(P_XT)nft_reject_inet),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES_IPV4, $(P_V4)nf_tables_ipv4, lt 4.17),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_CHAIN_ROUTE_IPV4, $(P_V4)nft_chain_route_ipv4),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES_IPV6, $(P_V6)nf_tables_ipv6, lt 4.17),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_CHAIN_ROUTE_IPV6, $(P_V6)nft_chain_route_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_REDIR, $(P_XT)nft_redir, ge 3.19.0),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_QUOTA, $(P_XT)nft_quota, ge 4.9.0),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_ARP,CONFIG_NF_TABLES_ARP, $(P_V4)nf_tables_arp, lt 4.17),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_BRIDGE,CONFIG_NF_TABLES_BRIDGE, $(P_EBT)nf_tables_bridge, lt 4.17),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_BRIDGE,CONFIG_NFT_BRIDGE_META, $(P_EBT)nft_meta_bridge),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_BRIDGE,CONFIG_NFT_BRIDGE_REJECT, $(P_EBT)nft_reject_bridge),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_BRIDGE,CONFIG_NF_CONNTRACK_BRIDGE, $(P_EBT)nf_conntrack_bridge),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT,CONFIG_NFT_NAT, $(P_XT)nft_nat),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT,CONFIG_NFT_CHAIN_NAT_IPV4, $(P_V4)nft_chain_nat_ipv4),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT,CONFIG_NFT_REDIR_IPV4, $(P_V4)nft_redir_ipv4, ge 3.19.0),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT,CONFIG_NFT_NAT, $(P_XT)nft_chain_nat),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT,CONFIG_NFT_REDIR_IPV4, $(P_V4)nft_redir_ipv4),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT,CONFIG_NFT_MASQ, $(P_XT)nft_masq),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT,CONFIG_NFT_MASQ_IPV4, $(P_V4)nft_masq_ipv4),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT6,CONFIG_NFT_REDIR_IPV6, $(P_V6)nft_redir_ipv6, ge 3.19.0),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT6,CONFIG_NFT_CHAIN_NAT_IPV6, $(P_V6)nft_chain_nat_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT6,CONFIG_NFT_REDIR_IPV6, $(P_V6)nft_redir_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT6,CONFIG_NFT_MASQ_IPV6, $(P_V6)nft_masq_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_FIB,CONFIG_NFT_FIB, $(P_XT)nft_fib),))
@@ -386,6 +352,7 @@ $(eval $(if $(NF_KMOD),$(call nf_add,NFT_FIB,CONFIG_NFT_FIB_INET, $(P_XT)nft_fib
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_FIB,CONFIG_NFT_FIB_IPV4, $(P_V4)nft_fib_ipv4),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_FIB,CONFIG_NFT_FIB_IPV6, $(P_V6)nft_fib_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_QUEUE,CONFIG_NFT_QUEUE, $(P_XT)nft_queue),))
# userland only
IPT_BUILTIN += $(NF_IPT-y) $(NF_IPT-m)

View File

@@ -236,6 +236,7 @@ ifeq ($(DUMP),1)
endif
ifeq ($(ARCH),powerpc64)
CPU_TYPE ?= powerpc64
CPU_CFLAGS_e5500:=-mcpu=e5500
CPU_CFLAGS_powerpc64:=-mcpu=powerpc64
endif
ifeq ($(ARCH),sparc)

View File

@@ -0,0 +1,98 @@
PKG_NAME ?= trusted-firmware-a
PKG_CPE_ID ?= cpe:/a:arm:arm_trusted_firmware
ifndef PKG_SOURCE_PROTO
PKG_SOURCE = trusted-firmware-a-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/snapshot
endif
PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_TARGETS := bin
PKG_FLAGS:=nonshared
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=docs/license.rst
PKG_BUILD_PARALLEL:=1
export GCC_HONOUR_COPTS=s
define Package/trusted-firmware-a/install/default
$(CP) $(patsubst %,$(PKG_BUILD_DIR)/build/$(PLAT)/release/%,$(TFA_IMAGE)) $(1)/
endef
Package/trusted-firmware-a/install = $(Package/trusted-firmware-a/install/default)
define Trusted-Firmware-A/Init
BUILD_TARGET:=
BUILD_SUBTARGET:=
BUILD_DEVICES:=
NAME:=
DEPENDS:=
HIDDEN:=
DEFAULT:=
PLAT:=
VARIANT:=$(1)
TFA_IMAGE:=
endef
TARGET_DEP = TARGET_$(BUILD_TARGET)$(if $(BUILD_SUBTARGET),_$(BUILD_SUBTARGET))
define Build/Trusted-Firmware-A/Target
$(eval $(call Trusted-Firmware-A/Init,$(1)))
$(eval $(call Trusted-Firmware-A/Default,$(1)))
$(eval $(call Trusted-Firmware-A/$(1),$(1)))
define Package/trusted-firmware-a-$(1)
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:=Trusted-Firmware-A for $(NAME)
VARIANT:=$(VARIANT)
DEPENDS:=@!IN_SDK $(DEPENDS)
HIDDEN:=$(HIDDEN)
ifneq ($(BUILD_TARGET),)
DEPENDS += @$(TARGET_DEP)
ifneq ($(BUILD_DEVICES),)
DEFAULT := y if ($(TARGET_DEP)_Default \
$(patsubst %,|| $(TARGET_DEP)_DEVICE_%,$(BUILD_DEVICES)) \
$(patsubst %,|| $(patsubst TARGET_%,TARGET_DEVICE_%,$(TARGET_DEP))_DEVICE_%,$(BUILD_DEVICES)))
endif
endif
$(if $(DEFAULT),DEFAULT:=$(DEFAULT))
URL:=https://www.trustedfirmware.org/projects/tf-a/
endef
define Package/trusted-firmware-a-$(1)/install
$$(Package/trusted-firmware-a/install)
endef
endef
define Build/Configure/Trusted-Firmware-A
$(INSTALL_DIR) $(STAGING_DIR)/usr/include
endef
define Build/Compile/Trusted-Firmware-A
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
CROSS_COMPILE=$(TARGET_CROSS) \
OPENSSL_DIR=$(STAGING_DIR_HOST) \
PLAT=$(PLAT) \
BUILD_STRING="OpenWrt v$(PKG_VERSION)-$(PKG_RELEASE) ($(VARIANT))" \
$(TFA_MAKE_FLAGS)
endef
define BuildPackage/Trusted-Firmware-A/Defaults
Build/Configure/Default = $$$$(Build/Configure/Trusted-Firmware-A)
Build/Compile/Default = $$$$(Build/Compile/Trusted-Firmware-A)
endef
define BuildPackage/Trusted-Firmware-A
$(eval $(call BuildPackage/Trusted-Firmware-A/Defaults))
$(foreach type,$(if $(DUMP),$(TFA_TARGETS),$(BUILD_VARIANT)), \
$(eval $(call Build/Trusted-Firmware-A/Target,$(type)))
)
$(eval $(call Build/DefaultTargets))
$(foreach type,$(if $(DUMP),$(TFA_TARGETS),$(BUILD_VARIANT)), \
$(call BuildPackage,trusted-firmware-a-$(type))
)
endef

View File

@@ -45,6 +45,11 @@ UBOOT_MAKE_FLAGS = \
HOSTCC="$(HOSTCC)" \
HOSTCFLAGS="$(HOST_CFLAGS) $(HOST_CPPFLAGS) -std=gnu11" \
HOSTLDFLAGS="$(HOST_LDFLAGS)" \
LOCALVERSION="-ImmortalWrt-$(REVISION)" \
STAGING_PREFIX="$(STAGING_DIR_HOST)" \
PKG_CONFIG_PATH="$(STAGING_DIR_HOST)/lib/pkgconfig" \
PKG_CONFIG_LIBDIR="$(STAGING_DIR_HOST)/lib/pkgconfig" \
PKG_CONFIG_EXTRAARGS="--static" \
$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='')
define Build/U-Boot/Target

View File

@@ -23,13 +23,13 @@ PKG_CONFIG_DEPENDS += \
sanitize = $(call tolower,$(subst _,-,$(subst $(space),-,$(1))))
VERSION_NUMBER:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),18.06-SNAPSHOT)
VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),18.06-k5.4-SNAPSHOT)
VERSION_CODE:=$(call qstrip,$(CONFIG_VERSION_CODE))
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),$(REVISION))
VERSION_REPO:=$(call qstrip,$(CONFIG_VERSION_REPO))
VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),https://downloads.immortalwrt.org/releases/18.06-SNAPSHOT)
VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),https://downloads.immortalwrt.org/releases/18.06-k5.4-SNAPSHOT)
VERSION_DIST:=$(call qstrip,$(CONFIG_VERSION_DIST))
VERSION_DIST:=$(if $(VERSION_DIST),$(VERSION_DIST),ImmortalWrt)

View File

@@ -11,6 +11,7 @@ include $(INCLUDE_DIR)/feeds.mk
include $(INCLUDE_DIR)/rootfs.mk
-include $(TMP_DIR)/.packagedeps
package-y += kernel/linux
$(curdir)/autoremove:=1
$(curdir)/builddirs:=$(sort $(package-) $(package-y) $(package-m))
$(curdir)/builddirs-default:=. $(sort $(package-y) $(package-m))

View File

@@ -23,6 +23,8 @@ PKG_LICENSE:=GPL-2.0
PKG_CONFIG_DEPENDS += \
CONFIG_SIGNED_PACKAGES CONFIG_TARGET_INIT_PATH CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE \
CONFIG_NAND_SUPPORT \
CONFIG_LEGACY_SDCARD_SUPPORT \
CONFIG_EMMC_SUPPORT \
CONFIG_CLEAN_IPKG \
CONFIG_PER_FEED_REPO \
$(foreach feed,$(FEEDS_AVAILABLE),CONFIG_FEED_$(feed))
@@ -121,10 +123,25 @@ ifeq ($(CONFIG_NAND_SUPPORT),)
endef
endif
ifeq ($(CONFIG_EMMC_SUPPORT),)
define Package/base-files/emmc-support
rm -f $(1)/lib/upgrade/emmc.sh
endef
endif
ifeq ($(CONFIG_LEGACY_SDCARD_SUPPORT),)
define Package/base-files/legacy-sdcard-support
rm -f $(1)/lib/upgrade/legacy-sdcard.sh
endef
endif
define Package/base-files/install
$(CP) ./files/* $(1)/
$(Package/base-files/install-key)
$(Package/base-files/nand-support)
$(Package/base-files/legacy-sdcard-support)
$(Package/base-files/emmc-support)
if [ -d $(GENERIC_PLATFORM_DIR)/base-files/. ]; then \
$(CP) $(GENERIC_PLATFORM_DIR)/base-files/* $(1)/; \
fi

View File

@@ -7,6 +7,35 @@ CFG=/etc/board.json
[ -s $CFG ] || /bin/board_detect || exit 1
[ -s /etc/config/network -a -s /etc/config/system ] && exit 0
generate_bridge() {
local name=$1
local macaddr=$2
uci -q batch <<-EOF
set network.$name=device
set network.$name.name=$name
set network.$name.type=bridge
EOF
if [ -n "$macaddr" ]; then
uci -q batch <<-EOF
set network.$name.macaddr=$macaddr
EOF
fi
}
bridge_vlan_id=0
generate_bridge_vlan() {
local name=$1_vlan
local device=$2
local ports="$3"
local vlan="$4"
uci -q batch <<-EOF
set network.$name=bridge-vlan
set network.$name.device='$device'
set network.$name.vlan='$vlan'
set network.$name.ports='$ports'
EOF
}
generate_static_network() {
uci -q batch <<-EOF
delete network.loopback
@@ -62,20 +91,38 @@ generate_static_network() {
addr_offset=2
generate_network() {
local ifname macaddr protocol type ipaddr netmask
local ports ifname macaddr protocol type ipaddr netmask vlan
local bridge=$2
json_select network
json_select "$1"
json_get_vars ifname macaddr protocol ipaddr netmask
json_get_values ports ports
json_get_vars ifname macaddr protocol ipaddr netmask vlan
json_select ..
json_select ..
[ -n "$ifname" ] || return
[ -n "$ifname" -o -n "$ports" ] || return
# force bridge for multi-interface devices (and lan)
case "$1:$ifname" in
*\ * | lan:*) type="bridge" ;;
esac
# Force bridge for "lan" as it may have other devices (e.g. wireless)
# bridged
[ "$1" = "lan" -a -z "$ports" ] && {
ports="$ifname"
}
[ -n "$ports" ] && {
type="bridge"
ifname="$ports"
}
[ -n "$bridge" ] && {
if [ -z "$vlan" ]; then
bridge_vlan_id=$((bridge_vlan_id + 1))
vlan=$bridge_vlan_id
fi
generate_bridge_vlan $1 $bridge "$ifname" $vlan
ifname=$bridge.$vlan
type=""
}
uci -q batch <<-EOF
delete network.$1
@@ -217,7 +264,8 @@ generate_switch() {
json_select switch
json_select "$key"
json_get_vars enable reset blinkrate cpu_port
json_get_vars enable reset blinkrate cpu_port \
ar8xxx_mib_type ar8xxx_mib_poll_interval
uci -q batch <<-EOF
add network switch
@@ -225,6 +273,8 @@ generate_switch() {
set network.@switch[-1].reset='$reset'
set network.@switch[-1].enable_vlan='$enable'
set network.@switch[-1].blinkrate='$blinkrate'
set network.@switch[-1].ar8xxx_mib_type='$ar8xxx_mib_type'
set network.@switch[-1].ar8xxx_mib_poll_interval='$ar8xxx_mib_poll_interval'
EOF
generate_switch_vlans_ports "$1"
@@ -233,7 +283,6 @@ generate_switch() {
json_select ..
}
generate_static_system() {
uci -q batch <<-EOF
delete system.@system[0]
@@ -424,11 +473,21 @@ json_init
json_load "$(cat ${CFG})"
if [ ! -s /etc/config/network ]; then
bridge_name=""
touch /etc/config/network
generate_static_network
json_get_vars bridge
[ -n "$bridge" ] && {
json_select bridge
json_get_vars name macaddr
generate_bridge "$name" "$macaddr"
json_select ..
bridge_name=$name
}
json_get_keys keys network
for key in $keys; do generate_network $key; done
for key in $keys; do generate_network $key $bridge_name; done
json_get_keys keys switch
for key in $keys; do generate_switch $key; done

View File

@@ -36,13 +36,14 @@ boot() {
ln -sf /tmp/resolv.conf.d/resolv.conf.auto /tmp/resolv.conf
ln -sf /tmp/resolv.conf.d/resolv.conf.auto /tmp/resolv.conf.auto
grep -q debugfs /proc/filesystems && /bin/mount -o noatime -t debugfs debugfs /sys/kernel/debug
grep -q bpf /proc/filesystems && /bin/mount -o nosuid,nodev,noexec,noatime,mode=0700 -t bpf bpffs /sys/fs/bpf
grep -q pstore /proc/filesystems && /bin/mount -o noatime -t pstore pstore /sys/fs/pstore
[ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe
/sbin/kmodloader
[ ! -f /etc/config/wireless ] && {
# compat for brcm47xx and mvebu
# compat for bcm47xx and mvebu
sleep 1
}

View File

@@ -16,21 +16,39 @@ load_gpio_switch()
config_get name "$1" name
config_get value "$1" value 0
local gpio_path="/sys/class/gpio/gpio${gpio_pin}"
# export GPIO pin for access
[ -d "$gpio_path" ] || {
echo "$gpio_pin" >/sys/class/gpio/export
# we need to wait a bit until the GPIO appears
[ -d "$gpio_path" ] || sleep 1
[ -z "$gpio_pin" ] && {
echo >&2 "Skipping gpio_switch '$name' due to missing gpio_pin"
return 1
}
# direction attribute only exists if the kernel supports changing the
# direction of a GPIO
if [ -e "${gpio_path}/direction" ]; then
# set the pin to output with high or low pin value
{ [ "$value" = "0" ] && echo "low" || echo "high"; } >"$gpio_path/direction"
local gpio_path
if [ -n "$(echo "$gpio_pin" | grep -E "^[0-9]+$")" ]; then
gpio_path="/sys/class/gpio/gpio${gpio_pin}"
# export GPIO pin for access
[ -d "$gpio_path" ] || {
echo "$gpio_pin" >/sys/class/gpio/export
# we need to wait a bit until the GPIO appears
[ -d "$gpio_path" ] || sleep 1
}
# direction attribute only exists if the kernel supports changing the
# direction of a GPIO
if [ -e "${gpio_path}/direction" ]; then
# set the pin to output with high or low pin value
{ [ "$value" = "0" ] && echo "low" || echo "high"; } \
>"$gpio_path/direction"
else
{ [ "$value" = "0" ] && echo "0" || echo "1"; } \
>"$gpio_path/value"
fi
else
{ [ "$value" = "0" ] && echo "0" || echo "1"; } >"$gpio_path/value"
gpio_path="/sys/class/gpio/${gpio_pin}"
[ -d "$gpio_path" ] && {
{ [ "$value" = "0" ] && echo "0" || echo "1"; } \
>"$gpio_path/value"
}
fi
}

View File

@@ -16,6 +16,22 @@ NO_EXPORT=1
LOAD_STATE=1
LIST_SEP=" "
# xor multiple hex values of the same length
xor() {
local val
local ret="0x$1"
local retlen=${#1}
shift
while [ -n "$1" ]; do
val="0x$1"
ret=$((ret ^ val))
shift
done
printf "%0${retlen}x" "$ret"
}
append() {
local var="$1"
local value="$2"
@@ -303,6 +319,25 @@ find_mtd_part() {
echo "${INDEX:+$PREFIX$INDEX}"
}
find_mmc_part() {
local DEVNAME PARTNAME ROOTDEV
if grep -q "$1" /proc/mtd; then
echo "" && return 0
fi
if [ -n "$2" ]; then
ROOTDEV="$2"
else
ROOTDEV="mmcblk*"
fi
for DEVNAME in /sys/block/$ROOTDEV/mmcblk*p*; do
PARTNAME="$(grep PARTNAME ${DEVNAME}/uevent | cut -f2 -d'=')"
[ "$PARTNAME" = "$1" ] && echo "/dev/$(basename $DEVNAME)" && return 0
done
}
group_add() {
local name="$1"
local gid="$2"
@@ -327,7 +362,7 @@ group_add_next() {
gids=$(cat ${IPKG_INSTROOT}/etc/group | cut -d: -f3)
gid=65536
while [ -n "$(echo "$gids" | grep "^$gid$")" ] ; do
gid=$((gid + 1))
gid=$((gid + 1))
done
group_add $1 $gid
echo $gid
@@ -358,7 +393,7 @@ user_add() {
uids=$(cat ${IPKG_INSTROOT}/etc/passwd | cut -d: -f3)
uid=65536
while [ -n "$(echo "$uids" | grep "^$uid$")" ] ; do
uid=$((uid + 1))
uid=$((uid + 1))
done
}
[ -z "$gid" ] && gid=$uid

View File

@@ -0,0 +1,184 @@
# Copyright (C) 2019 OpenWrt.org
. /lib/functions.sh
. /lib/functions/system.sh
caldata_dd() {
local source=$1
local target=$2
local count=$(($3))
local offset=$(($4))
dd if=$source of=$target iflag=skip_bytes,fullblock bs=$count skip=$offset count=1 2>/dev/null
return $?
}
caldata_die() {
echo "caldata: " "$*"
exit 1
}
caldata_extract() {
local part=$1
local offset=$(($2))
local count=$(($3))
local mtd
mtd=$(find_mtd_chardev $part)
[ -n "$mtd" ] || caldata_die "no mtd device found for partition $part"
caldata_dd $mtd /lib/firmware/$FIRMWARE $count $offset || \
caldata_die "failed to extract calibration data from $mtd"
}
caldata_extract_ubi() {
local part=$1
local offset=$(($2))
local count=$(($3))
local ubidev
local ubi
. /lib/upgrade/nand.sh
ubidev=$(nand_find_ubi $CI_UBIPART)
ubi=$(nand_find_volume $ubidev $part)
[ -n "$ubi" ] || caldata_die "no UBI volume found for $part"
caldata_dd /dev/$ubi /lib/firmware/$FIRMWARE $count $offset || \
caldata_die "failed to extract calibration data from $ubi"
}
caldata_extract_mmc() {
local part=$1
local offset=$(($2))
local count=$(($3))
local mmc_part
mmc_part=$(find_mmc_part $part)
[ -n "$mmc_part" ] || caldata_die "no mmc partition found for partition $part"
caldata_dd $mmc_part /lib/firmware/$FIRMWARE $count $offset || \
caldata_die "failed to extract calibration data from $mmc_part"
}
caldata_extract_reverse() {
local part=$1
local offset=$2
local count=$(($3))
local mtd
local reversed
local caldata
mtd=$(find_mtd_chardev "$part")
reversed=$(hexdump -v -s $offset -n $count -e '/1 "%02x "' $mtd)
for byte in $reversed; do
caldata="\x${byte}${caldata}"
done
printf "%b" "$caldata" > /lib/firmware/$FIRMWARE
}
caldata_from_file() {
local source=$1
local offset=$(($2))
local count=$(($3))
local target=$4
[ -n "$target" ] || target=/lib/firmware/$FIRMWARE
caldata_dd $source $target $count $offset || \
caldata_die "failed to extract calibration data from $source"
}
caldata_sysfsload_from_file() {
local source=$1
local offset=$(($2))
local count=$(($3))
local target_dir="/sys/$DEVPATH"
local target="$target_dir/data"
[ -d "$target_dir" ] || \
caldata_die "no sysfs dir to write: $target"
echo 1 > "$target_dir/loading"
caldata_dd $source $target $count $offset
if [ $? != 0 ]; then
echo 1 > "$target_dir/loading"
caldata_die "failed to extract calibration data from $source"
else
echo 0 > "$target_dir/loading"
fi
}
caldata_valid() {
local expected="$1"
local target=$2
[ -n "$target" ] || target=/lib/firmware/$FIRMWARE
magic=$(hexdump -v -n 2 -e '1/1 "%02x"' $target)
[ "$magic" = "$expected" ]
return $?
}
caldata_patch_chksum() {
local mac=$1
local mac_offset=$(($2))
local chksum_offset=$(($3))
local target=$4
local xor_mac
local xor_fw_mac
local xor_fw_chksum
xor_mac=${mac//:/}
xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}"
xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE)
xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}"
xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE)
xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac)
printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \
dd of=$target conv=notrunc bs=1 seek=$chksum_offset count=2
}
caldata_patch_mac() {
local mac=$1
local mac_offset=$(($2))
local chksum_offset=$3
local target=$4
[ -z "$mac" -o -z "$mac_offset" ] && return
[ -n "$target" ] || target=/lib/firmware/$FIRMWARE
[ -n "$chksum_offset" ] && caldata_patch_chksum "$mac" "$mac_offset" "$chksum_offset" "$target"
macaddr_2bin $mac | dd of=$target conv=notrunc oflag=seek_bytes bs=6 seek=$mac_offset count=1 || \
caldata_die "failed to write MAC address to eeprom file"
}
ath9k_patch_mac() {
local mac=$1
local target=$2
caldata_patch_mac "$mac" 0x2 "" "$target"
}
ath9k_patch_mac_crc() {
local mac=$1
local mac_offset=$2
local chksum_offset=$((mac_offset - 10))
local target=$4
caldata_patch_mac "$mac" "$mac_offset" "$chksum_offset" "$target"
}
ath10k_patch_mac() {
local mac=$1
local target=$2
caldata_patch_mac "$mac" 0x6 0x2 "$target"
}

View File

@@ -26,11 +26,41 @@ migrate_led_sysfs() {
done;
}
remove_devicename_led_sysfs() {
local cfg="$1"; shift
local exceptions="$@"
local sysfs
local name
local new_sysfs
config_get sysfs ${cfg} sysfs
config_get name ${cfg} name
# only continue if two or more colons are present
echo "${sysfs}" | grep -q ":.*:" || return
for exception in ${exceptions}; do
# no change if exceptions provided as argument are found for devicename
echo "${sysfs}" | grep -q "^${exception}:" && return
done
new_sysfs=$(echo ${sysfs} | sed "s/^[^:]*://")
uci set system.${cfg}.sysfs="${new_sysfs}"
logger -t led-migration "sysfs option of LED \"${name}\" updated to ${new_sysfs}"
}
migrate_leds() {
config_load system
config_foreach migrate_led_sysfs led "$@"
}
remove_devicename_leds() {
config_load system
config_foreach remove_devicename_led_sysfs led "$@"
}
migrations_apply() {
local realm="$1"
[ -n "$(uci changes ${realm})" ] && uci -q commit ${realm}

View File

@@ -81,7 +81,7 @@ mtd_get_mac_ascii() {
mtd_get_mac_text() {
local mtdname=$1
local offset=$2
local offset=$(($2))
local part
local mac_dirty
@@ -135,6 +135,15 @@ mtd_get_part_size() {
done < /proc/mtd
}
mmc_get_mac_binary() {
local part_name="$1"
local offset="$2"
local part
part=$(find_mmc_part "$part_name")
get_mac_binary "$part" "$offset"
}
macaddr_add() {
local mac=$1
local val=$2
@@ -145,6 +154,13 @@ macaddr_add() {
echo $oui:$nic
}
macaddr_geteui() {
local mac=$1
local sep=$2
echo ${mac:9:2}$sep${mac:12:2}$sep${mac:15:2}
}
macaddr_setbit() {
local mac=$1
local bit=${2:-0}

View File

@@ -39,7 +39,13 @@ ucidef_set_interface() {
[ -n "$opt" -a -n "$val" ] || break
json_add_string "$opt" "$val"
[ "$opt" = "ifname" -a "$val" != "${val/ //}" ] && {
json_select_array "ports"
for e in $val; do json_add_string "" "$e"; done
json_close_array
} || {
json_add_string "$opt" "$val"
}
done
if ! json_is_a protocol string; then
@@ -82,6 +88,26 @@ ucidef_set_interfaces_lan_wan() {
ucidef_set_interface_wan "$wan_if"
}
ucidef_set_bridge_device() {
json_select_object bridge
json_add_string name "${1:switch0}"
json_select ..
}
ucidef_set_bridge_mac() {
json_select_object bridge
json_add_string macaddr "${1}"
json_select ..
}
ucidef_set_network_device_mac() {
json_select_object "network-device"
json_select_object "${1}"
json_add_string macaddr "${2}"
json_select ..
json_select ..
}
_ucidef_add_switch_port() {
# inherited: $num $device $need_tag $want_untag $role $index $prev_role
# inherited: $n_cpu $n_ports $n_vlan $cpu0 $cpu1 $cpu2 $cpu3 $cpu4 $cpu5
@@ -180,6 +206,19 @@ _ucidef_finish_switch_roles() {
done
}
ucidef_set_ar8xxx_switch_mib() {
local name="$1"
local type="$2"
local interval="$3"
json_select_object switch
json_select_object "$name"
json_add_int ar8xxx_mib_type $type
json_add_int ar8xxx_mib_poll_interval $interval
json_select ..
json_select ..
}
ucidef_add_switch() {
local name="$1"; shift
local port num role device index need_tag prev_role
@@ -558,7 +597,7 @@ ucidef_add_gpio_switch() {
json_select_object gpioswitch
json_select_object "$cfg"
json_add_string name "$name"
json_add_int pin "$pin"
json_add_string pin "$pin"
json_add_int default "$default"
json_select ..
json_select ..

View File

@@ -35,6 +35,11 @@ preinit_config_switch() {
json_get_vars enable reset
if [ "$reset" -eq "1" ]; then
swconfig dev $name set reset
fi
swconfig dev $name set enable_vlan $enable
if json_is_a roles array; then
json_get_keys roles roles
json_select roles
@@ -45,19 +50,15 @@ preinit_config_switch() {
json_select ..
if [ "$device" = "$lan_if" ]; then
if [ "$reset" -eq "1" ]; then
swconfig dev $name set reset
fi
swconfig dev $name set enable_vlan $enable
swconfig dev $name vlan $role set ports "$ports"
swconfig dev $name set apply
fi
done
json_select ..
fi
swconfig dev $name set apply
json_select ..
json_select ..
}

View File

@@ -0,0 +1,64 @@
# Copyright (C) 2021 OpenWrt.org
#
. /lib/functions.sh
emmc_upgrade_tar() {
local tar_file="$1"
[ "$CI_KERNPART" -a -z "$EMMC_KERN_DEV" ] && export EMMC_KERN_DEV="$(find_mmc_part $CI_KERNPART $CI_ROOTDEV)"
[ "$CI_ROOTPART" -a -z "$EMMC_ROOT_DEV" ] && export EMMC_ROOT_DEV="$(find_mmc_part $CI_ROOTPART $CI_ROOTDEV)"
[ "$CI_DATAPART" -a -z "$EMMC_DATA_DEV" ] && export EMMC_DATA_DEV="$(find_mmc_part $CI_DATAPART $CI_ROOTDEV)"
local has_kernel
local has_rootfs
local board_dir=$(tar tf "$tar_file" | grep -m 1 '^sysupgrade-.*/$')
board_dir=${board_dir%/}
tar tf "$tar_file" ${board_dir}/kernel 1>/dev/null 2>/dev/null && has_kernel=1
tar tf "$tar_file" ${board_dir}/root 1>/dev/null 2>/dev/null && has_rootfs=1
[ "$has_kernel" = 1 -a "$EMMC_KERN_DEV" ] &&
export EMMC_KERNEL_BLOCKS=$(($(tar xf "$tar_file" ${board_dir}/kernel -O | dd of="$EMMC_KERN_DEV" bs=512 2>&1 | grep "records out" | cut -d' ' -f1)))
[ "$has_rootfs" = 1 -a "$EMMC_ROOT_DEV" ] &&
export EMMC_ROOTFS_BLOCKS=$(($(tar xf "$tar_file" ${board_dir}/root -O | dd of="$EMMC_ROOT_DEV" bs=512 2>&1 | grep "records out" | cut -d' ' -f1)))
if [ -z "$UPGRADE_BACKUP" ]; then
if [ "$EMMC_DATA_DEV" ]; then
dd if=/dev/zero of="$EMMC_DATA_DEV" bs=512 count=8
elif [ "$EMMC_ROOTFS_BLOCKS" ]; then
dd if=/dev/zero of="$EMMC_ROOT_DEV" bs=512 seek=$EMMC_ROOTFS_BLOCKS count=8
elif [ "$EMMC_KERNEL_BLOCKS" ]; then
dd if=/dev/zero of="$EMMC_KERN_DEV" bs=512 seek=$EMMC_KERNEL_BLOCKS count=8
fi
fi
}
emmc_upgrade_fit() {
local fit_file="$1"
[ "$CI_KERNPART" -a -z "$EMMC_KERN_DEV" ] && export EMMC_KERN_DEV="$(find_mmc_part $CI_KERNPART $CI_ROOTDEV)"
if [ "$EMMC_KERN_DEV" ]; then
export EMMC_KERNEL_BLOCKS=$(($(get_image "$fit_file" | fwtool -i /dev/null -T - | dd of="$EMMC_KERN_DEV" bs=512 2>&1 | grep "records out" | cut -d' ' -f1)))
[ -z "$UPGRADE_BACKUP" ] && dd if=/dev/zero of="$EMMC_KERN_DEV" bs=512 seek=$EMMC_KERNEL_BLOCKS count=8
fi
}
emmc_copy_config() {
if [ "$EMMC_DATA_DEV" ]; then
dd if="$UPGRADE_BACKUP" of="$EMMC_DATA_DEV" bs=512
elif [ "$EMMC_ROOTFS_BLOCKS" ]; then
dd if="$UPGRADE_BACKUP" of="$EMMC_ROOT_DEV" bs=512 seek=$EMMC_ROOTFS_BLOCKS
elif [ "$EMMC_KERNEL_BLOCKS" ]; then
dd if="$UPGRADE_BACKUP" of="$EMMC_KERN_DEV" bs=512 seek=$EMMC_KERNEL_BLOCKS
fi
}
emmc_do_upgrade() {
local file_type=$(identify $1)
case "$file_type" in
"fit") emmc_upgrade_fit $1;;
*) emmc_upgrade_tar $1;;
esac
}

View File

@@ -0,0 +1,91 @@
legacy_sdcard_check_image() {
local file="$1"
local diskdev partdev diff
export_bootdevice && export_partdevice diskdev 0 || {
v "Unable to determine upgrade device"
return 1
}
get_partitions "/dev/$diskdev" bootdisk
v "Extract boot sector from the image"
get_image_dd "$1" of=/tmp/image.bs count=1 bs=512b
get_partitions /tmp/image.bs image
#compare tables
diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)"
rm -f /tmp/image.bs /tmp/partmap.bootdisk /tmp/partmap.image
if [ -n "$diff" ]; then
v "Partition layout has changed. Full image will be written."
ask_bool 0 "Abort" && exit 1
return 0
fi
}
legacy_sdcard_do_upgrade() {
local board=$(board_name)
local diskdev partdev diff
export_bootdevice && export_partdevice diskdev 0 || {
v "Unable to determine upgrade device"
return 1
}
sync
if [ "$UPGRADE_OPT_SAVE_PARTITIONS" = "1" ]; then
get_partitions "/dev/$diskdev" bootdisk
v "Extract boot sector from the image"
get_image_dd "$1" of=/tmp/image.bs count=1 bs=512b
get_partitions /tmp/image.bs image
#compare tables
diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)"
else
diff=1
fi
if [ -n "$diff" ]; then
get_image_dd "$1" of="/dev/$diskdev" bs=4096 conv=fsync
# Separate removal and addtion is necessary; otherwise, partition 1
# will be missing if it overlaps with the old partition 2
partx -d - "/dev/$diskdev"
partx -a - "/dev/$diskdev"
else
v "Writing bootloader to /dev/$diskdev"
get_image_dd "$1" of="$diskdev" bs=512 skip=1 seek=1 count=2048 conv=fsync
#iterate over each partition from the image and write it to the boot disk
while read part start size; do
if export_partdevice partdev $part; then
v "Writing image to /dev/$partdev..."
get_image_dd "$1" of="/dev/$partdev" ibs="512" obs=1M skip="$start" count="$size" conv=fsync
else
v "Unable to find partition $part device, skipped."
fi
done < /tmp/partmap.image
v "Writing new UUID to /dev/$diskdev..."
get_image_dd "$1" of="/dev/$diskdev" bs=1 skip=440 count=4 seek=440 conv=fsync
fi
sleep 1
}
legacy_sdcard_copy_config() {
local partdev
if export_partdevice partdev 1; then
mkdir -p /boot
[ -f /boot/kernel.img ] || mount -o rw,noatime /dev/$partdev /boot
cp -af "$UPGRADE_BACKUP" "/boot/$BACKUP_FILE"
sync
umount /boot
fi
}

View File

@@ -3,13 +3,13 @@
. /lib/functions.sh
# 'kernel' partition on NAND contains the kernel
# 'kernel' partition or UBI volume on NAND contains the kernel
CI_KERNPART="${CI_KERNPART:-kernel}"
# 'ubi' partition on NAND contains UBI
CI_UBIPART="${CI_UBIPART:-ubi}"
# 'rootfs' partition on NAND contains the rootfs
# 'rootfs' UBI volume on NAND contains the rootfs
CI_ROOTPART="${CI_ROOTPART:-rootfs}"
ubi_mknod() {
@@ -117,8 +117,12 @@ nand_restore_config() {
nand_upgrade_prepare_ubi() {
local rootfs_length="$1"
local rootfs_type="$2"
local has_kernel="${3:-0}"
local kernel_length="$3"
local has_env="${4:-0}"
local rootfs_data_max="$(fw_printenv -n rootfs_data_max 2>/dev/null)"
[ -n "$rootfs_data_max" ] && rootfs_data_max=$(($rootfs_data_max))
[ -n "$rootfs_length" -o -n "$kernel_length" ] || return 1
local mtdnum="$( find_mtd_index "$CI_UBIPART" )"
if [ ! "$mtdnum" ]; then
@@ -148,23 +152,24 @@ nand_upgrade_prepare_ubi() {
local root_ubivol="$( nand_find_volume $ubidev $CI_ROOTPART )"
local data_ubivol="$( nand_find_volume $ubidev rootfs_data )"
# remove ubiblock device of rootfs
local root_ubiblk="ubiblock${root_ubivol:3}"
if [ "$root_ubivol" -a -e "/dev/$root_ubiblk" ]; then
echo "removing $root_ubiblk"
if ! ubiblock -r /dev/$root_ubivol; then
echo "cannot remove $root_ubiblk"
return 1;
local ubiblk ubiblkvol
for ubiblk in /dev/ubiblock*_? ; do
[ -e "$ubiblk" ] || continue
echo "removing ubiblock${ubiblk:13}"
ubiblkvol=ubi${ubiblk:13}
if ! ubiblock -r /dev/$ubiblkvol; then
echo "cannot remove $ubiblk"
return 1
fi
fi
done
# kill volumes
[ "$kern_ubivol" ] && ubirmvol /dev/$ubidev -N $CI_KERNPART || true
[ "$root_ubivol" ] && ubirmvol /dev/$ubidev -N $CI_ROOTPART || true
[ "$root_ubivol" -a "$root_ubivol" != "$kern_ubivol" ] && ubirmvol /dev/$ubidev -N $CI_ROOTPART || true
[ "$data_ubivol" ] && ubirmvol /dev/$ubidev -N rootfs_data || true
# update kernel
if [ "$has_kernel" = "1" ]; then
if [ -n "$kernel_length" ]; then
if ! ubimkvol /dev/$ubidev -N $CI_KERNPART -s $kernel_length; then
echo "cannot create kernel volume"
return 1;
@@ -172,20 +177,31 @@ nand_upgrade_prepare_ubi() {
fi
# update rootfs
local root_size_param
if [ "$rootfs_type" = "ubifs" ]; then
root_size_param="-m"
else
root_size_param="-s $rootfs_length"
fi
if ! ubimkvol /dev/$ubidev -N $CI_ROOTPART $root_size_param; then
echo "cannot create rootfs volume"
return 1;
if [ -n "$rootfs_length" ]; then
local rootfs_size_param
if [ "$rootfs_type" = "ubifs" ]; then
rootfs_size_param="-m"
else
rootfs_size_param="-s $rootfs_length"
fi
if ! ubimkvol /dev/$ubidev -N $CI_ROOTPART $rootfs_size_param; then
echo "cannot create rootfs volume"
return 1;
fi
fi
# create rootfs_data for non-ubifs rootfs
if [ "$rootfs_type" != "ubifs" ]; then
if ! ubimkvol /dev/$ubidev -N rootfs_data -m; then
local availeb=$(cat /sys/devices/virtual/ubi/$ubidev/avail_eraseblocks)
local ebsize=$(cat /sys/devices/virtual/ubi/$ubidev/eraseblock_size)
local avail_size=$(( $availeb * $ebsize ))
local rootfs_data_size_param="-m"
if [ -n "$rootfs_data_max" ] &&
[ "$rootfs_data_max" != "0" ] &&
[ "$rootfs_data_max" -le "$avail_size" ]; then
rootfs_data_size_param="-s $rootfs_data_max"
fi
if ! ubimkvol /dev/$ubidev -N rootfs_data $rootfs_data_size_param; then
echo "cannot initialize rootfs_data volume"
return 1
fi
@@ -232,7 +248,7 @@ nand_upgrade_ubinized() {
nand_upgrade_ubifs() {
local rootfs_length=$( (cat $1 | wc -c) 2> /dev/null)
nand_upgrade_prepare_ubi "$rootfs_length" "ubifs" "0" "0"
nand_upgrade_prepare_ubi "$rootfs_length" "ubifs" "" ""
local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
local root_ubivol="$(nand_find_volume $ubidev $CI_ROOTPART)"
@@ -241,39 +257,60 @@ nand_upgrade_ubifs() {
nand_do_upgrade_success
}
nand_upgrade_fit() {
local fit_file="$1"
local fit_length="$(wc -c < "$fit_file")"
nand_upgrade_prepare_ubi "" "" "$fit_length" "1"
local fit_ubidev="$(nand_find_ubi "$CI_UBIPART")"
local fit_ubivol="$(nand_find_volume $fit_ubidev "$CI_KERNPART")"
ubiupdatevol /dev/$fit_ubivol -s $fit_length $fit_file
nand_do_upgrade_success
}
nand_upgrade_tar() {
local tar_file="$1"
local kernel_mtd="$(find_mtd_index $CI_KERNPART)"
local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
local board_dir=$(tar tf "$tar_file" | grep -m 1 '^sysupgrade-.*/$')
board_dir=${board_dir%/}
local kernel_length=$( (tar xf $tar_file ${board_dir}/kernel -O | wc -c) 2> /dev/null)
local rootfs_length=$( (tar xf $tar_file ${board_dir}/root -O | wc -c) 2> /dev/null)
kernel_length=$( (tar xf "$tar_file" ${board_dir}/kernel -O | wc -c) 2> /dev/null)
local has_rootfs=0
local rootfs_length
local rootfs_type
local rootfs_type="$(identify_tar "$tar_file" ${board_dir}/root)"
tar tf "$tar_file" ${board_dir}/root 1>/dev/null 2>/dev/null && has_rootfs=1
[ "$has_rootfs" = "1" ] && {
rootfs_length=$( (tar xf "$tar_file" ${board_dir}/root -O | wc -c) 2> /dev/null)
rootfs_type="$(identify_tar "$tar_file" ${board_dir}/root)"
}
local has_kernel=1
local has_env=0
[ "$kernel_length" != 0 -a -n "$kernel_mtd" ] && {
tar xf $tar_file ${board_dir}/kernel -O | mtd write - $CI_KERNPART
tar xf "$tar_file" ${board_dir}/kernel -O | mtd write - $CI_KERNPART
}
[ "$kernel_length" = 0 -o ! -z "$kernel_mtd" ] && has_kernel=0
[ "$kernel_length" = 0 -o ! -z "$kernel_mtd" ] && has_kernel=
[ "$CI_KERNPART" = "none" ] && has_kernel=
nand_upgrade_prepare_ubi "$rootfs_length" "$rootfs_type" "$has_kernel" "$has_env"
nand_upgrade_prepare_ubi "$rootfs_length" "$rootfs_type" "${has_kernel:+$kernel_length}" "$has_env"
local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
[ "$has_kernel" = "1" ] && {
local kern_ubivol="$(nand_find_volume $ubidev $CI_KERNPART)"
tar xf $tar_file ${board_dir}/kernel -O | \
local kern_ubivol="$( nand_find_volume $ubidev $CI_KERNPART )"
tar xf "$tar_file" ${board_dir}/kernel -O | \
ubiupdatevol /dev/$kern_ubivol -s $kernel_length -
}
local root_ubivol="$(nand_find_volume $ubidev $CI_ROOTPART)"
tar xf $tar_file ${board_dir}/root -O | \
ubiupdatevol /dev/$root_ubivol -s $rootfs_length -
[ "$has_rootfs" = "1" ] && {
local root_ubivol="$( nand_find_volume $ubidev $CI_ROOTPART )"
tar xf "$tar_file" ${board_dir}/root -O | \
ubiupdatevol /dev/$root_ubivol -s $rootfs_length -
}
nand_do_upgrade_success
}
@@ -288,6 +325,7 @@ nand_do_upgrade() {
[ ! "$(find_mtd_index "$CI_UBIPART")" ] && CI_UBIPART="rootfs"
case "$file_type" in
"fit") nand_upgrade_fit $1;;
"ubi") nand_upgrade_ubinized $1;;
"ubifs") nand_upgrade_ubifs $1;;
*) nand_upgrade_tar $1;;
@@ -313,7 +351,7 @@ nand_do_platform_check() {
local control_length=$( (tar xf $tar_file sysupgrade-$board_name/CONTROL -O | wc -c) 2> /dev/null)
local file_type="$(identify $2)"
[ "$control_length" = 0 -a "$file_type" != "ubi" -a "$file_type" != "ubifs" ] && {
[ "$control_length" = 0 -a "$file_type" != "ubi" -a "$file_type" != "ubifs" -a "$file_type" != "fit" ] && {
echo "Invalid sysupgrade file."
return 1
}

View File

@@ -50,7 +50,7 @@ switch_to_ramfs() {
md5sum hexdump cat zcat dd tar \
ls basename find cp mv rm mkdir rmdir mknod touch chmod \
'[' printf wc grep awk sed cut \
mtd partx losetup mkfs.ext4 \
mtd partx losetup mkfs.ext4 nandwrite flash_erase \
ubiupdatevol ubiattach ubiblock ubiformat \
ubidetach ubirsvol ubirmvol ubimkvol \
snapshot snapshot_tool date logger \
@@ -94,12 +94,15 @@ kill_remaining() { # [ <signal> [ <loop> ] ]
[ -f "$stat" ] || continue
local pid name state ppid rest
read pid name state ppid rest < $stat
name="${name#(}"; name="${name%)}"
read pid rest < $stat
name="${rest#\(}" ; rest="${name##*\) }" ; name="${name%\)*}"
set -- $rest ; state="$1" ; ppid="$2"
# Skip PID1, our parent, ourself and our children
[ $pid -ne 1 -a $pid -ne $proc_ppid -a $pid -ne $$ -a $ppid -ne $$ ] || continue
[ -f "/proc/$pid/cmdline" ] || continue
local cmdline
read cmdline < /proc/$pid/cmdline

View File

@@ -129,10 +129,12 @@ wifi_updown() {
ubus_wifi_cmd "$cmd" "$2"
scan_wifi
cmd=up
ubus call network reload
}
[ reconf = "$1" ] && {
scan_wifi
cmd=reconf
ubus call network reload
}
ubus_wifi_cmd "$cmd" "$2"
_wifi_updown "$@"
@@ -245,7 +247,7 @@ case "$1" in
reload) wifi_reload "$2";;
reload_legacy) wifi_reload_legacy "$2";;
--help|help) usage;;
reconf) ubus call network reload; wifi_updown "reconf" "$2";;
''|up) ubus call network reload; wifi_updown "enable" "$2";;
reconf) wifi_updown "reconf" "$2";;
''|up) wifi_updown "enable" "$2";;
*) usage; exit 1;;
esac

View File

@@ -119,7 +119,7 @@ menuconfig INITOPT
prompt "Environment variables to set when starting init (start with none)" if INITOPT
default ""
help
Should be a space seperated list of variable assignments. These
Should be a space separated list of variable assignments. These
variables will be present in the environment. Spaces may not be
present (including through expansion) even in a quoted string
(env doesn't understanding quoting).
@@ -183,7 +183,7 @@ if VERSIONOPT
config VERSION_REPO
string
prompt "Release repository"
default "https://downloads.immortalwrt.org/releases/18.06-SNAPSHOT"
default "https://downloads.immortalwrt.org/releases/18.06-k5.4-SNAPSHOT"
help
This is the repository address embedded in the image, it defaults
to the trunk snapshot repo; the url may contain the following placeholders:

View File

@@ -0,0 +1,100 @@
#
# Copyright (C) 2017 Hauke Mehrtens
# Copyright (C) 2021 Daniel Golle
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=arm-trusted-firmware-mediatek
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://github.com/mtk-openwrt/arm-trusted-firmware.git
PKG_SOURCE_DATE:=2021-05-08
PKG_SOURCE_VERSION:=d2c75b2139be003887af9cc5a94da5e9bdc59de7
PKG_MIRROR_HASH:=4af9ce8e11511afee7f588cc982946c06339edbfa47afef6a7f3e2231ac9f34d
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
include $(INCLUDE_DIR)/trusted-firmware-a.mk
include $(INCLUDE_DIR)/package.mk
define Trusted-Firmware-A/Default
BUILD_TARGET:=mediatek
BUILD_SUBTARGET:=mt7622
PLAT:=mt7622
TFA_IMAGE:=bl2.img bl31.bin
BOOT_DEVICE:=
DDR3_FLYBY:=
endef
define Trusted-Firmware-A/mt7622-nor-1ddr
NAME:=MediaTek MT7622 (SPI-NOR, 1x DDR3)
BOOT_DEVICE:=nor
endef
define Trusted-Firmware-A/mt7622-nor-2ddr
NAME:=MediaTek MT7622 (SPI-NOR, 2x DDR3)
BOOT_DEVICE:=nor
DDR3_FLYBY:=1
endef
define Trusted-Firmware-A/mt7622-snand-1ddr
NAME:=MediaTek MT7622 (SPI-NAND, 1x DDR3)
BOOT_DEVICE:=snand
endef
define Trusted-Firmware-A/mt7622-snand-2ddr
NAME:=MediaTek MT7622 (SPI-NAND, 2x DDR3)
BOOT_DEVICE:=snand
DDR3_FLYBY:=1
endef
define Trusted-Firmware-A/mt7622-emmc-1ddr
NAME:=MediaTek MT7622 (eMMC, 1x DDR3)
BOOT_DEVICE:=emmc
endef
define Trusted-Firmware-A/mt7622-emmc-2ddr
NAME:=MediaTek MT7622 (eMMC, 2x DDR3)
BOOT_DEVICE:=emmc
DDR3_FLYBY:=1
endef
define Trusted-Firmware-A/mt7622-sdmmc-1ddr
NAME:=MediaTek MT7622 (SDcard, 1x DDR3)
BOOT_DEVICE:=sdmmc
endef
define Trusted-Firmware-A/mt7622-sdmmc-2ddr
NAME:=MediaTek MT7622 (SDcard, 2x DDR3)
BOOT_DEVICE:=sdmmc
DDR3_FLYBY:=1
endef
TFA_TARGETS:= \
mt7622-nor-1ddr \
mt7622-nor-2ddr \
mt7622-snand-1ddr \
mt7622-snand-2ddr \
mt7622-emmc-1ddr \
mt7622-emmc-2ddr \
mt7622-sdmmc-1ddr \
mt7622-sdmmc-2ddr
TFA_MAKE_FLAGS += \
BOOT_DEVICE=$(BOOT_DEVICE) \
USE_MKIMAGE=1 MKIMAGE=$(STAGING_DIR_HOST)/bin/mkimage \
$(if $(DDR3_FLYBY),DDR3_FLYBY=1) \
all
define Package/trusted-firmware-a/install
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(INSTALL_DATA) $(PKG_BUILD_DIR)/build/mt7622/release/bl2.img $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl2.img
$(INSTALL_DATA) $(PKG_BUILD_DIR)/build/mt7622/release/bl31.bin $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl31.bin
endef
$(eval $(call BuildPackage/Trusted-Firmware-A))

View File

@@ -0,0 +1,11 @@
--- a/plat/mediatek/mt7622/bl2_boot_nor.c
+++ b/plat/mediatek/mt7622/bl2_boot_nor.c
@@ -12,7 +12,7 @@
#define MT7622_NOR_MAP_BASE 0x30000000
#define FIP_BASE 0x20000
-#define FIP_SIZE 0x80000
+#define FIP_SIZE 0xa0000
const io_block_spec_t mtk_boot_dev_fip_spec = {
.offset = MT7622_NOR_MAP_BASE + FIP_BASE,

View File

@@ -7,106 +7,208 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=arm-trusted-firmware-mvebu
PKG_VERSION:=2.2
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_RELEASE).tar.xz
PKG_SOURCE_URL:=https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
PKG_SOURCE_DATE:=2020-01-21
PKG_SOURCE_VERSION:=3b3d406ebc6f5dae6b5c9170c674183026e7301b
PKG_MIRROR_HASH:=7c63da237c52808e1fe49458d5a4ac804a8eb4c365e26c6b2b709256e8fc041f
PKG_VERSION:=2.5
PKG_RELEASE:=$(AUTORELEASE)
PKG_HASH:=ad8a2ffcbcd12d919723da07630fc0840c3c2fba7656d1462e45488e42995d7c
PKG_MAINTAINER:=Vladimir Vid <vladimir.vid@sartura.hr>
include $(INCLUDE_DIR)/trusted-firmware-a.mk
include $(INCLUDE_DIR)/package.mk
define Package/arm-trusted-firmware-mvebu
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:=ARM Trusted Firmware for mvebu devices
define Trusted-Firmware-A/Default
BUILD_TARGET:=mvebu
BUILD_SUBTARGET:=cortexa53
TFA_IMAGE:=flash-image.bin uart-images.tgz.bin
UBOOT:=
DDR_TOPOLOGY:=
CLOCKSPRESET:=
endef
define Package/arm-trusted-firmware-mvebu/uDPU
$(call Package/arm-trusted-firmware-mvebu)
BOARDNAME:=uDPU
TITLE:=ARM Trusted Firmware for Methode uDPU
DEPENDS:=+u-boot-uDPU
UBOOT:=uDPU
define Trusted-Firmware-A/espressobin-512mb
NAME:=Marvell ESPRESSObin (512MB)
DEPENDS:=+u-boot-espressobin
BUILD_DEVICES:=globalscale_espressobin
UBOOT:=espressobin
DDR_TOPOLOGY:=0
CLOCKSPRESET:=CPU_1000_DDR_800
PLAT:=a3700
endef
define Trusted-Firmware-A/espressobin-v3-v5-1gb-1cs
NAME:=Marvell ESPRESSObin V3-V5 (1GB 1CS)
DEPENDS:=+u-boot-espressobin
BUILD_DEVICES:=globalscale_espressobin
UBOOT:=espressobin
DDR_TOPOLOGY:=4
CLOCKSPRESET:=CPU_1000_DDR_800
PLAT:=a3700
endef
define Trusted-Firmware-A/espressobin-v3-v5-1gb-2cs
NAME:=Marvell ESPRESSObin V3-V5 (1GB, 2CS)
DEPENDS:=+u-boot-espressobin
BUILD_DEVICES:=globalscale_espressobin
UBOOT:=espressobin
DDR_TOPOLOGY:=2
CLOCKSPRESET:=CPU_1000_DDR_800
PLAT:=a3700
endef
define Trusted-Firmware-A/espressobin-v3-v5-2gb
NAME:=Marvell ESPRESSObin V3-V5 (2GB)
DEPENDS:=+u-boot-espressobin
BUILD_DEVICES:=globalscale_espressobin
UBOOT:=espressobin
DDR_TOPOLOGY:=7
CLOCKSPRESET:=CPU_1000_DDR_800
PLAT:=a3700
endef
define Trusted-Firmware-A/espressobin-v7-1gb
NAME:=Marvell ESPRESSObin V7 (1GB)
DEPENDS:=+u-boot-espressobin
BUILD_DEVICES:=globalscale_espressobin-v7
UBOOT:=espressobin
DDR_TOPOLOGY:=5
CLOCKSPRESET:=CPU_1000_DDR_800
PLAT:=a3700
endef
define Trusted-Firmware-A/espressobin-v7-2gb
NAME:=Marvell ESPRESSObin V7 (2GB)
DEPENDS:=+u-boot-espressobin
BUILD_DEVICES:=globalscale_espressobin-v7
UBOOT:=espressobin
DDR_TOPOLOGY:=6
CLOCKSPRESET:=CPU_1000_DDR_800
PLAT:=a3700
endef
define Trusted-Firmware-A/udpu
NAME:=Methode uDPU
DEPENDS:=+u-boot-uDPU
BUILD_DEVICES:=methode_udpu
UBOOT:=uDPU
DDR_TOPOLOGY:=0
CLOCKSPRESET:=CPU_1000_DDR_800
PLAT:=a3700
endef
TFA_TARGETS:= \
espressobin-512mb \
espressobin-v3-v5-1gb-1cs \
espressobin-v3-v5-1gb-2cs \
espressobin-v3-v5-2gb \
espressobin-v7-1gb \
espressobin-v7-2gb \
udpu
TFA_MAKE_FLAGS += \
CROSS_CM3=$(STAGING_DIR_IMAGE)/$(CM3_GCC_NAME)-$(CM3_GCC_RELEASE)-$(CM3_GCC_VERSION)/bin/arm-none-eabi- \
BL33=$(STAGING_DIR_IMAGE)/$(UBOOT)-u-boot.bin \
MV_DDR_PATH=$(STAGING_DIR_IMAGE)/$(MV_DDR_NAME) \
WTP=$(STAGING_DIR_IMAGE)/$(A3700_UTILS_NAME) \
WTMI_IMG=$(STAGING_DIR_IMAGE)/$(MOX_BB_NAME)-$(MOX_BB_RELEASE)/wtmi_app.bin \
USE_COHERENT_MEM=0 \
FIP_ALIGN=0x100 \
DDR_TOPOLOGY=$(DDR_TOPOLOGY) \
CLOCKSPRESET=$(CLOCKSPRESET) \
A3700_UTILS_COMMIT_ID=$(A3700_UTILS_RELEASE) \
MV_DDR_COMMIT_ID=$(MV_DDR_RELEASE) \
all \
mrvl_flash \
mrvl_uart
A3700_UTILS_NAME:=a3700-utils
A3700_UTILS_RELEASE:=18.12.1
A3700_UTILS_RELEASE:=2efdb10f
A3700_UTILS_SOURCE=$(A3700_UTILS_NAME)-$(A3700_UTILS_RELEASE).tar.bz2
define Download/a3700-utils
FILE:=$(A3700_UTILS_SOURCE)
PROTO:=git
URL:=https://github.com/MarvellEmbeddedProcessors/A3700-utils-marvell.git
VERSION:=e6bb176fb9936d9160e53ae09275000dc6440686
MIRROR_HASH:=c3edf71cbf1fc2e5482d36e36a34c79d682d2c87fdfb909b4dc6327a171e7bd4
VERSION:=2efdb10f3524c534d276002adf81fec06e0f1cf2
MIRROR_HASH:=4476e1bacfa7abb4a1303c6cf3aa7d067038b24090dfd5da13ca2a72a0d5c7a4
SUBDIR:=$(A3700_UTILS_NAME)
endef
MV_DDR_NAME:=mv-ddr-marvell
MV_DDR_RELEASE:=mainline
MV_DDR_RELEASE:=02e23dbc
MV_DDR_SOURCE:=$(MV_DDR_NAME)-$(MV_DDR_RELEASE).tar.bz2
define Download/mv-ddr-marvell
FILE:=$(MV_DDR_SOURCE)
PROTO:=git
URL:=https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell.git
VERSION:=a881467ef0f0185e6570dd0483023fde93cbb5f5
MIRROR_HASH:=19f34817616c583b2b5f2612705857cf2120f6c2132355217899b1403c3fd336
VERSION:=02e23dbcf8dd22e038986052d99319a0eba8f25f
MIRROR_HASH:=d87dcc288b3895d1a1a78908fc607976d500b317ef81edfe667035579df0b440
SUBDIR:=$(MV_DDR_NAME)
endef
LINARO_NAME:=gcc-linaro
LINARO_RELEASE:=6
LINARO_VERSION:=5.0-2018.12-$(HOST_ARCH)_arm-linux-gnueabi
LINARO_SOURCE=$(LINARO_NAME)-$(LINARO_RELEASE).$(LINARO_VERSION).tar.xz
MOX_BB_NAME:=mox-boot-builder
MOX_BB_RELEASE:=v2021.09.07
MOX_BB_SOURCE:=$(MOX_BB_NAME)-$(MOX_BB_RELEASE).tar.bz2
define Download/gcc-linaro
FILE:=$(LINARO_SOURCE)
URL:=https://releases.linaro.org/components/toolchain/binaries/latest-$(LINARO_RELEASE)/arm-linux-gnueabi/
HASH:=2d4a92d6c8b384ae404b2e02c1c412e3ec18f9b714135acf046b2b1b510e9ace
define Download/mox-boot-builder
FILE:=$(MOX_BB_SOURCE)
URL:=https://gitlab.nic.cz/turris/mox-boot-builder/-/archive/$(MOX_BB_RELEASE)
HASH:=fd5fe276a3b0dee3177d61c017907a8eb23cd2169478fa78e9a3a836cfe3a4a8
endef
CM3_GCC_NAME:=gcc-arm
CM3_GCC_RELEASE:=10.2-2020.11
CM3_GCC_VERSION:=$(HOST_ARCH)-arm-none-eabi
CM3_GCC_SOURCE=$(CM3_GCC_NAME)-$(CM3_GCC_RELEASE)-$(CM3_GCC_VERSION).tar.xz
define Download/cm3-gcc
FILE:=$(CM3_GCC_SOURCE)
URL:=https://developer.arm.com/-/media/Files/downloads/gnu-a/$(CM3_GCC_RELEASE)/binrel
ifeq ($(HOST_ARCH),aarch64)
HASH:=1a42eecafa03dc6f32b8ae49ffcd15114dc818efbd72292fa6bab58233940bb9
else
HASH:=bf7ee185936d22d787b80c8da573f72ead5675695331fb8b590f0133ef1f6bb9
endif
endef
define Build/Clean
rm -rf \
$(STAGING_DIR_IMAGE)/$(A3700_UTILS_NAME) \
$(STAGING_DIR_IMAGE)/$(MV_DDR_NAME) \
$(STAGING_DIR_IMAGE)/$(MOX_BB_NAME)-$(MOX_BB_RELEASE) \
$(STAGING_DIR_IMAGE)/$(CM3_GCC_NAME)-$(CM3_GCC_RELEASE)-$(CM3_GCC_VERSION)
endef
define Build/Prepare
# Download sources
$(eval $(call Download,a3700-utils))
$(eval $(call Download,mv-ddr-marvell))
$(eval $(call Download,gcc-linaro))
$(eval $(call Download,mox-boot-builder))
$(eval $(call Download,cm3-gcc))
rm -rf $(PKG_BUILD_DIR)
$(TAR) -C $(BUILD_DIR) -xf $(DL_DIR)/$(PKG_SOURCE)
$(call Build/Prepare/Default,)
mkdir -p $(STAGING_DIR_IMAGE)
$(TAR) -C $(STAGING_DIR_IMAGE) -xf $(DL_DIR)/$(A3700_UTILS_SOURCE)
echo "master" > $(STAGING_DIR_IMAGE)/$(A3700_UTILS_NAME)/branch.txt
$(call PatchDir/Default,$(STAGING_DIR_IMAGE)/$(A3700_UTILS_NAME),./patches-a3700-utils)
$(TAR) -C $(STAGING_DIR_IMAGE) -xf $(DL_DIR)/$(MV_DDR_SOURCE)
$(TAR) -C $(STAGING_DIR_IMAGE) -xf $(DL_DIR)/$(LINARO_SOURCE)
echo "master" > $(STAGING_DIR_IMAGE)/$(MV_DDR_NAME)/branch.txt
$(call PatchDir/Default,$(STAGING_DIR_IMAGE)/$(MV_DDR_NAME),./patches-mv-ddr-marvell)
$(TAR) -C $(STAGING_DIR_IMAGE) -xf $(DL_DIR)/$(MOX_BB_SOURCE)
$(call PatchDir/Default,$(STAGING_DIR_IMAGE)/$(MOX_BB_NAME)-$(MOX_BB_RELEASE),./patches-mox-boot-builder)
$(TAR) -C $(STAGING_DIR_IMAGE) -xf $(DL_DIR)/$(CM3_GCC_SOURCE)
endef
TARGET_CFLAGS = ""
MAKE_VARS= \
CROSS_COMPILE="$(TARGET_CROSS)"
MAKE_FLAGS = \
CROSS_CM3=$(STAGING_DIR_IMAGE)/$(LINARO_NAME)-$(LINARO_RELEASE).$(LINARO_VERSION)/bin/arm-linux-gnueabi- \
BL33=$(STAGING_DIR_IMAGE)/$(UBOOT)-u-boot.bin \
MV_DDR_PATH=$(STAGING_DIR_IMAGE)/$(MV_DDR_NAME) \
WTP=$(STAGING_DIR_IMAGE)/$(A3700_UTILS_NAME) \
CLOCKSPRESET=$(CLOCKSPRESET) \
PLAT=$(PLAT) \
all \
fip
define Build/InstallDev
$(CP) $(PKG_BUILD_DIR)/build/$(PLAT)/release/flash-image.bin $(BIN_DIR)/u-boot-$(BOARDNAME)/
define Build/Compile
+$(MAKE) \
CROSS_CM3=$(STAGING_DIR_IMAGE)/$(CM3_GCC_NAME)-$(CM3_GCC_RELEASE)-$(CM3_GCC_VERSION)/bin/arm-none-eabi- \
WTMI_VERSION=$(MOX_BB_RELEASE) \
-C $(STAGING_DIR_IMAGE)/$(MOX_BB_NAME)-$(MOX_BB_RELEASE) \
wtmi_app.bin
$(call Build/Compile/Default)
endef
$(eval $(call BuildPackage,arm-trusted-firmware-mvebu/uDPU))
$(eval $(call BuildPackage/Trusted-Firmware-A))

View File

@@ -0,0 +1,14 @@
diff --git a/wtmi/sys_init/Makefile b/wtmi/sys_init/Makefile
--- a/wtmi/sys_init/Makefile
+++ b/wtmi/sys_init/Makefile
@@ -51,8 +51,8 @@ ECHO = @echo
SED = @sed
LOCAL_VERSION_STRING ?= -armada
-BUILD_STRING := $(shell git log -n 1 --pretty=format:"%h" && (git diff-index --quiet HEAD || echo -dirty))
-VERSION_STRING := $(LOCAL_VERSION_STRING)-$(BUILD_STRING)
+A3700_UTILS_COMMIT_ID ?= $(shell git log -n 1 --pretty=format:"%h" && (git diff-index --quiet HEAD || echo -dirty))
+VERSION_STRING := $(LOCAL_VERSION_STRING)-$(A3700_UTILS_COMMIT_ID)
CPUOPTS = -mthumb -mcpu=cortex-m3 -mlittle-endian
BINPATH = build

View File

@@ -0,0 +1,12 @@
diff --git a/wtmi/Makefile b/wtmi/Makefile
index 75754dc..3602ec3 100644
--- a/wtmi/Makefile
+++ b/wtmi/Makefile
@@ -41,7 +41,6 @@ else
LTO_FLAGS =
endif
-override WTMI_VERSION = $(shell git describe --always --dirty --tags)
ifndef WTMI_VERSION
$(error Repository is without git tags, please do a full git clone again)
endif

View File

@@ -0,0 +1,13 @@
diff --git a/wtmi/Makefile b/wtmi/Makefile
index 75754dc..0c6238f 100644
--- a/wtmi/Makefile
+++ b/wtmi/Makefile
@@ -36,7 +36,7 @@ LDSCRIPT = wtmi.ld
INCLUDE = -I.
ifeq ($(LTO), 1)
- LTO_FLAGS = -flto -flto-partition=none -Wl,-fuse-ld=gold
+ LTO_FLAGS = -flto -flto-partition=none
else
LTO_FLAGS =
endif

View File

@@ -0,0 +1,12 @@
diff --git a/scripts/localversion.sh b/scripts/localversion.sh
--- a/scripts/localversion.sh
+++ b/scripts/localversion.sh
@@ -103,7 +103,7 @@ MV_DDR_ROOT=$1
MV_DDR_VER_CSRC=$2
# get mv_ddr git commit id
-MV_DDR_COMMIT_ID=`git -C $MV_DDR_ROOT rev-parse --verify --quiet --short HEAD 2> /dev/null`
+test -z "$MV_DDR_COMMIT_ID" && MV_DDR_COMMIT_ID=`git -C $MV_DDR_ROOT rev-parse --verify --quiet --short HEAD 2> /dev/null`
# check for uncommitted changes in mv_ddr git
MV_DDR_DIRTY_CHK=`git -C $MV_DDR_ROOT diff-index --name-only HEAD 2> /dev/null`

View File

@@ -0,0 +1,20 @@
--- a/plat/marvell/armada/a3k/common/a3700_common.mk
+++ b/plat/marvell/armada/a3k/common/a3700_common.mk
@@ -76,7 +76,7 @@ $(if $(wildcard $(value WTP)/*),,$(error
$(if $(shell test -s "$(value WTP)/branch.txt" || git -C $(value WTP) rev-parse --show-cdup 2>&1),$(error "'WTP=$(value WTP)' was specified, but '$(value WTP)' does not contain valid Marvell a3700_utils release tarball nor git repository"))
DOIMAGEPATH := $(WTP)
-DOIMAGETOOL := $(DOIMAGEPATH)/wtptp/src/TBB_Linux/release/TBB_linux
+DOIMAGETOOL := $(DOIMAGEPATH)/wtptp/linux/tbb_linux
BUILD_UART := uart-images
UART_IMAGE := $(BUILD_UART).tgz.bin
@@ -132,7 +132,7 @@ TIMBLDUARTARGS := $(MARVELL_SECURE_BOOT
CRYPTOPP_LIBDIR ?= $(CRYPTOPP_PATH)
CRYPTOPP_INCDIR ?= $(CRYPTOPP_PATH)
-$(DOIMAGETOOL): FORCE
+$(DOIMAGETOOL):
$(if $(CRYPTOPP_LIBDIR),,$(error "Platform '$(PLAT)' for WTP image tool requires CRYPTOPP_PATH or CRYPTOPP_LIBDIR. Please set CRYPTOPP_PATH or CRYPTOPP_LIBDIR to point to the right directory"))
$(if $(CRYPTOPP_INCDIR),,$(error "Platform '$(PLAT)' for WTP image tool requires CRYPTOPP_PATH or CRYPTOPP_INCDIR. Please set CRYPTOPP_PATH or CRYPTOPP_INCDIR to point to the right directory"))
$(if $(wildcard $(CRYPTOPP_LIBDIR)/*),,$(error "Either 'CRYPTOPP_PATH' or 'CRYPTOPP_LIB' was set to '$(CRYPTOPP_LIBDIR)', but '$(CRYPTOPP_LIBDIR)' does not exist"))

View File

@@ -0,0 +1,60 @@
From 66a7752834382595d26214783ae4698fd1f00bd6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
Date: Thu, 13 May 2021 14:53:44 +0200
Subject: [PATCH] fix(plat/marvell/a3720/uart): fix UART clock rate value and
divisor calculation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
UART parent clock is by default the platform's xtal clock, which is
25 MHz.
The value defined in the driver, though, is 25.8048 MHz. This is a hack
for the suboptimal divisor calculation
Divisor = UART clock / (16 * baudrate)
which does not use rounding division, resulting in a suboptimal value
for divisor if the correct parent clock rate was used.
Change the code for divisor calculation to
Divisor = Round(UART clock / (16 * baudrate))
and change the parent clock rate value to 25 MHz.
The final UART divisor for default baudrate 115200 is not affected by
this change.
(Note that the parent clock rate should not be defined via a macro,
since the xtal clock can also be 40 MHz. This is outside of the scope of
this fix, though.)
Signed-off-by: Pali Rohár <pali@kernel.org>
Change-Id: Iaa401173df87aec94f2dd1b38a90fb6ed0bf0ec6
---
drivers/marvell/uart/a3700_console.S | 3 ++-
plat/marvell/armada/a3k/common/include/platform_def.h | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
--- a/drivers/marvell/uart/a3700_console.S
+++ b/drivers/marvell/uart/a3700_console.S
@@ -45,8 +45,9 @@ func console_a3700_core_init
cbz w2, init_fail
/* Program the baudrate */
- /* Divisor = Uart clock / (16 * baudrate) */
+ /* Divisor = Round(Uartclock / (16 * baudrate)) */
lsl w2, w2, #4
+ add w1, w1, w2, lsr #1
udiv w2, w1, w2
and w2, w2, #0x3ff
--- a/plat/marvell/armada/a3k/common/include/platform_def.h
+++ b/plat/marvell/armada/a3k/common/include/platform_def.h
@@ -164,7 +164,7 @@
* PL011 related constants
*/
#define PLAT_MARVELL_BOOT_UART_BASE (MVEBU_REGS_BASE + 0x12000)
-#define PLAT_MARVELL_BOOT_UART_CLK_IN_HZ 25804800
+#define PLAT_MARVELL_BOOT_UART_CLK_IN_HZ 25000000
#define PLAT_MARVELL_CRASH_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
#define PLAT_MARVELL_CRASH_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ

View File

@@ -0,0 +1,53 @@
From b9185c75f7ec2b600ebe0d49281e216a2456b764 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
Date: Thu, 13 May 2021 15:11:06 +0200
Subject: [PATCH] fix(plat/marvell/a3720/uart): fix configuring UART clock
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When configuring the UART_BAUD_REG register, the function
console_a3700_core_init() currently only changes the baud divisor field,
leaving other fields to their previous value.
This is incorrect, because the baud divisor is computed with the
assumption that the parent clock rate is 25 MHz, and since the other
fields in this register configure the parent clock, which could have
been changed by U-Boot or Linux.
Fix this function to also configure the other fields so that the UART
parent clock is selected to be the xtal clock.
For example without this change TF-A prints only
ERROR: a3700_system_off needs to be implemented
followed by garbage after plat_crash_console_init() is called.
After applying this change instead of garbage it also print crash info:
PANIC at PC : 0x0000000004023800
Signed-off-by: Pali Rohár <pali@kernel.org>
Change-Id: I72f338355cc60d939b8bb978d9c7fdd576416b81
---
drivers/marvell/uart/a3700_console.S | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
--- a/drivers/marvell/uart/a3700_console.S
+++ b/drivers/marvell/uart/a3700_console.S
@@ -49,12 +49,9 @@ func console_a3700_core_init
lsl w2, w2, #4
add w1, w1, w2, lsr #1
udiv w2, w1, w2
- and w2, w2, #0x3ff
+ and w2, w2, #0x3ff /* clear all other bits to use default clock */
- ldr w3, [x0, #UART_BAUD_REG]
- bic w3, w3, 0x3ff
- orr w3, w3, w2
- str w3, [x0, #UART_BAUD_REG]/* set baud rate divisor */
+ str w2, [x0, #UART_BAUD_REG]/* set baud rate divisor */
/* Set UART to default 16X scheme */
mov w3, #0

View File

@@ -0,0 +1,122 @@
From 3133625859b74df42deddd80b705578af6fc2fea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
Date: Fri, 14 May 2021 13:21:56 +0200
Subject: [PATCH] refactor(plat/marvell/uart): de-duplicate PLAT_MARVELL_UART
macros
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Macros PLAT_MARVELL_BOOT_UART* and PLAT_MARVELL_CRASH_UART* are defined
to same values. De-duplicate them into PLAT_MARVELL_UART* macros.
Signed-off-by: Pali Rohár <pali@kernel.org>
Change-Id: Iae5daf7cad6a971e6f3dbe561df3d0174106ca7f
---
plat/marvell/armada/a3k/common/include/platform_def.h | 7 ++-----
plat/marvell/armada/a8k/a80x0_puzzle/board/system_power.c | 4 ++--
plat/marvell/armada/a8k/common/include/platform_def.h | 7 ++-----
plat/marvell/armada/common/aarch64/marvell_helpers.S | 8 ++++----
plat/marvell/armada/common/marvell_console.c | 8 ++++----
5 files changed, 14 insertions(+), 20 deletions(-)
--- a/plat/marvell/armada/a3k/common/include/platform_def.h
+++ b/plat/marvell/armada/a3k/common/include/platform_def.h
@@ -163,11 +163,8 @@
/*
* PL011 related constants
*/
-#define PLAT_MARVELL_BOOT_UART_BASE (MVEBU_REGS_BASE + 0x12000)
-#define PLAT_MARVELL_BOOT_UART_CLK_IN_HZ 25000000
-
-#define PLAT_MARVELL_CRASH_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
-#define PLAT_MARVELL_CRASH_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
+#define PLAT_MARVELL_UART_BASE (MVEBU_REGS_BASE + 0x12000)
+#define PLAT_MARVELL_UART_CLK_IN_HZ 25000000
#define PLAT_MARVELL_BL31_RUN_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
#define PLAT_MARVELL_BL31_RUN_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
--- a/plat/marvell/armada/a8k/a80x0_puzzle/board/system_power.c
+++ b/plat/marvell/armada/a8k/a80x0_puzzle/board/system_power.c
@@ -41,8 +41,8 @@ int system_power_off(void)
len = sizeof(system_off_now);
system_off_now[len - 1] = add_xor_checksum(system_off_now, len);
- console_16550_register(PLAT_MARVELL_BOOT_UART_BASE + 0x100,
- PLAT_MARVELL_BOOT_UART_CLK_IN_HZ, 115200, &console);
+ console_16550_register(PLAT_MARVELL_UART_BASE + 0x100,
+ PLAT_MARVELL_UART_CLK_IN_HZ, 115200, &console);
/* Send system_off_now to console */
for (i = 0; i < len; i++) {
--- a/plat/marvell/armada/a8k/common/include/platform_def.h
+++ b/plat/marvell/armada/a8k/common/include/platform_def.h
@@ -168,11 +168,8 @@
/*
* PL011 related constants
*/
-#define PLAT_MARVELL_BOOT_UART_BASE (MVEBU_REGS_BASE + 0x512000)
-#define PLAT_MARVELL_BOOT_UART_CLK_IN_HZ 200000000
-
-#define PLAT_MARVELL_CRASH_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
-#define PLAT_MARVELL_CRASH_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
+#define PLAT_MARVELL_UART_BASE (MVEBU_REGS_BASE + 0x512000)
+#define PLAT_MARVELL_UART_CLK_IN_HZ 200000000
#define PLAT_MARVELL_BL31_RUN_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
#define PLAT_MARVELL_BL31_RUN_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
--- a/plat/marvell/armada/common/aarch64/marvell_helpers.S
+++ b/plat/marvell/armada/common/aarch64/marvell_helpers.S
@@ -63,8 +63,8 @@ endfunc plat_marvell_calc_core_pos
* ---------------------------------------------
*/
func plat_crash_console_init
- mov_imm x0, PLAT_MARVELL_CRASH_UART_BASE
- mov_imm x1, PLAT_MARVELL_CRASH_UART_CLK_IN_HZ
+ mov_imm x0, PLAT_MARVELL_UART_BASE
+ mov_imm x1, PLAT_MARVELL_UART_CLK_IN_HZ
mov_imm x2, MARVELL_CONSOLE_BAUDRATE
#ifdef PLAT_a3700
b console_a3700_core_init
@@ -81,7 +81,7 @@ endfunc plat_crash_console_init
* ---------------------------------------------
*/
func plat_crash_console_putc
- mov_imm x1, PLAT_MARVELL_CRASH_UART_BASE
+ mov_imm x1, PLAT_MARVELL_UART_BASE
#ifdef PLAT_a3700
b console_a3700_core_putc
@@ -99,7 +99,7 @@ endfunc plat_crash_console_putc
* ---------------------------------------------
*/
func plat_crash_console_flush
- mov_imm x0, PLAT_MARVELL_CRASH_UART_BASE
+ mov_imm x0, PLAT_MARVELL_UART_BASE
#ifdef PLAT_a3700
b console_a3700_core_flush
#else
--- a/plat/marvell/armada/common/marvell_console.c
+++ b/plat/marvell/armada/common/marvell_console.c
@@ -31,8 +31,8 @@ static console_t marvell_runtime_console
void marvell_console_boot_init(void)
{
int rc =
- console_marvell_register(PLAT_MARVELL_BOOT_UART_BASE,
- PLAT_MARVELL_BOOT_UART_CLK_IN_HZ,
+ console_marvell_register(PLAT_MARVELL_UART_BASE,
+ PLAT_MARVELL_UART_CLK_IN_HZ,
MARVELL_CONSOLE_BAUDRATE,
&marvell_boot_console);
if (rc == 0) {
@@ -58,8 +58,8 @@ void marvell_console_boot_end(void)
void marvell_console_runtime_init(void)
{
int rc =
- console_marvell_register(PLAT_MARVELL_BOOT_UART_BASE,
- PLAT_MARVELL_BOOT_UART_CLK_IN_HZ,
+ console_marvell_register(PLAT_MARVELL_UART_BASE,
+ PLAT_MARVELL_UART_CLK_IN_HZ,
MARVELL_CONSOLE_BAUDRATE,
&marvell_runtime_console);
if (rc == 0)

View File

@@ -0,0 +1,177 @@
From 5a91c439cbeb1f64b8b9830de91efad5113d3c89 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
Date: Fri, 14 May 2021 15:52:11 +0200
Subject: [PATCH] fix(plat/marvell/a3720/uart): fix UART parent clock rate
determination
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The UART code for the A3K platform assumes that UART parent clock rate
is always 25 MHz. This is incorrect, because the xtal clock can also run
at 40 MHz (this is board specific).
The frequency of the xtal clock is determined by a value on a strapping
pin during SOC reset. The code to determine this frequency is already in
A3K's comphy driver.
Move the get_ref_clk() function from the comphy driver to a separate
file and use it for UART parent clock rate determination.
Signed-off-by: Pali Rohár <pali@kernel.org>
Change-Id: I8bb18a2d020ef18fe65aa06ffa4ab205c71be92e
---
drivers/marvell/comphy/phy-comphy-3700.c | 24 +------------
.../marvell/armada/a3k/common/plat_marvell.h | 2 ++
.../marvell/armada/a3k/common/a3700_common.mk | 1 +
.../armada/a3k/common/aarch64/a3700_clock.S | 35 +++++++++++++++++++
.../armada/a3k/common/include/platform_def.h | 1 -
.../armada/common/aarch64/marvell_helpers.S | 10 +++++-
plat/marvell/armada/common/marvell_console.c | 1 +
7 files changed, 49 insertions(+), 25 deletions(-)
create mode 100644 plat/marvell/armada/a3k/common/aarch64/a3700_clock.S
--- a/drivers/marvell/comphy/phy-comphy-3700.c
+++ b/drivers/marvell/comphy/phy-comphy-3700.c
@@ -14,6 +14,7 @@
#include <mvebu.h>
#include <mvebu_def.h>
+#include <plat_marvell.h>
#include "phy-comphy-3700.h"
#include "phy-comphy-common.h"
@@ -29,15 +30,6 @@
#define USB3_GBE1_PHY (MVEBU_REGS_BASE + 0x5C000)
#define COMPHY_SD_ADDR (MVEBU_REGS_BASE + 0x1F000)
-/*
- * Below address in used only for reading, therefore no problem with concurrent
- * Linux access.
- */
-#define MVEBU_TEST_PIN_LATCH_N (MVEBU_NB_GPIO_REG_BASE + 0x8)
- #define MVEBU_XTAL_MODE_MASK BIT(9)
- #define MVEBU_XTAL_MODE_OFFS 9
- #define MVEBU_XTAL_CLOCK_25MHZ 0x0
-
struct sgmii_phy_init_data_fix {
uint16_t addr;
uint16_t value;
@@ -125,20 +117,6 @@ static uint16_t sgmii_phy_init[512] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 /*1F8 */
};
-/* returns reference clock in MHz (25 or 40) */
-static uint32_t get_ref_clk(void)
-{
- uint32_t val;
-
- val = (mmio_read_32(MVEBU_TEST_PIN_LATCH_N) & MVEBU_XTAL_MODE_MASK) >>
- MVEBU_XTAL_MODE_OFFS;
-
- if (val == MVEBU_XTAL_CLOCK_25MHZ)
- return 25;
- else
- return 40;
-}
-
/* PHY selector configures with corresponding modes */
static void mvebu_a3700_comphy_set_phy_selector(uint8_t comphy_index,
uint32_t comphy_mode)
--- a/include/plat/marvell/armada/a3k/common/plat_marvell.h
+++ b/include/plat/marvell/armada/a3k/common/plat_marvell.h
@@ -100,4 +100,6 @@ void plat_marvell_interconnect_enter_coh
const mmap_region_t *plat_marvell_get_mmap(void);
+uint32_t get_ref_clk(void);
+
#endif /* PLAT_MARVELL_H */
--- a/plat/marvell/armada/a3k/common/a3700_common.mk
+++ b/plat/marvell/armada/a3k/common/a3700_common.mk
@@ -38,6 +38,7 @@ PLAT_INCLUDES := -I$(PLAT_FAMILY_BASE)/
-I$/drivers/arm/gic/common/
PLAT_BL_COMMON_SOURCES := $(PLAT_COMMON_BASE)/aarch64/a3700_common.c \
+ $(PLAT_COMMON_BASE)/aarch64/a3700_clock.S \
$(MARVELL_DRV_BASE)/uart/a3700_console.S
BL1_SOURCES += $(PLAT_COMMON_BASE)/aarch64/plat_helpers.S \
--- /dev/null
+++ b/plat/marvell/armada/a3k/common/aarch64/a3700_clock.S
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2018 Marvell International Ltd.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ * https://spdx.org/licenses
+ */
+
+#include <asm_macros.S>
+#include <platform_def.h>
+
+/*
+ * Below address in used only for reading, therefore no problem with concurrent
+ * Linux access.
+ */
+#define MVEBU_TEST_PIN_LATCH_N (MVEBU_NB_GPIO_REG_BASE + 0x8)
+ #define MVEBU_XTAL_MODE_MASK BIT(9)
+
+ /* -----------------------------------------------------
+ * uint32_t get_ref_clk (void);
+ *
+ * returns reference clock in MHz (25 or 40)
+ * -----------------------------------------------------
+ */
+.globl get_ref_clk
+func get_ref_clk
+ mov_imm x0, MVEBU_TEST_PIN_LATCH_N
+ ldr w0, [x0]
+ tst w0, #MVEBU_XTAL_MODE_MASK
+ bne 40
+ mov w0, #25
+ ret
+40:
+ mov w0, #40
+ ret
+endfunc get_ref_clk
--- a/plat/marvell/armada/a3k/common/include/platform_def.h
+++ b/plat/marvell/armada/a3k/common/include/platform_def.h
@@ -164,7 +164,6 @@
* PL011 related constants
*/
#define PLAT_MARVELL_UART_BASE (MVEBU_REGS_BASE + 0x12000)
-#define PLAT_MARVELL_UART_CLK_IN_HZ 25000000
#define PLAT_MARVELL_BL31_RUN_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
#define PLAT_MARVELL_BL31_RUN_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
--- a/plat/marvell/armada/common/aarch64/marvell_helpers.S
+++ b/plat/marvell/armada/common/aarch64/marvell_helpers.S
@@ -63,8 +63,16 @@ endfunc plat_marvell_calc_core_pos
* ---------------------------------------------
*/
func plat_crash_console_init
- mov_imm x0, PLAT_MARVELL_UART_BASE
+#ifdef PLAT_a3700
+ mov x1, x30
+ bl get_ref_clk
+ mov x30, x1
+ mov_imm x1, 1000000
+ mul x1, x0, x1
+#else
mov_imm x1, PLAT_MARVELL_UART_CLK_IN_HZ
+#endif
+ mov_imm x0, PLAT_MARVELL_UART_BASE
mov_imm x2, MARVELL_CONSOLE_BAUDRATE
#ifdef PLAT_a3700
b console_a3700_core_init
--- a/plat/marvell/armada/common/marvell_console.c
+++ b/plat/marvell/armada/common/marvell_console.c
@@ -14,6 +14,7 @@
#ifdef PLAT_a3700
#include <drivers/marvell/uart/a3700_console.h>
+#define PLAT_MARVELL_UART_CLK_IN_HZ (get_ref_clk() * 1000000)
#define console_marvell_register console_a3700_register
#else
#include <drivers/ti/uart/uart_16550.h>

View File

@@ -0,0 +1,20 @@
--- a/tools/fiptool/Makefile
+++ b/tools/fiptool/Makefile
@@ -20,7 +20,7 @@ ifeq (${DEBUG},1)
else
HOSTCCFLAGS += -O2
endif
-LDLIBS := -lcrypto
+LDLIBS := -L${OPENSSL_DIR}/lib -lcrypto
ifeq (${V},0)
Q := @
@@ -28,7 +28,7 @@ else
Q :=
endif
-INCLUDE_PATHS := -I../../include/tools_share
+INCLUDE_PATHS := -I../../include/tools_share -I${OPENSSL_DIR}/include
HOSTCC ?= gcc

View File

@@ -0,0 +1,61 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2021 ImmortalWrt.org
include $(TOPDIR)/rules.mk
PKG_NAME:=arm-trusted-firmware-rockchip-vendor
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://github.com/rockchip-linux/rkbin.git
PKG_SOURCE_DATE:=2021-06-01
PKG_SOURCE_VERSION:=7d631e0d5b2d373b54d4533580d08fb9bd2eaad4
PKG_MIRROR_HASH:=3a4794d1d00890401b032a573fca3121935ea036468a67228f203d68b007d916
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
MAKE_PATH:=$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/arm-trusted-firmware-rockchip-vendor
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:=ARM Trusted Firmware for Rockchip
endef
define Package/arm-trusted-firmware-rk3328
$(Package/arm-trusted-firmware-rockchip-vendor)
DEPENDS:=@TARGET_rockchip_armv8
VARIANT:=rk3328
endef
define Package/arm-trusted-firmware-rk3399
$(Package/arm-trusted-firmware-rockchip-vendor)
DEPENDS:=@TARGET_rockchip_armv8
VARIANT:=rk3399
endef
define Build/Configure
$(SED) 's,$$$$(PKG_BUILD_DIR),$(PKG_BUILD_DIR),g' $(PKG_BUILD_DIR)/trust.ini
$(SED) 's,$$$$(VARIANT),$(BUILD_VARIANT),g' $(PKG_BUILD_DIR)/trust.ini
$(call Build/Configure/Default)
endef
define Build/Compile
$(CURDIR)/pack-firmware.sh build $(BUILD_VARIANT) '$(PKG_BUILD_DIR)'
endef
define Build/InstallDev
$(CURDIR)/pack-firmware.sh install $(BUILD_VARIANT) '$(PKG_BUILD_DIR)' '$(STAGING_DIR_IMAGE)'
endef
define Package/arm-trusted-firmware-rk3328/install
endef
define Package/arm-trusted-firmware-rk3399/install
endef
$(eval $(call BuildPackage,arm-trusted-firmware-rk3328))
$(eval $(call BuildPackage,arm-trusted-firmware-rk3399))

View File

@@ -0,0 +1,41 @@
#!/bin/bash
# Copyright (C) 2021 ImmortalWrt.org
ACTION="$1"
VARIANT="$2"
PKG_BUILD_DIR="$3"
STAGING_DIR_IMAGE="$4"
case "$VARIANT" in
"rk3328")
ATF="rk33/rk322xh_bl31_v1.46.elf"
DDR="rk33/rk3328_ddr_333MHz_v1.17.bin"
LOADER="rk33/rk322xh_miniloader_v2.50.bin"
;;
"rk3399")
ATF="rk33/rk3399_bl31_v1.35.elf"
DDR="rk33/rk3399_ddr_800MHz_v1.25.bin"
LOADER="rk33/rk3399_miniloader_v1.26.bin"
;;
*)
echo -e "Not compatible with your platform: $VARIANT."
exit 1
;;
esac
set -x
if [ "$ACTION" == "build" ]; then
mkimage -n "$VARIANT" -T "rksd" -d "$PKG_BUILD_DIR/bin/$DDR" "$PKG_BUILD_DIR/$VARIANT-idbloader.bin"
cat "$PKG_BUILD_DIR/bin/$LOADER" >> "$PKG_BUILD_DIR/$VARIANT-idbloader.bin"
"$PKG_BUILD_DIR/tools/trust_merger" --replace "bl31.elf" "$PKG_BUILD_DIR/bin/$ATF" "$PKG_BUILD_DIR/trust.ini"
elif [ "$ACTION" == "install" ]; then
mkdir -p "$STAGING_DIR_IMAGE"
cp -fp "$PKG_BUILD_DIR/bin/$ATF" "$STAGING_DIR_IMAGE"/
cp -fp "$PKG_BUILD_DIR/tools/loaderimage" "$STAGING_DIR_IMAGE"/
cp -fp "$PKG_BUILD_DIR/$VARIANT-idbloader.bin" "$STAGING_DIR_IMAGE"/
cp -fp "$PKG_BUILD_DIR/$VARIANT-trust.bin" "$STAGING_DIR_IMAGE"/
else
echo -e "Unknown operation: $ACTION."
exit 1
fi
set +x

View File

@@ -0,0 +1,15 @@
[VERSION]
MAJOR=1
MINOR=0
[BL30_OPTION]
SEC=0
[BL31_OPTION]
SEC=1
PATH=bl31.elf
ADDR=0x10000
[BL32_OPTION]
SEC=0
[BL33_OPTION]
SEC=0
[OUTPUT]
PATH=$(PKG_BUILD_DIR)/$(VARIANT)-trust.bin

View File

@@ -0,0 +1,49 @@
#
# Copyright (C) 2020 Tobias Maedel <openwrt@tbspace.de>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=arm-trusted-firmware-rockchip
PKG_VERSION:=2.3
PKG_RELEASE:=1
PKG_SOURCE:=atf-v$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/atf-builds/atf/releases/download/v$(PKG_VERSION)/atf-v$(PKG_VERSION).tar.gz?
PKG_HASH:=bf352298743aed594cf2958dd588e06ab6713fc514bb6f809bf55a85a87134c1
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=license.md
PKG_MAINTAINER:=Tobias Maedel <openwrt@tbspace.de>
MAKE_PATH:=$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/arm-trusted-firmware-rockchip
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:=ARM Trusted Firmware for Rockchip
DEPENDS:=@TARGET_rockchip_armv8
endef
define Build/Prepare
$(TAR) -C $(PKG_BUILD_DIR) -xf $(DL_DIR)/$(PKG_SOURCE)
endef
define Build/Compile
endef
define Build/InstallDev
$(INSTALL_DIR) -p $(STAGING_DIR_IMAGE)
$(CP) $(PKG_BUILD_DIR)/rk*.elf $(STAGING_DIR_IMAGE)/
endef
define Package/arm-trusted-firmware-rockchip/install
endef
$(eval $(call BuildPackage,arm-trusted-firmware-rockchip))

View File

@@ -12,40 +12,52 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://github.com/ARM-software/arm-trusted-firmware
PKG_SOURCE_DATE:=2018-10-02
PKG_SOURCE_VERSION:=dbc8d9496ead9ecdd7c2a276b542a4fbbbf64027
PKG_MIRROR_HASH:=c81521a27b86f606e927b4e346286540b862828c8d49292eae1f5c6adfc24001
PKG_SOURCE_DATE:=2020-11-17
PKG_SOURCE_VERSION:=e2c509a39c6cc4dda8734e6509cdbe6e3603cdfc
PKG_MIRROR_HASH:=b212d369a5286ebbf6a5616486efa05fa54d4294fd6e9ba2e54fdfae9eda918d
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=license.md
PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
include $(INCLUDE_DIR)/trusted-firmware-a.mk
include $(INCLUDE_DIR)/package.mk
define Package/arm-trusted-firmware-sunxi
define Package/arm-trusted-firmware-sunxi/Default
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:=ARM Trusted Firmware for Allwinner
DEPENDS:=@TARGET_sunxi_cortexa53
endef
define Package/arm-trusted-firmware-sunxi-a64
$(call Package/arm-trusted-firmware-sunxi/Default)
VARIANT:=sun50i_a64
endef
define Package/arm-trusted-firmware-sunxi-h6
$(call Package/arm-trusted-firmware-sunxi/Default)
VARIANT:=sun50i_h6
endef
export GCC_HONOUR_COPTS=s
MAKE_VARS = \
CROSS_COMPILE="$(TARGET_CROSS)"
MAKE_FLAGS += \
PLAT=sun50i_a64 \
PLAT=$(BUILD_VARIANT) \
bl31
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(CP) $(PKG_BUILD_DIR)/build/sun50i_a64/release/bl31.bin $(STAGING_DIR_IMAGE)/bl31.bin
$(CP) $(PKG_BUILD_DIR)/build/$(BUILD_VARIANT)/release/bl31.bin $(STAGING_DIR_IMAGE)/bl31_$(BUILD_VARIANT).bin
endef
define Package/arm-trusted-firmware-sunxi/install
endef
$(eval $(call BuildPackage,arm-trusted-firmware-sunxi))
$(eval $(call BuildPackage,arm-trusted-firmware-sunxi-a64))
$(eval $(call BuildPackage,arm-trusted-firmware-sunxi-h6))

View File

@@ -0,0 +1,57 @@
#
# Copyright 2021 Daniel Golle
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=arm-trusted-firmware-tools
PKG_VERSION:=2.4
PKG_RELEASE:=1
PKG_HASH:=bf3eb3617a74cddd7fb0e0eacbfe38c3258ee07d4c8ed730deef7a175cc3d55b
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_HOST_ONLY:=1
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/trusted-firmware-a-$(PKG_VERSION)
include $(INCLUDE_DIR)/trusted-firmware-a.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
define Package/arm-trusted-firmware-tools
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:=ARM Trusted Firmware tools
URL:=https://www.trustedfirmware.org
BUILDONLY:=1
endef
define Host/Compile
$(MAKE) -C \
$(HOST_BUILD_DIR)/tools/fiptool \
CPPFLAGS="$(HOST_CFLAGS)" \
LDFLAGS="$(HOST_LDFLAGS)"
$(MAKE) -C \
$(HOST_BUILD_DIR)/tools/sptool \
CPPFLAGS="$(HOST_CFLAGS)" \
LDFLAGS="$(HOST_LDFLAGS)"
endef
define Host/Install
$(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
$(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/fiptool/fiptool $(STAGING_DIR_HOST)/bin/
$(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/sptool/sptool $(STAGING_DIR_HOST)/bin/
$(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/sptool/sp_mk_generator.py $(STAGING_DIR_HOST)/bin/
endef
define Host/Clean
rm -f $(STAGING_DIR_HOST)/bin/fiptool
rm -f $(STAGING_DIR_HOST)/bin/sptool
rm -f $(STAGING_DIR_HOST)/bin/sp_mk_generator.py
endef
$(eval $(call BuildPackage,arm-trusted-firmware-tools))
$(eval $(call HostBuild))

View File

@@ -0,0 +1,11 @@
--- a/tools/fiptool/Makefile
+++ b/tools/fiptool/Makefile
@@ -38,7 +38,7 @@
${PROJECT}: ${OBJECTS} Makefile
@echo " HOSTLD $@"
- ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS}
+ ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS} $(LDFLAGS)
@${ECHO_BLANK_LINE}
@echo "Built $@ successfully"
@${ECHO_BLANK_LINE}

View File

@@ -9,14 +9,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=at91bootstrap
PKG_VERSION:=v3.8.12
PKG_RELEASE:=
PKG_VERSION:=v3.9.3
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/linux4sam/at91bootstrap.git
PKG_SOURCE_VERSION:=28e15d07e9f24efb04b87bb0baa211a0c5640ef1
PKG_MIRROR_HASH:=06753d673756edc9753932db00f4e5b8c1f9fa7708337c4d6ce280573efb86b4
PKG_SOURCE_VERSION:=d96833a4b6680b237708eb4dc9f10708b9e709d8
PKG_BUILD_DIR = \
$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
include at91bootstrap.mk
include $(INCLUDE_DIR)/package.mk
@@ -30,112 +31,154 @@ endef
define AT91Bootstrap/at91sam9x5eknf_uboot
NAME:=AT91Bootstrap for AT91SAM9X5-EK board (NandFlash)
BUILD_SUBTARGET:=sam9x
BUILD_DEVICES:=at91sam9x25ek at91sam9x35ek
BUILD_DEVICES:=atmel_at91sam9x25ek atmel_at91sam9x35ek
endef
define AT91Bootstrap/at91sam9x5eksd_uboot
NAME:=AT91Bootstrap for AT91SAM9X5-EK board (SDcard)
BUILD_SUBTARGET:=sam9x
BUILD_DEVICES:=at91sam9x25ek at91sam9x35ek
BUILD_DEVICES:=atmel_at91sam9x25ek atmel_at91sam9x35ek
endef
define AT91Bootstrap/sam9x60eknf_uboot
NAME:=AT91Bootstrap for SAM9X60-EK board (NandFlash)
BUILD_SUBTARGET:=sam9x
BUILD_DEVICES:=microchip_sam9x60ek
endef
define AT91Bootstrap/sam9x60eksd_uboot
NAME:=AT91Bootstrap for SAM9X60-EK board (SDcard)
BUILD_SUBTARGET:=sam9x
BUILD_DEVICES:=microchip_sam9x60ek
endef
define AT91Bootstrap/sama5d2_icpdf_qspi_uboot
TITLE:=AT91Bootstrap for SAMA5D2 ICP board (QSPI Flash)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=microchip_sama5d2-icp
endef
define AT91Bootstrap/sama5d2_icpsd_uboot
TITLE:=AT91Bootstrap for SAMA5D2 ICP board (SDcard)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=microchip_sama5d2-icp
endef
define AT91Bootstrap/sama5d2_xplaineddf_uboot
TITLE:=AT91Bootstrap for SAMA5D2 Xplained board (SPI Flash)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d2_xplained
BUILD_DEVICES:=microchip_sama5d2-xplained
endef
define AT91Bootstrap/sama5d2_xplaineddf_qspi_uboot
TITLE:=AT91Bootstrap for SAMA5D2 Xplained board (QSPI Flash)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d2_xplained
BUILD_DEVICES:=microchip_sama5d2-xplained
endef
define AT91Bootstrap/sama5d2_xplainedsd_uboot
TITLE:=AT91Bootstrap for SAMA5D2 Xplained board (SDcard/EMMC)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d2_xplained
BUILD_DEVICES:=microchip_sama5d2-xplained
endef
define AT91Bootstrap/sama5d3_xplainednf_uboot
TITLE:=AT91Bootstrap for SAMA5D3 Xplained board (Nand Flash)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d3_xplained
BUILD_DEVICES:=microchip_sama5d3-xplained
endef
define AT91Bootstrap/sama5d3_xplainedsd_uboot
TITLE:=AT91Bootstrap for SAMA5D3 Xplained board (SDcard)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d3_xplained
BUILD_DEVICES:=microchip_sama5d3-xplained
endef
define AT91Bootstrap/sama5d4_xplainednf_uboot_secure
TITLE:=AT91Bootstrap for SAMA5D4 Xplained board (Nand Flash)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d4_xplained
BUILD_DEVICES:=microchip_sama5d4-xplained
endef
define AT91Bootstrap/sama5d4_xplaineddf_uboot_secure
TITLE:=AT91Bootstrap for SAMA5D4 Xplained board (SPI Flash)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d4_xplained
BUILD_DEVICES:=microchip_sama5d4-xplained
endef
define AT91Bootstrap/sama5d4_xplainedsd_uboot_secure
TITLE:=AT91Bootstrap for SAMA5D4 Xplained board (SDcard)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d4_xplained
BUILD_DEVICES:=microchip_sama5d4-xplained
endef
define AT91Bootstrap/sama5d27_som1_eksd_uboot
TITLE:=AT91Bootstrap for SAMA5D27 SOM1 Ek (SDcard0)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d27_som1_ek
BUILD_DEVICES:=microchip_sama5d27-som1-ek
endef
define AT91Bootstrap/sama5d27_som1_eksd1_uboot
TITLE:=AT91Bootstrap for SAMA5D27 SOM1 Ek (SDcard1)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d27_som1_ek
BUILD_DEVICES:=microchip_sama5d27-som1-ek
endef
define AT91Bootstrap/sama5d27_som1_ekqspi_uboot
TITLE:=AT91Bootstrap for SAMA5D27 SOM1 Ek (QSPI Flash)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d27_som1_ek
BUILD_DEVICES:=microchip_sama5d27-som1-ek
endef
define AT91Bootstrap/sama5d27_wlsom1_eksd_uboot
TITLE:=AT91Bootstrap for SAMA5D27 WLSOM1 Ek (SDcard0)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=microchip_sama5d27-wlsom1-ek
endef
define AT91Bootstrap/sama5d27_wlsom1_ekdf_qspi_uboot
TITLE:=AT91Bootstrap for SAMA5D27 WLSOM1 Ek (QSPI Flash)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=microchip_sama5d27-wlsom1-ek
endef
define AT91Bootstrap/sama5d2_ptc_eknf_uboot
TITLE:=AT91Bootstrap for SAMA5D2 PTC EK (Nand Flash)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d2_ptc_ek
BUILD_DEVICES:=microchip_sama5d2-ptc-ek
endef
define AT91Bootstrap/sama5d2_ptc_eksd_uboot
TITLE:=AT91Bootstrap for SAMA5D2 PTC EK (SDCard)
BUILD_SUBTARGET:=sama5
BUILD_DEVICES:=at91-sama5d2_ptc_ek
BUILD_DEVICES:=microchip_sama5d2-ptc-ek
endef
AT91BOOTSTRAP_TARGETS := \
at91sam9x5eknf_uboot \
at91sam9x5eksd_uboot \
sama5d2_xplaineddf_uboot \
sama5d2_xplaineddf_qspi_uboot \
sama5d2_xplainedsd_uboot \
sama5d3_xplainednf_uboot \
sama5d3_xplainedsd_uboot \
sama5d4_xplainednf_uboot_secure \
sama5d4_xplaineddf_uboot_secure \
sama5d4_xplainedsd_uboot_secure \
sama5d27_som1_eksd1_uboot \
sama5d27_som1_ekqspi_uboot \
sama5d2_ptc_eknf_uboot \
sama5d2_ptc_eksd_uboot
at91sam9x5eknf_uboot \
at91sam9x5eksd_uboot \
sam9x60eknf_uboot \
sam9x60eksd_uboot \
sama5d2_icpdf_qspi_uboot \
sama5d2_icpsd_uboot \
sama5d2_xplaineddf_uboot \
sama5d2_xplaineddf_qspi_uboot \
sama5d2_xplainedsd_uboot \
sama5d3_xplainednf_uboot \
sama5d3_xplainedsd_uboot \
sama5d4_xplainednf_uboot_secure \
sama5d4_xplaineddf_uboot_secure \
sama5d4_xplainedsd_uboot_secure \
sama5d27_som1_eksd1_uboot \
sama5d27_som1_ekqspi_uboot \
sama5d27_wlsom1_eksd_uboot \
sama5d27_wlsom1_ekdf_qspi_uboot \
sama5d2_ptc_eknf_uboot \
sama5d2_ptc_eksd_uboot
define Build/Compile
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
CROSS_COMPILE=$(TARGET_CROSS)
CROSS_COMPILE=$(TARGET_CROSS)
endef
$(eval $(call BuildPackage/AT91Bootstrap))

View File

@@ -5,7 +5,7 @@ PKG_FLAGS:=nonshared
export GCC_HONOUR_COPTS=s
define Package/at91bootstrap/install/default
$(CP) -avL $(PKG_BUILD_DIR)/binaries/at91bootstrap.bin $(1)/
$(CP) -avL $(PKG_BUILD_DIR)/binaries/at91bootstrap.bin $(1)/
endef
Package/at91bootstrap/install = $(Package/at91bootstrap/install/default)
@@ -34,7 +34,7 @@ define Build/AT91Bootstrap/Target
$(eval $(call AT91Bootstrap/Default,$(1)))
$(eval $(call AT91Bootstrap/$(1),$(1)))
define Package/at91bootstrap-$(1)
define Package/at91bootstrap-$(1)
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:= .$(NAME)
@@ -45,9 +45,9 @@ define Build/AT91Bootstrap/Target
DEPENDS += @$(TARGET_DEP)
ifneq ($(BUILD_DEVICES),)
DEFAULT := y if ($(TARGET_DEP)_Default \
$(patsubst %,|| $(TARGET_DEP)_DEVICE_%,$(BUILD_DEVICES)) \
$(patsubst %,|| $(patsubst TARGET_%,TARGET_DEVICE_%, \
$(TARGET_DEP))_DEVICE_%,$(BUILD_DEVICES)))
$(patsubst %,|| $(TARGET_DEP)_DEVICE_%,$(BUILD_DEVICES)) \
$(patsubst %,|| $(patsubst TARGET_%,TARGET_DEVICE_%, \
$(TARGET_DEP))_DEVICE_%,$(BUILD_DEVICES)))
endif
endif
$(if $(DEFAULT),DEFAULT:=$(DEFAULT))
@@ -61,28 +61,28 @@ endef
define Build/Configure/AT91Bootstrap
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
$(AT91BOOTSTRAP_CONFIG)_defconfig
$(AT91BOOTSTRAP_CONFIG)_defconfig
endef
define Build/Compile/AT91Bootstrap
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
CROSS_COMPILE=$(TARGET_CROSS) \
$(AT91BOOTSTRAP_MAKE_FLAGS)
CROSS_COMPILE=$(TARGET_CROSS) \
$(AT91BOOTSTRAP_MAKE_FLAGS)
endef
define BuildPackage/AT91Bootstrap/Defaults
Build/Configure/Default = $$$$(Build/Configure/AT91Bootstrap)
Build/Compile/Default = $$$$(Build/Compile/AT91Bootstrap)
Build/Configure/Default = $$$$(Build/Configure/AT91Bootstrap)
Build/Compile/Default = $$$$(Build/Compile/AT91Bootstrap)
endef
define BuildPackage/AT91Bootstrap
$(eval $(call BuildPackage/AT91Bootstrap/Defaults))
$(foreach type,$(if $(DUMP),$(AT91BOOTSTRAP_TARGETS),$(BUILD_VARIANT)), \
$(eval $(call Build/AT91Bootstrap/Target,$(type)))
)
$(eval $(call Build/DefaultTargets))
$(foreach type,$(if $(DUMP),$(AT91BOOTSTRAP_TARGETS),$(BUILD_VARIANT)), \
$(call BuildPackage,at91bootstrap-$(type))
)
$(eval $(call BuildPackage/AT91Bootstrap/Defaults))
$(foreach type,$(if $(DUMP),$(AT91BOOTSTRAP_TARGETS),$(BUILD_VARIANT)), \
$(eval $(call Build/AT91Bootstrap/Target,$(type)))
)
$(eval $(call Build/DefaultTargets))
$(foreach type,$(if $(DUMP),$(AT91BOOTSTRAP_TARGETS),$(BUILD_VARIANT)), \
$(call BuildPackage,at91bootstrap-$(type))
)
endef

View File

@@ -0,0 +1,38 @@
From 59c8963d8e6a08222616d1b384e1009ba05e6b82 Mon Sep 17 00:00:00 2001
From: Chris Elledge <celledge@digitallumensinc.com>
Date: Tue, 8 Jun 2021 14:01:14 -0400
Subject: Makefile: Remove -nostartfiles from LDFLAGS
Binutils linker ld does not support the flag -nostartfiles.
This is interpreted as "-n -o startfiles" which fortunately has no impact
on the build process. Removing -nostartfiles has no impact on the build.
Binutils 2.36 and later ld has improved flag parsing and throws an error if
-nostartfiles is passed as an argument. Removing the flag fixes the problem.
Details on the Binutils ML:
https://sourceware.org/pipermail/binutils/2021-June/116826.html
In our ld command line there are explicit
-n -o $(BINDIR)/$(BOOT_NAME).elf options,
hence removing -nostartfiles will not alter the build.
Signed-off-by: Chris Elledge <celledge@digitallumensinc.com>
Reviewed-by: Aubin Constans <aubin.constans@microchip.com>
[eugen.hristev@microchip.com: ported to at91bootstrap4]
Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/Makefile
+++ b/Makefile
@@ -275,7 +275,7 @@ endif
# --cref: add cross reference to map file
# -lc : tells the linker to tie in newlib
# -lgcc : tells the linker to tie in newlib
-LDFLAGS=-nostartfiles -Map=$(BINDIR)/$(BOOT_NAME).map --cref -static
+LDFLAGS=-Map=$(BINDIR)/$(BOOT_NAME).map --cref -static
LDFLAGS+=-T $(link_script) $(GC_SECTIONS) -Ttext $(LINK_ADDR)
ifneq ($(DATA_SECTION_ADDR),)

View File

@@ -0,0 +1,41 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2021 ImmortalWrt.org
include $(TOPDIR)/rules.mk
PKG_NAME:=aw-el2-barebone
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://github.com/Icenowy/aw-el2-barebone
PKG_SOURCE_DATE:=2020-03-30
PKG_SOURCE_VERSION:=b40bcb75cfa0acfaea84a5234fb225240b32b749
PKG_MIRROR_HASH:=aeb70287e0b35736f806ed20bad84d6a6cae977f70cad63ce8139cdfcc181108
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
include $(INCLUDE_DIR)/package.mk
define Package/aw-el2-barebone
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:=Allwinner SoCs' 64-bit EL2 barebone
DEPENDS:=@TARGET_sunxi_cortexa53
endef
MAKE_VARS = \
CROSS_COMPILE="$(TARGET_CROSS)"
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(CP) $(PKG_BUILD_DIR)/el2-bb.bin $(STAGING_DIR_IMAGE)/hyp.bin
endef
define Package/aw-el2-barebone/install
endef
$(eval $(call BuildPackage,aw-el2-barebone))

View File

@@ -1,6 +1,6 @@
--- imx-bootlets-src-10.05.02.orig/Makefile 2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-src-10.05.02/Makefile 2012-10-24 21:41:44.000000000 +0200
@@ -32,10 +32,11 @@
--- a/Makefile
+++ b/Makefile
@@ -32,10 +32,11 @@ ifeq "$(DFT_IMAGE)" "$(wildcard $(DFT_IM
sed -i 's,[^ *]image.*;,\timage="$(DFT_UBOOT)";,' uboot.db
elftosb2 -z -c ./uboot.db -o i$(ARCH)_uboot.sb
else

View File

@@ -1,6 +1,6 @@
--- imx-bootlets-10.05.02.orig/linux_prebuilt.db 2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/linux_prebuilt.db 2012-10-24 22:04:37.000000000 +0200
@@ -4,10 +4,10 @@
--- a/linux_prebuilt.db
+++ b/linux_prebuilt.db
@@ -4,10 +4,10 @@ options {
flags = 0x01;
}
sources {

View File

@@ -1,6 +1,5 @@
diff -ruN imx-bootlets-10.05.02.orig/linux_prep/board/imx23_olinuxino_dev.c imx-bootlets-10.05.02/linux_prep/board/imx23_olinuxino_dev.c
--- imx-bootlets-10.05.02.orig/linux_prep/board/imx23_olinuxino_dev.c 1970-01-01 01:00:00.000000000 +0100
+++ imx-bootlets-10.05.02/linux_prep/board/imx23_olinuxino_dev.c 2013-05-19 00:11:40.000000000 +0200
--- /dev/null
+++ b/linux_prep/board/imx23_olinuxino_dev.c
@@ -0,0 +1,54 @@
+/*
+ * Platform specific data for the IMX23_OLINUXINO development board
@@ -56,15 +55,13 @@ diff -ruN imx-bootlets-10.05.02.orig/linux_prep/board/imx23_olinuxino_dev.c imx-
+ * Default command line *
+ ************************************************/
+char cmdline_def[] = "console=ttyAMA0,115200";
diff -ruN imx-bootlets-10.05.02.orig/linux_prep/cmdlines/imx23_olinuxino_dev.txt imx-bootlets-10.05.02/linux_prep/cmdlines/imx23_olinuxino_dev.txt
--- imx-bootlets-10.05.02.orig/linux_prep/cmdlines/imx23_olinuxino_dev.txt 1970-01-01 01:00:00.000000000 +0100
+++ imx-bootlets-10.05.02/linux_prep/cmdlines/imx23_olinuxino_dev.txt 2013-05-19 00:12:56.000000000 +0200
--- /dev/null
+++ b/linux_prep/cmdlines/imx23_olinuxino_dev.txt
@@ -0,0 +1 @@
+noinitrd console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait ssp1=mmc
diff -ruN imx-bootlets-10.05.02.orig/linux_prep/core/setup.c imx-bootlets-10.05.02/linux_prep/core/setup.c
--- imx-bootlets-10.05.02.orig/linux_prep/core/setup.c 2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/linux_prep/core/setup.c 2013-05-19 00:11:40.000000000 +0200
@@ -84,6 +84,8 @@
--- a/linux_prep/core/setup.c
+++ b/linux_prep/core/setup.c
@@ -84,6 +84,8 @@ static void *memcpy(void *s1, const void
#include "../../mach-mx28/includes/registers/regsrtc.h"
#elif defined(STMP378X)
#include "../../mach-mx23/includes/registers/regsrtc.h"
@@ -73,9 +70,8 @@ diff -ruN imx-bootlets-10.05.02.orig/linux_prep/core/setup.c imx-bootlets-10.05.
#endif
#define NAND_SECONDARY_BOOT 0x00000002
diff -ruN imx-bootlets-10.05.02.orig/linux_prep/include/mx23/platform.h imx-bootlets-10.05.02/linux_prep/include/mx23/platform.h
--- imx-bootlets-10.05.02.orig/linux_prep/include/mx23/platform.h 2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/linux_prep/include/mx23/platform.h 2013-05-19 00:11:40.000000000 +0200
--- a/linux_prep/include/mx23/platform.h
+++ b/linux_prep/include/mx23/platform.h
@@ -19,6 +19,10 @@
#if defined (BOARD_STMP378X_DEV)
@@ -87,10 +83,9 @@ diff -ruN imx-bootlets-10.05.02.orig/linux_prep/include/mx23/platform.h imx-boot
#else
#error "Allocate a machine ID for your board"
#endif
diff -ruN imx-bootlets-10.05.02.orig/linux_prep/Makefile imx-bootlets-10.05.02/linux_prep/Makefile
--- imx-bootlets-10.05.02.orig/linux_prep/Makefile 2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/linux_prep/Makefile 2013-05-19 00:11:40.000000000 +0200
@@ -69,6 +69,11 @@
--- a/linux_prep/Makefile
+++ b/linux_prep/Makefile
@@ -69,6 +69,11 @@ ARCH = mx28
HW_OBJS = $(LRADC_OBJS)
CFLAGS += -DMX28 -DBOARD_MX28_EVK
endif
@@ -102,10 +97,9 @@ diff -ruN imx-bootlets-10.05.02.orig/linux_prep/Makefile imx-bootlets-10.05.02/l
# Generic code
CORE_OBJS = entry.o resume.o cmdlines.o setup.o keys.o
diff -ruN imx-bootlets-10.05.02.orig/Makefile imx-bootlets-10.05.02/Makefile
--- imx-bootlets-10.05.02.orig/Makefile 2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/Makefile 2013-05-19 00:15:02.000000000 +0200
@@ -3,9 +3,9 @@
--- a/Makefile
+++ b/Makefile
@@ -3,9 +3,9 @@ MEM_TYPE ?= MEM_DDR1
export MEM_TYPE
DFT_IMAGE=$(DEV_IMAGE)/boot/zImage
@@ -117,7 +111,7 @@ diff -ruN imx-bootlets-10.05.02.orig/Makefile imx-bootlets-10.05.02/Makefile
ifeq ($(BOARD), stmp37xx_dev)
ARCH = 37xx
@@ -16,6 +16,9 @@
@@ -16,6 +16,9 @@ endif
ifeq ($(BOARD), iMX28_EVK)
ARCH = mx28
endif
@@ -127,7 +121,7 @@ diff -ruN imx-bootlets-10.05.02.orig/Makefile imx-bootlets-10.05.02/Makefile
all: build_prep gen_bootstream
@@ -93,6 +96,8 @@
@@ -94,6 +97,8 @@ distclean: clean
clean:
-rm -rf *.sb
rm -f sd_mmc_bootstream.raw
@@ -136,9 +130,8 @@ diff -ruN imx-bootlets-10.05.02.orig/Makefile imx-bootlets-10.05.02/Makefile
$(MAKE) -C linux_prep clean ARCH=$(ARCH)
$(MAKE) -C boot_prep clean ARCH=$(ARCH)
$(MAKE) -C power_prep clean ARCH=$(ARCH)
diff -ruN imx-bootlets-10.05.02.orig/uboot.db imx-bootlets-10.05.02/uboot.db
--- imx-bootlets-10.05.02.orig/uboot.db 2010-05-14 06:56:28.000000000 +0200
+++ imx-bootlets-10.05.02/uboot.db 2013-05-19 00:11:40.000000000 +0200
--- a/uboot.db
+++ b/uboot.db
@@ -3,7 +3,7 @@
sources {
power_prep="./power_prep/power_prep";

View File

@@ -8,14 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=kexec-tools
PKG_VERSION:=2.0.16
PKG_VERSION:=2.0.21
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/kernel/kexec
PKG_HASH:=5b103351ad752c9badd1d65b00eb6de4bce579f944f4df4e3ef3a755ba567010
PKG_FIXUP:=autoreconf
PKG_HASH:=e113142dee891638ad96e0f72cf9277b244477619470b30c41999d312e8e8702
PKG_CONFIG_DEPENDS := CONFIG_KEXEC_ZLIB CONFIG_KEXEC_LZMA
@@ -51,17 +49,6 @@ define Package/kexec/description
The kexec utility allows to load and boot another kernel.
endef
define Package/kdump
$(call Package/kexec-tools/Default)
TITLE:=Kernel crash analysis
DEPENDS:=+kexec @(i386||x86_64||arm) @KERNEL_CRASH_DUMP
endef
define Package/kdump/description
The kdump package allows to automatically boot into a
special kernel for analyzing kernel crashes using kdump.
endef
define Package/kexec/config
source "$(SOURCE)/Config.in"
endef
@@ -108,28 +95,5 @@ define Package/kexec/install
$(LN) ../usr/sbin/kexec $(1)/sbin/kexec
endef
define Package/kdump/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/etc/uci-defaults
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kdump $(PKG_INSTALL_DIR)/usr/sbin/vmcore-dmesg $(1)/usr/sbin
$(INSTALL_BIN) ./files/kdump.init $(1)/etc/init.d/kdump
$(INSTALL_BIN) ./files/kdump.defaults $(1)/etc/uci-defaults/kdump
$(INSTALL_CONF) ./files/kdump.config $(1)/etc/config/kdump
endef
define Package/kdump/prerm
#!/bin/sh
case $$(uname -m) in
i?86|x86_64)
if grep -q " crashkernel=" /boot/grub/grub.cfg; then
mount /boot -o remount,rw
sed -i 's/ crashkernel=[^ ]*//' /boot/grub/grub.cfg
mount /boot -o remount,ro
fi
;;
esac
endef
$(eval $(call BuildPackage,kexec-tools))
$(eval $(call BuildPackage,kexec))
$(eval $(call BuildPackage,kdump))

View File

@@ -1,10 +1,22 @@
#!/bin/sh
# kB disable if mem low than 256MB
memtotal=`grep MemTotal /proc/meminfo | awk '{print $2}'`
if test $memtotal -le 262144; then
exit 0
fi
KZ=128
if test $memtotal -ge 8388608; then
KZ=512
elif test $memtotal -ge 4194304; then
KZ=256
fi
case $(uname -m) in
i?86|x86_64)
if ! grep -q crashkernel /boot/grub/grub.cfg; then
mount /boot -o remount,rw
sed -i 's/linux.*/& crashkernel=32M@32M/' /boot/grub/grub.cfg
sed -i "s/linux.*/& crashkernel=${KZ}M/" /boot/grub/grub.cfg
mount /boot -o remount,ro
fi
;;

View File

@@ -3,6 +3,8 @@
START=41
STOP=90
BOOT_IMAGE=/boot/vmlinuz
extra_command "status" "Print crashkernel status"
verify_kdump() {

View File

@@ -0,0 +1,52 @@
From 9817ec81968a5eec7863902833fb77680544eae4 Mon Sep 17 00:00:00 2001
From: Alexander Egorenkov <egorenar-dev@posteo.net>
Date: Mon, 12 Apr 2021 13:18:05 +0200
Subject: [PATCH 1/1] arm: do not copy magic 4 bytes of appended DTB in zImage
If the passed zImage happens to have a DTB appended, then the magic 4 bytes
of the DTB are copied together with the kernel image. This leads to
failed kexec boots because the decompressor finds the aforementioned
DTB magic and falsely tries to replace the DTB passed in the register r2
with the non-existent appended one.
Signed-off-by: Alexander Egorenkov <egorenar-dev@posteo.net>
Signed-off-by: Simon Horman <horms@verge.net.au>
---
kexec/arch/arm/kexec-zImage-arm.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
--- a/kexec/arch/arm/kexec-zImage-arm.c
+++ b/kexec/arch/arm/kexec-zImage-arm.c
@@ -382,6 +382,7 @@ int zImage_arm_load(int argc, char **arg
unsigned int atag_offset = 0x1000; /* 4k offset from memory start */
unsigned int extra_size = 0x8000; /* TEXT_OFFSET */
const struct zimage_tag *tag;
+ size_t kernel_buf_size;
size_t kernel_mem_size;
const char *command_line;
char *modified_cmdline = NULL;
@@ -538,6 +539,15 @@ int zImage_arm_load(int argc, char **arg
}
/*
+ * Save the length of the compressed kernel image w/o the appended DTB.
+ * This will be required later on when the kernel image contained
+ * in the zImage will be loaded into a kernel memory segment.
+ * And we want to load ONLY the compressed kernel image from the zImage
+ * and discard the appended DTB.
+ */
+ kernel_buf_size = len;
+
+ /*
* Always extend the zImage by four bytes to ensure that an appended
* DTB image always sees an initialised value after _edata.
*/
@@ -759,7 +769,7 @@ int zImage_arm_load(int argc, char **arg
add_segment(info, dtb_buf, dtb_length, dtb_offset, dtb_length);
}
- add_segment(info, buf, len, kernel_base, kernel_mem_size);
+ add_segment(info, buf, kernel_buf_size, kernel_base, kernel_mem_size);
info->entry = (void*)kernel_base;

View File

@@ -25,7 +25,7 @@ define Package/kobs-ng
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Application for writing bootstreams to NAND flash
DEPENDS:=@TARGET_imx6
DEPENDS:=@TARGET_imx
endef
define Package/kobs-ng/description

View File

@@ -0,0 +1,83 @@
#
# Copyright © 2020 David Woodhouse <dwmw2@infradead.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mt7623n-preloader
PKG_VERSION:=2020-03-11
PKG_RELEASE:=b27114e184449a33b5d875fda14198f5e6fee2bb
PKG_MAINTAINER:=David Woodhouse <dwmw2@infradead.org>
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)/$(PKG_NAME)-$(PKG_RELEASE)
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
BPI_PRELOADER_URL:=@GITHUB/BPI-SINOVOIP/BPI-files/$(PKG_RELEASE)/SD/100MB/
BPI_PRELOADER_PREFIX:=bpi-preloader-$(PKG_RELEASE)
define Download/BPI-R2-preloader-2k.img.gz
FILE:=$(BPI_PRELOADER_PREFIX)-BPI-R2-preloader-DDR1600-20191024-2k.img.gz
URL:=$(BPI_PRELOADER_URL)
URL_FILE:=BPI-R2-preloader-DDR1600-20191024-2k.img.gz
HASH:=c731cc166c912c84846e2ed5faf727504e4dec1463754baa6328e9908c84a373
endef
$(eval $(call Download,BPI-R2-preloader-2k.img.gz))
define Download/BPI-R64-preloader-2k.img.gz
FILE:=$(BPI_PRELOADER_PREFIX)-BPI-R64-preloader-2k.img.gz
URL:=$(BPI_PRELOADER_URL)
URL_FILE:=BPI-R64-preloader-2k.img.gz
HASH:=1a4b55da1717190aa4e790ce93850605e9b15aae4c3248bcf8734aac020ab0e4
endef
$(eval $(call Download,BPI-R64-preloader-2k.img.gz))
define Package/mt7623n-preloader
SECTION:=boot
CATEGORY:=Boot Loaders
DEPENDS:=@TARGET_mediatek_mt7623
TITLE:=mt7623n-preloader
DEFAULT:=y if TARGET_mediatek
endef
define Package/mt7623n-preloader/description
Preloader image for mt7623n based boards like Banana Pi R2.
endef
define Package/mt7622-preloader
SECTION:=boot
CATEGORY:=Boot Loaders
DEPENDS:=@TARGET_mediatek_mt7622
TITLE:=mt7622-preloader
DEFAULT:=y if TARGET_mediatek
endef
define Package/mt7622-preloader/description
Preloader image for mt7622 based boards like Banana Pi R64.
endef
define Build/Prepare
rm -rf $(PKG_BUILD_DIR)
mkdir -p $(PKG_BUILD_DIR)
cp $(DL_DIR)/$(BPI_PRELOADER_PREFIX)-BPI-R2-preloader-DDR1600-20191024-2k.img.gz $(PKG_BUILD_DIR)/mt7623n_bpir2-preloader.bin.gz
cp $(DL_DIR)/$(BPI_PRELOADER_PREFIX)-BPI-R64-preloader-2k.img.gz $(PKG_BUILD_DIR)/mt7622_bpir64-preloader.bin.gz
endef
define Build/Compile
true
endef
define Build/InstallDev
mkdir -p $(STAGING_DIR_IMAGE)
gunzip -c $(PKG_BUILD_DIR)/mt7623n_bpir2-preloader.bin.gz > $(STAGING_DIR_IMAGE)/mt7623n_bpir2-preloader.bin
endef
$(eval $(call BuildPackage,mt7623n-preloader))
$(eval $(call BuildPackage,mt7622-preloader))

View File

@@ -1,47 +0,0 @@
#
# Copyright (C) 2010 Gabor Juhos <juhosg@openwrt.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=rbcfg
PKG_RELEASE:=2
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
define Package/rbcfg
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=Boot Loaders
TITLE:=RouterBOOT configuration tool
DEPENDS:=@(TARGET_ar71xx||TARGET_ath79)
endef
define Package/rbcfg/description
This package contains an utility to manipulate RouterBOOT configuration on the
MikroTIK RB-4XX devices.
endef
define Build/Configure
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
CC="$(TARGET_CC)" \
CFLAGS="$(TARGET_CFLAGS) -Wall" \
LDFLAGS="$(TARGET_LDFLAGS)"
endef
define Package/rbcfg/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rbcfg $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,rbcfg))

View File

@@ -1,14 +0,0 @@
CC = gcc
CFLAGS = -Wall
OBJS = main.o cyg_crc32.o
all: rbcfg
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
rbcfg: $(OBJS)
$(CC) -o $@ $(OBJS)
clean:
rm -f rbcfg *.o

View File

@@ -1,109 +0,0 @@
//==========================================================================
//
// crc.h
//
// Interface for the CRC algorithms.
//
//==========================================================================
//####ECOSGPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 2002 Andrew Lunn
//
// eCos is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2 or (at your option) any later version.
//
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
// for more details.
//
// You should have received a copy of the GNU General Public License along
// with eCos; if not, write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
//
// As a special exception, if other files instantiate templates or use macros
// or inline functions from this file, or you compile this file and link it
// with other works to produce a work based on this file, this file does not
// by itself cause the resulting work to be covered by the GNU General Public
// License. However the source code for this file must still be made available
// in accordance with section (3) of the GNU General Public License.
//
// This exception does not invalidate any other reasons why a work based on
// this file might be covered by the GNU General Public License.
//
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
// at http://sources.redhat.com/ecos/ecos-license/
// -------------------------------------------
//####ECOSGPLCOPYRIGHTEND####
//==========================================================================
//#####DESCRIPTIONBEGIN####
//
// Author(s): Andrew Lunn
// Contributors: Andrew Lunn
// Date: 2002-08-06
// Purpose:
// Description:
//
// This code is part of eCos (tm).
//
//####DESCRIPTIONEND####
//
//==========================================================================
#ifndef _SERVICES_CRC_CRC_H_
#define _SERVICES_CRC_CRC_H_
#if 0
#include <cyg/infra/cyg_type.h>
#else
#include <stdint.h>
typedef uint32_t cyg_uint32;
typedef uint16_t cyg_uint16;
#endif
#ifndef __externC
# ifdef __cplusplus
# define __externC extern "C"
# else
# define __externC extern
# endif
#endif
// Compute a CRC, using the POSIX 1003 definition
__externC cyg_uint32
cyg_posix_crc32(unsigned char *s, int len);
// Gary S. Brown's 32 bit CRC
__externC cyg_uint32
cyg_crc32(unsigned char *s, int len);
// Gary S. Brown's 32 bit CRC, but accumulate the result from a
// previous CRC calculation
__externC cyg_uint32
cyg_crc32_accumulate(cyg_uint32 crc, unsigned char *s, int len);
// Ethernet FCS Algorithm
__externC cyg_uint32
cyg_ether_crc32(unsigned char *s, int len);
// Ethernet FCS algorithm, but accumulate the result from a previous
// CRC calculation.
__externC cyg_uint32
cyg_ether_crc32_accumulate(cyg_uint32 crc, unsigned char *s, int len);
// 16 bit CRC with polynomial x^16+x^12+x^5+1
__externC cyg_uint16
cyg_crc16(unsigned char *s, int len);
#endif // _SERVICES_CRC_CRC_H_

View File

@@ -1,172 +0,0 @@
//==========================================================================
//
// crc32.c
//
// Gary S. Brown's 32 bit CRC
//
//==========================================================================
//####ECOSGPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
// Copyright (C) 2002 Gary Thomas
//
// eCos is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2 or (at your option) any later version.
//
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
// for more details.
//
// You should have received a copy of the GNU General Public License along
// with eCos; if not, write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
//
// As a special exception, if other files instantiate templates or use macros
// or inline functions from this file, or you compile this file and link it
// with other works to produce a work based on this file, this file does not
// by itself cause the resulting work to be covered by the GNU General Public
// License. However the source code for this file must still be made available
// in accordance with section (3) of the GNU General Public License.
//
// This exception does not invalidate any other reasons why a work based on
// this file might be covered by the GNU General Public License.
//
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
// at http://sources.redhat.com/ecos/ecos-license/
// -------------------------------------------
//####ECOSGPLCOPYRIGHTEND####
//==========================================================================
//#####DESCRIPTIONBEGIN####
//
// Author(s): gthomas
// Contributors: gthomas,asl
// Date: 2001-01-31
// Purpose:
// Description:
//
// This code is part of eCos (tm).
//
//####DESCRIPTIONEND####
//
//==========================================================================
#if 0
#include <cyg/crc/crc.h>
#else
#include "cyg_crc.h"
#endif
/* ====================================================================== */
/* COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or */
/* code or tables extracted from it, as desired without restriction. */
/* */
/* First, the polynomial itself and its table of feedback terms. The */
/* polynomial is */
/* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 */
/* */
/* ====================================================================== */
static const cyg_uint32 crc32_tab[] = {
0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
0x2d02ef8dL
};
/* This is the standard Gary S. Brown's 32 bit CRC algorithm, but
accumulate the CRC into the result of a previous CRC. */
cyg_uint32
cyg_crc32_accumulate(cyg_uint32 crc32val, unsigned char *s, int len)
{
int i;
for (i = 0; i < len; i++) {
crc32val = crc32_tab[(crc32val ^ s[i]) & 0xff] ^ (crc32val >> 8);
}
return crc32val;
}
/* This is the standard Gary S. Brown's 32 bit CRC algorithm */
cyg_uint32
cyg_crc32(unsigned char *s, int len)
{
return (cyg_crc32_accumulate(0,s,len));
}
/* Return a 32-bit CRC of the contents of the buffer accumulating the
result from a previous CRC calculation. This uses the Ethernet FCS
algorithm.*/
cyg_uint32
cyg_ether_crc32_accumulate(cyg_uint32 crc32val, unsigned char *s, int len)
{
int i;
if (s == 0) return 0L;
crc32val = crc32val ^ 0xffffffff;
for (i = 0; i < len; i++) {
crc32val = crc32_tab[(crc32val ^ s[i]) & 0xff] ^ (crc32val >> 8);
}
return crc32val ^ 0xffffffff;
}
/* Return a 32-bit CRC of the contents of the buffer, using the
Ethernet FCS algorithm. */
cyg_uint32
cyg_ether_crc32(unsigned char *s, int len)
{
return cyg_ether_crc32_accumulate(0,s,len);
}

View File

@@ -1,922 +0,0 @@
/*
* RouterBOOT configuration utility
*
* Copyright (C) 2010 Gabor Juhos <juhosg@openwrt.org>
* Copyright (C) 2017 Thibaut VARENE <varenet@parisc-linux.org>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation.
*
*/
#include <stdlib.h>
#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <linux/limits.h>
#include "rbcfg.h"
#include "cyg_crc.h"
#define RBCFG_TMP_FILE "/tmp/.rbcfg"
#define RBCFG_MTD_NAME "soft_config"
#define RB_ERR_NOTFOUND 1
#define RB_ERR_INVALID 2
#define RB_ERR_NOMEM 3
#define RB_ERR_IO 4
#define RB_ERR_NOTWANTED 5
#define ARRAY_SIZE(_a) (sizeof((_a)) / sizeof((_a)[0]))
struct rbcfg_ctx {
char *mtd_device;
char *tmp_file;
char *buf;
unsigned buflen;
};
struct rbcfg_value {
const char *name;
const char *desc;
union {
uint32_t u32;
const char *raw;
} val;
};
#define RBCFG_ENV_TYPE_U32 0
struct rbcfg_env {
const char *name;
int type;
uint16_t id;
const struct rbcfg_value *values;
int num_values;
};
#define CMD_FLAG_USES_CFG 0x01
struct rbcfg_command {
const char *command;
const char *usage;
int flags;
int (*exec)(int argc, const char *argv[]);
};
struct rbcfg_soc {
const char *needle;
const int type;
};
static void usage(void);
/* Globals */
static struct rbcfg_ctx *rbcfg_ctx;
static char *rbcfg_name;
#define CFG_U32(_name, _desc, _val) { \
.name = (_name), \
.desc = (_desc), \
.val.u32 = (_val), \
}
static const struct rbcfg_value rbcfg_boot_delay[] = {
CFG_U32("1", "1 second", RB_BOOT_DELAY_1SEC),
CFG_U32("2", "2 seconds", RB_BOOT_DELAY_2SEC),
CFG_U32("3", "3 seconds", RB_BOOT_DELAY_3SEC),
CFG_U32("4", "4 seconds", RB_BOOT_DELAY_4SEC),
CFG_U32("5", "5 seconds", RB_BOOT_DELAY_5SEC),
CFG_U32("6", "6 seconds", RB_BOOT_DELAY_6SEC),
CFG_U32("7", "7 seconds", RB_BOOT_DELAY_7SEC),
CFG_U32("8", "8 seconds", RB_BOOT_DELAY_8SEC),
CFG_U32("9", "9 seconds", RB_BOOT_DELAY_9SEC),
};
static const struct rbcfg_value rbcfg_boot_device[] = {
CFG_U32("eth", "boot over Ethernet",
RB_BOOT_DEVICE_ETHER),
CFG_U32("nandeth", "boot from NAND, if fail then Ethernet",
RB_BOOT_DEVICE_NANDETH),
CFG_U32("ethnand", "boot Ethernet once, then NAND",
RB_BOOT_DEVICE_ETHONCE),
CFG_U32("nand", "boot from NAND only",
RB_BOOT_DEVICE_NANDONLY),
CFG_U32("flash", "boot in flash configuration mode",
RB_BOOT_DEVICE_FLASHCFG),
CFG_U32("flashnand", "boot in flash configuration mode once, then NAND",
RB_BOOT_DEVICE_FLSHONCE),
};
static const struct rbcfg_value rbcfg_boot_key[] = {
CFG_U32("any", "any key", RB_BOOT_KEY_ANY),
CFG_U32("del", "<Delete> key only", RB_BOOT_KEY_DEL),
};
static const struct rbcfg_value rbcfg_boot_protocol[] = {
CFG_U32("bootp", "BOOTP protocol", RB_BOOT_PROTOCOL_BOOTP),
CFG_U32("dhcp", "DHCP protocol", RB_BOOT_PROTOCOL_DHCP),
};
static const struct rbcfg_value rbcfg_uart_speed[] = {
CFG_U32("115200", "", RB_UART_SPEED_115200),
CFG_U32("57600", "", RB_UART_SPEED_57600),
CFG_U32("38400", "", RB_UART_SPEED_38400),
CFG_U32("19200", "", RB_UART_SPEED_19200),
CFG_U32("9600", "", RB_UART_SPEED_9600),
CFG_U32("4800", "", RB_UART_SPEED_4800),
CFG_U32("2400", "", RB_UART_SPEED_2400),
CFG_U32("1200", "", RB_UART_SPEED_1200),
CFG_U32("off", "disable console output", RB_UART_SPEED_OFF),
};
static const struct rbcfg_value rbcfg_cpu_mode[] = {
CFG_U32("powersave", "power save", RB_CPU_MODE_POWERSAVE),
CFG_U32("regular", "regular (better for -0c environment)",
RB_CPU_MODE_REGULAR),
};
static const struct rbcfg_value rbcfg_cpu_freq_dummy[] = {
};
static const struct rbcfg_value rbcfg_cpu_freq_qca953x[] = {
CFG_U32("-2", "-100MHz", RB_CPU_FREQ_L2),
CFG_U32("-1", "- 50MHz", RB_CPU_FREQ_L1),
CFG_U32("0", "Factory", RB_CPU_FREQ_N0),
CFG_U32("+1", "+ 50MHz", RB_CPU_FREQ_H1),
CFG_U32("+2", "+100MHz", RB_CPU_FREQ_H2),
};
static const struct rbcfg_value rbcfg_cpu_freq_ar9344[] = {
CFG_U32("-2", "-100MHz", RB_CPU_FREQ_L2),
CFG_U32("-1", "- 50MHz", RB_CPU_FREQ_L1),
CFG_U32("0", "Factory", RB_CPU_FREQ_N0),
CFG_U32("+1", "+ 50MHz", RB_CPU_FREQ_H1),
CFG_U32("+2", "+100MHz", RB_CPU_FREQ_H2),
CFG_U32("+3", "+150MHz", RB_CPU_FREQ_H3),
};
static const struct rbcfg_value rbcfg_booter[] = {
CFG_U32("regular", "load regular booter", RB_BOOTER_REGULAR),
CFG_U32("backup", "force backup-booter loading", RB_BOOTER_BACKUP),
};
static struct rbcfg_env rbcfg_envs[] = {
{
.name = "boot_delay",
.id = RB_ID_BOOT_DELAY,
.type = RBCFG_ENV_TYPE_U32,
.values = rbcfg_boot_delay,
.num_values = ARRAY_SIZE(rbcfg_boot_delay),
}, {
.name = "boot_device",
.id = RB_ID_BOOT_DEVICE,
.type = RBCFG_ENV_TYPE_U32,
.values = rbcfg_boot_device,
.num_values = ARRAY_SIZE(rbcfg_boot_device),
}, {
.name = "boot_key",
.id = RB_ID_BOOT_KEY,
.type = RBCFG_ENV_TYPE_U32,
.values = rbcfg_boot_key,
.num_values = ARRAY_SIZE(rbcfg_boot_key),
}, {
.name = "boot_protocol",
.id = RB_ID_BOOT_PROTOCOL,
.type = RBCFG_ENV_TYPE_U32,
.values = rbcfg_boot_protocol,
.num_values = ARRAY_SIZE(rbcfg_boot_protocol),
}, {
.name = "booter",
.id = RB_ID_BOOTER,
.type = RBCFG_ENV_TYPE_U32,
.values = rbcfg_booter,
.num_values = ARRAY_SIZE(rbcfg_booter),
}, {
.name = "cpu_mode",
.id = RB_ID_CPU_MODE,
.type = RBCFG_ENV_TYPE_U32,
.values = rbcfg_cpu_mode,
.num_values = ARRAY_SIZE(rbcfg_cpu_mode),
}, {
.name = "cpu_freq",
.id = RB_ID_CPU_FREQ,
.type = RBCFG_ENV_TYPE_U32,
.values = rbcfg_cpu_freq_dummy,
.num_values = ARRAY_SIZE(rbcfg_cpu_freq_dummy),
}, {
.name = "uart_speed",
.id = RB_ID_UART_SPEED,
.type = RBCFG_ENV_TYPE_U32,
.values = rbcfg_uart_speed,
.num_values = ARRAY_SIZE(rbcfg_uart_speed),
}
};
static inline uint16_t
get_u16(const void *buf)
{
const uint8_t *p = buf;
return ((uint16_t) p[1] + ((uint16_t) p[0] << 8));
}
static inline uint32_t
get_u32(const void *buf)
{
const uint8_t *p = buf;
return ((uint32_t) p[3] + ((uint32_t) p[2] << 8) +
((uint32_t) p[1] << 16) + ((uint32_t) p[0] << 24));
}
static inline void
put_u32(void *buf, uint32_t val)
{
uint8_t *p = buf;
p[3] = val & 0xff;
p[2] = (val >> 8) & 0xff;
p[1] = (val >> 16) & 0xff;
p[0] = (val >> 24) & 0xff;
}
static int
rbcfg_find_tag(struct rbcfg_ctx *ctx, uint16_t tag_id, uint16_t *tag_len,
void **tag_data)
{
uint16_t id;
uint16_t len;
char *buf = ctx->buf;
unsigned int buflen = ctx->buflen;
int ret = RB_ERR_NOTFOUND;
/* skip magic and CRC value */
buf += 8;
buflen -= 8;
while (buflen > 2) {
len = get_u16(buf);
buf += 2;
buflen -= 2;
if (buflen < 2)
break;
id = get_u16(buf);
buf += 2;
buflen -= 2;
if (id == RB_ID_TERMINATOR) {
ret = RB_ERR_NOTWANTED;
break;
}
if (buflen < len)
break;
if (id == tag_id) {
*tag_len = len;
*tag_data = buf;
ret = 0;
break;
}
buf += len;
buflen -= len;
}
if (RB_ERR_NOTFOUND == ret)
fprintf(stderr, "no tag found with id=%u\n", tag_id);
return ret;
}
static int
rbcfg_get_u32(struct rbcfg_ctx *ctx, uint16_t id, uint32_t *val)
{
void *tag_data;
uint16_t tag_len;
int err;
err = rbcfg_find_tag(ctx, id, &tag_len, &tag_data);
if (err)
return err;
*val = get_u32(tag_data);
return 0;
}
static int
rbcfg_set_u32(struct rbcfg_ctx *ctx, uint16_t id, uint32_t val)
{
void *tag_data;
uint16_t tag_len;
int err;
err = rbcfg_find_tag(ctx, id, &tag_len, &tag_data);
if (err)
return err;
put_u32(tag_data, val);
return 0;
}
char *rbcfg_find_mtd(const char *name, int *erase_size)
{
FILE *f;
int mtd_num;
char dev[PATH_MAX];
char *ret = NULL;
struct stat s;
int err;
f = fopen("/proc/mtd", "r");
if (!f)
return NULL;
while (1) {
char *p;
p = fgets(dev, sizeof(dev), f);
if (!p)
break;
if (!strstr(dev, name))
continue;
err = sscanf(dev, "mtd%d: %08x", &mtd_num, erase_size);
if (err != 2)
break;
sprintf(dev, "/dev/mtdblock%d", mtd_num);
err = stat(dev, &s);
if (err < 0)
break;
if ((s.st_mode & S_IFBLK) == 0)
break;
ret = malloc(strlen(dev) + 1);
if (ret == NULL)
break;
strncpy(ret, dev, strlen(dev) + 1);
break;
}
fclose(f);
return ret;
}
static int
rbcfg_check_tmp(struct rbcfg_ctx *ctx)
{
struct stat s;
int err;
err = stat(ctx->tmp_file, &s);
if (err < 0)
return 0;
if ((s.st_mode & S_IFREG) == 0)
return 0;
if (s.st_size != ctx->buflen)
return 0;
return 1;
}
static int
rbcfg_load(struct rbcfg_ctx *ctx)
{
uint32_t magic;
uint32_t crc_orig, crc;
char *name;
int tmp;
int fd;
int err;
tmp = rbcfg_check_tmp(ctx);
name = (tmp) ? ctx->tmp_file : ctx->mtd_device;
fd = open(name, O_RDONLY);
if (fd < 0) {
fprintf(stderr, "unable to open %s\n", name);
err = RB_ERR_IO;
goto err;
}
err = read(fd, ctx->buf, ctx->buflen);
if (err != ctx->buflen) {
fprintf(stderr, "unable to read from %s\n", name);
err = RB_ERR_IO;
goto err_close;
}
magic = get_u32(ctx->buf);
if (magic != RB_MAGIC_SOFT) {
fprintf(stderr, "invalid configuration\n");
err = RB_ERR_INVALID;
goto err_close;
}
crc_orig = get_u32(ctx->buf + 4);
put_u32(ctx->buf + 4, 0);
crc = cyg_ether_crc32((unsigned char *) ctx->buf, ctx->buflen);
if (crc != crc_orig) {
fprintf(stderr, "configuration has CRC error\n");
err = RB_ERR_INVALID;
goto err_close;
}
err = 0;
err_close:
close(fd);
err:
return err;
}
static int
rbcfg_open()
{
char *mtd_device;
struct rbcfg_ctx *ctx;
int buflen;
int err;
mtd_device = rbcfg_find_mtd(RBCFG_MTD_NAME, &buflen);
if (!mtd_device) {
fprintf(stderr, "unable to find configuration\n");
return RB_ERR_NOTFOUND;
}
ctx = malloc(sizeof(struct rbcfg_ctx) + buflen);
if (ctx == NULL) {
err = RB_ERR_NOMEM;
goto err_free_mtd;
}
ctx->mtd_device = mtd_device;
ctx->tmp_file = RBCFG_TMP_FILE;
ctx->buflen = buflen;
ctx->buf = (char *) &ctx[1];
err = rbcfg_load(ctx);
if (err)
goto err_free_ctx;
rbcfg_ctx = ctx;
return 0;
err_free_ctx:
free(ctx);
err_free_mtd:
free(mtd_device);
return err;
}
static int
rbcfg_update(int tmp)
{
struct rbcfg_ctx *ctx = rbcfg_ctx;
char *name;
uint32_t crc;
int fd;
int err;
put_u32(ctx->buf, RB_MAGIC_SOFT);
put_u32(ctx->buf + 4, 0);
crc = cyg_ether_crc32((unsigned char *) ctx->buf, ctx->buflen);
put_u32(ctx->buf + 4, crc);
name = (tmp) ? ctx->tmp_file : ctx->mtd_device;
fd = open(name, O_WRONLY | O_CREAT);
if (fd < 0) {
fprintf(stderr, "unable to open %s for writing\n", name);
err = RB_ERR_IO;
goto out;
}
err = write(fd, ctx->buf, ctx->buflen);
if (err != ctx->buflen) {
err = RB_ERR_IO;
goto out_close;
}
fsync(fd);
err = 0;
out_close:
close(fd);
out:
return err;
}
static void
rbcfg_close(void)
{
struct rbcfg_ctx *ctx;
ctx = rbcfg_ctx;
free(ctx->mtd_device);
free(ctx);
}
static const struct rbcfg_value *
rbcfg_env_find(const struct rbcfg_env *env, const char *name)
{
unsigned i;
for (i = 0; i < env->num_values; i++) {
const struct rbcfg_value *v = &env->values[i];
if (strcmp(v->name, name) == 0)
return v;
}
return NULL;
}
static const struct rbcfg_value *
rbcfg_env_find_u32(const struct rbcfg_env *env, uint32_t val)
{
unsigned i;
for (i = 0; i < env->num_values; i++) {
const struct rbcfg_value *v = &env->values[i];
if (v->val.u32 == val)
return v;
}
return NULL;
}
static const char *
rbcfg_env_get_u32(const struct rbcfg_env *env)
{
const struct rbcfg_value *v;
uint32_t val;
int err;
err = rbcfg_get_u32(rbcfg_ctx, env->id, &val);
if (err)
return NULL;
v = rbcfg_env_find_u32(env, val);
if (v == NULL) {
fprintf(stderr, "unknown value %08x found for %s\n",
val, env->name);
return NULL;
}
return v->name;
}
static int
rbcfg_env_set_u32(const struct rbcfg_env *env, const char *data)
{
const struct rbcfg_value *v;
int err;
v = rbcfg_env_find(env, data);
if (v == NULL) {
fprintf(stderr, "invalid value '%s'\n", data);
return RB_ERR_INVALID;
}
err = rbcfg_set_u32(rbcfg_ctx, env->id, v->val.u32);
return err;
}
static const char *
rbcfg_env_get(const struct rbcfg_env *env)
{
const char *ret = NULL;
switch (env->type) {
case RBCFG_ENV_TYPE_U32:
ret = rbcfg_env_get_u32(env);
break;
}
return ret;
}
static int
rbcfg_env_set(const struct rbcfg_env *env, const char *data)
{
int ret = 0;
switch (env->type) {
case RBCFG_ENV_TYPE_U32:
ret = rbcfg_env_set_u32(env, data);
break;
}
return ret;
}
static int
rbcfg_cmd_apply(int argc, const char *argv[])
{
return rbcfg_update(0);
}
static int
rbcfg_cmd_help(int argc, const char *argv[])
{
usage();
return 0;
}
static int
rbcfg_cmd_get(int argc, const char *argv[])
{
int err = RB_ERR_NOTFOUND;
int i;
if (argc != 1) {
usage();
return RB_ERR_INVALID;
}
for (i = 0; i < ARRAY_SIZE(rbcfg_envs); i++) {
const struct rbcfg_env *env = &rbcfg_envs[i];
const char *value;
if (strcmp(env->name, argv[0]))
continue;
value = rbcfg_env_get(env);
if (value) {
fprintf(stdout, "%s\n", value);
err = 0;
}
break;
}
return err;
}
static int
rbcfg_cmd_set(int argc, const char *argv[])
{
int err = RB_ERR_INVALID;
int i;
if (argc != 2) {
/* not enough parameters */
usage();
return RB_ERR_INVALID;
}
for (i = 0; i < ARRAY_SIZE(rbcfg_envs); i++) {
const struct rbcfg_env *env = &rbcfg_envs[i];
if (strcmp(env->name, argv[0]))
continue;
err = rbcfg_env_set(env, argv[1]);
if (err == 0)
err = rbcfg_update(1);
break;
}
return err;
}
static int
rbcfg_cmd_show(int argc, const char *argv[])
{
int i;
if (argc != 0) {
usage();
return RB_ERR_INVALID;
}
for (i = 0; i < ARRAY_SIZE(rbcfg_envs); i++) {
const struct rbcfg_env *env = &rbcfg_envs[i];
const char *value;
value = rbcfg_env_get(env);
if (value)
fprintf(stdout, "%s=%s\n", env->name, value);
}
return 0;
}
static const struct rbcfg_command rbcfg_commands[] = {
{
.command = "apply",
.usage = "apply\n"
"\t- write configuration to the mtd device",
.flags = CMD_FLAG_USES_CFG,
.exec = rbcfg_cmd_apply,
}, {
.command = "help",
.usage = "help\n"
"\t- show this screen",
.exec = rbcfg_cmd_help,
}, {
.command = "get",
.usage = "get <name>\n"
"\t- get value of the configuration option <name>",
.flags = CMD_FLAG_USES_CFG,
.exec = rbcfg_cmd_get,
}, {
.command = "set",
.usage = "set <name> <value>\n"
"\t- set value of the configuration option <name> to <value>",
.flags = CMD_FLAG_USES_CFG,
.exec = rbcfg_cmd_set,
}, {
.command = "show",
.usage = "show\n"
"\t- show value of all configuration options",
.flags = CMD_FLAG_USES_CFG,
.exec = rbcfg_cmd_show,
}
};
static void
usage(void)
{
char buf[255];
int len;
int i;
fprintf(stderr, "Usage: %s <command>\n", rbcfg_name);
fprintf(stderr, "\nCommands:\n");
for (i = 0; i < ARRAY_SIZE(rbcfg_commands); i++) {
const struct rbcfg_command *cmd;
cmd = &rbcfg_commands[i];
len = snprintf(buf, sizeof(buf), "%s", cmd->usage);
buf[len] = '\0';
fprintf(stderr, "%s\n", buf);
}
fprintf(stderr, "\nConfiguration options:\n");
for (i = 0; i < ARRAY_SIZE(rbcfg_envs); i++) {
const struct rbcfg_env *env;
int j;
env = &rbcfg_envs[i];
fprintf(stderr, "\n%s:\n", env->name);
for (j = 0; j < env->num_values; j++) {
const struct rbcfg_value *v = &env->values[j];
fprintf(stderr, "\t%-12s %s\n", v->name, v->desc);
}
}
fprintf(stderr, "\n");
}
#define RBCFG_SOC_UNKNOWN 0
#define RBCFG_SOC_QCA953X 1
#define RBCFG_SOC_AR9344 2
static const struct rbcfg_soc rbcfg_socs[] = {
{
.needle = "QCA953",
.type = RBCFG_SOC_QCA953X,
}, {
.needle = "AR9344",
.type = RBCFG_SOC_AR9344,
},
};
#define CPUINFO_BUFSIZE 128 /* lines of interest are < 80 chars */
static int cpuinfo_find_soc(void)
{
FILE *fp;
char temp[CPUINFO_BUFSIZE];
char *haystack, *needle;
int i, found = 0, soc_type = RBCFG_SOC_UNKNOWN;
fp = fopen("/proc/cpuinfo", "r");
if (!fp)
goto end;
/* first, extract the system type line */
needle = "system type";
while(fgets(temp, CPUINFO_BUFSIZE, fp)) {
if (!strncmp(temp, needle, strlen(needle))) {
found = 1;
break;
}
}
fclose(fp);
/* failsafe in case cpuinfo format changes */
if (!found)
goto end;
/* skip the field header */
haystack = strchr(temp, ':');
/* then, try to identify known SoC, stop at first match */
for (i = 0; i < ARRAY_SIZE(rbcfg_socs); i++) {
if ((strstr(haystack, rbcfg_socs[i].needle))) {
soc_type = rbcfg_socs[i].type;
break;
}
}
end:
return soc_type;
}
static void fixup_rbcfg_envs(void)
{
int i, num_val, soc_type;
const struct rbcfg_value * env_value;
/* detect SoC */
soc_type = cpuinfo_find_soc();
/* update rbcfg_envs */
switch (soc_type) {
case RBCFG_SOC_QCA953X:
env_value = rbcfg_cpu_freq_qca953x;
num_val = ARRAY_SIZE(rbcfg_cpu_freq_qca953x);
break;
case RBCFG_SOC_AR9344:
env_value = rbcfg_cpu_freq_ar9344;
num_val = ARRAY_SIZE(rbcfg_cpu_freq_ar9344);
break;
}
for (i = 0; i < ARRAY_SIZE(rbcfg_envs); i++) {
if (RB_ID_CPU_FREQ == rbcfg_envs[i].id) {
if (RBCFG_SOC_UNKNOWN == soc_type)
rbcfg_envs[i].id = RB_ID_TERMINATOR;
else {
rbcfg_envs[i].values = env_value;
rbcfg_envs[i].num_values = num_val;
}
break;
}
}
}
int main(int argc, const char *argv[])
{
const struct rbcfg_command *cmd = NULL;
int ret;
int i;
rbcfg_name = (char *) argv[0];
fixup_rbcfg_envs();
if (argc < 2) {
usage();
return EXIT_FAILURE;
}
for (i = 0; i < ARRAY_SIZE(rbcfg_commands); i++) {
if (strcmp(rbcfg_commands[i].command, argv[1]) == 0) {
cmd = &rbcfg_commands[i];
break;
}
}
if (cmd == NULL) {
fprintf(stderr, "unknown command '%s'\n", argv[1]);
usage();
return EXIT_FAILURE;
}
argc -= 2;
argv += 2;
if (cmd->flags & CMD_FLAG_USES_CFG) {
ret = rbcfg_open();
if (ret)
return EXIT_FAILURE;
}
ret = cmd->exec(argc, argv);
if (cmd->flags & CMD_FLAG_USES_CFG)
rbcfg_close();
if (ret)
return EXIT_FAILURE;
return EXIT_SUCCESS;
}

View File

@@ -1,85 +0,0 @@
/*
* Mikrotik's RouterBOOT configuration defines
*
* Copyright (C) 2010 Gabor Juhos <juhosg@openwrt.org>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation.
*
*/
#ifndef _RBCFG_H
#define _RBCFG_H
/*
* Magic numbers
*/
#define RB_MAGIC_SOFT 0x74666f53 /* 'Soft' */
/*
* ID values for Software settings
*/
#define RB_ID_TERMINATOR 0
#define RB_ID_UART_SPEED 1
#define RB_ID_BOOT_DELAY 2
#define RB_ID_BOOT_DEVICE 3
#define RB_ID_BOOT_KEY 4
#define RB_ID_CPU_MODE 5
#define RB_ID_FW_VERSION 6
#define RB_ID_SOFT_07 7
#define RB_ID_SOFT_08 8
#define RB_ID_BOOT_PROTOCOL 9
#define RB_ID_SOFT_10 10
#define RB_ID_SOFT_11 11
#define RB_ID_CPU_FREQ 12
#define RB_ID_BOOTER 13
#define RB_UART_SPEED_115200 0
#define RB_UART_SPEED_57600 1
#define RB_UART_SPEED_38400 2
#define RB_UART_SPEED_19200 3
#define RB_UART_SPEED_9600 4
#define RB_UART_SPEED_4800 5
#define RB_UART_SPEED_2400 6
#define RB_UART_SPEED_1200 7
#define RB_UART_SPEED_OFF 8
#define RB_BOOT_DELAY_1SEC 1
#define RB_BOOT_DELAY_2SEC 2
#define RB_BOOT_DELAY_3SEC 3
#define RB_BOOT_DELAY_4SEC 4
#define RB_BOOT_DELAY_5SEC 5
#define RB_BOOT_DELAY_6SEC 6
#define RB_BOOT_DELAY_7SEC 7
#define RB_BOOT_DELAY_8SEC 8
#define RB_BOOT_DELAY_9SEC 9
#define RB_BOOT_DEVICE_ETHER 0
#define RB_BOOT_DEVICE_NANDETH 1
#define RB_BOOT_DEVICE_CFCARD 2
#define RB_BOOT_DEVICE_ETHONCE 3
#define RB_BOOT_DEVICE_NANDONLY 5
#define RB_BOOT_DEVICE_FLASHCFG 7
#define RB_BOOT_DEVICE_FLSHONCE 8
#define RB_BOOT_KEY_ANY 0
#define RB_BOOT_KEY_DEL 1
#define RB_CPU_MODE_POWERSAVE 0
#define RB_CPU_MODE_REGULAR 1
#define RB_BOOT_PROTOCOL_BOOTP 0
#define RB_BOOT_PROTOCOL_DHCP 1
#define RB_CPU_FREQ_L2 (0 << 3)
#define RB_CPU_FREQ_L1 (1 << 3)
#define RB_CPU_FREQ_N0 (2 << 3)
#define RB_CPU_FREQ_H1 (3 << 3)
#define RB_CPU_FREQ_H2 (4 << 3)
#define RB_CPU_FREQ_H3 (5 << 3)
#define RB_BOOTER_REGULAR 0
#define RB_BOOTER_BACKUP 1
#endif /* _RBCFG_H */

View File

@@ -8,50 +8,18 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=tfa-layerscape
PKG_VERSION:=lsdk-1903
PKG_RELEASE:=1
PKG_VERSION:=21.08
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://source.codeaurora.org/external/qoriq/qoriq-components/atf
PKG_SOURCE_VERSION:=7e34aebe658c7c3439d2d68b0ce6b9776e8e6996
PKG_MIRROR_HASH:=9cf0bc32fa589a0ee7c48c87898679e645341f29da1253d0ba5d2e82c6ea074d
PKG_BUILD_DEPENDS:=uboot-layerscape tfa-layerscape/host
PKG_SOURCE_VERSION:=LSDK-21.08
PKG_MIRROR_HASH:=500da1f5743255b2c301b89fba4df31d05a7dfbc731fbf137a88caf86f5568d0
PKG_BUILD_DEPENDS:=tfa-layerscape/host
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
define Package/tfa-layerscape/Config
define Package/tfa-$(1)
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:=$(2)
DEPENDS:=@TARGET_layerscape_armv8_64b +layerscape-rcw-$(1)
HIDDEN:=1
VARIANT:=$(1)
BIN_BL2:=$(3)
BIN_FIP:=$(4)
endef
endef
define Package/tfa-layerscape/Install
define Package/tfa-$(1)/install
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(CP) $(PKG_BUILD_DIR)/$(BIN_BL2) $(STAGING_DIR_IMAGE)/$(1)-bl2.pbl
$(CP) $(PKG_BUILD_DIR)/$(BIN_FIP) $(STAGING_DIR_IMAGE)/$(1)-fip.bin
endef
endef
define Build/Compile
$(eval $(Package/tfa-layerscape/$(BUILD_VARIANT))) \
$(MAKE) -C $(PKG_BUILD_DIR) CROSS_COMPILE=$(TARGET_CROSS) \
fip pbl PLAT=$(PLAT) BOOT_MODE=$(BOOT_MODE) \
RCW=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-rcw.bin \
BL33=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-uboot.bin \
FIPTOOL=$(STAGING_DIR_HOST)/bin/tfa-fiptool \
CREATE_PBL=$(STAGING_DIR_HOST)/bin/tfa-create-pbl \
BYTE_SWAP=$(STAGING_DIR_HOST)/bin/tfa-byte-swap
endef
HOST_CFLAGS += -Wall -Werror -pedantic -std=c99
define Host/Compile
$(MAKE) -C \
@@ -60,103 +28,157 @@ define Host/Compile
LDFLAGS="$(HOST_LDFLAGS)" \
HOSTCCFLAGS="$(HOST_CFLAGS)"
$(MAKE) -C \
$(HOST_BUILD_DIR)/plat/nxp/tools \
$(HOST_BUILD_DIR)/tools/nxp \
CFLAGS="$(HOST_CFLAGS)"
endef
define Host/Install
$(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/fiptool/fiptool $(STAGING_DIR_HOST)/bin/tfa-fiptool
$(INSTALL_BIN) $(HOST_BUILD_DIR)/plat/nxp/tools/create_pbl $(STAGING_DIR_HOST)/bin/tfa-create-pbl
$(INSTALL_BIN) $(HOST_BUILD_DIR)/plat/nxp/tools/byte_swap $(STAGING_DIR_HOST)/bin/tfa-byte-swap
$(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/fiptool/fiptool $(STAGING_DIR_HOST)/bin/fiptool-layerscape
$(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/nxp/create_pbl $(STAGING_DIR_HOST)/bin/tfa-create-pbl
$(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/nxp/byte_swap $(STAGING_DIR_HOST)/bin/tfa-byte-swap
endef
define Package/tfa-layerscape/ls1012ardb
define Package/tfa-generic
SECTION:=boot
CATEGORY:=Boot Loaders
DEPENDS:=@TARGET_layerscape_armv8_64b +layerscape-rcw +u-boot-fsl_$(subst tfa-,,$(1))
VARIANT:=$(subst tfa-,,$(1))
endef
define Package/tfa-ls1012a-frdm
$(Package/tfa-generic)
TITLE:=NXP LS1012AFRDM Trusted Firmware
PLAT:=ls1012afrdm
BOOT_MODE:=qspi
endef
define Package/tfa-ls1012a-rdb
$(Package/tfa-generic)
TITLE:=NXP LS1012ARDB Trusted Firmware
PLAT:=ls1012ardb
BOOT_MODE:=qspi
BIN_BL2:=build/ls1012ardb/release/bl2_qspi.pbl
BIN_FIP:=build/ls1012ardb/release/fip.bin
endef
define Package/tfa-layerscape/ls1012afrwy
define Package/tfa-ls1012a-frwy-sdboot
$(Package/tfa-generic)
TITLE:=NXP LS1012AFRWY Trusted Firmware
PLAT:=ls1012afrwy
BOOT_MODE:=qspi
BIN_BL2:=build/ls1012afrwy/release/bl2_qspi.pbl
BIN_FIP:=build/ls1012afrwy/release/fip.bin
endef
define Package/tfa-layerscape/ls1043ardb
define Package/tfa-ls1043a-rdb
$(Package/tfa-generic)
TITLE:=NXP LS1043ARDB Trusted Firmware
PLAT:=ls1043ardb
BOOT_MODE:=nor
BIN_BL2:=build/ls1043ardb/release/bl2_nor.pbl
BIN_FIP:=build/ls1043ardb/release/fip.bin
endef
define Package/tfa-layerscape/ls1043ardb-sdboot
define Package/tfa-ls1043a-rdb-sdboot
$(Package/tfa-generic)
TITLE:=NXP LS1043ARDB SD Boot Trusted Firmware
PLAT:=ls1043ardb
BOOT_MODE:=sd
BIN_BL2:=build/ls1043ardb/release/bl2_sd.pbl
BIN_FIP:=build/ls1043ardb/release/fip.bin
endef
define Package/tfa-layerscape/ls1046ardb
define Package/tfa-ls1046a-frwy
$(Package/tfa-generic)
TITLE:=NXP LS1046AFRWY Trusted Firmware
PLAT:=ls1046afrwy
BOOT_MODE:=qspi
endef
define Package/tfa-ls1046a-frwy-sdboot
$(Package/tfa-generic)
TITLE:=NXP LS1046AFRWY SD Boot Trusted Firmware
PLAT:=ls1046afrwy
BOOT_MODE:=sd
endef
define Package/tfa-ls1046a-rdb
$(Package/tfa-generic)
TITLE:=NXP LS1046ARDB Trusted Firmware
PLAT:=ls1046ardb
BOOT_MODE:=qspi
BIN_BL2:=build/ls1046ardb/release/bl2_qspi.pbl
BIN_FIP:=build/ls1046ardb/release/fip.bin
endef
define Package/tfa-layerscape/ls1046ardb-sdboot
define Package/tfa-ls1046a-rdb-sdboot
$(Package/tfa-generic)
TITLE:=NXP LS1046ARDB SD Boot Trusted Firmware
PLAT:=ls1046ardb
BOOT_MODE:=sd
BIN_BL2:=build/ls1046ardb/release/bl2_sd.pbl
BIN_FIP:=build/ls1046ardb/release/fip.bin
endef
define Package/tfa-layerscape/ls1088ardb
define Package/tfa-ls1088a-rdb
$(Package/tfa-generic)
TITLE:=NXP LS1088ARDB Trusted Firmware
PLAT:=ls1088ardb
BOOT_MODE:=qspi
BIN_BL2:=build/ls1088ardb/release/bl2_qspi.pbl
BIN_FIP:=build/ls1088ardb/release/fip.bin
endef
define Package/tfa-layerscape/ls1088ardb-sdboot
define Package/tfa-ls1088a-rdb-sdboot
$(Package/tfa-generic)
TITLE:=NXP LS1088ARDB SD Boot Trusted Firmware
PLAT:=ls1088ardb
BOOT_MODE:=sd
BIN_BL2:=build/ls1088ardb/release/bl2_sd.pbl
BIN_FIP:=build/ls1088ardb/release/fip.bin
endef
define Package/tfa-layerscape/ls2088ardb
define Package/tfa-ls2088a-rdb
$(Package/tfa-generic)
TITLE:=NXP LS2088ARDB Trusted Firmware
PLAT:=ls2088ardb
BOOT_MODE:=nor
BIN_BL2:=build/ls2088ardb/release/bl2_nor.pbl
BIN_FIP:=build/ls2088ardb/release/fip.bin
endef
define Package/tfa-lx2160a-rdb
$(Package/tfa-generic)
TITLE:=NXP LX2160ARDB Trusted Firmware
PLAT:=lx2160ardb
BOOT_MODE:=flexspi_nor
endef
define Package/tfa-lx2160a-rdb-sdboot
$(Package/tfa-generic)
TITLE:=NXP LX2160ARDB SD Boot Trusted Firmware
PLAT:=lx2160ardb
BOOT_MODE:=sd
endef
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(CP) $(PKG_BUILD_DIR)/build/$(PLAT)/release/bl2_$(BOOT_MODE).pbl \
$(STAGING_DIR_IMAGE)/fsl_$(BUILD_VARIANT)-bl2.pbl
$(CP) $(PKG_BUILD_DIR)/build/$(PLAT)/release/fip.bin \
$(STAGING_DIR_IMAGE)/fsl_$(BUILD_VARIANT)-fip.bin
endef
define Build/Compile
$(eval $(Package/tfa-$(BUILD_VARIANT))) \
$(MAKE) -C $(PKG_BUILD_DIR) CROSS_COMPILE=$(TARGET_CROSS) \
fip pbl PLAT=$(PLAT) BOOT_MODE=$(BOOT_MODE) \
RCW=$(STAGING_DIR_IMAGE)/fsl_$(BUILD_VARIANT)-rcw.bin \
BL33=$(STAGING_DIR_IMAGE)/fsl_$(BUILD_VARIANT)-uboot.bin \
FIPTOOL=$(STAGING_DIR_HOST)/bin/fiptool-layerscape \
CREATE_PBL=$(STAGING_DIR_HOST)/bin/tfa-create-pbl \
BYTE_SWAP=$(STAGING_DIR_HOST)/bin/tfa-byte-swap
endef
TFAS := \
ls1012ardb \
ls1012afrwy \
ls1043ardb \
ls1043ardb-sdboot \
ls1046ardb \
ls1046ardb-sdboot \
ls1088ardb \
ls1088ardb-sdboot \
ls2088ardb
ls1012a-frdm \
ls1012a-rdb \
ls1012a-frwy-sdboot \
ls1043a-rdb \
ls1043a-rdb-sdboot \
ls1046a-frwy \
ls1046a-frwy-sdboot \
ls1046a-rdb \
ls1046a-rdb-sdboot \
ls1088a-rdb \
ls1088a-rdb-sdboot \
ls2088a-rdb \
lx2160a-rdb \
lx2160a-rdb-sdboot
$(eval $(call HostBuild))
$(foreach tfa,$(TFAS), \
$(eval $(Package/tfa-layerscape/$(tfa))) \
$(eval $(call Package/tfa-layerscape/Config,$(tfa),$(TITLE),$(BIN_BL2),$(BIN_FIP))) \
$(eval $(call Package/tfa-layerscape/Install,$(tfa))) \
$(eval $(call BuildPackage,tfa-$(tfa))) \
$(eval $(call BuildPackage,tfa-$(tfa))) \
)

View File

@@ -1,32 +1,45 @@
--- a/Makefile
+++ b/Makefile
@@ -448,10 +448,6 @@ endif
CRTTOOLPATH ?= tools/cert_create
CRTTOOL ?= ${CRTTOOLPATH}/cert_create${BIN_EXT}
@@ -801,10 +801,6 @@ CRTTOOL ?= ${CRTTOOLPATH}/cert_create$
ENCTOOLPATH ?= tools/encrypt_fw
ENCTOOL ?= ${ENCTOOLPATH}/encrypt_fw${BIN_EXT}
-# Variables for use with Firmware Image Package
-FIPTOOLPATH ?= tools/fiptool
-FIPTOOL ?= ${FIPTOOLPATH}/fiptool${BIN_EXT}
-
################################################################################
# Include BL specific makefiles
################################################################################
@@ -661,14 +657,12 @@ endif
# Variables for use with sptool
SPTOOLPATH ?= tools/sptool
SPTOOL ?= ${SPTOOLPATH}/sptool${BIN_EXT}
@@ -1160,13 +1156,6 @@ endif
clean:
@echo " CLEAN"
$(call SHELL_REMOVE_DIR,${BUILD_PLAT})
-ifdef UNIX_MK
- ${Q}${MAKE} --no-print-directory -C ${FIPTOOLPATH} clean
-else
-# Clear the MAKEFLAGS as we do not want
-# to pass the gnumake flags to nmake.
- ${Q}set MAKEFLAGS= && ${MSVC_NMAKE} /nologo /f ${FIPTOOLPATH}/Makefile.msvc FIPTOOLPATH=$(subst /,\,$(FIPTOOLPATH)) FIPTOOL=$(subst /,\,$(FIPTOOL)) clean
-endif
${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${CRTTOOLPATH} clean
realclean distclean:
${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${ENCTOOLPATH} clean
${Q}${MAKE} --no-print-directory -C ${ROMLIBPATH} clean
@@ -1175,13 +1164,6 @@ realclean distclean:
@echo " REALCLEAN"
$(call SHELL_REMOVE_DIR,${BUILD_BASE})
$(call SHELL_DELETE_ALL, ${CURDIR}/cscope.*)
-ifdef UNIX_MK
- ${Q}${MAKE} --no-print-directory -C ${FIPTOOLPATH} clean
-else
-# Clear the MAKEFLAGS as we do not want
-# to pass the gnumake flags to nmake.
- ${Q}set MAKEFLAGS= && ${MSVC_NMAKE} /nologo /f ${FIPTOOLPATH}/Makefile.msvc FIPTOOLPATH=$(subst /,\,$(FIPTOOLPATH)) FIPTOOL=$(subst /,\,$(FIPTOOL)) realclean
-endif
${Q}${MAKE} --no-print-directory -C ${SPTOOLPATH} clean
${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${CRTTOOLPATH} clean
checkcodebase: locate-checkpatch
@@ -717,7 +711,7 @@ certificates: ${CRT_DEPS} ${CRTTOOL}
${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${ENCTOOLPATH} realclean
@@ -1238,7 +1220,7 @@ certificates: ${CRT_DEPS} ${CRTTOOL}
@${ECHO_BLANK_LINE}
endif
@@ -35,7 +48,7 @@
${Q}${FIPTOOL} create ${FIP_ARGS} $@
${Q}${FIPTOOL} info $@
@${ECHO_BLANK_LINE}
@@ -733,21 +727,16 @@ fwu_certificates: ${FWU_CRT_DEPS} ${CRTT
@@ -1254,7 +1236,7 @@ fwu_certificates: ${FWU_CRT_DEPS} ${CRTT
@${ECHO_BLANK_LINE}
endif
@@ -44,26 +57,37 @@
${Q}${FIPTOOL} create ${FWU_FIP_ARGS} $@
${Q}${FIPTOOL} info $@
@${ECHO_BLANK_LINE}
@@ -1279,24 +1261,10 @@ ${BUILD_PLAT}/${DDR_FIP_NAME}: ${DDR_FIP
@echo "Built $@ successfully"
@${ECHO_BLANK_LINE}
-fiptool: ${FIPTOOL}
fip: ${BUILD_PLAT}/${FIP_NAME}
fwu_fip: ${BUILD_PLAT}/${FWU_FIP_NAME}
fip_ddr: ${BUILD_PLAT}/${DDR_FIP_NAME}
-.PHONY: ${FIPTOOL}
-${FIPTOOL}:
- ${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" --no-print-directory -C ${FIPTOOLPATH}
- @${ECHO_BLANK_LINE}
- @echo "Building $@"
-ifdef UNIX_MK
- ${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" FIPTOOL=${FIPTOOL} --no-print-directory -C ${FIPTOOLPATH}
-else
-# Clear the MAKEFLAGS as we do not want
-# to pass the gnumake flags to nmake.
- ${Q}set MAKEFLAGS= && ${MSVC_NMAKE} /nologo /f ${FIPTOOLPATH}/Makefile.msvc FIPTOOLPATH=$(subst /,\,$(FIPTOOLPATH)) FIPTOOL=$(subst /,\,$(FIPTOOL))
-endif
- @${ECHO_BLANK_LINE}
-
cscope:
@echo " CSCOPE"
${Q}find ${CURDIR} -name "*.[chsS]" > cscope.files
sptool: ${SPTOOL}
.PHONY: ${SPTOOL}
${SPTOOL}:
--- a/tools/fiptool/Makefile
+++ b/tools/fiptool/Makefile
@@ -37,7 +37,7 @@ all: ${PROJECT} fip_create
@@ -38,7 +38,7 @@ all: ${PROJECT}
${PROJECT}: ${OBJECTS} Makefile
@echo " LD $@"
@echo " HOSTLD $@"
- ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS}
+ ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS} $(LDFLAGS)
@${ECHO_BLANK_LINE}

View File

@@ -1,30 +0,0 @@
From 65e9a722b44bf28b98fe25b3b174761b47ec7dbd Mon Sep 17 00:00:00 2001
From: Biwen Li <biwen.li@nxp.com>
Date: Mon, 1 Apr 2019 13:41:55 +0800
Subject: [PATCH 2/3] plat/nxp/tools: fix a makefile bug that will use default
implicit rules
The patch fix a makefile bug that will use default implicit rules,
because do not have explicit rules for the destination files.
Signed-off-by: Biwen Li <biwen.li@nxp.com>
---
plat/nxp/tools/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plat/nxp/tools/Makefile b/plat/nxp/tools/Makefile
index 2095294b..0082a0be 100644
--- a/plat/nxp/tools/Makefile
+++ b/plat/nxp/tools/Makefile
@@ -53,7 +53,7 @@ ${PROJECT_2}: ${OBJECTS_2} Makefile
@echo "Built $@ successfully"
@${ECHO_BLANK_LINE}
-%.o: %.c %.h Makefile
+%.o: %.c Makefile
@echo " CC $<"
${Q}${HOSTCC} -c ${CPPFLAGS} ${CFLAGS} ${INCLUDE_PATHS} $< -o $@
--
2.17.1

View File

@@ -1,21 +1,19 @@
From 8a458876013991fe2f288bbe4694264b16c3b9e9 Mon Sep 17 00:00:00 2001
From: Biwen Li <biwen.li@nxp.com>
Date: Fri, 26 Jul 2019 15:44:10 +0800
Subject: [PATCH 3/3] plat/nxp/tools: fix create_pbl and byte_swap host build
Subject: [PATCH 3/3] tools/nxp: fix create_pbl and byte_swap host build
Not compile create_pbl and byte_swap in the process of cross compilation
Signed-off-by: Biwen Li <biwen.li@nxp.com>
---
plat/nxp/tools/pbl_ch2.mk | 3 ---
plat/nxp/tools/pbl_ch3.mk | 5 -----
tools/nxp/pbl_ch2.mk | 3 ---
tools/nxp/pbl_ch3.mk | 5 -----
2 files changed, 8 deletions(-)
diff --git a/plat/nxp/tools/pbl_ch2.mk b/plat/nxp/tools/pbl_ch2.mk
index afa43520..ff624dd9 100644
--- a/plat/nxp/tools/pbl_ch2.mk
+++ b/plat/nxp/tools/pbl_ch2.mk
@@ -20,8 +20,6 @@ ifeq ($(RCW),"")
--- a/tools/nxp/pbl_ch2.mk
+++ b/tools/nxp/pbl_ch2.mk
@@ -19,8 +19,6 @@ ifeq ($(RCW),"")
else
# Generate header for bl2.bin
$(Q)$(CST_DIR)/create_hdr_isbc --in ${BUILD_PLAT}/bl2.bin --out ${BUILD_PLAT}/hdr_bl2 ${BL2_INPUT_FILE}
@@ -24,7 +22,7 @@ index afa43520..ff624dd9 100644
# Add bl2.bin to RCW
${CREATE_PBL} -r ${RCW} -i ${BUILD_PLAT}/bl2.bin -b ${BOOT_MODE} -c ${SOC_NUM} -d ${BL2_BASE} -e ${BL2_BASE}\
-o ${BUILD_PLAT}/bl2_${BOOT_MODE}.pbl ;\
@@ -43,7 +41,6 @@ ifeq ($(RCW),"")
@@ -42,7 +40,6 @@ ifeq ($(RCW),"")
${Q}echo "Platform ${PLAT} requires rcw file. Please set RCW to point to the right RCW file for boot mode ${BOOT_MODE}"
else
# -a option appends the image for Chassis 3 devices in case of non secure boot
@@ -32,11 +30,9 @@ index afa43520..ff624dd9 100644
${CREATE_PBL} -r ${RCW} -i ${BUILD_PLAT}/bl2.bin -b ${BOOT_MODE} -c ${SOC_NUM} -d ${BL2_BASE} -e ${BL2_BASE} \
-o ${BUILD_PLAT}/bl2_${BOOT_MODE}.pbl ;
# Swapping of RCW is required for QSPi Chassis 2 devices
diff --git a/plat/nxp/tools/pbl_ch3.mk b/plat/nxp/tools/pbl_ch3.mk
index 944ae3bb..9aa8f635 100644
--- a/plat/nxp/tools/pbl_ch3.mk
+++ b/plat/nxp/tools/pbl_ch3.mk
@@ -27,9 +27,6 @@ else
--- a/tools/nxp/pbl_ch3.mk
+++ b/tools/nxp/pbl_ch3.mk
@@ -26,9 +26,6 @@ else
# Generate header for bl2.bin
$(Q)$(CST_DIR)/create_hdr_isbc --in ${BUILD_PLAT}/bl2.bin --out ${BUILD_PLAT}/hdr_bl2 ${BL2_INPUT_FILE}
@@ -46,7 +42,7 @@ index 944ae3bb..9aa8f635 100644
# Add Block Copy command for bl2.bin to RCW
${CREATE_PBL} -r ${RCW} -i ${BUILD_PLAT}/bl2.bin -b ${BOOT_MODE} -c ${SOC_NUM} -d ${BL2_BASE} -e ${BL2_BASE}\
-o ${BUILD_PLAT}/bl2_${BOOT_MODE}.pbl -f ${BL2_SRC_OFFSET};\
@@ -57,8 +54,6 @@ else #SECURE_BOOT
@@ -56,8 +53,6 @@ else #SECURE_BOOT
ifeq ($(RCW),"")
${Q}echo "Platform ${PLAT} requires rcw file. Please set RCW to point to the right RCW file for boot mode ${BOOT_MODE}"
else
@@ -55,6 +51,3 @@ index 944ae3bb..9aa8f635 100644
# Add Block Copy command and populate boot loc ptrfor bl2.bin to RCW
${CREATE_PBL} -r ${RCW} -i ${BUILD_PLAT}/bl2.bin -b ${BOOT_MODE} -c ${SOC_NUM} -d ${BL2_BASE} -e ${BL2_BASE} \
-o ${BUILD_PLAT}/bl2_${BOOT_MODE}.pbl -f ${BL2_SRC_OFFSET};
--
2.17.1

View File

@@ -1,33 +0,0 @@
#
# Copyright (C) 2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_VERSION:=2010.03
PKG_RELEASE:=1
PKG_HASH:=902d1b2c15787df55186fae4033685fb0c5a5a12755a08383e97c4a3e255925b
include $(INCLUDE_DIR)/u-boot.mk
include $(INCLUDE_DIR)/package.mk
define U-Boot/Default
BUILD_TARGET:=ar71xx
BUILD_SUBTARGET:=generic
endef
define U-Boot/nbg460n_550n_550nh
TITLE:=NBG460N/550N/550NH routers
BUILD_DEVICES:=NBG_460N_550N_550NH
HIDDEN:=y
endef
UBOOT_MAKE_FLAGS :=
UBOOT_TARGETS:=nbg460n_550n_550nh
$(eval $(call BuildPackage/U-Boot))

View File

@@ -1,82 +0,0 @@
From f3f431a712729a1af94d01bd1bfde17a252ff02c Mon Sep 17 00:00:00 2001
From: Paul Kocialkowski <contact@paulk.fr>
Date: Sun, 26 Jul 2015 18:48:15 +0200
Subject: [PATCH] Reproducible U-Boot build support, using SOURCE_DATE_EPOCH
In order to achieve reproducible builds in U-Boot, timestamps that are defined
at build-time have to be somewhat eliminated. The SOURCE_DATE_EPOCH environment
variable allows setting a fixed value for those timestamps.
Simply by setting SOURCE_DATE_EPOCH to a fixed value, a number of targets can be
built reproducibly. This is the case for e.g. sunxi devices.
However, some other devices might need some more tweaks, especially regarding
the image generation tools.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---
Makefile | 7 ++++---
README | 12 ++++++++++++
tools/default_image.c | 21 ++++++++++++++++++++-
3 files changed, 36 insertions(+), 4 deletions(-)
--- a/README
+++ b/README
@@ -2785,6 +2785,18 @@ Low Level (hardware related) configurati
that is executed before the actual U-Boot. E.g. when
compiling a NAND SPL.
+Reproducible builds
+-------------------
+
+In order to achieve reproducible builds, timestamps used in the U-Boot build
+process have to be set to a fixed value.
+
+This is done using the SOURCE_DATE_EPOCH environment variable.
+SOURCE_DATE_EPOCH is to be set on the build host's shell, not as a configuration
+option for U-Boot or an environment variable in U-Boot.
+
+SOURCE_DATE_EPOCH should be set to a number of seconds since the epoch, in UTC.
+
Building the Software:
======================
--- a/tools/default_image.c
+++ b/tools/default_image.c
@@ -101,6 +101,9 @@ static void image_set_header (void *ptr,
struct mkimage_params *params)
{
uint32_t checksum;
+ char *source_date_epoch;
+ struct tm *time_universal;
+ time_t time;
image_header_t * hdr = (image_header_t *)ptr;
@@ -109,9 +112,25 @@ static void image_set_header (void *ptr,
sizeof(image_header_t)),
sbuf->st_size - sizeof(image_header_t));
+source_date_epoch = getenv("SOURCE_DATE_EPOCH");
+ if (source_date_epoch != NULL) {
+ time = (time_t) strtol(source_date_epoch, NULL, 10);
+
+ time_universal = gmtime(&time);
+ if (time_universal == NULL) {
+ fprintf(stderr, "%s: SOURCE_DATE_EPOCH is not valid\n",
+ __func__);
+ time = 0;
+ } else {
+ time = mktime(time_universal);
+ }
+ } else {
+ time = sbuf->st_mtime;
+ }
+
/* Build new header */
image_set_magic (hdr, IH_MAGIC);
- image_set_time (hdr, sbuf->st_mtime);
+ image_set_time(hdr, time);
image_set_size (hdr, sbuf->st_size - sizeof(image_header_t));
image_set_load (hdr, params->addr);
image_set_ep (hdr, params->ep);

View File

@@ -1,31 +0,0 @@
--- a/Makefile
+++ b/Makefile
@@ -389,8 +389,26 @@ $(VERSION_FILE):
@cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@
$(TIMESTAMP_FILE):
- @date +'#define U_BOOT_DATE "%b %d %C%y"' > $@
- @date +'#define U_BOOT_TIME "%T"' >> $@
+ (if test -n "$${SOURCE_DATE_EPOCH}"; then \
+ SOURCE_DATE="@$${SOURCE_DATE_EPOCH}"; \
+ DATE=""; \
+ for date in gdate date.gnu date; do \
+ $${date} -u -d "$${SOURCE_DATE}" >/dev/null 2>&1 && DATE="$${date}"; \
+ done; \
+ if test -n "$${DATE}"; then \
+ LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"' > $@; \
+ LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"' >> $@; \
+ LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"' >> $@; \
+ LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DMI_DATE "%m/%d/%Y"' >> $@; \
+ else \
+ return 42; \
+ fi; \
+ else \
+ LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \
+ LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \
+ LC_ALL=C date +'#define U_BOOT_TZ "%z"'; \
+ LC_ALL=C date +'#define U_BOOT_DMI_DATE "%m/%d/%Y"'; \
+ fi)
gdbtools:
$(MAKE) -C tools/gdb all || exit 1

View File

@@ -1,26 +0,0 @@
--- a/cpu/mips/Makefile
+++ b/cpu/mips/Makefile
@@ -33,6 +33,7 @@ SOBJS-$(CONFIG_INCA_IP) += incaip_wdt.o
COBJS-$(CONFIG_INCA_IP) += asc_serial.o incaip_clock.o
COBJS-$(CONFIG_PURPLE) += asc_serial.o
COBJS-$(CONFIG_SOC_AU1X00) += au1x00_eth.o au1x00_serial.o au1x00_usb_ohci.o
+COBJS-$(CONFIG_AR71XX) += ar71xx_serial.o
SRCS := $(START:.o=.S) $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
--- a/Makefile
+++ b/Makefile
@@ -3474,6 +3474,13 @@ qemu_mips_config : unconfig
@$(MKCONFIG) -a qemu-mips mips mips qemu-mips
#########################################################################
+## MIPS32 AR71XX (24K)
+#########################################################################
+
+nbg460n_550n_550nh_config : unconfig
+ @$(MKCONFIG) -a nbg460n mips mips nbg460n zyxel
+
+#########################################################################
## MIPS64 5Kc
#########################################################################

View File

@@ -1,11 +0,0 @@
diff -ur u-boot-2010.03/drivers/spi/Makefile u-boot-nbg/drivers/spi/Makefile
--- u-boot-2010.03/drivers/spi/Makefile 2010-03-31 23:54:39.000000000 +0200
+++ u-boot-nbg/drivers/spi/Makefile 2010-04-15 19:31:27.000000000 +0200
@@ -25,6 +25,7 @@
LIB := $(obj)libspi.a
+COBJS-$(CONFIG_AR71XX_SPI) += ar71xx_spi.o
COBJS-$(CONFIG_ATMEL_DATAFLASH_SPI) += atmel_dataflash_spi.o
COBJS-$(CONFIG_ATMEL_SPI) += atmel_spi.o
COBJS-$(CONFIG_BFIN_SPI) += bfin_spi.o

View File

@@ -1,22 +0,0 @@
diff -ur u-boot-2010.03/drivers/net/Makefile u-boot-nbg/drivers/net/Makefile
--- u-boot-2010.03/drivers/net/Makefile 2010-03-31 23:54:39.000000000 +0200
+++ u-boot-nbg/drivers/net/Makefile 2010-04-19 23:30:01.000000000 +0200
@@ -27,6 +27,7 @@
COBJS-$(CONFIG_DRIVER_3C589) += 3c589.o
COBJS-$(CONFIG_PPC4xx_EMAC) += 4xx_enet.o
+COBJS-$(CONFIG_AG71XX) += ag71xx.o
COBJS-$(CONFIG_DRIVER_AT91EMAC) += at91_emac.o
COBJS-$(CONFIG_DRIVER_AX88180) += ax88180.o
COBJS-$(CONFIG_BCM570x) += bcm570x.o bcm570x_autoneg.o 5701rls.o
diff -ur u-boot-2010.03/include/netdev.h u-boot-nbg/include/netdev.h
--- u-boot-2010.03/include/netdev.h 2010-03-31 23:54:39.000000000 +0200
+++ u-boot-nbg/include/netdev.h 2010-05-02 11:30:58.000000000 +0200
@@ -42,6 +42,7 @@
/* Driver initialization prototypes */
int au1x00_enet_initialize(bd_t*);
+int ag71xx_register(bd_t * bis, char *phyname[], u16 phyid[], u16 phyfixed[]);
int at91emac_register(bd_t *bis, unsigned long iobase);
int bfin_EMAC_initialize(bd_t *bis);
int cs8900_initialize(u8 dev_num, int base_addr);

View File

@@ -1,28 +0,0 @@
diff -ur u-boot-2010.03/drivers/net/Makefile u-boot-nbg/drivers/net/Makefile
--- u-boot-2010.03/drivers/net/Makefile 2010-03-31 23:54:39.000000000 +0200
+++ u-boot-nbg/drivers/net/Makefile 2010-04-19 23:30:01.000000000 +0200
@@ -65,6 +65,7 @@
COBJS-$(CONFIG_DRIVER_RTL8019) += rtl8019.o
COBJS-$(CONFIG_RTL8139) += rtl8139.o
COBJS-$(CONFIG_RTL8169) += rtl8169.o
+COBJS-$(CONFIG_RTL8366_MII) += phy/rtl8366_mii.o
COBJS-$(CONFIG_DRIVER_S3C4510_ETH) += s3c4510b_eth.o
COBJS-$(CONFIG_SH_ETHER) += sh_eth.o
COBJS-$(CONFIG_SMC91111) += smc91111.o
diff -ur u-boot-2010.03/include/netdev.h u-boot-nbg/include/netdev.h
--- u-boot-2010.03/include/netdev.h 2010-03-31 23:54:39.000000000 +0200
+++ u-boot-nbg/include/netdev.h 2010-05-02 11:30:58.000000000 +0200
@@ -175,5 +175,13 @@
int mv88e61xx_switch_initialize(struct mv88e61xx_config *swconfig);
#endif /* CONFIG_MV88E61XX_SWITCH */
+
+#if defined(CONFIG_RTL8366_MII)
+#define RTL8366_DEVNAME "rtl8366"
+#define RTL8366_WANPHY_ID 4
+#define RTL8366_LANPHY_ID -1
+int rtl8366_mii_register(bd_t *bis);
+int rtl8366s_initialize(void);
+#endif
#endif /* _NETDEV_H_ */

View File

@@ -1,11 +0,0 @@
--- a/include/compiler.h
+++ b/include/compiler.h
@@ -46,7 +46,7 @@ extern int errno;
#ifdef __linux__
# include <endian.h>
# include <byteswap.h>
-#elif defined(__MACH__)
+#elif defined(__MACH__) || defined(__FreeBSD__)
# include <machine/endian.h>
typedef unsigned long ulong;
typedef unsigned int uint;

View File

@@ -1,23 +0,0 @@
--- a/config.mk
+++ b/config.mk
@@ -64,9 +64,17 @@ HOSTSTRIP = strip
#
ifeq ($(HOSTOS),darwin)
-HOSTCC = cc
-HOSTCFLAGS += -traditional-cpp
-HOSTLDFLAGS += -multiply_defined suppress
+#get the major and minor product version (e.g. '10' and '6' for Snow Leopard)
+DARWIN_MAJOR_VERSION = $(shell sw_vers -productVersion | cut -f 1 -d '.')
+DARWIN_MINOR_VERSION = $(shell sw_vers -productVersion | cut -f 2 -d '.')
+
+before-snow-leopard = $(shell if [ $(DARWIN_MAJOR_VERSION) -le 10 -a \
+ $(DARWIN_MINOR_VERSION) -le 5 ] ; then echo "$(1)"; else echo "$(2)"; fi ;)
+
+# Snow Leopards build environment has no longer restrictions as described above
+HOSTCC = $(call before-snow-leopard, "cc", "gcc")
+HOSTCFLAGS += $(call before-snow-leopard, "-traditional-cpp")
+HOSTLDFLAGS += $(call before-snow-leopard, "-multiply_defined suppress")
else
HOSTCC = gcc
endif

View File

@@ -1,21 +0,0 @@
--- a/tools/os_support.c
+++ b/tools/os_support.c
@@ -23,6 +23,6 @@
#ifdef __MINGW32__
#include "mingw_support.c"
#endif
-#ifdef __APPLE__
+#if defined(__APPLE__) && __DARWIN_C_LEVEL < 200809L
#include "getline.c"
#endif
--- a/tools/os_support.h
+++ b/tools/os_support.h
@@ -28,7 +28,7 @@
#include "mingw_support.h"
#endif
-#ifdef __APPLE__
+#if defined(__APPLE__) && __DARWIN_C_LEVEL < 200809L
#include "getline.h"
#endif

View File

@@ -1,13 +0,0 @@
--- a/include/compiler.h 2018-08-29
+++ b/include/compiler.h 2018-08-29
@@ -46,6 +46,10 @@ extern int errno;
#ifdef __linux__
# include <endian.h>
# include <byteswap.h>
+#ifndef __GLIBC__
+typedef unsigned long ulong;
+typedef unsigned int uint;
+#endif
#elif defined(__MACH__) || defined(__FreeBSD__)
# include <machine/endian.h>
typedef unsigned long ulong;

View File

@@ -1,13 +0,0 @@
--- a/Makefile
+++ b/Makefile
@@ -139,9 +139,7 @@ endif
# The "tools" are needed early, so put this first
# Don't include stuff already done in $(LIBS)
-SUBDIRS = tools \
- examples/standalone \
- examples/api
+SUBDIRS = tools
.PHONY : $(SUBDIRS)

View File

@@ -1,112 +0,0 @@
--- a/include/asm-mips/io.h
+++ b/include/asm-mips/io.h
@@ -118,12 +118,12 @@ static inline void set_io_port_base(unsi
* Change virtual addresses to physical addresses and vv.
* These are trivial on the 1:1 Linux/MIPS mapping
*/
-extern inline phys_addr_t virt_to_phys(volatile void * address)
+static inline phys_addr_t virt_to_phys(volatile void * address)
{
return CPHYSADDR(address);
}
-extern inline void * phys_to_virt(unsigned long address)
+static inline void * phys_to_virt(unsigned long address)
{
return (void *)KSEG0ADDR(address);
}
@@ -131,12 +131,12 @@ extern inline void * phys_to_virt(unsign
/*
* IO bus memory addresses are also 1:1 with the physical address
*/
-extern inline unsigned long virt_to_bus(volatile void * address)
+static inline unsigned long virt_to_bus(volatile void * address)
{
return CPHYSADDR(address);
}
-extern inline void * bus_to_virt(unsigned long address)
+static inline void * bus_to_virt(unsigned long address)
{
return (void *)KSEG0ADDR(address);
}
@@ -150,12 +150,12 @@ extern unsigned long isa_slot_offset;
extern void * __ioremap(unsigned long offset, unsigned long size, unsigned long flags);
#if 0
-extern inline void *ioremap(unsigned long offset, unsigned long size)
+static inline void *ioremap(unsigned long offset, unsigned long size)
{
return __ioremap(offset, size, _CACHE_UNCACHED);
}
-extern inline void *ioremap_nocache(unsigned long offset, unsigned long size)
+static inline void *ioremap_nocache(unsigned long offset, unsigned long size)
{
return __ioremap(offset, size, _CACHE_UNCACHED);
}
@@ -238,7 +238,7 @@ out:
*/
#define __OUT1(s) \
-extern inline void __out##s(unsigned int value, unsigned int port) {
+static inline void __out##s(unsigned int value, unsigned int port) {
#define __OUT2(m) \
__asm__ __volatile__ ("s" #m "\t%0,%1(%2)"
@@ -252,7 +252,7 @@ __OUT1(s##c_p) __OUT2(m) : : "r" (__iosw
SLOW_DOWN_IO; }
#define __IN1(t,s) \
-extern __inline__ t __in##s(unsigned int port) { t _v;
+static inline t __in##s(unsigned int port) { t _v;
/*
* Required nops will be inserted by the assembler
@@ -267,7 +267,7 @@ __IN1(t,s##_p) __IN2(m) : "=r" (_v) : "i
__IN1(t,s##c_p) __IN2(m) : "=r" (_v) : "ir" (port), "r" (mips_io_port_base)); SLOW_DOWN_IO; return __ioswab##w(_v); }
#define __INS1(s) \
-extern inline void __ins##s(unsigned int port, void * addr, unsigned long count) {
+static inline void __ins##s(unsigned int port, void * addr, unsigned long count) {
#define __INS2(m) \
if (count) \
@@ -295,7 +295,7 @@ __INS1(s##c) __INS2(m) \
: "$1");}
#define __OUTS1(s) \
-extern inline void __outs##s(unsigned int port, const void * addr, unsigned long count) {
+static inline void __outs##s(unsigned int port, const void * addr, unsigned long count) {
#define __OUTS2(m) \
if (count) \
--- a/include/asm-mips/system.h
+++ b/include/asm-mips/system.h
@@ -23,7 +23,7 @@
#include <linux/kernel.h>
#endif
-extern __inline__ void
+static inline void
__sti(void)
{
__asm__ __volatile__(
@@ -47,7 +47,7 @@ __sti(void)
* R4000/R4400 need three nops, the R4600 two nops and the R10000 needs
* no nops at all.
*/
-extern __inline__ void
+static inline void
__cli(void)
{
__asm__ __volatile__(
@@ -208,7 +208,7 @@ do { \
* For 32 and 64 bit operands we can take advantage of ll and sc.
* FIXME: This doesn't work for R3000 machines.
*/
-extern __inline__ unsigned long xchg_u32(volatile int * m, unsigned long val)
+static inline unsigned long xchg_u32(volatile int * m, unsigned long val)
{
#ifdef CONFIG_CPU_HAS_LLSC
unsigned long dummy;

View File

@@ -1,12 +0,0 @@
--- a/common/main.c
+++ b/common/main.c
@@ -47,8 +47,7 @@ DECLARE_GLOBAL_DATA_PTR;
/*
* Board-specific Platform code can reimplement show_boot_progress () if needed
*/
-void inline __show_boot_progress (int val) {}
-void show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress")));
+void __attribute__((weak)) show_boot_progress(int val) {}
#if defined(CONFIG_BOOT_RETRY_TIME) && defined(CONFIG_RESET_TO_RETRY)
extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); /* for do_reset() prototype */

View File

@@ -1,46 +0,0 @@
#
# (C) Copyright 2003-2008
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# See file CREDITS for list of people who contributed to this
# project.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
COBJS-y += $(BOARD).o
SOBJS-y += lowlevel_init.o
SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS-y))
SOBJS := $(addprefix $(obj),$(SOBJS-y))
$(LIB): $(obj).depend $(OBJS) $(SOBJS)
$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
#########################################################################
# defines $(obj).depend target
include $(SRCTREE)/rules.mk
sinclude $(obj).depend
#########################################################################

View File

@@ -1 +0,0 @@
TEXT_BASE = 0x81E00000

View File

@@ -1,39 +0,0 @@
/*
* (C) Copyright 2010
* Michael Kurz <michi.kurz@googlemail.com>.
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#include <config.h>
#include <version.h>
#include <asm/regdef.h>
#include <asm/mipsregs.h>
#include <asm/addrspace.h>
.globl lowlevel_init
/*
All done by Bootbase, nothing to do
*/
lowlevel_init:
jr ra
nop

View File

@@ -1,96 +0,0 @@
/*
* (C) Copyright 2010
* Michael Kurz <michi.kurz@googlemail.com>.
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#include <common.h>
#include <netdev.h>
#include <asm/mipsregs.h>
#include <asm/addrspace.h>
#include <asm/reboot.h>
#include <asm/ar71xx.h>
#include <asm/ar71xx_gpio.h>
#define NBG460N_WAN_LED 19
phys_size_t initdram(int board_type)
{
return (32*1024*1024);
}
int checkboard(void)
{
// Set pin 19 to 1, to stop WAN LED blinking
ar71xx_setpindir(NBG460N_WAN_LED, 1);
ar71xx_setpin(NBG460N_WAN_LED, 1);
printf("U-boot on Zyxel NBG460N\n");
return 0;
}
void _machine_restart(void)
{
for (;;) {
writel((RESET_MODULE_FULL_CHIP | RESET_MODULE_DDR),
KSEG1ADDR(AR71XX_RESET_BASE + AR91XX_RESET_REG_RESET_MODULE));
readl(KSEG1ADDR(AR71XX_RESET_BASE + AR91XX_RESET_REG_RESET_MODULE));
}
}
int board_eth_init(bd_t *bis)
{
char *phynames[] = {RTL8366_DEVNAME, RTL8366_DEVNAME};
u16 phyids[] = {RTL8366_LANPHY_ID, RTL8366_WANPHY_ID};
u16 phyfixed[] = {1, 0};
if (ag71xx_register(bis, phynames, phyids, phyfixed) <= 0)
return -1;
if (rtl8366s_initialize())
return -1;
if (rtl8366_mii_register(bis))
return -1;
return 0;
}
int misc_init_r(void) {
uint8_t macaddr[6];
uint8_t enetaddr[6];
debug("Testing mac addresses\n");
memcpy(macaddr, (uint8_t *) CONFIG_ETHADDR_ADDR, 6);
if (!eth_getenv_enetaddr("ethaddr", enetaddr)) {
debug("Setting eth0 mac addr to %pM\n", macaddr);
eth_setenv_enetaddr("ethaddr", macaddr);
}
if (!eth_getenv_enetaddr("eth1addr", enetaddr)) {
macaddr[5] += 1;
debug("Setting eth1 mac addr to %pM\n", macaddr);
eth_setenv_enetaddr("eth1addr", macaddr);
}
return 0;
}

View File

@@ -1,42 +0,0 @@
OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradbigmips")
OUTPUT_ARCH(mips)
ENTRY(_start)
SECTIONS
{
. = 0x00000000;
. = ALIGN(4);
.text :
{
*(.text)
}
. = ALIGN(4);
.rodata : { *(.rodata) }
. = ALIGN(4);
.data : { *(.data) }
. = ALIGN(4);
.sdata : { *(.sdata) }
_gp = ALIGN(16);
__got_start = .;
.got : { *(.got) }
__got_end = .;
.sdata : { *(.sdata) }
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
uboot_end_data = .;
num_got_entries = (__got_end - __got_start) >> 2;
. = ALIGN(4);
.sbss : { *(.sbss) }
.bss : { *(.bss) }
uboot_end = .;
}

View File

@@ -1,177 +0,0 @@
/*
* (C) Copyright 2010
* Michael Kurz <michi.kurz@googlemail.com>.
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#include <asm/addrspace.h>
#include <asm/types.h>
#include <config.h>
#include <asm/ar71xx.h>
#define REG_SIZE 4
/* === END OF CONFIG === */
/* register offset */
#define OFS_RCV_BUFFER (0*REG_SIZE)
#define OFS_TRANS_HOLD (0*REG_SIZE)
#define OFS_SEND_BUFFER (0*REG_SIZE)
#define OFS_INTR_ENABLE (1*REG_SIZE)
#define OFS_INTR_ID (2*REG_SIZE)
#define OFS_DATA_FORMAT (3*REG_SIZE)
#define OFS_LINE_CONTROL (3*REG_SIZE)
#define OFS_MODEM_CONTROL (4*REG_SIZE)
#define OFS_RS232_OUTPUT (4*REG_SIZE)
#define OFS_LINE_STATUS (5*REG_SIZE)
#define OFS_MODEM_STATUS (6*REG_SIZE)
#define OFS_RS232_INPUT (6*REG_SIZE)
#define OFS_SCRATCH_PAD (7*REG_SIZE)
#define OFS_DIVISOR_LSB (0*REG_SIZE)
#define OFS_DIVISOR_MSB (1*REG_SIZE)
#define UART16550_READ(y) readl(KSEG1ADDR(AR71XX_UART_BASE+y))
#define UART16550_WRITE(x, z) writel(z, KSEG1ADDR((AR71XX_UART_BASE+x)))
void
ar71xx_sys_frequency(u32 *cpu_freq, u32 *ddr_freq, u32 *ahb_freq)
{
#ifndef CONFIG_AR91XX
u32 pll, pll_div, cpu_div, ahb_div, ddr_div, freq;
pll = readl(KSEG1ADDR(AR71XX_PLL_REG_CPU_CONFIG + AR71XX_PLL_BASE));
pll_div =
((pll & AR71XX_PLL_DIV_MASK) >> AR71XX_PLL_DIV_SHIFT) + 1;
cpu_div =
((pll & AR71XX_CPU_DIV_MASK) >> AR71XX_CPU_DIV_SHIFT) + 1;
ddr_div =
((pll & AR71XX_DDR_DIV_MASK) >> AR71XX_DDR_DIV_SHIFT) + 1;
ahb_div =
(((pll & AR71XX_AHB_DIV_MASK) >> AR71XX_AHB_DIV_SHIFT) + 1)*2;
freq = pll_div * 40000000;
if (cpu_freq)
*cpu_freq = freq/cpu_div;
if (ddr_freq)
*ddr_freq = freq/ddr_div;
if (ahb_freq)
*ahb_freq = (freq/cpu_div)/ahb_div;
#else
u32 pll, pll_div, ahb_div, ddr_div, freq;
pll = readl(KSEG1ADDR(AR91XX_PLL_REG_CPU_CONFIG + AR71XX_PLL_BASE));
pll_div =
((pll & AR91XX_PLL_DIV_MASK) >> AR91XX_PLL_DIV_SHIFT);
ddr_div =
((pll & AR91XX_DDR_DIV_MASK) >> AR91XX_DDR_DIV_SHIFT) + 1;
ahb_div =
(((pll & AR91XX_AHB_DIV_MASK) >> AR91XX_AHB_DIV_SHIFT) + 1)*2;
freq = pll_div * 5000000;
if (cpu_freq)
*cpu_freq = freq;
if (ddr_freq)
*ddr_freq = freq/ddr_div;
if (ahb_freq)
*ahb_freq = freq/ahb_div;
#endif
}
int serial_init(void)
{
u32 div;
u32 ahb_freq = 100000000;
ar71xx_sys_frequency (0, 0, &ahb_freq);
div = ahb_freq/(16 * CONFIG_BAUDRATE);
// enable uart pins
#ifndef CONFIG_AR91XX
writel(AR71XX_GPIO_FUNC_UART_EN, KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_FUNC));
#else
writel(AR91XX_GPIO_FUNC_UART_EN, KSEG1ADDR(AR71XX_GPIO_BASE + GPIO_REG_FUNC));
#endif
/* set DIAB bit */
UART16550_WRITE(OFS_LINE_CONTROL, 0x80);
/* set divisor */
UART16550_WRITE(OFS_DIVISOR_LSB, (div & 0xff));
UART16550_WRITE(OFS_DIVISOR_MSB, ((div >> 8) & 0xff));
/* clear DIAB bit*/
UART16550_WRITE(OFS_LINE_CONTROL, 0x00);
/* set data format */
UART16550_WRITE(OFS_DATA_FORMAT, 0x3);
UART16550_WRITE(OFS_INTR_ENABLE, 0);
return 0;
}
int serial_tstc (void)
{
return(UART16550_READ(OFS_LINE_STATUS) & 0x1);
}
int serial_getc(void)
{
while(!serial_tstc());
return UART16550_READ(OFS_RCV_BUFFER);
}
void serial_putc(const char byte)
{
if (byte == '\n') serial_putc ('\r');
while (((UART16550_READ(OFS_LINE_STATUS)) & 0x20) == 0x0);
UART16550_WRITE(OFS_SEND_BUFFER, byte);
}
void serial_setbrg (void)
{
}
void serial_puts (const char *s)
{
while (*s)
{
serial_putc (*s++);
}
}

View File

@@ -1,809 +0,0 @@
/*
* Atheros AR71xx built-in ethernet mac driver
*
* Copyright (C) 2010 Michael Kurz <michi.kurz@googlemail.com>
* Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
* Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
*
* Based on Atheros' AG7100 driver
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation.
*/
#include <common.h>
#include <malloc.h>
#include <net.h>
#include <miiphy.h>
#include <asm/ar71xx.h>
#include "ag71xx.h"
#ifdef AG71XX_DEBUG
#define DBG(fmt,args...) printf(fmt ,##args)
#else
#define DBG(fmt,args...)
#endif
static struct ag71xx agtable[] = {
{
.mac_base = KSEG1ADDR(AR71XX_GE0_BASE),
.mii_ctrl = KSEG1ADDR(AR71XX_MII_BASE + MII_REG_MII0_CTRL),
.mii_if = CONFIG_AG71XX_MII0_IIF,
} , {
.mac_base = KSEG1ADDR(AR71XX_GE1_BASE),
.mii_ctrl = KSEG1ADDR(AR71XX_MII_BASE + MII_REG_MII1_CTRL),
.mii_if = CONFIG_AG71XX_MII1_IIF,
}
};
static int ag71xx_ring_alloc(struct ag71xx_ring *ring, unsigned int size)
{
int err;
int i;
int rsize;
ring->desc_size = sizeof(struct ag71xx_desc);
if (ring->desc_size % (CONFIG_SYS_CACHELINE_SIZE)) {
rsize = roundup(ring->desc_size, CONFIG_SYS_CACHELINE_SIZE);
DBG("ag71xx: ring %p, desc size %u rounded to %u\n",
ring, ring->desc_size,
rsize);
ring->desc_size = rsize;
}
ring->descs_cpu = (u8 *) malloc((size * ring->desc_size)
+ CONFIG_SYS_CACHELINE_SIZE - 1);
if (!ring->descs_cpu) {
err = -1;
goto err;
}
ring->descs_cpu = (u8 *) UNCACHED_SDRAM((((u32) ring->descs_cpu +
CONFIG_SYS_CACHELINE_SIZE - 1) & ~(CONFIG_SYS_CACHELINE_SIZE - 1)));
ring->descs_dma = (u8 *) virt_to_phys(ring->descs_cpu);
ring->size = size;
ring->buf = malloc(size * sizeof(*ring->buf));
if (!ring->buf) {
err = -1;
goto err;
}
memset(ring->buf, 0, size * sizeof(*ring->buf));
for (i = 0; i < size; i++) {
ring->buf[i].desc =
(struct ag71xx_desc *)&ring->descs_cpu[i * ring->desc_size];
DBG("ag71xx: ring %p, desc %d at %p\n",
ring, i, ring->buf[i].desc);
}
flush_cache( (u32) ring->buf, size * sizeof(*ring->buf));
return 0;
err:
return err;
}
static void ag71xx_ring_tx_init(struct ag71xx *ag)
{
struct ag71xx_ring *ring = &ag->tx_ring;
int i;
for (i = 0; i < AG71XX_TX_RING_SIZE; i++) {
ring->buf[i].desc->next = (u32) virt_to_phys((ring->descs_dma +
ring->desc_size * ((i + 1) % AG71XX_TX_RING_SIZE)));
ring->buf[i].desc->ctrl = DESC_EMPTY;
ring->buf[i].skb = NULL;
}
ring->curr = 0;
}
static void ag71xx_ring_rx_clean(struct ag71xx *ag)
{
struct ag71xx_ring *ring = &ag->rx_ring;
int i;
if (!ring->buf)
return;
for (i = 0; i < AG71XX_RX_RING_SIZE; i++) {
ring->buf[i].desc->data = (u32) virt_to_phys(NetRxPackets[i]);
flush_cache((u32) NetRxPackets[i], PKTSIZE_ALIGN);
ring->buf[i].desc->ctrl = DESC_EMPTY;
}
ring->curr = 0;
}
static int ag71xx_ring_rx_init(struct ag71xx *ag)
{
struct ag71xx_ring *ring = &ag->rx_ring;
unsigned int i;
for (i = 0; i < AG71XX_RX_RING_SIZE; i++) {
ring->buf[i].desc->next = (u32) virt_to_phys((ring->descs_dma +
ring->desc_size * ((i + 1) % AG71XX_RX_RING_SIZE)));
DBG("ag71xx: RX desc at %p, next is %08x\n",
ring->buf[i].desc,
ring->buf[i].desc->next);
}
for (i = 0; i < AG71XX_RX_RING_SIZE; i++) {
ring->buf[i].desc->data = (u32) virt_to_phys(NetRxPackets[i]);
ring->buf[i].desc->ctrl = DESC_EMPTY;
}
ring->curr = 0;
return 0;
}
static int ag71xx_rings_init(struct ag71xx *ag)
{
int ret;
ret = ag71xx_ring_alloc(&ag->tx_ring, AG71XX_TX_RING_SIZE);
if (ret)
return ret;
ag71xx_ring_tx_init(ag);
ret = ag71xx_ring_alloc(&ag->rx_ring, AG71XX_RX_RING_SIZE);
if (ret)
return ret;
ret = ag71xx_ring_rx_init(ag);
return ret;
}
static void ar71xx_set_pll(u32 cfg_reg, u32 pll_reg, u32 pll_val, u32 shift)
{
uint32_t base = KSEG1ADDR(AR71XX_PLL_BASE);
u32 t;
t = readl(base + cfg_reg);
t &= ~(3 << shift);
t |= (2 << shift);
writel(t, base + cfg_reg);
udelay(100);
writel(pll_val, base + pll_reg);
t |= (3 << shift);
writel(t, base + cfg_reg);
udelay(100);
t &= ~(3 << shift);
writel(t, base + cfg_reg);
udelay(100);
debug("ar71xx: pll_reg %#x: %#x\n", (unsigned int)(base + pll_reg),
readl(base + pll_reg));
}
static void ar91xx_set_pll_ge0(int speed)
{
//u32 val = ar71xx_get_eth_pll(0, speed);
u32 pll_val;
switch (speed) {
case SPEED_10:
pll_val = 0x00441099;
break;
case SPEED_100:
pll_val = 0x13000a44;
break;
case SPEED_1000:
pll_val = 0x1a000000;
break;
default:
BUG();
}
ar71xx_set_pll(AR91XX_PLL_REG_ETH_CONFIG, AR91XX_PLL_REG_ETH0_INT_CLOCK,
pll_val, AR91XX_ETH0_PLL_SHIFT);
}
static void ar91xx_set_pll_ge1(int speed)
{
//u32 val = ar71xx_get_eth_pll(1, speed);
u32 pll_val;
switch (speed) {
case SPEED_10:
pll_val = 0x00441099;
break;
case SPEED_100:
pll_val = 0x13000a44;
break;
case SPEED_1000:
pll_val = 0x1a000000;
break;
default:
BUG();
}
ar71xx_set_pll(AR91XX_PLL_REG_ETH_CONFIG, AR91XX_PLL_REG_ETH1_INT_CLOCK,
pll_val, AR91XX_ETH1_PLL_SHIFT);
}
static void ag71xx_hw_set_macaddr(struct ag71xx *ag, unsigned char *mac)
{
u32 t;
t = (((u32) mac[5]) << 24) | (((u32) mac[4]) << 16)
| (((u32) mac[3]) << 8) | ((u32) mac[2]);
ag71xx_wr(ag, AG71XX_REG_MAC_ADDR1, t);
t = (((u32) mac[1]) << 24) | (((u32) mac[0]) << 16);
ag71xx_wr(ag, AG71XX_REG_MAC_ADDR2, t);
}
static void ag71xx_dma_reset(struct ag71xx *ag)
{
u32 val;
int i;
DBG("%s: txdesc reg: 0x%08x rxdesc reg: 0x%08x\n",
ag->dev->name,
ag71xx_rr(ag, AG71XX_REG_TX_DESC),
ag71xx_rr(ag, AG71XX_REG_RX_DESC));
/* stop RX and TX */
ag71xx_wr(ag, AG71XX_REG_RX_CTRL, 0);
ag71xx_wr(ag, AG71XX_REG_TX_CTRL, 0);
/* clear descriptor addresses */
ag71xx_wr(ag, AG71XX_REG_TX_DESC, 0);
ag71xx_wr(ag, AG71XX_REG_RX_DESC, 0);
/* clear pending RX/TX interrupts */
for (i = 0; i < 256; i++) {
ag71xx_wr(ag, AG71XX_REG_RX_STATUS, RX_STATUS_PR);
ag71xx_wr(ag, AG71XX_REG_TX_STATUS, TX_STATUS_PS);
}
/* clear pending errors */
ag71xx_wr(ag, AG71XX_REG_RX_STATUS, RX_STATUS_BE | RX_STATUS_OF);
ag71xx_wr(ag, AG71XX_REG_TX_STATUS, TX_STATUS_BE | TX_STATUS_UR);
val = ag71xx_rr(ag, AG71XX_REG_RX_STATUS);
if (val)
printf("%s: unable to clear DMA Rx status: %08x\n",
ag->dev->name, val);
val = ag71xx_rr(ag, AG71XX_REG_TX_STATUS);
/* mask out reserved bits */
val &= ~0xff000000;
if (val)
printf("%s: unable to clear DMA Tx status: %08x\n",
ag->dev->name, val);
}
static void ag71xx_halt(struct eth_device *dev)
{
struct ag71xx *ag = (struct ag71xx *) dev->priv;
/* stop RX engine */
ag71xx_wr(ag, AG71XX_REG_RX_CTRL, 0);
ag71xx_dma_reset(ag);
}
#define MAX_WAIT 1000
static int ag71xx_send(struct eth_device *dev, volatile void *packet,
int length)
{
struct ag71xx *ag = (struct ag71xx *) dev->priv;
struct ag71xx_ring *ring = &ag->tx_ring;
struct ag71xx_desc *desc;
int i;
i = ring->curr % AG71XX_TX_RING_SIZE;
desc = ring->buf[i].desc;
if (!ag71xx_desc_empty(desc)) {
printf("%s: tx buffer full\n", ag->dev->name);
return 1;
}
flush_cache((u32) packet, length);
desc->data = (u32) virt_to_phys(packet);
desc->ctrl = (length & DESC_PKTLEN_M);
DBG("%s: sending %#08x length %#08x\n",
ag->dev->name, desc->data, desc->ctrl);
ring->curr++;
if (ring->curr >= AG71XX_TX_RING_SIZE){
ring->curr = 0;
}
/* enable TX engine */
ag71xx_wr(ag, AG71XX_REG_TX_CTRL, TX_CTRL_TXE);
for (i = 0; i < MAX_WAIT; i++)
{
if (ag71xx_desc_empty(desc))
break;
udelay(10);
}
if (i == MAX_WAIT) {
printf("%s: tx timed out!\n", ag->dev->name);
return -1;
}
/* disable TX engine */
ag71xx_wr(ag, AG71XX_REG_TX_CTRL, 0);
desc->data = 0;
desc->ctrl = DESC_EMPTY;
return 0;
}
static int ag71xx_recv(struct eth_device *dev)
{
struct ag71xx *ag = (struct ag71xx *) dev->priv;
struct ag71xx_ring *ring = &ag->rx_ring;
for (;;) {
unsigned int i = ring->curr % AG71XX_RX_RING_SIZE;
struct ag71xx_desc *desc = ring->buf[i].desc;
int pktlen;
if (ag71xx_desc_empty(desc))
break;
DBG("%s: rx packets, curr=%u\n", dev->name, ring->curr);
pktlen = ag71xx_desc_pktlen(desc);
pktlen -= ETH_FCS_LEN;
NetReceive(NetRxPackets[i] , pktlen);
flush_cache( (u32) NetRxPackets[i], PKTSIZE_ALIGN);
ring->buf[i].desc->ctrl = DESC_EMPTY;
ring->curr++;
if (ring->curr >= AG71XX_RX_RING_SIZE){
ring->curr = 0;
}
}
if ((ag71xx_rr(ag, AG71XX_REG_RX_CTRL) & RX_CTRL_RXE) == 0) {
/* start RX engine */
ag71xx_wr(ag, AG71XX_REG_RX_CTRL, RX_CTRL_RXE);
}
return 0;
}
#ifdef AG71XX_DEBUG
static char *ag71xx_speed_str(struct ag71xx *ag)
{
switch (ag->speed) {
case SPEED_1000:
return "1000";
case SPEED_100:
return "100";
case SPEED_10:
return "10";
}
return "?";
}
#endif
void ag71xx_link_adjust(struct ag71xx *ag)
{
u32 cfg2;
u32 ifctl;
u32 fifo5;
u32 mii_speed;
if (!ag->link) {
DBG("%s: link down\n", ag->dev->name);
return;
}
cfg2 = ag71xx_rr(ag, AG71XX_REG_MAC_CFG2);
cfg2 &= ~(MAC_CFG2_IF_1000 | MAC_CFG2_IF_10_100 | MAC_CFG2_FDX);
cfg2 |= (ag->duplex) ? MAC_CFG2_FDX : 0;
ifctl = ag71xx_rr(ag, AG71XX_REG_MAC_IFCTL);
ifctl &= ~(MAC_IFCTL_SPEED);
fifo5 = ag71xx_rr(ag, AG71XX_REG_FIFO_CFG5);
fifo5 &= ~FIFO_CFG5_BM;
switch (ag->speed) {
case SPEED_1000:
mii_speed = MII_CTRL_SPEED_1000;
cfg2 |= MAC_CFG2_IF_1000;
fifo5 |= FIFO_CFG5_BM;
break;
case SPEED_100:
mii_speed = MII_CTRL_SPEED_100;
cfg2 |= MAC_CFG2_IF_10_100;
ifctl |= MAC_IFCTL_SPEED;
break;
case SPEED_10:
mii_speed = MII_CTRL_SPEED_10;
cfg2 |= MAC_CFG2_IF_10_100;
break;
default:
BUG();
return;
}
ag71xx_wr(ag, AG71XX_REG_FIFO_CFG3, 0x00780fff);
if (ag->macNum == 0)
ar91xx_set_pll_ge0(ag->speed);
else
ar91xx_set_pll_ge1(ag->speed);
ag71xx_mii_ctrl_set_speed(ag, mii_speed);
ag71xx_wr(ag, AG71XX_REG_MAC_CFG2, cfg2);
ag71xx_wr(ag, AG71XX_REG_FIFO_CFG5, fifo5);
ag71xx_wr(ag, AG71XX_REG_MAC_IFCTL, ifctl);
DBG("%s: link up (%sMbps/%s duplex)\n",
ag->dev->name,
ag71xx_speed_str(ag),
(1 == ag->duplex) ? "Full" : "Half");
DBG("%s: fifo_cfg0=%#x, fifo_cfg1=%#x, fifo_cfg2=%#x\n",
ag->dev->name,
ag71xx_rr(ag, AG71XX_REG_FIFO_CFG0),
ag71xx_rr(ag, AG71XX_REG_FIFO_CFG1),
ag71xx_rr(ag, AG71XX_REG_FIFO_CFG2));
DBG("%s: fifo_cfg3=%#x, fifo_cfg4=%#x, fifo_cfg5=%#x\n",
ag->dev->name,
ag71xx_rr(ag, AG71XX_REG_FIFO_CFG3),
ag71xx_rr(ag, AG71XX_REG_FIFO_CFG4),
ag71xx_rr(ag, AG71XX_REG_FIFO_CFG5));
DBG("%s: mac_cfg2=%#x, mac_ifctl=%#x, mii_ctrl=%#x\n",
ag->dev->name,
ag71xx_rr(ag, AG71XX_REG_MAC_CFG2),
ag71xx_rr(ag, AG71XX_REG_MAC_IFCTL),
ag71xx_mii_ctrl_rr(ag));
}
#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
static int ag71xx_getMiiSpeed(struct ag71xx *ag)
{
uint16_t phyreg, cap;
if (miiphy_read(ag->phyname, ag->phyid,
PHY_BMSR, &phyreg)) {
puts("PHY_BMSR read failed, assuming no link\n");
return -1;
}
if ((phyreg & PHY_BMSR_LS) == 0) {
return -1;
}
if (miiphy_read(ag->phyname, ag->phyid,
PHY_1000BTSR, &phyreg))
return -1;
if (phyreg & PHY_1000BTSR_1000FD) {
ag->speed = SPEED_1000;
ag->duplex = 1;
} else if (phyreg & PHY_1000BTSR_1000HD) {
ag->speed = SPEED_1000;
ag->duplex = 0;
} else {
if (miiphy_read(ag->phyname, ag->phyid,
PHY_ANAR, &cap))
return -1;
if (miiphy_read(ag->phyname, ag->phyid,
PHY_ANLPAR, &phyreg))
return -1;
cap &= phyreg;
if (cap & PHY_ANLPAR_TXFD) {
ag->speed = SPEED_100;
ag->duplex = 1;
} else if (cap & PHY_ANLPAR_TX) {
ag->speed = SPEED_100;
ag->duplex = 0;
} else if (cap & PHY_ANLPAR_10FD) {
ag->speed = SPEED_10;
ag->duplex = 1;
} else {
ag->speed = SPEED_10;
ag->duplex = 0;
}
}
ag->link = 1;
return 0;
}
#endif
static int ag71xx_hw_start(struct eth_device *dev, bd_t * bd)
{
struct ag71xx *ag = (struct ag71xx *) dev->priv;
ag71xx_dma_reset(ag);
ag71xx_ring_rx_clean(ag);
ag71xx_ring_tx_init(ag);
ag71xx_wr(ag, AG71XX_REG_TX_DESC,
(u32) virt_to_phys(ag->tx_ring.descs_dma));
ag71xx_wr(ag, AG71XX_REG_RX_DESC,
(u32) virt_to_phys(ag->rx_ring.descs_dma));
ag71xx_hw_set_macaddr(ag, ag->dev->enetaddr);
if (ag->phyfixed) {
ag->link = 1;
ag->duplex = 1;
ag->speed = SPEED_1000;
} else {
#if (defined(CONFIG_MII) || defined(CONFIG_CMD_MII))
if (ag71xx_getMiiSpeed(ag))
return -1;
#else
/* only fixed, without mii */
return -1;
#endif
}
ag71xx_link_adjust(ag);
DBG("%s: txdesc reg: %#08x rxdesc reg: %#08x\n",
ag->dev->name,
ag71xx_rr(ag, AG71XX_REG_TX_DESC),
ag71xx_rr(ag, AG71XX_REG_RX_DESC));
/* start RX engine */
ag71xx_wr(ag, AG71XX_REG_RX_CTRL, RX_CTRL_RXE);
return 0;
}
#define FIFO_CFG0_INIT (FIFO_CFG0_ALL << FIFO_CFG0_ENABLE_SHIFT)
#define FIFO_CFG4_INIT (FIFO_CFG4_DE | FIFO_CFG4_DV | FIFO_CFG4_FC | \
FIFO_CFG4_CE | FIFO_CFG4_CR | FIFO_CFG4_LM | \
FIFO_CFG4_LO | FIFO_CFG4_OK | FIFO_CFG4_MC | \
FIFO_CFG4_BC | FIFO_CFG4_DR | FIFO_CFG4_LE | \
FIFO_CFG4_CF | FIFO_CFG4_PF | FIFO_CFG4_UO | \
FIFO_CFG4_VT)
#define FIFO_CFG5_INIT (FIFO_CFG5_DE | FIFO_CFG5_DV | FIFO_CFG5_FC | \
FIFO_CFG5_CE | FIFO_CFG5_LO | FIFO_CFG5_OK | \
FIFO_CFG5_MC | FIFO_CFG5_BC | FIFO_CFG5_DR | \
FIFO_CFG5_CF | FIFO_CFG5_PF | FIFO_CFG5_VT | \
FIFO_CFG5_LE | FIFO_CFG5_FT | FIFO_CFG5_16 | \
FIFO_CFG5_17 | FIFO_CFG5_SF)
static int ag71xx_hw_init(struct ag71xx *ag)
{
int ret = 0;
uint32_t reg;
uint32_t mask, mii_type;
if (ag->macNum == 0) {
mask = (RESET_MODULE_GE0_MAC | RESET_MODULE_GE0_PHY);
mii_type = 0x13;
} else {
mask = (RESET_MODULE_GE1_MAC | RESET_MODULE_GE1_PHY);
mii_type = 0x11;
}
// mac soft reset
ag71xx_sb(ag, AG71XX_REG_MAC_CFG1, MAC_CFG1_SR);
udelay(20);
// device stop
reg = ar71xx_reset_rr(AR91XX_RESET_REG_RESET_MODULE);
ar71xx_reset_wr(AR91XX_RESET_REG_RESET_MODULE, reg | mask);
udelay(100 * 1000);
// device start
reg = ar71xx_reset_rr(AR91XX_RESET_REG_RESET_MODULE);
ar71xx_reset_wr(AR91XX_RESET_REG_RESET_MODULE, reg & ~mask);
udelay(100 * 1000);
/* setup MAC configuration registers */
ag71xx_wr(ag, AG71XX_REG_MAC_CFG1, (MAC_CFG1_RXE | MAC_CFG1_TXE));
ag71xx_sb(ag, AG71XX_REG_MAC_CFG2,
MAC_CFG2_PAD_CRC_EN | MAC_CFG2_LEN_CHECK);
/* setup FIFO configuration register 0 */
ag71xx_wr(ag, AG71XX_REG_FIFO_CFG0, FIFO_CFG0_INIT);
/* setup MII interface type */
ag71xx_mii_ctrl_set_if(ag, ag->mii_if);
/* setup mdio clock divisor */
ag71xx_wr(ag, AG71XX_REG_MII_CFG, MII_CFG_CLK_DIV_20);
/* setup FIFO configuration registers */
ag71xx_sb(ag, AG71XX_REG_FIFO_CFG4, FIFO_CFG4_INIT);
ag71xx_wr(ag, AG71XX_REG_FIFO_CFG1, 0x0fff0000);
ag71xx_wr(ag, AG71XX_REG_FIFO_CFG2, 0x00001fff);
ag71xx_wr(ag, AG71XX_REG_FIFO_CFG5, FIFO_CFG5_INIT);
ag71xx_dma_reset(ag);
ret = ag71xx_rings_init(ag);
if (ret)
return -1;
ag71xx_wr(ag, AG71XX_REG_TX_DESC,
(u32) virt_to_phys(ag->tx_ring.descs_dma));
ag71xx_wr(ag, AG71XX_REG_RX_DESC,
(u32) virt_to_phys(ag->rx_ring.descs_dma));
ag71xx_hw_set_macaddr(ag, ag->dev->enetaddr);
return 0;
}
#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
#define AG71XX_MDIO_RETRY 1000
#define AG71XX_MDIO_DELAY 5
static inline struct ag71xx *ag71xx_name2mac(char *devname)
{
if (strcmp(devname, agtable[0].dev->name) == 0)
return &agtable[0];
else if (strcmp(devname, agtable[1].dev->name) == 0)
return &agtable[1];
else
return NULL;
}
static inline void ag71xx_mdio_wr(struct ag71xx *ag, unsigned reg,
u32 value)
{
uint32_t r;
r = ag->mac_base + reg;
writel(value, r);
/* flush write */
(void) readl(r);
}
static inline u32 ag71xx_mdio_rr(struct ag71xx *ag, unsigned reg)
{
return readl(ag->mac_base + reg);
}
static int ag71xx_mdio_read(char *devname, unsigned char addr,
unsigned char reg, unsigned short *val)
{
struct ag71xx *ag = ag71xx_name2mac(devname);
uint16_t regData;
int i;
ag71xx_mdio_wr(ag, AG71XX_REG_MII_CMD, MII_CMD_WRITE);
ag71xx_mdio_wr(ag, AG71XX_REG_MII_ADDR,
((addr & 0xff) << MII_ADDR_SHIFT) | (reg & 0xff));
ag71xx_mdio_wr(ag, AG71XX_REG_MII_CMD, MII_CMD_READ);
i = AG71XX_MDIO_RETRY;
while (ag71xx_mdio_rr(ag, AG71XX_REG_MII_IND) & MII_IND_BUSY) {
if (i-- == 0) {
printf("%s: mii_read timed out\n",
ag->dev->name);
return -1;
}
udelay(AG71XX_MDIO_DELAY);
}
regData = (uint16_t) ag71xx_mdio_rr(ag, AG71XX_REG_MII_STATUS) & 0xffff;
ag71xx_mdio_wr(ag, AG71XX_REG_MII_CMD, MII_CMD_WRITE);
DBG("mii_read: addr=%04x, reg=%04x, value=%04x\n", addr, reg, regData);
if (val)
*val = regData;
return 0;
}
static int ag71xx_mdio_write(char *devname, unsigned char addr,
unsigned char reg, unsigned short val)
{
struct ag71xx *ag = ag71xx_name2mac(devname);
int i;
if (ag == NULL)
return 1;
DBG("mii_write: addr=%04x, reg=%04x, value=%04x\n", addr, reg, val);
ag71xx_mdio_wr(ag, AG71XX_REG_MII_ADDR,
((addr & 0xff) << MII_ADDR_SHIFT) | (reg & 0xff));
ag71xx_mdio_wr(ag, AG71XX_REG_MII_CTRL, val);
i = AG71XX_MDIO_RETRY;
while (ag71xx_mdio_rr(ag, AG71XX_REG_MII_IND) & MII_IND_BUSY) {
if (i-- == 0) {
printf("%s: mii_write timed out\n",
ag->dev->name);
break;
}
udelay(AG71XX_MDIO_DELAY);
}
return 0;
}
#endif
int ag71xx_register(bd_t * bis, char *phyname[], uint16_t phyid[], uint16_t phyfixed[])
{
int i, num = 0;
u8 used_ports[MAX_AG71XX_DEVS] = CONFIG_AG71XX_PORTS;
for (i = 0; i < MAX_AG71XX_DEVS; i++) {
/*skip if port is configured not to use */
if (used_ports[i] == 0)
continue;
agtable[i].dev = malloc(sizeof(struct eth_device));
if (agtable[i].dev == NULL) {
puts("malloc failed\n");
return 0;
}
memset(agtable[i].dev, 0, sizeof(struct eth_device));
sprintf(agtable[i].dev->name, "eth%d", i);
agtable[i].dev->iobase = 0;
agtable[i].dev->init = ag71xx_hw_start;
agtable[i].dev->halt = ag71xx_halt;
agtable[i].dev->send = ag71xx_send;
agtable[i].dev->recv = ag71xx_recv;
agtable[i].dev->priv = (void *) (&agtable[i]);
agtable[i].macNum = i;
eth_register(agtable[i].dev);
#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
if ((phyname == NULL) || (phyid == NULL) || (phyfixed == NULL))
return -1;
agtable[i].phyname = strdup(phyname[i]);
agtable[i].phyid = phyid[i];
agtable[i].phyfixed = phyfixed[i];
miiphy_register(agtable[i].dev->name, ag71xx_mdio_read,
ag71xx_mdio_write);
#endif
if (ag71xx_hw_init(&agtable[i]))
continue;
num++;
}
return num;
}

View File

@@ -1,374 +0,0 @@
/*
* Atheros AR71xx built-in ethernet mac driver
*
* Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
* Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
*
* Based on Atheros' AG7100 driver
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation.
*/
#ifndef __AG71XX_H
#define __AG71XX_H
#include <linux/types.h>
#include <linux/bitops.h>
#include <asm/ar71xx.h>
// controller has 2 ports
#define MAX_AG71XX_DEVS 2
#define ETH_FCS_LEN 4
#define SPEED_10 10
#define SPEED_100 100
#define SPEED_1000 1000
#define AG71XX_INT_ERR (AG71XX_INT_RX_BE | AG71XX_INT_TX_BE)
#define AG71XX_INT_TX (AG71XX_INT_TX_PS)
#define AG71XX_INT_RX (AG71XX_INT_RX_PR | AG71XX_INT_RX_OF)
#define AG71XX_INT_POLL (AG71XX_INT_RX | AG71XX_INT_TX)
#define AG71XX_INT_INIT (AG71XX_INT_ERR | AG71XX_INT_POLL)
#define AG71XX_TX_FIFO_LEN 2048
#define AG71XX_TX_MTU_LEN 1536
#define AG71XX_RX_PKT_RESERVE 64
#define AG71XX_RX_PKT_SIZE \
(AG71XX_RX_PKT_RESERVE + ETH_HLEN + ETH_FRAME_LEN + ETH_FCS_LEN)
#ifndef CONFIG_SYS_RX_ETH_BUFFER
#define AG71XX_TX_RING_SIZE 4
#define AG71XX_RX_RING_SIZE 4
#else
#define AG71XX_TX_RING_SIZE CONFIG_SYS_RX_ETH_BUFFER
#define AG71XX_RX_RING_SIZE CONFIG_SYS_RX_ETH_BUFFER
#endif
#define AG71XX_TX_THRES_STOP (AG71XX_TX_RING_SIZE - 4)
#define AG71XX_TX_THRES_WAKEUP \
(AG71XX_TX_RING_SIZE - (AG71XX_TX_RING_SIZE / 4))
struct ag71xx_desc {
u32 data;
u32 ctrl;
#define DESC_EMPTY BIT(31)
#define DESC_MORE BIT(24)
#define DESC_PKTLEN_M 0xfff
u32 next;
u32 pad;
} __attribute__((aligned(4)));
struct ag71xx_buf {
struct sk_buff *skb;
struct ag71xx_desc *desc;
dma_addr_t dma_addr;
u32 pad;
};
struct ag71xx_ring {
struct ag71xx_buf *buf;
u8 *descs_cpu;
u8 *descs_dma;
unsigned int desc_size;
unsigned int curr;
unsigned int size;
};
struct ag71xx {
uint32_t mac_base;
uint32_t mii_ctrl;
struct eth_device *dev;
struct ag71xx_ring rx_ring;
struct ag71xx_ring tx_ring;
char *phyname;
u16 phyid;
u16 phyfixed;
uint32_t link;
uint32_t speed;
int32_t duplex;
uint32_t macNum;
uint32_t mii_if;
};
void ag71xx_link_adjust(struct ag71xx *ag);
int ag71xx_phy_connect(struct ag71xx *ag);
void ag71xx_phy_disconnect(struct ag71xx *ag);
void ag71xx_phy_start(struct ag71xx *ag);
void ag71xx_phy_stop(struct ag71xx *ag);
static inline int ag71xx_desc_empty(struct ag71xx_desc *desc)
{
return ((desc->ctrl & DESC_EMPTY) != 0);
}
static inline int ag71xx_desc_pktlen(struct ag71xx_desc *desc)
{
return (desc->ctrl & DESC_PKTLEN_M);
}
/* Register offsets */
#define AG71XX_REG_MAC_CFG1 0x0000
#define AG71XX_REG_MAC_CFG2 0x0004
#define AG71XX_REG_MAC_IPG 0x0008
#define AG71XX_REG_MAC_HDX 0x000c
#define AG71XX_REG_MAC_MFL 0x0010
#define AG71XX_REG_MII_CFG 0x0020
#define AG71XX_REG_MII_CMD 0x0024
#define AG71XX_REG_MII_ADDR 0x0028
#define AG71XX_REG_MII_CTRL 0x002c
#define AG71XX_REG_MII_STATUS 0x0030
#define AG71XX_REG_MII_IND 0x0034
#define AG71XX_REG_MAC_IFCTL 0x0038
#define AG71XX_REG_MAC_ADDR1 0x0040
#define AG71XX_REG_MAC_ADDR2 0x0044
#define AG71XX_REG_FIFO_CFG0 0x0048
#define AG71XX_REG_FIFO_CFG1 0x004c
#define AG71XX_REG_FIFO_CFG2 0x0050
#define AG71XX_REG_FIFO_CFG3 0x0054
#define AG71XX_REG_FIFO_CFG4 0x0058
#define AG71XX_REG_FIFO_CFG5 0x005c
#define AG71XX_REG_FIFO_RAM0 0x0060
#define AG71XX_REG_FIFO_RAM1 0x0064
#define AG71XX_REG_FIFO_RAM2 0x0068
#define AG71XX_REG_FIFO_RAM3 0x006c
#define AG71XX_REG_FIFO_RAM4 0x0070
#define AG71XX_REG_FIFO_RAM5 0x0074
#define AG71XX_REG_FIFO_RAM6 0x0078
#define AG71XX_REG_FIFO_RAM7 0x007c
#define AG71XX_REG_TX_CTRL 0x0180
#define AG71XX_REG_TX_DESC 0x0184
#define AG71XX_REG_TX_STATUS 0x0188
#define AG71XX_REG_RX_CTRL 0x018c
#define AG71XX_REG_RX_DESC 0x0190
#define AG71XX_REG_RX_STATUS 0x0194
#define AG71XX_REG_INT_ENABLE 0x0198
#define AG71XX_REG_INT_STATUS 0x019c
#define MAC_CFG1_TXE BIT(0) /* Tx Enable */
#define MAC_CFG1_STX BIT(1) /* Synchronize Tx Enable */
#define MAC_CFG1_RXE BIT(2) /* Rx Enable */
#define MAC_CFG1_SRX BIT(3) /* Synchronize Rx Enable */
#define MAC_CFG1_TFC BIT(4) /* Tx Flow Control Enable */
#define MAC_CFG1_RFC BIT(5) /* Rx Flow Control Enable */
#define MAC_CFG1_LB BIT(8) /* Loopback mode */
#define MAC_CFG1_SR BIT(31) /* Soft Reset */
#define MAC_CFG2_FDX BIT(0)
#define MAC_CFG2_CRC_EN BIT(1)
#define MAC_CFG2_PAD_CRC_EN BIT(2)
#define MAC_CFG2_LEN_CHECK BIT(4)
#define MAC_CFG2_HUGE_FRAME_EN BIT(5)
#define MAC_CFG2_IF_1000 BIT(9)
#define MAC_CFG2_IF_10_100 BIT(8)
#define FIFO_CFG0_WTM BIT(0) /* Watermark Module */
#define FIFO_CFG0_RXS BIT(1) /* Rx System Module */
#define FIFO_CFG0_RXF BIT(2) /* Rx Fabric Module */
#define FIFO_CFG0_TXS BIT(3) /* Tx System Module */
#define FIFO_CFG0_TXF BIT(4) /* Tx Fabric Module */
#define FIFO_CFG0_ALL (FIFO_CFG0_WTM | FIFO_CFG0_RXS | FIFO_CFG0_RXF \
| FIFO_CFG0_TXS | FIFO_CFG0_TXF)
#define FIFO_CFG0_ENABLE_SHIFT 8
#define FIFO_CFG4_DE BIT(0) /* Drop Event */
#define FIFO_CFG4_DV BIT(1) /* RX_DV Event */
#define FIFO_CFG4_FC BIT(2) /* False Carrier */
#define FIFO_CFG4_CE BIT(3) /* Code Error */
#define FIFO_CFG4_CR BIT(4) /* CRC error */
#define FIFO_CFG4_LM BIT(5) /* Length Mismatch */
#define FIFO_CFG4_LO BIT(6) /* Length out of range */
#define FIFO_CFG4_OK BIT(7) /* Packet is OK */
#define FIFO_CFG4_MC BIT(8) /* Multicast Packet */
#define FIFO_CFG4_BC BIT(9) /* Broadcast Packet */
#define FIFO_CFG4_DR BIT(10) /* Dribble */
#define FIFO_CFG4_LE BIT(11) /* Long Event */
#define FIFO_CFG4_CF BIT(12) /* Control Frame */
#define FIFO_CFG4_PF BIT(13) /* Pause Frame */
#define FIFO_CFG4_UO BIT(14) /* Unsupported Opcode */
#define FIFO_CFG4_VT BIT(15) /* VLAN tag detected */
#define FIFO_CFG4_FT BIT(16) /* Frame Truncated */
#define FIFO_CFG4_UC BIT(17) /* Unicast Packet */
#define FIFO_CFG5_DE BIT(0) /* Drop Event */
#define FIFO_CFG5_DV BIT(1) /* RX_DV Event */
#define FIFO_CFG5_FC BIT(2) /* False Carrier */
#define FIFO_CFG5_CE BIT(3) /* Code Error */
#define FIFO_CFG5_LM BIT(4) /* Length Mismatch */
#define FIFO_CFG5_LO BIT(5) /* Length Out of Range */
#define FIFO_CFG5_OK BIT(6) /* Packet is OK */
#define FIFO_CFG5_MC BIT(7) /* Multicast Packet */
#define FIFO_CFG5_BC BIT(8) /* Broadcast Packet */
#define FIFO_CFG5_DR BIT(9) /* Dribble */
#define FIFO_CFG5_CF BIT(10) /* Control Frame */
#define FIFO_CFG5_PF BIT(11) /* Pause Frame */
#define FIFO_CFG5_UO BIT(12) /* Unsupported Opcode */
#define FIFO_CFG5_VT BIT(13) /* VLAN tag detected */
#define FIFO_CFG5_LE BIT(14) /* Long Event */
#define FIFO_CFG5_FT BIT(15) /* Frame Truncated */
#define FIFO_CFG5_16 BIT(16) /* unknown */
#define FIFO_CFG5_17 BIT(17) /* unknown */
#define FIFO_CFG5_SF BIT(18) /* Short Frame */
#define FIFO_CFG5_BM BIT(19) /* Byte Mode */
#define AG71XX_INT_TX_PS BIT(0)
#define AG71XX_INT_TX_UR BIT(1)
#define AG71XX_INT_TX_BE BIT(3)
#define AG71XX_INT_RX_PR BIT(4)
#define AG71XX_INT_RX_OF BIT(6)
#define AG71XX_INT_RX_BE BIT(7)
#define MAC_IFCTL_SPEED BIT(16)
#define MII_CFG_CLK_DIV_4 0
#define MII_CFG_CLK_DIV_6 2
#define MII_CFG_CLK_DIV_8 3
#define MII_CFG_CLK_DIV_10 4
#define MII_CFG_CLK_DIV_14 5
#define MII_CFG_CLK_DIV_20 6
#define MII_CFG_CLK_DIV_28 7
#define MII_CFG_RESET BIT(31)
#define MII_CMD_WRITE 0x0
#define MII_CMD_READ 0x1
#define MII_ADDR_SHIFT 8
#define MII_IND_BUSY BIT(0)
#define MII_IND_INVALID BIT(2)
#define TX_CTRL_TXE BIT(0) /* Tx Enable */
#define TX_STATUS_PS BIT(0) /* Packet Sent */
#define TX_STATUS_UR BIT(1) /* Tx Underrun */
#define TX_STATUS_BE BIT(3) /* Bus Error */
#define RX_CTRL_RXE BIT(0) /* Rx Enable */
#define RX_STATUS_PR BIT(0) /* Packet Received */
#define RX_STATUS_OF BIT(2) /* Rx Overflow */
#define RX_STATUS_BE BIT(3) /* Bus Error */
#define MII_CTRL_IF_MASK 3
#define MII_CTRL_SPEED_SHIFT 4
#define MII_CTRL_SPEED_MASK 3
#define MII_CTRL_SPEED_10 0
#define MII_CTRL_SPEED_100 1
#define MII_CTRL_SPEED_1000 2
static inline void ag71xx_wr(struct ag71xx *ag, unsigned reg, u32 value)
{
__raw_writel(value, ag->mac_base + reg);
/* flush write */
(void) __raw_readl(ag->mac_base + reg);
}
static inline u32 ag71xx_rr(struct ag71xx *ag, unsigned reg)
{
return __raw_readl(ag->mac_base + reg);
}
static inline void ag71xx_sb(struct ag71xx *ag, unsigned reg, u32 mask)
{
uint32_t r;
r = ag->mac_base + reg;
__raw_writel(__raw_readl(r) | mask, r);
/* flush write */
(void)__raw_readl(r);
}
static inline void ag71xx_cb(struct ag71xx *ag, unsigned reg, u32 mask)
{
uint32_t r;
r = ag->mac_base + reg;
__raw_writel(__raw_readl(r) & ~mask, r);
/* flush write */
(void) __raw_readl(r);
}
static inline void ag71xx_int_enable(struct ag71xx *ag, u32 ints)
{
ag71xx_sb(ag, AG71XX_REG_INT_ENABLE, ints);
}
static inline void ag71xx_int_disable(struct ag71xx *ag, u32 ints)
{
ag71xx_cb(ag, AG71XX_REG_INT_ENABLE, ints);
}
static inline void ag71xx_mii_ctrl_wr(struct ag71xx *ag, u32 value)
{
__raw_writel(value, ag->mii_ctrl);
/* flush write */
__raw_readl(ag->mii_ctrl);
}
static inline u32 ag71xx_mii_ctrl_rr(struct ag71xx *ag)
{
return __raw_readl(ag->mii_ctrl);
}
static void inline ag71xx_mii_ctrl_set_if(struct ag71xx *ag,
unsigned int mii_if)
{
u32 t;
t = ag71xx_mii_ctrl_rr(ag);
t &= ~(MII_CTRL_IF_MASK);
t |= (mii_if & MII_CTRL_IF_MASK);
ag71xx_mii_ctrl_wr(ag, t);
}
static void inline ag71xx_mii_ctrl_set_speed(struct ag71xx *ag,
unsigned int speed)
{
u32 t;
t = ag71xx_mii_ctrl_rr(ag);
t &= ~(MII_CTRL_SPEED_MASK << MII_CTRL_SPEED_SHIFT);
t |= (speed & MII_CTRL_SPEED_MASK) << MII_CTRL_SPEED_SHIFT;
ag71xx_mii_ctrl_wr(ag, t);
}
#ifdef CONFIG_AG71XX_AR8216_SUPPORT
void ag71xx_add_ar8216_header(struct ag71xx *ag, struct sk_buff *skb);
int ag71xx_remove_ar8216_header(struct ag71xx *ag, struct sk_buff *skb,
int pktlen);
static inline int ag71xx_has_ar8216(struct ag71xx *ag)
{
return ag71xx_get_pdata(ag)->has_ar8216;
}
#else
static inline void ag71xx_add_ar8216_header(struct ag71xx *ag,
struct sk_buff *skb)
{
}
static inline int ag71xx_remove_ar8216_header(struct ag71xx *ag,
struct sk_buff *skb,
int pktlen)
{
return 0;
}
static inline int ag71xx_has_ar8216(struct ag71xx *ag)
{
return 0;
}
#endif
#endif /* _AG71XX_H */

Some files were not shown because too many files have changed in this diff Show More