openwrt/staging/noltari.git
4 years agoscripts: cfe-wfi-tag: fix shebang
Álvaro Fernández Rojas [Tue, 19 May 2020 06:06:29 +0000 (08:06 +0200)]
scripts: cfe-wfi-tag: fix shebang

Fixes: 72985233a696 ("scripts: support CFE WFI images")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agoscripts: cfe-bin-header: fix shebang
Álvaro Fernández Rojas [Tue, 19 May 2020 06:05:22 +0000 (08:05 +0200)]
scripts: cfe-bin-header: fix shebang

Fixes: e575a7f777ef ("scripts: support tags for CFE binaries")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agoramips: remove leading zeros from MAC address location
Adrian Schmutzler [Mon, 18 May 2020 19:45:48 +0000 (21:45 +0200)]
ramips: remove leading zeros from MAC address location

Cosmetic adjustment to match the rest of the target.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: set WAN address in DTS for ASUS RT-AC51U/RT-AC54U
Adrian Schmutzler [Mon, 18 May 2020 19:38:00 +0000 (21:38 +0200)]
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>
4 years agoramips: use DT trigger for 2G WiFi on ASUS RT-AC51U
Adrian Schmutzler [Thu, 14 May 2020 13:16:57 +0000 (15:16 +0200)]
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>
4 years agoramips: fix MAC address assignment for ASUS RT-AC51U
Adrian Schmutzler [Mon, 18 May 2020 19:26:20 +0000 (21:26 +0200)]
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.

MAC assignment based on vendor firmware:

  2g    0x4 label
  5g    0x8004 label +4
  lan   0x22 label +4
  wan   0x28 label

Thanks to Davide Fioravanti for checking this on his device.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agomt7621: Make ER-X-SFP factory image compatible with EP-R6
Fabian Bläse [Sat, 16 May 2020 10:23:52 +0000 (12:23 +0200)]
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>
4 years agompc85xx: restructure image receipts
David Bauer [Mon, 18 May 2020 19:10:45 +0000 (21:10 +0200)]
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>
4 years agompc85xx: rename generic subtarget to p1010
David Bauer [Mon, 18 May 2020 19:10:40 +0000 (21:10 +0200)]
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>
4 years agobcm63xx: add support for Comtrend VR-3032u
Álvaro Fernández Rojas [Thu, 14 May 2020 16:19:35 +0000 (18:19 +0200)]
bcm63xx: add support for Comtrend VR-3032u

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agobcm63xx: smp: add NAND support
Álvaro Fernández Rojas [Thu, 14 May 2020 16:19:35 +0000 (18:19 +0200)]
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>
4 years agobcm63xx-cfe: add package with CFE RAM binaries
Álvaro Fernández Rojas [Thu, 14 May 2020 16:19:35 +0000 (18:19 +0200)]
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>
4 years agokernel: mtdsplit: add BCM WFI support
Álvaro Fernández Rojas [Thu, 14 May 2020 16:19:35 +0000 (18:19 +0200)]
kernel: mtdsplit: add BCM WFI support

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agoscripts: support CFE WFI images
Álvaro Fernández Rojas [Thu, 14 May 2020 16:19:35 +0000 (18:19 +0200)]
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>
4 years agoscripts: support tags for CFE binaries
Álvaro Fernández Rojas [Thu, 14 May 2020 16:19:35 +0000 (18:19 +0200)]
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>
4 years agobase-files: switch_to_ramfs: add nand-utils
Álvaro Fernández Rojas [Thu, 14 May 2020 16:19:35 +0000 (18:19 +0200)]
base-files: switch_to_ramfs: add nand-utils

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agoath79: add support for TP-Link TL-WA901ND v4 and v5
Adrian Schmutzler [Wed, 15 Apr 2020 12:01:34 +0000 (14:01 +0200)]
ath79: add support for TP-Link TL-WA901ND v4 and v5

This ports support for the TL-WA901ND v4 and v5 from ar71xx to ath79.
They are similar to the TP9343-based TL-WR940N v3/v4 and TL-WR941ND v6.

Specifications:
  SoC: TP9343
  Flash/RAM: 4/32 MiB
  CPU: 750 MHz
  WiFi: 2.4 GHz b/g/n
  Ethernet: 1 port (100M)

Flashing instructions:
  Upload the factory image via the vendor firmware upgrade option.

Flash instruction (TFTP):
  1. Set PC to fixed ip address 192.168.0.66
  2. Download *-factory.bin image and rename it to * (see below)
  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. Wait ~30 second to complete recovery.

  * The image name for TFTP recovery is wa901ndv4_tp_recovery.bin for
  both variants.

In ar71xx, a MAC address with offset 1 was used for ethernet port.
That's probably wrong, but this commit sticks to it until we know
the correct value.

Like in ar71xx, this builds the default factory.bin with EU country
code.

Thanks to Leonardo Weiss for testing on the v5.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agolantiq: fritz 7360 v2: remove additional supported devices
Alexander Couzens [Mon, 18 May 2020 07:39:04 +0000 (09:39 +0200)]
lantiq: fritz 7360 v2: remove additional supported devices

The additional supported device isn't required since this is a new
device. Some board contains an addtional device,
those device were supported in earlier versions which used the
"old" image builder code.
To support an sysupgrade from such old version, there is the all caps
additional device.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Reviewed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agolantiq: fritz 7360 v2: rename device before it will be used
Alexander Couzens [Mon, 18 May 2020 07:45:31 +0000 (09:45 +0200)]
lantiq: fritz 7360 v2: rename device before it will be used

Use similiar naming scheme as ath79.
Since the fritz 7360 v2 was only in the tree for 2 days, there
is no compatibility for the old image.
Users which has installed the fritz 7360 v2 before this change, must
use sysupgrade --force to skip checks on the board.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Reviewed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: increase SPI frequency for ASUS RT-AC51U/RT-AC54U
Adrian Schmutzler [Sun, 17 May 2020 11:50:33 +0000 (13:50 +0200)]
ramips: increase SPI frequency for ASUS RT-AC51U/RT-AC54U

This increases the SPI frequency for both ASUS RT-AC51U and RT-AC54U.

Speed comparison tests have been performed on RT-AC54U:

- 10Mhz
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real    4m 37.78s
user    0m 0.02s
sys     2m 43.92s

- 50Mhz
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real    1m 28.34s
user    0m 0.03s
sys     0m 46.96s

- 50Mhz fast read
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real    1m 11.94s
user    0m 0.01s
sys     0m 46.94s

- 80Mhz
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real    1m 12.31s
user    0m 0.04s
sys     0m 46.96s

- 80Mhz fast read
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real    1m 12.15s
user    0m 0.02s
sys     0m 46.97s

Based on that, we took 50 MHz with fast-read, as higher frequencies
didn't yield further improvements.

For the RT-AC51U, only the final configuration was tested.

Tested-by: Zhijun You <hujy652@gmail.com> [RT-AC54U]
Tested-by: Davide Fioravanti <pantanastyle@gmail.com> [RT-AC51U]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobcm63xx: mask interrupts on init
Álvaro Fernández Rojas [Sun, 17 May 2020 12:18:42 +0000 (14:18 +0200)]
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>
4 years agoath79: add support for Ubiquiti PowerBeam 5AC 500
Roger Pueyo Centelles [Fri, 24 Apr 2020 00:22:44 +0000 (02:22 +0200)]
ath79: add support for Ubiquiti PowerBeam 5AC 500

The Ubiquiti PowerBeam 5AC 500 (PBE-5AC-500) is an outdoor 802.11ac
5 GHz bridge with a radio feed and a dish antenna.

Specifications:
 - SoC: Qualcomm Atheros QCA9558
 - RAM: 128 MB DDR2
 - Flash: 16 MB SPI NOR (mx25l12805d)
 - Ethernet: 1x 10/100/1000 Mbps Atheros 8031, 24 Vdc PoE-in
 - WiFi 5 GHz: QCA988x HW2.0 Ubiquiti target 0x4100016c chip_id 0x043222ff
 - Buttons: 1x (reset)
 - LEDs: 1x power, 1x Ethernet, 4x RSSI, all blue
 - UART: not tested

Not supported:
 - RSSI LEDs (probably through 74HC595 chip)

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: Roger Pueyo Centelles <roger.pueyo@guifi.net>
4 years agofirmware-utils: mkfwimage: add support for Ubiquiti XC devices
Roger Pueyo Centelles [Fri, 24 Apr 2020 15:46:14 +0000 (17:46 +0200)]
firmware-utils: mkfwimage: add support for Ubiquiti XC devices

This commit adds support for Ubiquiti devices based on the XC board
type, such as the PowerBeam 5AC 500. The factory binary structure is
the same as the WA type.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
4 years agoramips: add support for Linksys EA7500 v2
Davide Fioravanti [Mon, 11 May 2020 23:27:50 +0000 (01:27 +0200)]
ramips: add support for Linksys EA7500 v2

The Linksys EA7500 v2 is advertised as AC1900, but its internal
hardware is AC2600 capable.

Hardware
--------
SoC:   Mediatek MT7621AT (880 MHz, 2 cores 4 threads)
RAM:   256M (Nanya NT5CC128M16IP-DI)
FLASH: 128MB NAND (Macronix MX30LF1G18AC-TI)
ETH:   5x 10/100/1000 Mbps Ethernet (MT7530)
WIFI:
  - 2.4GHz: 1x MT7615N (4x4:4)
  - 5GHz:   1x MT7615N (4x4:4)
  - 4 antennas: 3 external detachable antennas and 1 internal
USB:
  - 1x USB 3.0
  - 1x USB 2.0
BTN:
  - 1x Reset button
  - 1x WPS button
LEDS:
  - 1x White led (Power)
  - 6x Green leds (link lan1-lan4, link wan, wps)
  - 5x Orange leds (act lan1-lan4, act wan) (working but unmodifiable)

Everything works correctly.

Installation
------------
The “factory” openwrt image can be flashed directly from OEM stock
firmware. After the flash the router will reboot automatically.

However, due to the dual boot system, the first installation could fail
(if you want to know why, read the footnotes).
If the flash succeed and you can reach OpenWrt through the web
interface or ssh, you are done.
Otherwise the router will try to boot 3 times and then will
automatically boot the OEM firmware (don’t turn off the router.
Simply wait and try to reach the router through the web interface
every now and then, it will take few minutes).

After this, you should be back in the OEM firmware.

Now you have to flash the OEM Firmware over itself using the OEM web
interface (I tested it using the FW_EA7500v2_2.0.8.194281_prod.img
downloaded from the Linksys website).

When the router reboots flash the “factory” OpenWrt image and this
time it should work.

After the OpenWrt installation you have to use the sysupgrade image
for future updates.

Restore OEM Firmware
--------------------
After the OpenWrt flash, the OEM firmware is still stored in the
second partition thanks to the dual boot system.
You can switch from OpenWrt to OEM firmware and vice-versa failing
the boot 3 times in a row:
 1) power on the router
 2) wait 15 seconds
 3) power off the router
 4) repeat steps 1-2-3 twice more.
 5) power on the router and you should be in the “other” firmware

If you want to completely remove OpenWrt from your router, switch to
the OEM firmware and then flash OEM firmware from the web interface
as a normal update.
This procedure will overwrite the OpenWrt partition.

Footnotes
---------
The Linksys EA7500-v2 has a dual boot system to avoid bricks.
This system works using 2 pair of partitions:
 1) "kernel" and "rootfs"
 2) "alt_kernel" and "alt_rootfs".
After 3 failed boot attempts, the bootloader tries to boot the other
pair of partitions and so on.

This system is managed by the bootloader, which writes a bootcount in
the s_env partition, and if successfully booted, the system add a
"zero-bootcount" after the previous value.

A system update performed from OEM firmware, writes the firmware on the
other pair of partitions and sets the bootloader to boot the new pair
of partitions editing the “boot_part” variable in the bootloader vars.
Effectively it's a quick and safe system to switch the selected boot
partition.

Another way to switch the boot partition is:
 1) power on the router
 2) wait 15 seconds
 3) power off the router
 4) repeat steps 1-2-3 twice more.
 5) power on the router and you should be in the “other” firmware

In this OpenWrt port, this dual boot system is partially working
because the bootloader sets the right rootfs partition in the cmdline
but unfortunately OpenWrt for ramips platform overwrites the cmdline
so is not possible to detect the right rootfs partition.

Because all of this, I preferred to simply use the first pair of
partitions and set read-only the other pair.

However this solution is not optimal because is not possible to know
without opening the case which is the current booted partition.
Let’s take for example a router booting the OEM firmware from the first
pair of partitions. If we flash the OpenWrt image, it will be written
on the second pair. In this situation the router will bootloop 3 times
and then will automatically come back to the first pair of partitions
containg the OEM firmware.
In this situation, to flash OpenWrt correctly is necessary to switch
the booting partition, flashing again the OEM firmware over itself.
At this point the OEM firmware is on both pair of partitions but the
current booted pair is the second one.
Now, flashing the OpenWrt factory image will write the firmware on
the first pair and then will boot correctly.

If this limitation in the ramips platform about the cmdline will be
fixed, the dual boot system can also be implemented in OpenWrt with
almost no effort.

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
Co-Developed-by: Jackson Lim <jackcolentern@gmail.com>
Signed-off-by: Jackson Lim <jackcolentern@gmail.com>
4 years agomtd: add linksys_bootcount for ramips
Davide Fioravanti [Mon, 11 May 2020 23:20:47 +0000 (01:20 +0200)]
mtd: add linksys_bootcount for ramips

Reset bc is needed for Linksys EA7500 v2's dual boot.

Size impact (tested with Linksys EA7500 v2 @ mt7621):

mtd_25_mipsel_24kc.ipk: 13174 -> 13628 (454 bytes)
initramfs: 3660350 -> 3660688 (338 bytes)

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
[add size impact information]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: add support for netis WF2770
Sungbo Eo [Mon, 11 Nov 2019 16:23:07 +0000 (01:23 +0900)]
ramips: add support for netis WF2770

netis WF2770 is a 2.4/5GHz band AC750 router, based on MediaTek MT7620A.

Specifications:
- SoC: MT7620A
- RAM: DDR2 64MB
- Flash: SPI NOR 16MB
- WiFi:
  - 2.4GHz: SoC internal
  - 5GHz: MT7610EN
- Ethernet: 5x 10/100/1000Mbps
  - Switch: MT7530BU
- UART:
  - J2: 3.3V, RX, TX, GND (3.3V is the square pad) / 57600 8N1

MAC addresses in factory partition:
0x0004: LAN, WiFi 2.4GHz (label_mac-6)
0x0028: not used (label_mac-1)
0x002e: WAN (label_mac)
0x8004: WiFi 5GHz (label_mac+2)

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:
1.  Perform sysupgrade with stock image.

Reviewed-by: Pawel Dembicki <paweldembicki@gmail.com>
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoramips: add support for ASUS RT-AC54U
Zhijun You [Thu, 14 May 2020 11:37:40 +0000 (19:37 +0800)]
ramips: add support for ASUS RT-AC54U

Specification:

- CPU: MTK MT7620A
- RAM: 64MB
- ROM: 16MB SPI Flash Macronix MX25L12835E
- WiFi1: MediaTek MT7620A
- WiFi2: MediaTek MT7612E
- Button: reset, wps
- LED: 9 LEDs:Power, WiFi 2.4G,WiFi 5G, USB, LAN1, LAN2, LAN3, LAN4, WAN
- Ethernet: 5 ports, 4 LAN + 1 WAN
- Other: 1x UART 1x USB2.0

Installation:

   Update using ASUS Firmware Restoration Tool:

1. Download the ASUS Firmware Restoration Tool but don't open it yet
2. Unplug your computer from the router
3. Put the router into Rescue Mode by: turning the power off, using a pin
   to press and hold the reset button, then turning the router back on while
   keeping the reset button pressed for ~5 secs until the power LED starts
   flashing slowly (which indicates the router has entered Rescue Mode)
4. Important (if you don't do this next step the Asus Firmware
   Restoration Tool will wrongly assume that the router is not in Rescue Mode
   and will refuse to flash it): go to the Windows Control Panel and
   temporarily disable ALL other network adapters except the one you will use
   to connect your computer to the router
5. For the single adapter you left enabled, temporarily give it the
   static IP 192.168.1.10 and the subnet mask 255.255.255.0
6. Connect a LAN cable between your computer (make sure to use the
   Ethernet port of the adapter you've just set up) and port 1 of the router
   (not the router's WAN port)
7. Rename sysupgrade.bin to factory.trx
8. Open the Asus Firmware Restoration Tool, locate factory.trx and click
   upload (if Windows shows a compatibility prompt, confirm that the tool worked fine)
9. Flashing and reboot is finished when the power LED stops blinking and
   stays on

MAC assignment based on vendor firmware:

2g    0x4 label
5g    0x8004 label +4
lan   0x22 label +4
wan   0x28 label

Signed-off-by: Zhijun You <hujy652@gmail.com>
[rebased due to DTSI patch, minor commit message adjustments, fix
label MAC address (lan->wan), do spi frequency increase separately]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: create DTSI for ASUS RT-AC51U and RT-AC54U
Adrian Schmutzler [Thu, 14 May 2020 13:04:24 +0000 (15:04 +0200)]
ramips: create DTSI for ASUS RT-AC51U and RT-AC54U

This creates a DTSI for the ASUS RT-AC51U and the upcoming RT-AC54U,
as they are quite similar.

White at it, drop the unneeded "status = okay" for ethernet.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agolantiq: drop outdated kernel version switches from patches-5.4
Adrian Schmutzler [Wed, 13 May 2020 13:01:58 +0000 (15:01 +0200)]
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>
4 years agobcm27xx: drop outdated kernel version switches from patches-5.4
Adrian Schmutzler [Wed, 13 May 2020 12:50:56 +0000 (14:50 +0200)]
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>
4 years agogeneric: drop outdated kernel version switches in local drivers
Adrian Schmutzler [Wed, 13 May 2020 12:47:48 +0000 (14:47 +0200)]
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>
4 years agokernel: drop outdated kernel version switches for local code
Adrian Schmutzler [Wed, 13 May 2020 12:00:57 +0000 (14:00 +0200)]
kernel: drop outdated kernel version switches for local code

This drops kernel version switches for versions not supported by
OpenWrt master at the moment. This only adjusts local code, but
doesn't touch patches to existing external packages.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: drop non-existant ralink,port-map for Ravpower WD03
Adrian Schmutzler [Thu, 14 May 2020 14:00:14 +0000 (16:00 +0200)]
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: 5ef79af4f80f ("ramips: add support for Ravpower WD03")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: mt7620: tidy up ethernet node in DTS files
Adrian Schmutzler [Thu, 14 May 2020 13:41:31 +0000 (15:41 +0200)]
ramips: mt7620: tidy up ethernet node in DTS files

This tidies up the ethernet node in mt7620 DTS files by:

- removing unnecessary status as it is not disabled
- reordering properties consistently
- adding empty lines to enhance readability

This should make comparison and reviewing new PRs based on C/P easier.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agohostapd: backport wolfssl bignum fixes
Daniel Golle [Sat, 16 May 2020 21:23:41 +0000 (23:23 +0200)]
hostapd: backport wolfssl bignum fixes

crypto_bignum_rand() use needless time-consuming filtering
which resulted in SAE no longer connecting within time limits.
Import fixes from hostap upstream to fix that.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agogeneric: platform/mikrotik: fix LZOR support
Thibaut VARÈNE [Sat, 16 May 2020 15:12:06 +0000 (17:12 +0200)]
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")
4 years agolantiq/xrx200: add support for the Fritzbox 7360v2
Yushi Nishida [Fri, 3 Apr 2020 17:21:06 +0000 (19:21 +0200)]
lantiq/xrx200: add support for the Fritzbox 7360v2

This commit adds support for the Fritzbox 7360v2

CPU: VR9 500MHz Cores: 2
RAM: 128 MB
NOR-Flash: 32 MB
WLAN: AR9287-BL1A

DECT is not working.

Thanks Sebastian Ortwein for adding 7360SL.
The dts file is derived from avm_fritz7360sl.dts.

Firmware can be flashed with this method:

1.) Set your client IP to 192.168.178.2
2.) Power on your your Fritzbox and connect to 192.168.178.1
    via ftp in the first 5 seconds.
3.) login with adam2/adam2
4.) type into the ftp prompt:

passive
binary
debug 1
quote MEDIA FLSH // (not FLASH)
put openwrt-lantiq-xrx200-avm_fritz7360v2-squashfs-sysupgrade.bin mtd1
// using the correct location for the squashfs-sysupgrade-firmware.bin

5.) wait till red light flashing turns off.
6.) type: exit

Run tested with kernel 4.19 and 5.4 on Fritzbox 7360 V2.

Issue:
Ethernet speed is slow, (iperf between a Xiaomi mir3g
and this router results in <80Mbits throughput
with a wired cable when using the gbit ports.)

Signed-off-by: Yushi Nishida <kyro2man@gmx.net>
4 years agoprocd: jail: fix segfault and add console feature
Daniel Golle [Mon, 13 Apr 2020 02:19:01 +0000 (03:19 +0100)]
procd: jail: fix segfault and add console feature

 2e73848 jail: SIGSEGV must not be forwarded to the child process
 7e150f6 jail: unnamed jails can not have netns (fix segfault)
 1ab539b jail: add option to provide /dev/console to containers

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoath79: increase spi frequency on tp-link tl-wr1043nd v2
Aleksander Jan Bajkowski [Sat, 18 Apr 2020 12:40:08 +0000 (14:40 +0200)]
ath79: increase spi frequency on tp-link tl-wr1043nd v2

Increase SPI frequency to 33.333 MHz. It's maximum frequency supported
by SPI Flash memory chip without Fast read opcode.

Before:
$ time dd if=/dev/mtd1 of=/dev/null bs=8M
0+1 records in
0+1 records out
real 0m 3.21s
user 0m 0.00s
sys 0m 3.21s

After:
$ time dd if=/dev/mtd1 of=/dev/null bs=8M
0+1 records in
0+1 records out
real 0m 2.52s
user 0m 0.00s
sys 0m 2.52s

Tested on TP-Link TL-WR1043ND V2.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
4 years agobcm63xx: periph_intc: report effective affinity
Daniel Gonzalez Cabanelas [Thu, 14 May 2020 16:10:12 +0000 (18:10 +0200)]
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>
4 years agobcm63xx: ext_intc: fix warning
Álvaro Fernández Rojas [Thu, 14 May 2020 14:14:52 +0000 (16:14 +0200)]
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>
4 years agobcm63xx: periph_intc: fix warning
Álvaro Fernández Rojas [Thu, 14 May 2020 14:23:21 +0000 (16:23 +0200)]
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>
4 years agobcm63xx: redboot: fix warning
Álvaro Fernández Rojas [Thu, 14 May 2020 14:10:40 +0000 (16:10 +0200)]
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>
4 years agobcm63xx: bcm6362: fix pinctrl bug
Álvaro Fernández Rojas [Thu, 14 May 2020 12:57:58 +0000 (14:57 +0200)]
bcm63xx: bcm6362: fix pinctrl bug

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agobcm63xx: image: remove unused definition
Álvaro Fernández Rojas [Thu, 14 May 2020 13:22:48 +0000 (15:22 +0200)]
bcm63xx: image: remove unused definition

KERNEL_ENTRY isn't used by lzma-loader.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agobcm63xx: remove linux 4.14 support
Álvaro Fernández Rojas [Thu, 14 May 2020 12:51:58 +0000 (14:51 +0200)]
bcm63xx: remove linux 4.14 support

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agokernel: bump 5.4 to 5.4.41
Koen Vandeputte [Thu, 14 May 2020 10:55:32 +0000 (12:55 +0200)]
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>
4 years agokernel: bump 4.19 to 4.19.123
Koen Vandeputte [Thu, 14 May 2020 10:14:24 +0000 (12:14 +0200)]
kernel: bump 4.19 to 4.19.123

Refreshed all patches.

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agoglibc: update to latest 2.31 commit
Hans Dedecker [Wed, 13 May 2020 19:52:47 +0000 (21:52 +0200)]
glibc: update to latest 2.31 commit

1094741224 aarch64: Accept PLT calls to __getauxval within libc.so
a98b8b221c NEWS: Mention fixes for BZ 25810/25896/25902/25966
4c833bbebe x86-64: Use RDX_LP on __x86_shared_non_temporal_threshold [BZ #25966]
3b9ceb3320 NEWS: Mention bug 25639 fixed in 2.31 branch
bb44fe7711 oc_FR locale: Fix spelling of April (bug 25639)
f2ac792047 oc_FR locale: Fix spelling of Thursday (bug 25639)
18fdba553d Add a C wrapper for prctl [BZ #25896]
7c9e054afd powerpc: Rename argN to _argN in LOADARGS_N [BZ #25902]
9c5ae39a64 Add C wrappers for process_vm_readv/process_vm_writev [BZ #25810]
63c3696a4a Mark unsigned long arguments with U in more syscalls [BZ #25810]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
4 years agoprocd: replace backticks by $(...)
Adrian Schmutzler [Sun, 10 May 2020 14:47:53 +0000 (16:47 +0200)]
procd: replace backticks by $(...)

This replaces deprecated backticks by more versatile $(...) syntax.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agowwan: replace backticks by $(...)
Adrian Schmutzler [Sun, 10 May 2020 14:47:52 +0000 (16:47 +0200)]
wwan: replace backticks by $(...)

This replaces deprecated backticks by more versatile $(...) syntax.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agocomgt: replace backticks by $(...)
Adrian Schmutzler [Sun, 10 May 2020 14:47:50 +0000 (16:47 +0200)]
comgt: replace backticks by $(...)

This replaces deprecated backticks by more versatile $(...) syntax.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agonetifd: replace backticks by $(...)
Adrian Schmutzler [Sun, 10 May 2020 14:47:49 +0000 (16:47 +0200)]
netifd: replace backticks by $(...)

This replaces deprecated backticks by more versatile $(...) syntax.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agomac80211: replace backticks by $(...)
Adrian Schmutzler [Sun, 10 May 2020 14:47:48 +0000 (16:47 +0200)]
mac80211: replace backticks by $(...)

This replaces deprecated backticks by more versatile $(...) syntax.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoltq-vdsl-fw: replace backticks by $(...)
Adrian Schmutzler [Sun, 10 May 2020 14:47:47 +0000 (16:47 +0200)]
ltq-vdsl-fw: replace backticks by $(...)

This replaces deprecated backticks by more versatile $(...) syntax.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoltq-vdsl-app: replace backticks by $(...)
Adrian Schmutzler [Sun, 10 May 2020 14:47:45 +0000 (16:47 +0200)]
ltq-vdsl-app: replace backticks by $(...)

This replaces deprecated backticks by more versatile $(...) syntax.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agolibjson-c: backport security fixes
Robert Marko [Tue, 12 May 2020 20:18:33 +0000 (22:18 +0200)]
libjson-c: backport security fixes

This backports upstream fixes for the out of bounds write vulnerability in json-c.
It was reported and patches in this upstream PR: https://github.com/json-c/json-c/pull/592

Addresses CVE-2020-12762

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Signed-off-by: Luka Perkov <luka.perkov@sartura.hr>
[bump PKG_RELEASE]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agoipq40xx: replace "ok" with "okay" for status in DTS files
Adrian Schmutzler [Mon, 11 May 2020 09:52:34 +0000 (11:52 +0200)]
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>
4 years agobcm63xx: replace "ok" with "okay" for status in DTS files
Adrian Schmutzler [Mon, 11 May 2020 09:49:43 +0000 (11:49 +0200)]
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>
4 years agobcm63xx: use generic diag.sh
Adrian Schmutzler [Mon, 11 May 2020 22:36:15 +0000 (00:36 +0200)]
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>
4 years agoar71xx: mikrotik: mach-rbspi.c remove wlan id
Thibaut VARÈNE [Fri, 8 May 2020 11:46:42 +0000 (13:46 +0200)]
ar71xx: mikrotik: mach-rbspi.c remove wlan id

Following on the previous commit, this patch removes useless id argument
from rbspi_wlan_init().

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agoar71xx: mikrotik: bypass id check in __rb_get_wlan_data()
Thibaut VARÈNE [Fri, 8 May 2020 11:39:10 +0000 (13:39 +0200)]
ar71xx: mikrotik: bypass id check in __rb_get_wlan_data()

The id parameter in __rb_get_wlan_data() was incorrectly used on the
assumption that id "0" would always be tied to ath9k with RLE encoding
and positive id (in fact, only id "1" was valid) would always be tied to
("external") ath10k with LZO encoding.

Newer hardware revisions of supported devices prove this assumption to
be invalid, with ath9k caldata being now wrapped in MAGIC_ERD and LZO
compressed, so disable this check to allow newer hardware to correctly
decode caldata for ath9k. Since ath10k caldata is no longer pulled from
this implementation, this commit also disables the publication in sysfs
to avoid wasting memory.

Note: this patch assumes that ath9k caldata is never stored with the new
"LZOR" encoding scheme found on some ath10k devices.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agokernel: bump 5.4 to 5.4.40
Koen Vandeputte [Mon, 11 May 2020 11:17:22 +0000 (13:17 +0200)]
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>
4 years agokernel: bump 4.19 to 4.19.122
Koen Vandeputte [Mon, 11 May 2020 10:07:06 +0000 (12:07 +0200)]
kernel: bump 4.19 to 4.19.122

Refreshed all patches.

Remove upstreamed:
- 551-loop-Better-discard-support-for-block-devices.patch

Fixed:
- CVE-2020-11884
- CVE-2020-12114
- CVE-2019-3016
- CVE-2020-11669

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: bump 4.14 to 4.14.180
Koen Vandeputte [Mon, 11 May 2020 09:27:02 +0000 (11:27 +0200)]
kernel: bump 4.14 to 4.14.180

Refreshed all patches.

Fixes:
- CVE-2020-12114
- CVE-2020-11669

Compile-tested on: pistachio
Runtime-tested on: none

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agobcm63xx: loader-lzma: use default lzma
Álvaro Fernández Rojas [Sun, 3 May 2020 15:19:03 +0000 (17:19 +0200)]
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>
4 years agobcm63xx: image: rename LOADADDR to KERNEL_LOADADDR
Álvaro Fernández Rojas [Mon, 6 Apr 2020 14:56:19 +0000 (16:56 +0200)]
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>
4 years agofstools: blockd: fix segfault triggered by non-autofs mounts
Daniel Golle [Tue, 12 May 2020 09:48:50 +0000 (10:48 +0100)]
fstools: blockd: fix segfault triggered by non-autofs mounts

Program received signal SIGSEGV, Segmentation fault.
main_autofs (argv=<optimized out>, argc=<optimized out>)
    at fstools-2020-05-06-eec16e2f/block.c:1193
1193:    if (!m->autofs && (mp = find_mount_point(pr->dev))) {

Fixes: c3a43753b9 ("fstools: update to the latest version")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agogeneric: add MikroTik hw bit description
Koen Vandeputte [Mon, 11 May 2020 14:48:51 +0000 (16:48 +0200)]
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>
4 years agoipq40xx: add support for Aruba AP-365
David Bauer [Thu, 7 May 2020 15:50:57 +0000 (17:50 +0200)]
ipq40xx: add support for Aruba AP-365

Hardware
--------
SoC:   Qualcomm IPQ4029
RAM:   512M DDR3
FLASH: - 128MB NAND (Macronix MX30LF1G18AC)
       - 4MB SPI-NOR (Macronix MX25R3235F)
TPM:   Atmel AT97SC3203
BLE:   Texas Instruments CC2540T
       attached to ttyMSM0
ETH:   Atheros AR8035
LED:   System (red / green / amber)
BTN:   Reset

The USB port on the device is (in contrast to other Aruba boards) real
USB. The AP uses a CP2101 USB TTY converter on the board.

Console baudrate is 9600 8n1.

To enable a full list of commands in the U-Boot "help" command, execute
the literal "diag" command.

Installation
------------

1. Get the OpenWrt initramfs image. Rename it to ipq40xx.ari and put it
   into the TFTP server root directory. Configure the TFTP server to
   be reachable at 192.168.1.75/24. Connect the machine running the TFTP
   server to the ethernet port of the access point.

2. Connect to the serial console. Interrupt autobooting by pressing
   Enter when prompted.

3. Configure the bootargs and bootcmd for OpenWrt.
   $ setenv bootargs_openwrt "setenv bootargs console=ttyMSM1,9600n8"
   $ setenv nandboot_openwrt "run bootargs_openwrt; ubi part aos1;
     ubi read 0x85000000 kernel; bootm 0x85000000"
   $ setenv ramboot_openwrt "run bootargs_openwrt;
     setenv ipaddr 192.168.1.105; setenv serverip 192.168.1.75;
     netget; set fdt_high 0x87000000; bootm"
   $ setenv bootcmd "run nandboot_openwrt"
   $ saveenv

4. Load OpenWrt into RAM:
   $ run ramboot_openwrt

5. After OpenWrt booted, transfer the OpenWrt sysupgrade image to the
   /tmp folder on the device.

6. Flash OpenWrt:
   Make sure you use the mtd partition with the label "ubi" here!

   $ ubidetach -p /dev/mtd1
   $ ubiformat /dev/mtd1
   $ sysupgrade -n /tmp/openwrt-sysupgrade.bin

To go back to the stock firmware, simply reset the bootcmd in the
bootloader to the original value:

  $ setenv bootcmd "boot"
  $ saveenv

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agoumdns: re-enable address-of-packed-member warning
Kevin Darbyshire-Bryant [Mon, 4 May 2020 16:16:10 +0000 (17:16 +0100)]
umdns: re-enable address-of-packed-member warning

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
4 years agodnsmasq: hotplug script tidyup
Kevin Darbyshire-Bryant [Sun, 10 May 2020 12:47:05 +0000 (13:47 +0100)]
dnsmasq: hotplug script tidyup

Hotplug scripts are sourced so the #!/bin/sh is superfluous/deceptive.
Re-arrange script to only source 'procd' if we get to the stage of
needing to signal the process, reduce hotplug processing load a little.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
4 years agobcm27xx: label to boot partition
Andrey Kunitsyn [Sat, 9 May 2020 11:39:51 +0000 (14:39 +0300)]
bcm27xx: label to boot partition

Get fat partition name allow easy partition identification
for user.

Signed-off-by: Andrey Kunitsyn <blackicebox@gmail.com>
4 years agoramips: add support for LB-Link BL-W1200
Pawel Dembicki [Fri, 17 Apr 2020 20:31:11 +0000 (22:31 +0200)]
ramips: add support for LB-Link BL-W1200

The BL-W1200 Wireless Router is based on the MT7620A SoC.

Specification:

- MediaTek MT7620A (580 Mhz)
- 64 MB of RAM
- 8 MB of FLASH
- 1x 802.11bgn radio
- 1x 802.11ac radio (MT7612E)
- 5x 10/100/1000 Mbps Ethernet (MT7530)
- 2x external, non-detachable antennas (Wifi 2.4G/5G)
- 1x USB 2.0
- UART (R2) on PCB (57600 8n1)
- 9x LED (1 GPIO controlled), 1x button
- u-Boot bootloader

Known issues:
- No status LED. Used WPS LED during boot/failsafe/sysupgrade.

Installation:
1. Apply initramfs image via factory web-gui.
2. Install sysupgrade image.

How to revert to OEM firmware:
- sysupgrade -n -F stock_firmware.bin

Reviewed-by: Sungbo Eo <mans0n@gorani.run>
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
4 years agomac80211: distance config: allow "auto" as a value
Ali MJ Al-Nasrawy [Wed, 18 Sep 2019 17:14:42 +0000 (20:14 +0300)]
mac80211: distance config: allow "auto" as a value

The user can now enable the ACK timeout estimation algorithm (dynack)
for drivers that support it.
It is also expected that the distance config accepts the same values as:
$ iw phyX set distance XXX

Signed-off-by: Ali MJ Al-Nasrawy <alimjalnasrawy@gmail.com>
4 years agoramips: dts: fix incorrect flash reg property
Sungbo Eo [Thu, 7 May 2020 14:34:22 +0000 (23:34 +0900)]
ramips: dts: fix incorrect flash reg property

Most work was done in commit 021c8936584d ("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>
4 years agoramips: dts: use generic node name for flash
Sungbo Eo [Thu, 7 May 2020 14:15:27 +0000 (23:15 +0900)]
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>
4 years agomvebu: uDPU: switch default kernel and U-Boot PHY mode
Jakov Petrina [Fri, 24 Apr 2020 12:38:58 +0000 (14:38 +0200)]
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>
4 years agobase-files: upgrade: fix indent
Javier Marcet [Sat, 4 Apr 2020 15:50:41 +0000 (17:50 +0200)]
base-files: upgrade: fix indent

Use same indent as for the rest of the file.

Signed-off-by: Javier Marcet <javier@marcet.info>
[add commit description]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: dts: add missing 'serial0' alias for TP-Link TL-MR3040v2
Lech Perczak [Thu, 7 May 2020 22:41:36 +0000 (00:41 +0200)]
ath79: dts: add missing 'serial0' alias for TP-Link TL-MR3040v2

Out of all devices currently supported based on AR9331 chipset,
this one had the 'serial0' alias missing. Add it to fix setting of
/dev/console and login shell on the onboard UART.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
4 years agoramips: tidy up image subtarget Makefiles
Sungbo Eo [Fri, 8 May 2020 16:21:06 +0000 (01:21 +0900)]
ramips: tidy up image subtarget Makefiles

- use tab indent in image build recipes for consistency
- harmonize line wrapping

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
[use different line wrapping for one recipe]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: tidy up image Makefile
Sungbo Eo [Fri, 8 May 2020 16:20:53 +0000 (01:20 +0900)]
ramips: tidy up image Makefile

- sort recipes alphabetically
- simplify subtarget include directives

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoramips: simplify palmbus/{i2c,spi} in device DTS files
Sungbo Eo [Fri, 8 May 2020 12:00:48 +0000 (21:00 +0900)]
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>
4 years agoramips: use hex notation for *-mtd-eeprom property
Sungbo Eo [Thu, 7 May 2020 13:13:27 +0000 (22:13 +0900)]
ramips: use hex notation for *-mtd-eeprom property

Change "0" to "0x0" for consistency. This is an extension of commit 34abfb6e91d1
("ramips: convert mediatek,mtd-eeprom from decimal to hex notation").

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agogeneric: fix patching error on kernel 5.4
Koen Vandeputte [Fri, 8 May 2020 14:48:19 +0000 (16:48 +0200)]
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: 2976e423dc6e ("generic: routerboot partition build bits")
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agoramips/mt7621: mikrotik: don't use mtd-mac-address in DTS
Thibaut VARÈNE [Mon, 20 Apr 2020 12:35:57 +0000 (14:35 +0200)]
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>
4 years agoath79/mikrotik: load caldata via sysfs loader
Thibaut VARÈNE [Sun, 19 Apr 2020 15:17:03 +0000 (17:17 +0200)]
ath79/mikrotik: load caldata via sysfs loader

This commit takes advantages of base-files 220 which introduces routines
to perform caldata loading directly via the kernel sysfs loader helper.
This has the benefits of not wasting flash space to store caldata.

Memory footprint is reduced to the bare minimum: for devices that don't
need MAC patching, the caldata is loaded directly, for devices that do
need MAC patching, the caldata is extracted to /tmp, patched and then
loaded.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agopackage/base-files: add caldata_sysfsload_from_file()
Thibaut VARÈNE [Mon, 20 Apr 2020 11:48:02 +0000 (13:48 +0200)]
package/base-files: add caldata_sysfsload_from_file()

This routine enables loading caldata binary via the kernel sysfs loader

See https://www.kernel.org/doc/html/v4.19/driver-api/firmware/fallback-mechanisms.html

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agopackage/base-files: caldata: allow setting target file
Thibaut VARÈNE [Mon, 20 Apr 2020 11:48:02 +0000 (13:48 +0200)]
package/base-files: caldata: allow setting target file

This will enable platforms to extract caldata to an arbitrary file,
or patch mac in an abitrary file.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agoar71xx/mikrotik: ath10k: use new sysfs driver
Thibaut VARÈNE [Sun, 19 Apr 2020 14:04:42 +0000 (16:04 +0200)]
ar71xx/mikrotik: ath10k: use new sysfs driver

Fetch ath10k calibration data from new mikrotik sysfs driver

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agopackage/utils: remove rbextract
Thibaut VARÈNE [Sun, 19 Apr 2020 09:46:57 +0000 (11:46 +0200)]
package/utils: remove rbextract

Rationale:
1/ This tool is no longer necessary following the implementation of a
   sysfs driver
2/ The upstream author, Robert Marko, stated[1] that this tool had been
   taken from his tree in an unfinished state not suitable for merging

[1] https://github.com/openwrt/openwrt/pull/2850#issuecomment-610277863

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agoath79/mikrotik: use standard caldata functions
Thibaut VARÈNE [Sun, 19 Apr 2020 09:42:45 +0000 (11:42 +0200)]
ath79/mikrotik: use standard caldata functions

With the implementation of a sysfs interface to access WLAN data, this
target no longer needs a special wrapper to extract caldata.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agoath79/mikrotik: don't use mtd-mac-address in DTS
Thibaut VARÈNE [Sun, 19 Apr 2020 10:09:20 +0000 (12:09 +0200)]
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>
4 years agogeneric: platform/mikrotik: support LZOR encoding
Thibaut VARÈNE [Fri, 27 Mar 2020 13:33:48 +0000 (14:33 +0100)]
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>
4 years agoramips/mt7621: enable mikrotik platform driver
Thibaut VARÈNE [Tue, 28 Apr 2020 13:57:41 +0000 (15:57 +0200)]
ramips/mt7621: enable mikrotik platform driver

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agoar71xx/mikrotik: enable mikrotik platform driver
Thibaut VARÈNE [Wed, 25 Mar 2020 10:45:51 +0000 (11:45 +0100)]
ar71xx/mikrotik: enable mikrotik platform driver

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agoath79/mikrotik: enable mikrotik platform driver
Thibaut VARÈNE [Tue, 24 Mar 2020 21:31:17 +0000 (22:31 +0100)]
ath79/mikrotik: enable mikrotik platform driver

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agogeneric: mikrotik platform build bits
Thibaut VARÈNE [Tue, 24 Mar 2020 21:28:26 +0000 (22:28 +0100)]
generic: mikrotik platform build bits

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
4 years agogeneric: routerboot sysfs platform driver
Thibaut VARÈNE [Sun, 22 Mar 2020 20:46:42 +0000 (21:46 +0100)]
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>
4 years agoramips: mikrotik: use routerbootpart partitions
Thibaut VARÈNE [Sat, 21 Mar 2020 21:54:53 +0000 (22:54 +0100)]
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>