openwrt/staging/ldir.git
2 years agomt76: update to the latest version
Felix Fietkau [Tue, 15 Mar 2022 09:45:38 +0000 (10:45 +0100)]
mt76: update to the latest version

378b638c70c0 mt76: mt7915: fix unused variable with testmode disabled
4f4309542862 mt76: mt7915: only use u32_get_bits with constant value
de06d828a0bf mt76: mt7921: fix injected MPDU transmission to not use HW A-MSDU
c007ba3ec7a9 mt76: mt7915: simplify conditional
64c74dc93f68 mt76: fix dfs state issue with 160 MHz channels
d3471b0d92c1 mt76: mt7615: honor ret from mt7615_mcu_restart in mt7663u_mcu_init
f4c87b32e0e9 mt76: mt7663u: introduce mt7663u_mcu_power_on routine
82de5987af54 mt76: mt7921: fix up the monitor mode
c501df4086e1 mt76: mt7921: use mt76_hw instead of open coding it
594ee03d5a11 mt76: mt7915: fix DFS no radar detection event
d8d2b383a241 mt76: split single ldpc cap bit into bits
0f336fba20fe mt76: mt7921: make mt7921_init_tx_queues static
00a066ce9914 mt76: mt7921: fix xmit-queue dump for usb and sdio
d6d2479568b2 mt76: mt7921: fix mt7921_queues_acq implementation
d17b74420199 mt76: fix monitor mode crash with sdio driver
c374559eae6f mt76: mt7915: allow beaconing on all chains
b219af63b9ce mt76: connac: add 6 GHz support for wtbl and starec configuration
630384cb3246 mt76: mt7915: add 6 GHz support
28ff1bddc7e8 mt76: mt7915: fix eeprom fields of txpower init values
d4b226cc15e7 mt76: mt7915: add txpower init for 6GHz
31e820d4ce4b mt76: mt7921: get rid of mt7921_wait_for_mcu_init declaration
9fee1faf6028 mt76: mt7915: check for devm_pinctrl_get() failure
31a970940b97 mt76: connac: make read-only array ba_range static const
e49af7036bbc mt76: use le32/16_get_bits() whenever possible
0664d39039c2 mt76: fix invalid rssi report
f16fc9d96105 mt76: mt7915: set band1 TGID field in tx descriptor
67ce2708dcef mt76: mt7915: fix beamforming mib stats
6e899abec818 mt76: mt7915: fix phy cap in mt7915_set_stream_he_txbf_caps()
c6780c85cff2 mt76: mt7915: fix typos in comments
aa6eadc09a83 mt76: usb: add req_type to ___mt76u_rr signature
74a519ab8353 mt76: usb: add req_type to ___mt76u_wr signature
2651d2c66cbd mt76: usb: introduce __mt76u_init utility routine
c03e095eee27 mt76: mt7921: disable runtime pm for usb
41085cdcd7e3 mt76: mt7921: update mt7921_skb_add_usb_sdio_hdr to support usb
e700aba6bae3 mt76: mt7921: move mt7921_usb_sdio_tx_prepare_skb in common mac code
056b7f4ebcc6 mt76: mt7921: move mt7921_usb_sdio_tx_complete_skb in common mac code.
0abf682a3def mt76: mt7921: move mt7921_usb_sdio_tx_status_data in mac common code.
b0c60d5252de mt76: mt7921: add mt7921u driver
053668acdaf8 mt76: mt7921: move mt7921_init_hw in a dedicated work

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agokernel: include CONFIG_KEXEC_SIG in configs
Philip Prindeville [Tue, 26 Oct 2021 19:47:17 +0000 (13:47 -0600)]
kernel: include CONFIG_KEXEC_SIG in configs

Seeing failure to build because of missing symbols related to provisioning
CONFIG_KEXEC and signed images.  Without this, if you set
CONFIG_KERNEL_KEXEC=y and try to build, target/linux will hang at:

scripts/kconfig/conf  --syncconfig Kconfig
...
kexec system call (KEXEC) [Y/n/?] y
kexec file based system call (KEXEC_FILE) [Y/n/?] y
Verify kernel signature during kexec_file_load() syscall (KEXEC_SIG) [N/y/?] (NEW)

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
2 years agokernel: backport DSA patches fixing null-pointer dereference for 5.10
Marek Behún [Mon, 14 Mar 2022 17:31:30 +0000 (18:31 +0100)]
kernel: backport DSA patches fixing null-pointer dereference for 5.10

Backport patches
  381a730182f1 ("net: dsa: Move VLAN filtering syncing out of dsa_switch_bridge_leave")
  108dc8741c20 ("net: dsa: Avoid cross-chip syncing of VLAN filtering")
from upstream (currently in net-next) to fix null-pointer dereference.

Signed-off-by: Marek Behún <kabel@kernel.org>
2 years agomac80211: headers: fix lockdep_assert_not_held()
Petr Štetiar [Fri, 11 Mar 2022 19:56:02 +0000 (20:56 +0100)]
mac80211: headers: fix lockdep_assert_not_held()

LOCK_STATE_HELD define was omitted during backport of
lockdep_assert_not_held() which leads to build failures of kernels with
CONFIG_LOCKDEP=y:

 backports-5.15.8-1/backport-include/linux/lockdep.h:16:47: error: 'LOCK_STATE_HELD' undeclared (first use in this function)

Fix it by adding missing LOCK_STATE_HELD define.

References: PR#9373
Reported-by: Oskari Rauta <oskari.rauta@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2 years agoath79: add support for Araknis AN-700-AP-I-AC
Michael Pratt [Wed, 8 Sep 2021 21:00:00 +0000 (17:00 -0400)]
ath79: add support for Araknis AN-700-AP-I-AC

FCC ID: 2AG6R-AN700APIAC

Araknis AN-700-AP-I-AC is an indoor wireless access point with
1 Gb ethernet port, dual-band wireless,
internal antenna plates, and 802.3at PoE+

this board is a Senao device:
the hardware is equivalent to EnGenius EAP1750
the software is modified Senao SDK which is based on openwrt and uboot
including image checksum verification at boot time,
and a failsafe image that boots if checksum fails

**Specification:**

  - QCA9558 SOC MIPS 74kc, 2.4 GHz WMAC, 3x3
  - QCA9880 WLAN PCI card, 5 GHz, 3x3, 26dBm
  - AR8035-A PHY RGMII GbE with PoE+ IN
  - 40 MHz clock
  - 16 MB FLASH MX25L12845EMI-10G
  - 2x 64 MB RAM NT5TU32M16
  - UART console J10, populated, RX shorted to ground
  - 4 antennas 5 dBi, internal omni-directional plates
  - 4 LEDs power, 2G, 5G, wps
  - 1 button reset

  NOTE: all 4 gpio controlled LEDS are viewed through the same lightguide
therefore, the power LED is off for default state

**MAC addresses:**

  MAC address labeled as ETH
  Only one Vendor MAC address in flash at art 0x0

  eth0 ETH  *:xb art 0x0
  phy1 2.4G *:xc ---
  phy0 5GHz *:xd ---

**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 RX pin at J10

**Installation:**

  Method 1: Firmware upgrade page:

    (if you cannot access the APs webpage)
    factory reset with the reset button
    connect ethernet to a computer
    OEM webpage at 192.168.20.253
    username and password 'araknis'
    make a new password, login again...

    Navigate to 'File Management' page from left pane
    Click Browse and select the factory.bin image
    Upload and verify checksum
    Click Continue to confirm
    wait about 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.20.253
    Select the factory.bin image and upload
    wait about 3 minutes

**Return to OEM:**

  Method 1: Serial to load Failsafe webpage (above)

  Method 2: delete a checksum from uboot-env
  this will make uboot load the failsafe image at next boot
  because it will fail the checksum verification of the image

    ssh into openwrt and run
    `fw_setenv rootfs_checksum 0`
    reboot, wait a minute
    connect to ethernet and navigate to
    192.168.20.253
    select OEM firmware image and click upgrade

  Method 3: backup mtd partitions before upgrade

**TFTP recovery:**

  Requires serial console, reset button does nothing

  rename initramfs-kernel.bin to '0101A8C0.img'
  make available on TFTP server at 192.168.1.101
  power board, interrupt boot with serial console
  execute `tftpboot` and `bootm 0x81000000`

  NOTE: TFTP may not be reliable due to bugged bootloader
set MTU to 600 and try many times

**Format of OEM firmware image:**

  The OEM software is built using SDKs from Senao
  which is based on a heavily modified version
  of Openwrt Kamikaze or Altitude Adjustment.
  One of the many modifications is sysupgrade being performed by a custom script.
  Images are verified through successful unpackaging, correct filenames
  and size requirements for both kernel and rootfs files, and that they
  start with the correct magic numbers (first 2 bytes) for the respective headers.

  Newer Senao software requires more checks but their script
  includes a way to skip them.

  The OEM upgrade script is at
  /etc/fwupgrade.sh

  OKLI kernel loader is required because the OEM software
  expects the kernel to be less than 1536k
  and the OEM 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 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`.

  The clock delay required for RGMII can be applied at the PHY side,
  using the at803x driver `phy-mode` setting through the DTS.
  Therefore, the Ethernet Configuration registers for GMAC0
  do not need the bits for RGMII delay on the MAC side.
  This is possible due to fixes in at803x driver
  since Linux 5.1 and 5.3

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2 years agoath79: add support for Araknis AN-500-AP-I-AC
Michael Pratt [Wed, 17 Mar 2021 05:07:36 +0000 (01:07 -0400)]
ath79: add support for Araknis AN-500-AP-I-AC

FCC ID: 2AG6R-AN500APIAC

Araknis AN-500-AP-I-AC is an indoor wireless access point with
1 Gb ethernet port, dual-band wireless,
internal antenna plates, and 802.3at PoE+

this board is a Senao device:
the hardware is equivalent to EnGenius EAP1200
the software is modified Senao SDK which is based on openwrt and uboot
including image checksum verification at boot time,
and a failsafe image that boots if checksum fails

**Specification:**

  - QCA9557 SOC MIPS 74kc, 2.4 GHz WMAC, 2x2
  - QCA9882 WLAN PCI card 168c:003c, 5 GHz, 2x2, 26dBm
  - AR8035-A PHY RGMII GbE with PoE+ IN
  - 40 MHz clock
  - 16 MB FLASH MX25L12845EMI-10G
  - 2x 64 MB RAM NT5TU32M16
  - UART console J10, populated, RX shorted to ground
  - 4 antennas 5 dBi, internal omni-directional plates
  - 4 LEDs power, 2G, 5G, wps
  - 1 button reset

  NOTE: all 4 gpio controlled LEDS are viewed through the same lightguide
therefore, the power LED is off for default state

**MAC addresses:**

  MAC address labeled as ETH
  Only one Vendor MAC address in flash at art 0x0

  eth0 ETH  *:e1 art 0x0
  phy1 2.4G *:e2 ---
  phy0 5GHz *:e3 ---

**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 RX pin at J10

**Installation:**

  Method 1: Firmware upgrade page:

    (if you cannot access the APs webpage)
    factory reset with the reset button
    connect ethernet to a computer
    OEM webpage at 192.168.20.253
    username and password 'araknis'
    make a new password, login again...

    Navigate to 'File Management' page from left pane
    Click Browse and select the factory.bin image
    Upload and verify checksum
    Click Continue to confirm
    wait about 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.20.253
    Select the factory.bin image and upload
    wait about 3 minutes

**Return to OEM:**

  Method 1: Serial to load Failsafe webpage (above)

  Method 2: delete a checksum from uboot-env
  this will make uboot load the failsafe image at next boot
  because it will fail the checksum verification of the image

    ssh into openwrt and run
    `fw_setenv rootfs_checksum 0`
    reboot, wait a minute
    connect to ethernet and navigate to
    192.168.20.253
    select OEM firmware image and click upgrade

  Method 3: backup mtd partitions before upgrade

**TFTP recovery:**

  Requires serial console, reset button does nothing

  rename initramfs-kernel.bin to '0101A8C0.img'
  make available on TFTP server at 192.168.1.101
  power board, interrupt boot with serial console
  execute `tftpboot` and `bootm 0x81000000`

  NOTE: TFTP may not be reliable due to bugged bootloader
set MTU to 600 and try many times

**Format of OEM firmware image:**

  The OEM software is built using SDKs from Senao
  which is based on a heavily modified version
  of Openwrt Kamikaze or Altitude Adjustment.
  One of the many modifications is sysupgrade being performed by a custom script.
  Images are verified through successful unpackaging, correct filenames
  and size requirements for both kernel and rootfs files, and that they
  start with the correct magic numbers (first 2 bytes) for the respective headers.

  Newer Senao software requires more checks but their script
  includes a way to skip them.

  The OEM upgrade script is at
  /etc/fwupgrade.sh

  OKLI kernel loader is required because the OEM software
  expects the kernel to be less than 1536k
  and the OEM 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 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`.

  The clock delay required for RGMII can be applied at the PHY side,
  using the at803x driver `phy-mode` setting through the DTS.
  Therefore, the Ethernet Configuration registers for GMAC0
  do not need the bits for RGMII delay on the MAC side.
  This is possible due to fixes in at803x driver
  since Linux 5.1 and 5.3

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2 years agoath79: add support for Araknis AN-300-AP-I-N
Michael Pratt [Fri, 26 Mar 2021 06:12:26 +0000 (02:12 -0400)]
ath79: add support for Araknis AN-300-AP-I-N

FCC ID: U2M-AN300APIN

Araknis AN-300-AP-I-N is an indoor wireless access point with
1 Gb ethernet port, dual-band wireless,
internal antenna plates, and 802.3at PoE+

this board is a Senao device:
the hardware is equivalent to EnGenius EWS310AP
the software is modified Senao SDK which is based on openwrt and uboot
including image checksum verification at boot time,
and a failsafe image that boots if checksum fails

**Specification:**

  - AR9344 SOC MIPS 74kc, 2.4 GHz WMAC, 2x2
  - AR9382 WLAN PCI on-board 168c:0030, 5 GHz, 2x2
  - AR8035-A PHY RGMII GbE with PoE+ IN
  - 40 MHz clock
  - 16 MB FLASH MX25L12845EMI-10G
  - 2x 64 MB RAM 1839ZFG V59C1512164QFJ25
  - UART console J10, populated, RX shorted to ground
  - 4 antennas 5 dBi, internal omni-directional plates
  - 4 LEDs power, 2G, 5G, wps
  - 1 button reset

  NOTE: all 4 gpio controlled LEDS are viewed through the same lightguide
therefore, the power LED is off for default state

**MAC addresses:**

  MAC address labeled as ETH
  Only one Vendor MAC address in flash at art 0x0

  eth0 ETH  *:7d art 0x0
  phy1 2.4G *:7e ---
  phy0 5GHz *:7f ---

**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 RX pin at J10

**Installation:**

  Method 1: Firmware upgrade page:

    (if you cannot access the APs webpage)
    factory reset with the reset button
    connect ethernet to a computer
    OEM webpage at 192.168.20.253
    username and password 'araknis'
    make a new password, login again...

    Navigate to 'File Management' page from left pane
    Click Browse and select the factory.bin image
    Upload and verify checksum
    Click Continue to confirm
    wait about 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.20.253
    Select the factory.bin image and upload
    wait about 3 minutes

**Return to OEM:**

  Method 1: Serial to load Failsafe webpage (above)

  Method 2: delete a checksum from uboot-env
  this will make uboot load the failsafe image at next boot
  because it will fail the checksum verification of the image

    ssh into openwrt and run
    `fw_setenv rootfs_checksum 0`
    reboot, wait a minute
    connect to ethernet and navigate to
    192.168.20.253
    select OEM firmware image and click upgrade

  Method 3: backup mtd partitions before upgrade

**TFTP recovery:**

  Requires serial console, reset button does nothing

  rename initramfs-kernel.bin to '0101A8C0.img'
  make available on TFTP server at 192.168.1.101
  power board, interrupt boot with serial console
  execute `tftpboot` and `bootm 0x81000000`

  NOTE: TFTP may not be reliable due to bugged bootloader
set MTU to 600 and try many times

**Format of OEM firmware image:**

  The OEM software is built using SDKs from Senao
  which is based on a heavily modified version
  of Openwrt Kamikaze or Altitude Adjustment.
  One of the many modifications is sysupgrade being performed by a custom script.
  Images are verified through successful unpackaging, correct filenames
  and size requirements for both kernel and rootfs files, and that they
  start with the correct magic numbers (first 2 bytes) for the respective headers.

  Newer Senao software requires more checks but their script
  includes a way to skip them.

  The OEM upgrade script is at
  /etc/fwupgrade.sh

  OKLI kernel loader is required because the OEM software
  expects the kernel to be less than 1536k
  and the OEM 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 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`.

  The clock delay required for RGMII can be applied at the PHY side,
  using the at803x driver `phy-mode` setting through the DTS.
  Therefore, the Ethernet Configuration registers for GMAC0
  do not need the bits for RGMII delay on the MAC side.
  This is possible due to fixes in at803x driver
  since Linux 5.1 and 5.3

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2 years agoath79: improve factory.bin for some Senao devices
Michael Pratt [Wed, 17 Mar 2021 23:07:46 +0000 (19:07 -0400)]
ath79: improve factory.bin for some Senao devices

Some boards with firmware made with Senao SDK based on Linux 3.3
have the following lines in the OEM upgrade script at
/etc/fwupgrade.sh

local append=""
local CONF_TAR="/tmp/sysupgrade.tgz"
[ -f "$CONF_TAR" ] && append="-j $CONF_TAR"

and

\# check FWINFO filename
[ -z $(ls FWINFO* | grep -i ${modelname}) ] && errcode="1"

This addition also prevents needing to factory reset after flashing
for some boards that also have these lines in the script

\# Support downgrade but do default (Smart v2.x.x.x -> senaowrt v1.x.x.x)
[ $(ls FWINFO* | grep -i ${modelname} | cut -d "-" -f4 | cut -c 2) -lt 2 ] && append=""

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2 years agorealtek: add support for Panasonic Switch-M8eG PN28080K
INAGAKI Hiroshi [Wed, 9 Mar 2022 14:31:00 +0000 (23:31 +0900)]
realtek: add support for Panasonic Switch-M8eG PN28080K

Panasonic Switch-M8eG PN28080K is a 8 + 1 port gigabit switch, based on
RTL8380M.

Specification:

- SoC : Realtek RTL8380M
- RAM : DDR3 128 MiB (Winbond W631GG8KB-15)
- Flash : SPI-NOR 32 MiB (Macronix MX25L25635FMI-10G)
- Ethernet : 10/100/1000 Mbps x8 + 1
  - port 1-8 : TP, RTL8218B (SoC)
  - port 9 : SFP, RTL8380M (SoC)
- LEDs/Keys : 7x / 1x
- UART : RS-232 port on the front panel (connector: RJ-45)
  - 3:TX, 4:GND, 5:GND, 6:RX (pin number: RJ-45)
  - 9600n8
- Power : 100-240 VAC, 50/60 Hz, 0.5 A
  - Plug : IEC 60320-C13
- Stock OS : VxWorks based

Flash instruction using initramfs image:

1.  Prepare the TFTP server with the IP address 192.168.1.111
2.  Rename the OpenWrt initramfs image to "0101A8C0.img" and place it to
    the TFTP directory
3.  Download the official upgrading firmware (ex: pn28080k_v30000.rom)
    and place it to the TFTP directory
4.  Boot M8eG and interrupt the U-Boot with Ctrl + C keys
5.  Execute the following commands and boot with the OpenWrt initramfs
    image

    rtk network on
    tftpboot 0x81000000
    bootm

6.  Backup mtdblock files to the computer by scp or anything and reboot
7.  Interrupt the U-Boot and execute the following commands to re-create
    filesystem in the flash

    ffsmount c:/
    ffsfmt c:/

    this step takes a long time, about ~ 4 mins

8.  Execute the following commands to put the official images to the
    filesystem

    updatert <official image>

    example:

      updatert pn28080k_v30000.rom

    this step takes about ~ 40 secs

9.  Set the environment variables of the U-Boot by the following commands

    setenv loadaddr 0xb4e00000
    setenv bootcmd bootm
    saveenv

10: Download the OpenWrt initramfs image and boot with it

    tftpboot 0x81000000 0101A8C0.img
    bootm

11: On the initramfs image, download the sysupgrade image and perform
    sysupgrade with it

    sysupgrade <imagename>

12: Wait ~ 120 seconds to complete flashing

Note:

- "Switch-M8eG" is a model name, and "PN28080K" is a model number.
  Switch-M8eG has an another (old) model number ("PN28080"), it's not a
  Realtek based hardware.

- Switch-M8eG has a "POWER" LED (Green), but it's not connected to any
  GPIO pin.

- The U-Boot checks the runtime images in the flash when booting and
  fails to execute anything in "bootcmd" variable if the images are not
  exsisting.

- A filesystem is formed in the flash (0x100000-0x1DFFFFF) on the stock
  firmware and it includes the stock images, configuration files and
  checksum files. It's unknown format, can't be managed on the OpenWrt.
  To get the enough space for OpenWrt, move the filesystem to the head
  of "fs_reserved" partition by execution of "ffsfmt" and "updatert".

- On the other devices in the same series of Switch-M8eG PN28080K, the
  INT pin on the PCA9555 is not connected to anywhere.

Back to the stock firmware:

1. Delete "loadaddr" variable and set "bootcmd" to the original value

   on U-Boot:

     setenv loadaddr
     setenv bootcmd 'bootm 0x81000000'

   on OpenWrt:

     fw_setenv loadaddr
     fw_setenv bootcmd 'bootm 0x81000000'

2. Perform reset or reboot

  on U-Boot:

    reset

  on OpenWrt:

    reboot

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Reviewed-by: Sander Vanheule <sander@svanheule.net>
2 years agorealtek: enable pca953x driver for rtl838x subtarget
INAGAKI Hiroshi [Wed, 9 Mar 2022 14:30:59 +0000 (23:30 +0900)]
realtek: enable pca953x driver for rtl838x subtarget

The system status LED on Panasonic Switch-M8eG PN28080K is connected to
a PCA9539PW. To use the LED as a status LED of OpenWrt while booting,
enable the pca953x driver and built-in to the kernel.
Also enable CONFIG_GPIO_PCA953X_IRQ to use interrupt via RTL83xx GPIO.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Acked-by: Sander Vanheule <sander@svanheule.net>
2 years agorealtek: add ZyXEL GS1900-24 v1 support
Martin Kennedy [Sat, 5 Mar 2022 19:02:36 +0000 (14:02 -0500)]
realtek: add ZyXEL GS1900-24 v1 support

The ZyXEL GS1900-24 v1 is a 24 port switch with two SFP ports, similar to
the other GS1900 switches.

Specifications
--------------
* Device:    ZyXEL GS1900-24 v1
* SoC:       Realtek RTL8382M 500 MHz MIPS 4KEc
* Flash:     16 MiB
* RAM:       Winbond W9751G8KB-25 64 MiB DDR2 SDRAM
* 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)
  * 2 SFP status/activity LEDs (green, SoC controlled)
* Buttons:
  * 1 "RESET" button on front panel (soft reset)
  * 1 button ('SW1') behind right hex grate (hardwired power-off)
* Power:     120-240V AC C13
* UART:      Internal populated 10-pin header ('J5') providing RS232;
             connected to SoC UART through a SIPEX 3232EC for voltage
             level shifting.

* 'J5' RS232 Pinout (dot as pin 1):
  2) SoC RXD
  3) GND
  10) SoC TXD

Serial connection parameters: 115200 8N1.

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

OEM upgrade method:

* 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-rtl838x-zyxel_gs1900-24-v1-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 /tmp/openwrt-realtek-rtl838x-zyxel_gs1900-24-v1-squashfs-sysupgrade.bin

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-24 v1 is a dual-partition device, you want to keep the
  OEM firmware on the backup partition for the time being. OpenWrt can
  only be installed in the first partition anyway (hardcoded in the
  DTS). To ensure we are set to boot from the first partition, issue the
  following commands:

  > setsys bootpartition 0
  > savesys

* Download the image onto the device and boot from it:

  > tftpboot 0x81f00000 192.168.1.10:openwrt-realtek-rtl838x-zyxel_gs1900-24-v1-initramfs-kernel.bin
  > bootm

* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:

  > sysupgrade /tmp/openwrt-realtek-rtl838x-zyxel_gs1900-24-v1-squashfs-sysupgrade.bin

Signed-off-by: Martin Kennedy <hurricos@gmail.com>
2 years agokernel/modules: add kmod-inet-diag package
Tianling Shen [Wed, 9 Mar 2022 02:35:04 +0000 (10:35 +0800)]
kernel/modules: add kmod-inet-diag package

Add option to compile kmod-inet-diag, support for INET (TCP, DCCP, etc)
socket monitoring interface used by native Linux tools such as ss.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2 years agokernel: bump 5.10 to 5.10.104
John Audia [Tue, 8 Mar 2022 22:01:48 +0000 (17:01 -0500)]
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>
2 years agotools/ccache: update to 4.6
Rosen Penev [Mon, 7 Mar 2022 04:46:22 +0000 (20:46 -0800)]
tools/ccache: update to 4.6

Full changelog: https://ccache.dev/releasenotes.html#_ccache_4_6

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/fakeroot: update to 1.28
Rosen Penev [Mon, 7 Mar 2022 04:53:47 +0000 (20:53 -0800)]
tools/fakeroot: update to 1.28

Refreshed patches.

Upstream says there's only a bugfix for GNU Hurd.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/cmake: update to 3.22.3
Rosen Penev [Mon, 7 Mar 2022 04:30:53 +0000 (20:30 -0800)]
tools/cmake: update to 3.22.3

Seems to be mostly pthread fixes.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/mtools: update to 4.0.38
Rosen Penev [Mon, 7 Mar 2022 05:02:33 +0000 (21:02 -0800)]
tools/mtools: update to 4.0.38

No real changelog available.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agoiptables: backport missing init_extensions6() calls
Etienne Champetier [Sun, 13 Mar 2022 05:24:13 +0000 (00:24 -0500)]
iptables: backport missing init_extensions6() calls

This fixes ip6tables-nft no being able to use built-in
extensions like icmp6.

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
2 years agoipset: add backport patch for IPv6 nftables ipset-translation
Florian Eckert [Wed, 2 Mar 2022 08:42:52 +0000 (09:42 +0100)]
ipset: add backport patch for IPv6 nftables ipset-translation

When porting mwan3 from iptables to nftables I tried the new translation
tool for ipset ipset-translate. I noticed that no IPv6 ipset can be
created with the tool. I have reported the problem to the upstream
project and the following patch fixes the problem.

Until this upsream is included in a new release, this patch should be
used in Openwrt.

https://lore.kernel.org/netfilter-devel/20220228190217.2256371-1-pablo@netfilter.org/T/#m09cc3cb738f2e42024c7aecf5b7240d9f6bbc19c

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2 years agotools/expat: enable DTD
Rosen Penev [Sat, 12 Mar 2022 22:58:10 +0000 (14:58 -0800)]
tools/expat: enable DTD

Fixes gdb usage, which depends on it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/expat: update to 2.4.7
Rosen Penev [Mon, 7 Mar 2022 04:58:29 +0000 (20:58 -0800)]
tools/expat: update to 2.4.7

Mostly a bug fix to the bug fix to CVE-2022-25236

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agoramips: Apply pinctrl DTS changes to TL-WPA8631P
Joe Mullally [Tue, 8 Mar 2022 19:33:37 +0000 (19:33 +0000)]
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: 6c743c3006f9 ("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>
2 years agoath79: Add LED labels for Airtight C-75
Sven Schwermer [Wed, 9 Mar 2022 08:46:41 +0000 (09:46 +0100)]
ath79: Add LED labels for Airtight C-75

Keep labels since OpenWrt userland tooling (get_dt_led) depends on them
to find the LED instances referenced by the led-* aliases.

The label for the amber power LED was removed in 4eefdc7adb.

Signed-off-by: Sven Schwermer <sven@svenschwermer.de>
2 years agoramips: update WLAN MAC address of JCG Y2
Chukun Pan [Mon, 10 Jan 2022 04:28:40 +0000 (12:28 +0800)]
ramips: update WLAN MAC address of JCG Y2

MAC addresses on OEM firmware:
  04:xx:xx:xx:xx:c8  factory 0x4     wlan2g
  06:xx:xx:xx:xx:c8  [not on flash]  wlan5g

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2 years agoramips: update WLAN MAC address of Phicomm K2P
Chukun Pan [Sun, 9 Jan 2022 04:16:06 +0000 (12:16 +0800)]
ramips: update WLAN MAC address of Phicomm K2P

The wireless mac address difference of this machine is similar
to that of D-Link DIR-853-R1, so use the same practice.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2 years agoramips: Add support for Dual-Q H721
Dawsen Gao [Sat, 12 Feb 2022 02:21:21 +0000 (10:21 +0800)]
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>
2 years agobase-files: call "sync" after initial setup
Rafał Miłecki [Tue, 1 Mar 2022 17:46:27 +0000 (18:46 +0100)]
base-files: call "sync" after initial setup

OpenWrt uses a lot of (b)ash scripts for initial setup. This isn't the
best solution as they almost never consider syncing files / data. Still
this is what we have and we need to try living with it.

Without proper syncing OpenWrt can easily get into an inconsistent state
on power cut. It's because:
1. Actual (flash) inode and data writes are not synchronized
2. Data writeback can take up to 30 seconds (dirty_expire_centisecs)
3. ubifs adds extra 5 seconds (dirty_writeback_centisecs) "delay"

Some possible cases (examples) for new files:
1. Power cut during 5 seconds after write() can result in all data loss
2. Power cut happening between 5 and 35 seconds after write() can result
   in empty file (inode flushed after 5 seconds, data flush queued)

Above affects e.g. uci-defaults. After executing some migration script
it may get deleted (whited out) without generated data getting actually
written. Power cut will result in missing data and deleted file.

There are three ways of dealing with that:
1. Rewriting all user-space init to proper C with syncs
2. Trying bash hacks (like creating tmp files & moving them)
3. Adding sync and hoping for no power cut during critical section

This change introduces the last solution that is the simplest. It
reduces time during which things may go wrong from ~35 seconds to
probably less than a second. Of course it applies only to IO operations
performed before /etc/init.d/boot . It's probably the stage when the
most new files get created.

All later changes are usually done using smarter C apps (e.g. busybox or
uci) that creates tmp files and uses rename() that is expected to be
atomic.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
2 years agouqmi: update to git HEAD
Daniel Golle [Sat, 12 Mar 2022 11:07:27 +0000 (11:07 +0000)]
uqmi: update to git HEAD

 44dd095 uqmi: corrected too short received SMS

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agouqmi: set CID during 'query-data-status' operation
Lech Perczak [Sat, 12 Mar 2022 00:50:53 +0000 (01:50 +0100)]
uqmi: set CID during 'query-data-status' operation

Modems used in ZTE mobile broadband routers require to query the data
session status using the same CID as one used to establish the session,
otherwise they will report the session as "disconnected" despite
reporting correct PDH in previous step. Without this change, IPv6
connection on these modems doesn't establish properly. In IPv4 this bug
is present as well, but for some reason querying of IPv4 status works
using temporary CID, this however seems noncompliant with QMI
specifications, so fix it as well.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2 years agobcm4908: include U-Boot in images
Rafał Miłecki [Fri, 4 Mar 2022 08:39:05 +0000 (09:39 +0100)]
bcm4908: include U-Boot in images

This is a step forward in adding support for devices with U-Boot.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agouboot-bcm4908: add package with BCM4908 U-Boot
Rafał Miłecki [Fri, 4 Mar 2022 08:39:04 +0000 (09:39 +0100)]
uboot-bcm4908: add package with BCM4908 U-Boot

New BCM4908 devices come with U-Boot instead of CFE. Firmwares for such
devices has to include U-Boot.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agoimx: fix USB support
Piotr Dymacz [Thu, 10 Mar 2022 22:29:21 +0000 (23:29 +0100)]
imx: fix USB support

The ChipIdea USB kernel driver gained support for disabling glue drivers
in 5.8, see upstream commmit: 95caa2ae70fd ("usb: chipidea: allow
disabling glue drivers if EMBEDDED").

This enables 'CONFIG_USB_CHIPIDEA_IMX' in the 'imx' target kernel config
which brings back USB support.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2 years agox86: legacy: enable pata_sis driver
Matthias Schiffer [Thu, 10 Mar 2022 22:24:10 +0000 (23:24 +0100)]
x86: legacy: enable pata_sis driver

This driver is needed to boot from CompactFlash on the Siemens Futro S400.
The device has an AMD NX1500 CPU, which seems to be unsupported by the
geode subtarget, so it must use legacy.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2 years agokernel: wwan: add MeigLink SLM750 modem support
Daniel Golle [Thu, 10 Mar 2022 17:53:01 +0000 (17:53 +0000)]
kernel: wwan: add MeigLink SLM750 modem support

Add patch found in Teltonika RUT9_R_00.07.01.4 GPL SDK download[1]
adding USB IDs of the MeigLink SLM750 to the relevant kernel drivers.
Newer versions of Teltonika's 2G/3G/4G RUT9XX WWAN router series come
with this kind of modem.

[1]: https://wiki.teltonika-networks.com/view/GPL
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 years agoiptables: add iptables-mod-socket
Yousong Zhou [Wed, 9 Mar 2022 05:00:42 +0000 (13:00 +0800)]
iptables: add iptables-mod-socket

Previously libxt_socket.so was included in iptables-mod-tproxy.  It was
missed out when trying to make kmod-ipt-socket and kmod-ipt-tproxy
separate packages

Fixes: 4f443c88 ("netfilter: separate packages for kmod-ipt-socket and kmod-ipt-tproxy")
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2 years agoCI: move logs/ to GITHUB_WORKSPACE
Paul Spooren [Wed, 9 Mar 2022 12:30:21 +0000 (13:30 +0100)]
CI: move logs/ to GITHUB_WORKSPACE

Artifacts can only be uploaded from inside the GITHUB_WORKSPACE. While
the Linux CI jobs run inside that per default, a special case-sensitive
mount outside the GITHUB_WORKSPACE is used for macOS builds.

To make log artifacts work for both macOS and Linux, move logs/ folder
to GITHUB_WORKSPACE on failures.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2 years agotoolchain: binutils: add support for version 2.38
Rui Salvaterra [Wed, 9 Feb 2022 15:18:45 +0000 (15:18 +0000)]
toolchain: binutils: add support for version 2.38

While at it, also fix the download.xs4all.nl and add ftp.gnu.org to the GNU
mirrors, as it seems to be updated faster.

Deleted (upstreamed):
600-Close_the_file_descriptor.patch [1]

[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=5a98fb7513b559e20dfebdbaa2a471afda3b4742

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agoramips: allow USB power control on TP-Link MR3020v3
Dmitry Chigiryov [Fri, 25 Feb 2022 09:41:12 +0000 (12:41 +0300)]
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>
2 years agoramips: fix DEVICE_VENDOR for unbranded devices
Sungbo Eo [Thu, 24 Feb 2022 14:17:45 +0000 (23:17 +0900)]
ramips: fix DEVICE_VENDOR for unbranded devices

In commit ee66fe4ea9a6 ("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: d0bf15f23595 ("ramips: add support for A5-V11 board (resubmit)")
Ref: 9085b05d9e71 ("ramips: rt305x: support for wr512-3gn-like routers")
Ref: 0e486d2fd297 ("ramips: add support for unbranded XDX-RN502J board")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2 years agoramips: mt7621: add support for Zbtlink ZBT-WG1608
Kim Namu [Wed, 23 Feb 2022 15:14:37 +0000 (00:14 +0900)]
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>
2 years agoramips: add support for Asus RT-AC1200
Ray Wang [Thu, 10 Feb 2022 15:16:05 +0000 (23:16 +0800)]
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>
2 years agotools: zip: make encrypted archives reproducible
Sungbo Eo [Sat, 12 Feb 2022 08:01:31 +0000 (17:01 +0900)]
tools: zip: make encrypted archives reproducible

Zip always try to generate new encryption header depending on execution
time and process id, which is far from being reproducible. This commit
changes the zip srand() seed to a predictable value to generate
reproducible random bytes for the encryption header. This will compromise
the goal of secure archive encryption, but it would not be a big problem
for our purpose.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2 years agotools: zip: fetch SOURCE_DATE_EPOCH directly
Sungbo Eo [Sat, 12 Feb 2022 08:01:31 +0000 (17:01 +0900)]
tools: zip: fetch SOURCE_DATE_EPOCH directly

Remove "--mtime" option introduced in commit 18c9faa03211 ("tools: zip:
add option for reproducible archives") and instead fetch SOURCE_DATE_EPOCH
environment variable directly in the code.

Ref: https://sourceforge.net/p/infozip/patches/25/
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2 years agobuild: image: use UTC for zip timestamp
Sungbo Eo [Sat, 12 Feb 2022 08:01:31 +0000 (17:01 +0900)]
build: image: use UTC for zip timestamp

Zip uses DOS timestamp for mtime which is stored in local time and hence
depends on the timezone of the build system. Force zip to use UTC timezone
to make image builds more reproducible.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
2 years agoramips: add support for Renkforce WS-WN530HP3-A
Birger Koblitz [Mon, 7 Mar 2022 18:50:29 +0000 (19:50 +0100)]
ramips: add support for Renkforce WS-WN530HP3-A

This adds support for the Renkforce WS-WN530HP3-A ceiling-
mountable Wireless Access Point, which is powered over PoE.
Hardware:
- SoC: Mediatek MT7621DAT
- RAM: 128MiB on SoC
- Flash: 16MiB GigaDevice GD25Q128C
- 2.4Ghz Wifi: Mediatek MT603EN
- 5GHz Wifi: MT613BEN
- Ethernet:
  - 1x 1GBit WAN port, passive PoE capable
  - 2x 1GBit LAN ports
LEDs: 1x Bi-Color LED (red/blue)
Buttons: 1x Reset Button, 1x Power Button

Installation:
Power on the access point and immedately press the reset
button for 10 seconds. Connect web-browser to 192.168.10.1
and upload sysupgrade image. Flash uploaded image and wait
about 2 minutes for reboot.

Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [fixed SoB]
2 years agoath79: fix button labels for WZR-HP-AG300H and WZR-600DHP
Jeffery To [Sun, 6 Mar 2022 14:47:20 +0000 (22:47 +0800)]
ath79: fix button labels for WZR-HP-AG300H and WZR-600DHP

These were present in ar71xx but overlooked when porting to ath79.

Fixes: 480bf2827392 ("ath79: add support for Buffalo WZR-HP-AG300H")
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2 years agoath79: add support for MikroTik RouterBOARD mAP lite
Thibaut VARÈNE [Mon, 28 Feb 2022 10:34:43 +0000 (11:34 +0100)]
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 781d4bfb397cdd12ee0151eb66c577f470e3377d
 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>
2 years agoipq806x: provide ramoops for R7800/XR500 by default
Hannu Nyman [Sun, 6 Mar 2022 09:56:15 +0000 (11:56 +0200)]
ipq806x: provide ramoops for R7800/XR500 by default

Add kmod-ramoops to the default set of device packages in
R7800 and XR500, so that the ramoops kernel crash logs
are provided by default for these routers.

The capability was earlier defined by 97158fe1 and cf346dfa,
but the feature was not yet turned on by default.

The possible kernel crashes are stored into /sys/fs/pstore/*

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2 years agoath79: Add green power LED to Airtight C-75
Sven Schwermer [Mon, 7 Mar 2022 21:08:32 +0000 (22:08 +0100)]
ath79: Add green power LED to Airtight C-75

In addition to the missing green LED definition, the polarity of the
amber power LED was incorrect which is fixed here.

Signed-off-by: Sven Schwermer <sven@svenschwermer.de>
2 years agolantiq: xrx200: fix use after free bug
Aleksander Jan Bajkowski [Sat, 5 Mar 2022 11:54:48 +0000 (12:54 +0100)]
lantiq: xrx200: fix use after free bug

The skb->len field is read after the packet is sent to the network
stack. In the meantime, skb can be freed. This patch fixes this bug.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
2 years agouboot-envtools: add support for I-O DATA BSH-G24MB
INAGAKI Hiroshi [Sun, 18 Apr 2021 01:23:09 +0000 (10:23 +0900)]
uboot-envtools: add support for I-O DATA BSH-G24MB

This patch adds the device-specific configuration to u-boot-envtools for
I-O DATA BSH-G24MB switch.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2 years agorealtek: add support for I-O DATA BSH-G24MB
INAGAKI Hiroshi [Sat, 17 Apr 2021 01:10:27 +0000 (10:10 +0900)]
realtek: add support for I-O DATA BSH-G24MB

I-O DATA BSH-G24MB is a 24 port gigabit switch, based on RTL8382M.

Specification:

- SoC : Realtek RTL8382M
- RAM : DDR2 128 MiB (Nanya NT5TU128M8HE-AC)
- Flash : SPI-NOR 16 MiB (Macronix MX25L12835FM2I-10G)
- Ethernet : 10/100/1000 Mbps x24
  - port 1-8 : RTL8218B
  - port 9-16 : RTL8218B (SoC)
  - port 17-24 : RTL8218B
- LEDs/Keys : 2x, 1x
- UART : pin header on PCB
  - JP2: 3.3V, TX, RX, GND from rear side
  - 115200n8
- Power : 100 VAC, 50/60 Hz
  - Plug : IEC 60320-C13

Flash instruction using sysupgrade image:

1. Boot BSH-G24MB normally
2. Connect BSH-G24MB to the DHCP enabled network
3. Find the device's IP address and open the WebUI and login
   Note: by default, the device obtains IP address from DHCP server of
         the network
4. Open firmware update page ("ファームウェア アップデート")
5. Rename the OpenWrt sysupgrade image to "bsh-g24mb_v100.image" and
   select it
6. Press apply ("適用") button to perform update
7. Wait ~150 seconds to complete flashing

Note:

- BSH-G24MB has a power-related LED ("電源"), but it's not connected to
  the GPIO of the SoC or RTL8231 and cannot be controlled. Instead of
  it, use system status LED on other than running-state.

- "sys_loop" LED indicates system status and loop-detection status in
  stock firmware.

- BSH-G24MB has 2x os-image partitions named as "RUNTIME"/"RUNTIME2" in
  16 MiB SPI-NOR flash and the size of image per partition is only
  6848 KiB. The secondary image is never used on stock firmware, so also
  use it on OpenWrt to get more space.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2 years agonftables: update to version 1.0.2
Josef Schlehofer [Sat, 5 Mar 2022 23:16:27 +0000 (00:16 +0100)]
nftables: update to version 1.0.2

Changelog:
https://lwn.net/ml/netdev/YhO5Pn+6+dgAgSd9@salvia/

Patches:

removed:
- 001-parser-allow-quoted-string-in-flowtable_expr_member:
it is now part of upstream release [1]

added:
- 001-examples-compile-with-make-check.patch:
backported from [2], it fixes:

nft-json-file.c:3:10: fatal error: nftables/libnftables.h: No such file or directory
    3 | #include <nftables/libnftables.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

[1] https://git.netfilter.org/nftables/commit/?h=v1.0.2&id=07af4429241c9832a613cb8620331ac54257d9df
[2] https://git.netfilter.org/nftables/commit/?id=18a08fb7f0443f8bde83393bd6f69e23a04246b3

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2 years agolinux-firmware: Update to version 20220209
Hauke Mehrtens [Sun, 6 Mar 2022 20:44:06 +0000 (21:44 +0100)]
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>
2 years agobcm4908: fix init on CFE devices
Rafał Miłecki [Mon, 7 Mar 2022 10:12:36 +0000 (11:12 +0100)]
bcm4908: fix init on CFE devices

exit in preinit script was stopping whole process

Fixes: 93259e8ca261 ("bcm4908: support "rootfs_data" on U-Boot devices")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agobpf-headers: ship a modified version of stdarg.h from musl to fix ebpf build on glibc
Felix Fietkau [Mon, 7 Mar 2022 09:37:15 +0000 (10:37 +0100)]
bpf-headers: ship a modified version of stdarg.h from musl to fix ebpf build on glibc

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agotoolchain/binutils: remove old versions
Felix Fietkau [Mon, 7 Mar 2022 07:43:52 +0000 (08:43 +0100)]
toolchain/binutils: remove old versions

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoqosify: update to the latest version
Felix Fietkau [Sun, 6 Mar 2022 22:01:13 +0000 (23:01 +0100)]
qosify: update to the latest version

3276aed81c73 move run_cmd() to main.c
558eabc13c64 map: move dns host based lookup code to a separate function
6ff06d66c36c dns: add code for snooping dns packets
a78bd43c4a54 ubus: remove dnsmasq subscriber
9773ffa70f1f map: process dns patterns in the order in which they were defined
f13b67c9a786 dns: allow limiting dns entry matching to cname name

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agorealtek: net: dsa: configure better brport flags when ports leave the bridge
Bjørn Mork [Sat, 5 Mar 2022 09:36:07 +0000 (10:36 +0100)]
realtek: net: dsa: configure better brport flags when ports leave the bridge

Ensures that the DSA driver sets exactly the same default flags as the
bridge when a port joins or leaves.  Without this we end up with a
confusing flag mismatch, where DSA and bridge ports use different sets
of flags.

This is critical as the "learning" mismatch will be harmful to the
network, causing all traffic to be flooded on all ports.

The original commit was buggy, trying to set the flags one-by-one in a
loop.  This was not supported by the API and the end result was that
all but the last flag were cleared.  This bug was implicitly fixed
upstream by commit e18f4c18ab5b ("net: switchdev: pass flags and mask
to both {PRE_,}BRIDGE_FLAGS attributes").

This is a minimum temporary stop measure fix for the critical lack of
"learning" only.  The major API change associated with a full v5.12+
backport is neither required nor wanted. A simpler fix, moving the
call to dsa_port_bridge_flags() out of the loop,  has therefore been
merged into this modified backport.

Fixes: afa3ab54c03d ("realtek: Backport bridge configuration for DSA")
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Acked-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
[fix typos in commit message]
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 years agoramips: use parser_trx for Buffalo WCR-1166DS
INAGAKI Hiroshi [Sat, 17 Jul 2021 09:28:47 +0000 (18:28 +0900)]
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 fddc78bc116bc043fb5cd92dbc45cfd054c21af8, 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]: https://github.com/openwrt/openwrt/blob/05d6e92594c507dcd1f4be6c1bcb2282fe1abe1f/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>
2 years agoramips: switch parser of trx for mt76x8 subtarget
INAGAKI Hiroshi [Sat, 12 Feb 2022 07:07:05 +0000 (16:07 +0900)]
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>
2 years agokernel: backport patch to allow using parser_trx from ramips
INAGAKI Hiroshi [Sat, 12 Feb 2022 05:56:12 +0000 (14:56 +0900)]
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>
2 years agokernel: move parser_trx patches of custom magic to generic
INAGAKI Hiroshi [Sat, 12 Feb 2022 04:09:23 +0000 (13:09 +0900)]
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>
2 years agoramips: update MAC address configuration for Buffalo WCR-1166DS
INAGAKI Hiroshi [Sat, 9 Jan 2021 04:24:37 +0000 (13:24 +0900)]
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>
2 years agoramips: increase spi frequency for Buffalo WCR-1166DS
INAGAKI Hiroshi [Sat, 9 Jan 2021 06:16:44 +0000 (15:16 +0900)]
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>
2 years agoramips: Add support for TP-Link TL-WPA8631P v3
Joe Mullally [Sat, 19 Feb 2022 21:32:54 +0000 (21:32 +0000)]
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>
2 years agoiproute2: Remove libxtables from some tc variants
Hauke Mehrtens [Thu, 27 Jan 2022 12:30:38 +0000 (12:30 +0000)]
iproute2: Remove libxtables from some tc variants

This adds the new tc-bpf variant and removes libxtables dependency from
the tc-tiny variant. The tc-full variant stays like before and contains
everything.

This allows to use tc without libxtables.

The variants have the following sizes:
root@OpenWrt:/# ls -al /usr/libexec/tc-*
-rwxr-xr-x    1 root     root        282453 Mar  1 21:55 /usr/libexec/tc-bpf
-rwxr-xr-x    1 root     root        282533 Mar  1 21:55 /usr/libexec/tc-full
-rwxr-xr-x    1 root     root        266037 Mar  1 21:55 /usr/libexec/tc-tiny

They are linking the following shared libraries:
root@OpenWrt:/# ldd /usr/libexec/tc-tiny
        /lib/ld-musl-mips-sf.so.1 (0x77d6e000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x77d4a000)
        libc.so => /lib/ld-musl-mips-sf.so.1 (0x77d6e000)
root@OpenWrt:/# ldd /usr/libexec/tc-bpf
        /lib/ld-musl-mips-sf.so.1 (0x77da6000)
        libbpf.so.0 => /usr/lib/libbpf.so.0 (0x77d60000)
        libelf.so.1 => /usr/lib/libelf.so.1 (0x77d3e000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x77d1a000)
        libc.so => /lib/ld-musl-mips-sf.so.1 (0x77da6000)
        libz.so.1 => /usr/lib/libz.so.1 (0x77cf6000)
root@OpenWrt:/# ldd /usr/libexec/tc-full
        /lib/ld-musl-mips-sf.so.1 (0x77de8000)
        libbpf.so.0 => /usr/lib/libbpf.so.0 (0x77da2000)
        libelf.so.1 => /usr/lib/libelf.so.1 (0x77d80000)
        libxtables.so.12 => /usr/lib/libxtables.so.12 (0x77d66000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x77d42000)
        libc.so => /lib/ld-musl-mips-sf.so.1 (0x77de8000)
        libz.so.1 => /usr/lib/libz.so.1 (0x77d1e000)

This is based on a patch from Tiago Gaspar.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 years agouboot-envtools: mt7622: add support for Ruijie RG-EW3200GX PRO
Langhua Ye [Fri, 4 Mar 2022 15:14:40 +0000 (23:14 +0800)]
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>
2 years agomediatek: add support for Ruijie RG-EW3200GX PRO
Langhua Ye [Fri, 4 Mar 2022 13:41:46 +0000 (21:41 +0800)]
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>
2 years agokernel: add support for XMC XM25QH128C
Langhua Ye [Thu, 3 Mar 2022 03:27:58 +0000 (11:27 +0800)]
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>
2 years agolibnetfilter-conntrack: backport patch fixing compilation with 5.15
Ansuel Smith [Wed, 2 Mar 2022 14:38:59 +0000 (15:38 +0100)]
libnetfilter-conntrack: backport patch fixing compilation with 5.15

Backport patch fixing compilation with 5.15 and musl provided by Robert Marko

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2 years agokernel: bump 5.10 to 5.10.103
Rui Salvaterra [Wed, 2 Mar 2022 13:11:44 +0000 (13:11 +0000)]
kernel: bump 5.10 to 5.10.103

Patches automatically rebased.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agoutil-linux: add lsns
Oskari Rauta [Thu, 3 Mar 2022 02:57:08 +0000 (04:57 +0200)]
util-linux: add lsns

lsns lists system namespaces

Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
2 years agouboot-mvebu: backport patch to fix nvme detail crash
Josef Schlehofer [Thu, 3 Mar 2022 12:01:24 +0000 (13:01 +0100)]
uboot-mvebu: backport patch to fix nvme detail crash

Steps to reproduce:
1. Insert NVMe disk with a reduction to Turris Omnia
2. Go to U-boot
3. Run these two commands:
a) ``nvme scan``
b) ``nvme detail``
4. Wait for crash

This is backported from U-boot upstream repository.
It should be included in the upcoming release - 2022.04 [1].

It was tested on Turris Omnia, mvebu, cortex-a9, OpenWrt master.

[1] https://patchwork.ozlabs.org/project/uboot/patch/20211209100639.21530-1-pali@kernel.org/

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
[Export the patch from U-Boot git]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 years agomkhash: fix build errors on FreeBSD 13.0
Georgi Valkov [Thu, 3 Mar 2022 15:04:38 +0000 (17:04 +0200)]
mkhash: fix build errors on FreeBSD 13.0

be64enc, be16dec, and be32dec are declared on FreeBSD 13.0, in
/usr/include/sys/endian.h so we should not declare them.

Fixes the following error during feeds update:
staging_dir/host/bin/mkhash: No such file or directory

gcc scripts/mkhash.c
scripts/mkhash.c:111:1: error: redefinition of 'be64enc'
  111 | be64enc(void *buf, uint64_t u)

Signed-off-by: Georgi Valkov <gvalkov@abv.bg>
2 years agotools/fakeroot: restore macos bugfix that was dropped during the last update
Felix Fietkau [Sat, 5 Mar 2022 14:58:55 +0000 (15:58 +0100)]
tools/fakeroot: restore macos bugfix that was dropped during the last update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoqosify: bump to git HEAD
Stijn Tintel [Fri, 4 Mar 2022 18:33:05 +0000 (20:33 +0200)]
qosify: bump to git HEAD

  interface: disable autorate-ingress by default

Also change the example config to reflect this.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2 years agoqosify: add PKG_RELEASE
Stijn Tintel [Fri, 4 Mar 2022 15:25:59 +0000 (17:25 +0200)]
qosify: add PKG_RELEASE

Without PKG_RELEASE, it's impossible to trigger package updates when
changing files included in the package that are not in the qosify git
repository.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Felix Fietkau <nbd@nbd.name>
2 years agobcm4908: support "rootfs_data" on U-Boot devices
Rafał Miłecki [Fri, 4 Mar 2022 15:03:26 +0000 (16:03 +0100)]
bcm4908: support "rootfs_data" on U-Boot devices

1. Create "rootfs_data" dynamicaly

U-Boot firmware images can contain only 2 UBI volumes: bootfs (container
with U-Boot + kernel + DTBs) and rootfs (e.g. squashfs). There is no way
to include "rootfs_data" UBI volume or make firmware file tell U-Boot to
create one.

For that reason "rootfs_data" needs to be created dynamically. Use
preinit script to handle that. Fire it right before "mount_root" one.

2. Relate "rootfs_data" to flashed firmware

As already explained flashing new firmware with U-Boot will do nothing
to the "rootfs_data". It could result in new firmware reusing old
"rootfs_data" overlay UBI volume and its file. Users expect a clean
state after flashing firmware (even if flashing the same one).

Solve that by reading flash counter of running firmware and storing it
in "rootfs_data" UBI volume. Every mismatch will result in wiping old
data.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2 years agoprocd: remove support for mounting /tmp in zram
Rui Salvaterra [Mon, 13 Jul 2020 13:03:47 +0000 (14:03 +0100)]
procd: remove support for mounting /tmp in zram

The /tmp directory is mounted as tmpfs. The tmpfs filesystem is backed by
anonymous memory, which means it can be swapped out at any time, if there is
memory pressure [1]. For this reason, a zram swap device is a much better
choice than mounting /tmp on zram, since it's able to compress all anonymous
memory, and not just the memory assigned to /tmp. We already have the zram-swap
package for this specific purpose, which means procd's tmp-on-zram is both
redundant and more limited.

A follow-up patch will remove support for mounting /tmp in zram from procd
itself.

[1] https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: 5.10: remove CONFIG_DEVTMPFS{,_MOUNT} from kconfigs
Rui Salvaterra [Wed, 5 Jan 2022 10:25:40 +0000 (10:25 +0000)]
kernel: 5.10: remove CONFIG_DEVTMPFS{,_MOUNT} from kconfigs

They are required for container support, but are handled in Config-kernel.in.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: 5.10: allocate last level PTEs in high memory
Rui Salvaterra [Mon, 3 Jan 2022 13:36:36 +0000 (13:36 +0000)]
kernel: 5.10: allocate last level PTEs in high memory

Enable support for allocating user space page table entries in high memory [1],
for the targets which support this feature. This saves precious low memory
(permanently mapped, the only type of memory directly accessible by the kernel).

[1] https://www.kernel.org/doc/html/latest/vm/highmem.html

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
2 years agokernel: bump 5.10 to 5.10.102
John Audia [Wed, 23 Feb 2022 11:58:46 +0000 (06:58 -0500)]
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>
2 years agokernel: bump 5.10 to 5.10.101
John Audia [Wed, 16 Feb 2022 14:46:00 +0000 (09:46 -0500)]
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>
2 years agokernel: kmod-tcp-scalable: add scalable tcp congestion algorithm
Catalin Toda [Mon, 28 Feb 2022 19:57:28 +0000 (19:57 +0000)]
kernel: kmod-tcp-scalable: add scalable tcp congestion algorithm

Signed-off-by: Catalin Toda <catalinii@gmail.com>
2 years agoipset: update to 7.15
Florian Eckert [Fri, 25 Feb 2022 11:30:08 +0000 (12:30 +0100)]
ipset: update to 7.15

Update to the latest upstream version. In this version there is a new
tool with which you can convert ipsets into nftables sets. Since we are
now using nftables as default firewall, this could be a useful tool for
porting ipsets to nftables sets.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2 years agotools/libressl: update to version 3.4.2
Josef Schlehofer [Wed, 23 Feb 2022 20:32:41 +0000 (21:32 +0100)]
tools/libressl: update to version 3.4.2

Release notes:
https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.4.2-relnotes.txt

```
It includes the following security fix

  * In some situations the X.509 verifier would discard an error on an
    unverified certificate chain, resulting in an authentication bypass.
    Thanks to Ilya Shipitsin and Timo Steinlein for reporting.
```

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2 years agotools/mkimage: update to 2022.01
Huangbin Zhan [Wed, 23 Feb 2022 14:51:09 +0000 (22:51 +0800)]
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>
2 years agotools/fakeroot: update to 1.27
Rosen Penev [Fri, 25 Feb 2022 04:50:36 +0000 (20:50 -0800)]
tools/fakeroot: update to 1.27

Remove macOS stuff. Upstream has fixed it in the same way.

Add SOL_TCP define. Taken from elsewhere in the code.

Refreshed patches.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/expat: update to 2.4.6
Rosen Penev [Fri, 18 Jun 2021 05:50:51 +0000 (22:50 -0700)]
tools/expat: update to 2.4.6

Switched to CMake for faster compilation and greater parallel
friendliness.

Added CMake options from the packages feed.

This release fixes various CVEs.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/findutils: update to 4.9.0
Rosen Penev [Mon, 21 Feb 2022 23:47:13 +0000 (15:47 -0800)]
tools/findutils: update to 4.9.0

Add compilation fix for Ubuntu 20.04. Provided by upstream maintainer:

https://github.com/openwrt/packages/issues/17912#issuecomment-1046726426

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/zstd: update to 1.5.2
Rosen Penev [Mon, 31 Jan 2022 03:03:41 +0000 (19:03 -0800)]
tools/zstd: update to 1.5.2

Switched to building with meson as it's faster and does not need a
dependency on cmake, which takes a long time to build.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/ccache: add cmake dependency
Rosen Penev [Mon, 7 Feb 2022 04:51:40 +0000 (20:51 -0800)]
tools/ccache: add cmake dependency

This will be needed for the next commit as ccache's cmake dependency is
satisfied by zstd currenly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/cmake: update to 3.22.2
Rosen Penev [Fri, 25 Feb 2022 04:53:13 +0000 (20:53 -0800)]
tools/cmake: update to 3.22.2

Mostly random Python 3.10 fixes.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/mtools: update to 4.0.37
Rosen Penev [Fri, 25 Feb 2022 04:21:35 +0000 (20:21 -0800)]
tools/mtools: update to 4.0.37

No changelog is available.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agotools/mklibs: update to 0.1.45
Rosen Penev [Fri, 25 Feb 2022 04:27:34 +0000 (20:27 -0800)]
tools/mklibs: update to 0.1.45

Refresh 2to3 patch. Upstream partially did this against some older
python version. This is still needed.

Refreshed other patches to be python3 safe.

Remove uClibc patches as only musl is present now.

Refresh others.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2 years agolayerscape: use semantic versions for LSDK
Paul Spooren [Thu, 17 Feb 2022 17:14:37 +0000 (18:14 +0100)]
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>
2 years agou-boot.mk: add LOCALVERSION (explicitly specify OpenWrt build)
Josef Schlehofer [Mon, 21 Feb 2022 17:55:15 +0000 (18:55 +0100)]
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>
2 years agoimage-commands.mk: Use ERROR_MESSAGE for imagesize fails
Paul Spooren [Mon, 28 Feb 2022 09:20:53 +0000 (10:20 +0100)]
image-commands.mk: Use ERROR_MESSAGE for imagesize fails

If a image is bigger than the device can handle, an error message is
printed. This is usually silenced and silently ignored, making it harder
to debug. While it's possible to run the build in verbose mode (via
`make V=s`) and grep for *is too big*, it's more intuitive to print the
error message directly. For that use the newly unlocked `$(call
ERROR_MESSAGE,...)` definition which now also print in non-verbose mode.

Fixes: FS#50 (aka #7604)
Signed-off-by: Paul Spooren <mail@aparcar.org>
2 years agoverbose.mk: print ERROR messages in non-verbose
Paul Spooren [Mon, 28 Feb 2022 09:14:25 +0000 (10:14 +0100)]
verbose.mk: print ERROR messages in non-verbose

Using `make -j9` only prints a subset of messages to follow the build
process progressing. However this silently skips over errors which might
be of interested. Using `make V=s` easily floods the terminal making it
hard to find error messages between the lines.

A compromise is the usage of `$(call ERROR_MESSAGE,...)` which prints a
message in red. This function is silenced in the non-verbose mode, even
if only used at a single place in `package/Makefile` where it notifies
about a OPKG corner case.

This commit moves the `ERROR_MESSAGE` definition outside of the
`OPENWRT_VERBOSE` condition and print error messages in every mode.

With this in place further error messages are possible.

Signed-off-by: Paul Spooren <mail@aparcar.org>